Imported Upstream version 1.8.5 upstream/1.8.5
authorDongHun Kwak <dh0128.kwak@samsung.com>
Fri, 15 Oct 2021 01:46:54 +0000 (10:46 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Fri, 15 Oct 2021 01:46:54 +0000 (10:46 +0900)
501 files changed:
.gitignore [moved from src/.gitignore with 51% similarity]
.travis.yml [new file with mode: 0644]
Doxyfile
Makefile.in
PLATFORMS
README [deleted file]
README.md [new file with mode: 0644]
addon/doxywizard/config.h
addon/doxywizard/configdoc.cpp [new file with mode: 0644]
addon/doxywizard/configdoc.h [new file with mode: 0644]
addon/doxywizard/docintf.h [new file with mode: 0644]
addon/doxywizard/doxywizard.cpp
addon/doxywizard/doxywizard.pro.in
addon/doxywizard/expert.cpp
addon/doxywizard/expert.h
addon/doxywizard/input.h
addon/doxywizard/inputbool.h
addon/doxywizard/inputint.h
addon/doxywizard/inputstring.h
addon/doxywizard/inputstrlist.h
configure
configure.bin
doc/.gitignore [new file with mode: 0644]
doc/Makefile.in
doc/Makefile.win_make.in
doc/Makefile.win_nmake.in
doc/changelog.doc
doc/commands.doc
doc/config.doc
doc/doxywizard_usage.doc
doc/htmlcmds.doc
doc/install.doc
doc/language.doc
doc/language.tpl
doc/maintainers.txt
doc/markdown.doc
doc/preprocessing.doc
doc/translator.py
doc/translator_report.txt [deleted file]
jquery/Makefile
jquery/README
jquery/jquery.powertip-1.2.0.js [new file with mode: 0644]
qtools/Doxyfile
qtools/qcstring.h
qtools/qfileinfo_win32.cpp
qtools/qregexp.cpp
src/clangparser.cpp
src/classdef.cpp
src/classdef.h
src/cmdmapper.cpp
src/cmdmapper.h
src/code.h
src/code.l
src/commentcnv.l
src/commentscan.l
src/config.h
src/config.l
src/config.xml
src/configgen.py
src/configoptions.cpp
src/configoptions.h
src/dbusxmlscanner.cpp
src/dbusxmlscanner.h
src/definition.cpp
src/definition.h
src/docbookgen.cpp
src/docbookvisitor.cpp
src/docparser.cpp
src/doctokenizer.h
src/doctokenizer.l
src/dot.cpp
src/doxygen.cpp
src/doxygen.css
src/doxygen.md
src/doxygen.pro.in
src/doxygen_css.h
src/filedef.cpp
src/fortrancode.l
src/fortranscanner.h
src/fortranscanner.l
src/ftvhelp.cpp
src/groupdef.cpp
src/htmldocvisitor.cpp
src/htmlgen.cpp
src/htmlgen.h
src/index.cpp
src/jquery_pt.js [new file with mode: 0644]
src/jquery_pt_js.h [new file with mode: 0644]
src/language.cpp
src/latexdocvisitor.cpp
src/latexgen.cpp
src/latexgen.h
src/layout.cpp
src/libdoxycfg.t.in
src/libdoxygen.pro.in
src/libdoxygen.t.in
src/lockingptr.h [deleted file]
src/mandocvisitor.cpp
src/mangen.h
src/markdown.cpp
src/markdown.h
src/memberdef.cpp
src/memberdef.h
src/memberlist.cpp
src/memberlist.h
src/message.cpp
src/msc.cpp
src/namespacedef.cpp
src/navtree.js
src/navtree_js.h
src/objcache.cpp
src/outputgen.h
src/outputlist.cpp
src/outputlist.h
src/pagedef.cpp
src/pagedef.h
src/parserintf.h
src/portable.cpp
src/pre.l
src/pycode.h
src/pycode.l
src/pyscanner.h
src/pyscanner.l
src/rtfdocvisitor.cpp
src/rtfgen.h
src/scanner.h
src/scanner.l
src/sqlite3gen.cpp
src/tagreader.cpp
src/tclscanner.h
src/tclscanner.l
src/tooltip.cpp [new file with mode: 0644]
src/tooltip.h [new file with mode: 0644]
src/translator.cpp [deleted file]
src/translator.h
src/translator_adapter.h
src/translator_am.h
src/translator_ar.h
src/translator_br.h
src/translator_ca.h
src/translator_cn.h
src/translator_cz.h
src/translator_de.h
src/translator_dk.h
src/translator_en.h
src/translator_eo.h
src/translator_es.h
src/translator_fa.h
src/translator_fi.h
src/translator_fr.h
src/translator_gr.h
src/translator_hr.h
src/translator_hu.h
src/translator_id.h
src/translator_it.h
src/translator_je.h
src/translator_jp.h
src/translator_ke.h
src/translator_kr.h
src/translator_lt.h
src/translator_lv.h
src/translator_mk.h
src/translator_nl.h
src/translator_no.h
src/translator_pl.h
src/translator_pt.h
src/translator_ro.h
src/translator_ru.h
src/translator_sc.h
src/translator_si.h
src/translator_sk.h
src/translator_sr.h
src/translator_sv.h
src/translator_tr.h
src/translator_tw.h
src/translator_ua.h
src/translator_vi.h
src/translator_za.h
src/translatordecoder.h [deleted file]
src/util.cpp
src/util.h
src/vhdlcode.l
src/vhdldocgen.cpp
src/vhdlscanner.h
src/vhdlscanner.l
src/xmldocvisitor.cpp
src/xmlgen.cpp
testing/001/indexpage.xml [new file with mode: 0644]
testing/001_a.dox [new file with mode: 0644]
testing/002/indexpage.xml [new file with mode: 0644]
testing/002_addindex.dox [new file with mode: 0644]
testing/003/indexpage.xml [new file with mode: 0644]
testing/003_anchor.dox [new file with mode: 0644]
testing/004/indexpage.xml [new file with mode: 0644]
testing/004_arg.dox [new file with mode: 0644]
testing/005/indexpage.xml [new file with mode: 0644]
testing/005_attention.dox [new file with mode: 0644]
testing/006/indexpage.xml [new file with mode: 0644]
testing/006_author.dox [new file with mode: 0644]
testing/007/indexpage.xml [new file with mode: 0644]
testing/007_b.dox [new file with mode: 0644]
testing/008/008__brief_8c.xml [new file with mode: 0644]
testing/008_brief.c [new file with mode: 0644]
testing/009/bug.xml [new file with mode: 0644]
testing/009/class_bug.xml [new file with mode: 0644]
testing/009/class_deprecated.xml [new file with mode: 0644]
testing/009/class_reminder.xml [new file with mode: 0644]
testing/009/class_test.xml [new file with mode: 0644]
testing/009/class_todo.xml [new file with mode: 0644]
testing/009/deprecated.xml [new file with mode: 0644]
testing/009/reminders.xml [new file with mode: 0644]
testing/009/test.xml [new file with mode: 0644]
testing/009/todo.xml [new file with mode: 0644]
testing/009_bug.cpp [new file with mode: 0644]
testing/010/indexpage.xml [new file with mode: 0644]
testing/010_c.dox [new file with mode: 0644]
testing/011/category_integer_07_arithmetic_08.xml [new file with mode: 0644]
testing/011/interface_integer.xml [new file with mode: 0644]
testing/011_category.m [new file with mode: 0644]
testing/012/citelist.xml [new file with mode: 0644]
testing/012/indexpage.xml [new file with mode: 0644]
testing/012_cite.dox [new file with mode: 0644]
testing/013/class_t1.xml [new file with mode: 0644]
testing/013/class_t2.xml [new file with mode: 0644]
testing/013/class_t3.xml [new file with mode: 0644]
testing/013/class_t4.xml [new file with mode: 0644]
testing/013_class.h [new file with mode: 0644]
testing/014/indexpage.xml [new file with mode: 0644]
testing/014_code.dox [new file with mode: 0644]
testing/015/015__cond_8c.xml [new file with mode: 0644]
testing/015_cond.c [new file with mode: 0644]
testing/016/016__copydoc_8c.xml [new file with mode: 0644]
testing/016_copydoc.c [new file with mode: 0644]
testing/017/indexpage.xml [new file with mode: 0644]
testing/017_copyright.dox [new file with mode: 0644]
testing/018/018__def_8c.xml [new file with mode: 0644]
testing/018_def.c [new file with mode: 0644]
testing/019/group__g1.xml [new file with mode: 0644]
testing/019/group__g2.xml [new file with mode: 0644]
testing/019/group__g3.xml [new file with mode: 0644]
testing/019_defgroup.c [new file with mode: 0644]
testing/020/indexpage.xml [new file with mode: 0644]
testing/020_only.dox [new file with mode: 0644]
testing/021/indexpage.xml [new file with mode: 0644]
testing/021_dontinclude.cpp [new file with mode: 0644]
testing/022/indexpage.xml [new file with mode: 0644]
testing/022_dot.cpp [new file with mode: 0644]
testing/023/indexpage.xml [new file with mode: 0644]
testing/023_e.dox [new file with mode: 0644]
testing/024/indexpage.xml [new file with mode: 0644]
testing/024_if.dox [new file with mode: 0644]
testing/025/class_test.xml [new file with mode: 0644]
testing/025/example_test_8cpp-example.xml [new file with mode: 0644]
testing/025_example.cpp [new file with mode: 0644]
testing/026/class_test.xml [new file with mode: 0644]
testing/026_exception.cpp [new file with mode: 0644]
testing/027/struct_car.xml [new file with mode: 0644]
testing/027/struct_object.xml [new file with mode: 0644]
testing/027/struct_truck.xml [new file with mode: 0644]
testing/027/struct_vehicle.xml [new file with mode: 0644]
testing/027_extends.c [new file with mode: 0644]
testing/028/indexpage.xml [new file with mode: 0644]
testing/028_formula.c [new file with mode: 0644]
testing/029/029__hideinit_8c.xml [new file with mode: 0644]
testing/029_hideinit.c [new file with mode: 0644]
testing/030/indexpage.xml [new file with mode: 0644]
testing/030_htmlinclude.dox [new file with mode: 0644]
testing/031/indexpage.xml [new file with mode: 0644]
testing/031_image.dox [new file with mode: 0644]
testing/032/indexpage.xml [new file with mode: 0644]
testing/032_include.cpp [new file with mode: 0644]
testing/033/indexpage.xml [new file with mode: 0644]
testing/033_internal.dox [new file with mode: 0644]
testing/034/indexpage.xml [new file with mode: 0644]
testing/034_internal.dox [new file with mode: 0644]
testing/035/035__invariant_8c.xml [new file with mode: 0644]
testing/035_invariant.c [new file with mode: 0644]
testing/036/036__link_8c.xml [new file with mode: 0644]
testing/036_link.c [new file with mode: 0644]
testing/037/class_receiver.xml [new file with mode: 0644]
testing/037/class_sender.xml [new file with mode: 0644]
testing/037_msc.cpp [new file with mode: 0644]
testing/038/indexpage.xml [new file with mode: 0644]
testing/038_n.dox [new file with mode: 0644]
testing/039/class_test.xml [new file with mode: 0644]
testing/039_name.cpp [new file with mode: 0644]
testing/040/namespace_n_s.xml [new file with mode: 0644]
testing/040_namespace.cpp [new file with mode: 0644]
testing/041/class_test.xml [new file with mode: 0644]
testing/041_overload.cpp [new file with mode: 0644]
testing/042/namespaceorg_1_1doxygen_1_1_test.xml [new file with mode: 0644]
testing/042_package.java [new file with mode: 0644]
testing/043/another.xml [new file with mode: 0644]
testing/043/mypage.xml [new file with mode: 0644]
testing/043_page.dox [new file with mode: 0644]
testing/044/struct_s.xml [new file with mode: 0644]
testing/044_section.h [new file with mode: 0644]
testing/045/indexpage.xml [new file with mode: 0644]
testing/045_refitem.dox [new file with mode: 0644]
testing/046/046__related_8cpp.xml [new file with mode: 0644]
testing/046/class_test.xml [new file with mode: 0644]
testing/046_related.cpp [new file with mode: 0644]
testing/047/047__return_8cpp.xml [new file with mode: 0644]
testing/047_return.cpp [new file with mode: 0644]
testing/048/048__showinit_8c.xml [new file with mode: 0644]
testing/048_showinit.c [new file with mode: 0644]
testing/049/indexpage.xml [new file with mode: 0644]
testing/049_snippet.cpp [new file with mode: 0644]
testing/050/indexpage.xml [new file with mode: 0644]
testing/050_verbatim.dox [new file with mode: 0644]
testing/051/indexpage.xml [new file with mode: 0644]
testing/051_escape.dox [new file with mode: 0644]
testing/052/indexpage.xml [new file with mode: 0644]
testing/052_tilde.dox [new file with mode: 0644]
testing/053/indexpage.xml [new file with mode: 0644]
testing/053_tilde.dox [new file with mode: 0644]
testing/Doxyfile [new file with mode: 0644]
testing/Makefile [new file with mode: 0644]
testing/README [new file with mode: 0644]
testing/example_test.cpp [new file with mode: 0644]
testing/runtests.pl [new file with mode: 0755]
testing/sample.bib [new file with mode: 0644]
testing/sample.html [new file with mode: 0644]
testing/sample.png [new file with mode: 0644]
testing/snippet_test.cpp [new file with mode: 0644]
tmake/lib/aix-g++/app.t [changed mode: 0755->0644]
tmake/lib/aix-g++/lib.t [changed mode: 0755->0644]
tmake/lib/aix-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/aix-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/aix-xlc/app.t [changed mode: 0755->0644]
tmake/lib/aix-xlc/lib.t [changed mode: 0755->0644]
tmake/lib/aix-xlc/subdirs.t [changed mode: 0755->0644]
tmake/lib/aix-xlc/tmake.conf [changed mode: 0755->0644]
tmake/lib/beos-g++/app.t [changed mode: 0755->0644]
tmake/lib/beos-g++/lib.t [changed mode: 0755->0644]
tmake/lib/beos-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/beos-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/bsdi-g++/app.t [changed mode: 0755->0644]
tmake/lib/bsdi-g++/lib.t [changed mode: 0755->0644]
tmake/lib/bsdi-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/bsdi-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/dgux-g++/app.t [changed mode: 0755->0644]
tmake/lib/dgux-g++/lib.t [changed mode: 0755->0644]
tmake/lib/dgux-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/dgux-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/freebsd-g++/app.t [changed mode: 0755->0644]
tmake/lib/freebsd-g++/lib.t [changed mode: 0755->0644]
tmake/lib/freebsd-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/freebsd-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/gnu-g++/app.t [changed mode: 0755->0644]
tmake/lib/gnu-g++/lib.t [changed mode: 0755->0644]
tmake/lib/gnu-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/gnu-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/hpux-acc/app.t [changed mode: 0755->0644]
tmake/lib/hpux-acc/lib.t [changed mode: 0755->0644]
tmake/lib/hpux-acc/subdirs.t [changed mode: 0755->0644]
tmake/lib/hpux-acc/tmake.conf [changed mode: 0755->0644]
tmake/lib/hpux-cc/app.t [changed mode: 0755->0644]
tmake/lib/hpux-cc/lib.t [changed mode: 0755->0644]
tmake/lib/hpux-cc/subdirs.t [changed mode: 0755->0644]
tmake/lib/hpux-cc/tmake.conf [changed mode: 0755->0644]
tmake/lib/hpux-g++/app.t [changed mode: 0755->0644]
tmake/lib/hpux-g++/lib.t [changed mode: 0755->0644]
tmake/lib/hpux-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/hpux-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/irix-64/app.t [changed mode: 0755->0644]
tmake/lib/irix-64/lib.t [changed mode: 0755->0644]
tmake/lib/irix-64/subdirs.t [changed mode: 0755->0644]
tmake/lib/irix-64/tmake.conf [changed mode: 0755->0644]
tmake/lib/irix-dcc/app.t [changed mode: 0755->0644]
tmake/lib/irix-dcc/lib.t [changed mode: 0755->0644]
tmake/lib/irix-dcc/subdirs.t [changed mode: 0755->0644]
tmake/lib/irix-dcc/tmake.conf [changed mode: 0755->0644]
tmake/lib/irix-g++/app.t [changed mode: 0755->0644]
tmake/lib/irix-g++/lib.t [changed mode: 0755->0644]
tmake/lib/irix-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/irix-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/irix-n32/app.t [changed mode: 0755->0644]
tmake/lib/irix-n32/lib.t [changed mode: 0755->0644]
tmake/lib/irix-n32/subdirs.t [changed mode: 0755->0644]
tmake/lib/irix-n32/tmake.conf [changed mode: 0755->0644]
tmake/lib/irix-o32/app.t [changed mode: 0755->0644]
tmake/lib/irix-o32/lib.t [changed mode: 0755->0644]
tmake/lib/irix-o32/subdirs.t [changed mode: 0755->0644]
tmake/lib/irix-o32/tmake.conf [changed mode: 0755->0644]
tmake/lib/linux-g++/app.t [changed mode: 0755->0644]
tmake/lib/linux-g++/lib.t [changed mode: 0755->0644]
tmake/lib/linux-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/linux-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/m68k-atari-mint-g++/app.t [changed mode: 0755->0644]
tmake/lib/m68k-atari-mint-g++/lib.t [changed mode: 0755->0644]
tmake/lib/m68k-atari-mint-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/m68k-atari-mint-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/macosx-c++/app.t [changed mode: 0755->0644]
tmake/lib/macosx-c++/lib.t [changed mode: 0755->0644]
tmake/lib/macosx-c++/subdirs.t [changed mode: 0755->0644]
tmake/lib/macosx-c++/tmake.conf [changed mode: 0755->0644]
tmake/lib/macosx-uni-c++/tmake.conf
tmake/lib/netbsd-g++/app.t [changed mode: 0755->0644]
tmake/lib/netbsd-g++/lib.t [changed mode: 0755->0644]
tmake/lib/netbsd-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/netbsd-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/openbsd-g++/app.t [changed mode: 0755->0644]
tmake/lib/openbsd-g++/lib.t [changed mode: 0755->0644]
tmake/lib/openbsd-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/openbsd-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/osf1-cxx/app.t [changed mode: 0755->0644]
tmake/lib/osf1-cxx/lib.t [changed mode: 0755->0644]
tmake/lib/osf1-cxx/subdirs.t [changed mode: 0755->0644]
tmake/lib/osf1-cxx/tmake.conf [changed mode: 0755->0644]
tmake/lib/osf1-g++/app.t [changed mode: 0755->0644]
tmake/lib/osf1-g++/lib.t [changed mode: 0755->0644]
tmake/lib/osf1-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/osf1-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/qnx-g++/app.t [changed mode: 0755->0644]
tmake/lib/qnx-g++/lib.t [changed mode: 0755->0644]
tmake/lib/qnx-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/qnx-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/sco-g++/app.t [changed mode: 0755->0644]
tmake/lib/sco-g++/lib.t [changed mode: 0755->0644]
tmake/lib/sco-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/sco-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/solaris-cc-gcc/app.t [changed mode: 0755->0644]
tmake/lib/solaris-cc-gcc/lib.t [changed mode: 0755->0644]
tmake/lib/solaris-cc-gcc/subdirs.t [changed mode: 0755->0644]
tmake/lib/solaris-cc-gcc/tmake.conf [changed mode: 0755->0644]
tmake/lib/solaris-cc/app.t [changed mode: 0755->0644]
tmake/lib/solaris-cc/lib.t [changed mode: 0755->0644]
tmake/lib/solaris-cc/subdirs.t [changed mode: 0755->0644]
tmake/lib/solaris-cc/tmake.conf [changed mode: 0755->0644]
tmake/lib/solaris-g++/app.t [changed mode: 0755->0644]
tmake/lib/solaris-g++/lib.t [changed mode: 0755->0644]
tmake/lib/solaris-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/solaris-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/sunos-g++/app.t [changed mode: 0755->0644]
tmake/lib/sunos-g++/lib.t [changed mode: 0755->0644]
tmake/lib/sunos-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/sunos-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/ultrix-g++/app.t [changed mode: 0755->0644]
tmake/lib/ultrix-g++/lib.t [changed mode: 0755->0644]
tmake/lib/ultrix-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/ultrix-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/unix/app.t [changed mode: 0755->0644]
tmake/lib/unix/generic.t [changed mode: 0755->0644]
tmake/lib/unix/lib.t [changed mode: 0755->0644]
tmake/lib/unix/subdirs.t [changed mode: 0755->0644]
tmake/lib/unixware-g++/app.t [changed mode: 0755->0644]
tmake/lib/unixware-g++/lib.t [changed mode: 0755->0644]
tmake/lib/unixware-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/unixware-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/unixware7-cc/app.t [changed mode: 0755->0644]
tmake/lib/unixware7-cc/lib.t [changed mode: 0755->0644]
tmake/lib/unixware7-cc/subdirs.t [changed mode: 0755->0644]
tmake/lib/unixware7-cc/tmake.conf [changed mode: 0755->0644]
tmake/lib/unixware7-g++/app.t [changed mode: 0755->0644]
tmake/lib/unixware7-g++/lib.t [changed mode: 0755->0644]
tmake/lib/unixware7-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/unixware7-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/win32-borland/app.t [changed mode: 0755->0644]
tmake/lib/win32-borland/generic.t [changed mode: 0755->0644]
tmake/lib/win32-borland/lib.t [changed mode: 0755->0644]
tmake/lib/win32-borland/subdirs.t [changed mode: 0755->0644]
tmake/lib/win32-borland/tmake.conf [changed mode: 0755->0644]
tmake/lib/win32-g++/app.t [changed mode: 0755->0644]
tmake/lib/win32-g++/generic.t [changed mode: 0755->0644]
tmake/lib/win32-g++/lib.t [changed mode: 0755->0644]
tmake/lib/win32-g++/subdirs.t [changed mode: 0755->0644]
tmake/lib/win32-g++/tmake.conf [changed mode: 0755->0644]
tmake/lib/win32-mingw/app.t [changed mode: 0755->0644]
tmake/lib/win32-mingw/generic.t [changed mode: 0755->0644]
tmake/lib/win32-mingw/lib.t [changed mode: 0755->0644]
tmake/lib/win32-mingw/subdirs.t [changed mode: 0755->0644]
tmake/lib/win32-mingw/tmake.conf [changed mode: 0755->0644]
tmake/lib/win32-msvc/app.t [changed mode: 0755->0644]
tmake/lib/win32-msvc/generic.t [changed mode: 0755->0644]
tmake/lib/win32-msvc/lib.t [changed mode: 0755->0644]
tmake/lib/win32-msvc/subdirs.t [changed mode: 0755->0644]
tmake/lib/win32-msvc/tmake.conf [changed mode: 0755->0644]
tmake/lib/win32-msvc/vcapp.t [changed mode: 0755->0644]
tmake/lib/win32-msvc/vclib.t [changed mode: 0755->0644]
tmake/lib/win32-symantec/app.t [changed mode: 0755->0644]
tmake/lib/win32-symantec/generic.t [changed mode: 0755->0644]
tmake/lib/win32-symantec/lib.t [changed mode: 0755->0644]
tmake/lib/win32-symantec/subdirs.t [changed mode: 0755->0644]
tmake/lib/win32-symantec/tmake.conf [changed mode: 0755->0644]
tmake/lib/win32-visage/app.t [changed mode: 0755->0644]
tmake/lib/win32-visage/generic.t [changed mode: 0755->0644]
tmake/lib/win32-visage/lib.t [changed mode: 0755->0644]
tmake/lib/win32-visage/subdirs.t [changed mode: 0755->0644]
tmake/lib/win32-visage/tmake.conf [changed mode: 0755->0644]
tmake/lib/win32-watcom/app.t [changed mode: 0755->0644]
tmake/lib/win32-watcom/generic.t [changed mode: 0755->0644]
tmake/lib/win32-watcom/lib.t [changed mode: 0755->0644]
tmake/lib/win32-watcom/subdirs.t [changed mode: 0755->0644]
tmake/lib/win32-watcom/tmake.conf [changed mode: 0755->0644]
tmake/lib/win32/subdirs.t [changed mode: 0755->0644]
winbuild/.gitignore [new file with mode: 0644]
winbuild/Doxygen.vcproj
winbuild/Doxywizard.vcproj
winbuild/doxyindexer.vcproj
winbuild/pack_the_distribution_for_windows.py [new file with mode: 0644]

similarity index 51%
rename from src/.gitignore
rename to .gitignore
index 3eae438..4abda47 100644 (file)
@@ -6,7 +6,6 @@
 *.rej
 *.orig
 
-Makefile
 *.pro
 /.makeconfig
 /.tmakeconfig
@@ -14,11 +13,34 @@ Makefile
 /src/libdoxycfg.t
 /src/libdoxygen.t
 /packages/rpm/doxygen.spec
+/libmd5/Makefile
 /libmd5/Makefile.libmd5
+/qtools/Makefile
 /qtools/Makefile.qtools
 /src/Makefile.doxygen
 /src/Makefile.libdoxycfg
 /src/Makefile.libdoxygen
+/addon/doxysearch/Makefile
+/addon/doxysearch/Makefile.doxyindexer
+/addon/doxysearch/Makefile.doxysearch
+/addon/doxmlparser/examples/metrics/Makefile
+/addon/doxmlparser/src/Makefile
+/addon/doxmlparser/test/Makefile
+/addon/doxyapp/Makefile
+/addon/doxywizard/Makefile
+/addon/doxywizard/Makefile.doxywizard
+/addon/doxywizard/config_lex.cpp
+/addon/doxywizard/moc
+/addon/doxywizard/obj
+/addon/doxywizard/rcc
+/winbuild/config_lex.cpp
+/winbuild/moc
+/winbuild/obj
+/winbuild/rcc
+*.idb
+*.pdb
+/examples/Makefile
+/Makefile
 
 /bin
 /lib
@@ -40,8 +62,17 @@ Makefile
 /src/pyscanner.cpp
 /src/scanner.cpp
 /src/tclscanner.cpp
+/src/unistd.h
 /src/version.cpp
 /src/vhdlcode.cpp
 /src/vhdlparser.cpp
 /src/vhdlparser.h
 /src/vhdlscanner.cpp
+/src/Makefile
+
+/doc/Makefile
+/doc/translator_report.txt
+
+/examples/*/html
+/html
+/latex
diff --git a/.travis.yml b/.travis.yml
new file mode 100644 (file)
index 0000000..1206c68
--- /dev/null
@@ -0,0 +1,11 @@
+language: cpp
+compiler:
+  - gcc
+before_install:
+    - sudo apt-get update -qq
+    - sudo apt-get install -qq  texlive texlive-extra-utils libxml2-utils perl
+script:
+    - ./configure --with-doxywizard
+    - make
+    - make docs
+    - make test
index b2f4ea7..f3b3877 100644 (file)
--- a/Doxyfile
+++ b/Doxyfile
@@ -44,7 +44,6 @@ SUBGROUPING            = YES
 INLINE_GROUPED_CLASSES = NO
 INLINE_SIMPLE_STRUCTS  = NO
 TYPEDEF_HIDES_STRUCT   = NO
-SYMBOL_CACHE_SIZE      = 0
 LOOKUP_CACHE_SIZE      = 0
 #---------------------------------------------------------------------------
 # Build related configuration options
index 606804f..fed6560 100644 (file)
@@ -82,7 +82,7 @@ pdf: docs
 DISTFILES =  Doxyfile libmd5 addon tmake doc examples bin lib objects \
              qtools src configure configure.bin Makefile.in Makefile.win_nmake.in \
              Makefile.win_make.in INSTALL LANGUAGE.HOWTO LICENSE PLATFORMS \
-             VERSION packages winbuild jquery
+             VERSION README.md packages winbuild jquery
 
 archive: clean
        tar zcvf dx`date +%y%m%d`.tgz $(DISTFILES)
@@ -140,5 +140,8 @@ rpmbinary: dist
 ctags:
        ctags -R -f tags src addon/doxywizard qtools
 
+test: FORCE
+       make -C testing
+
 FORCE:
 
index c358a1d..22a8d8c 100644 (file)
--- a/PLATFORMS
+++ b/PLATFORMS
@@ -29,3 +29,4 @@ sunos-g++
 ultrix-g++
 unixware-g++
 win32-g++
+win32-mingw
diff --git a/README b/README
deleted file mode 100644 (file)
index 2ecb0a5..0000000
--- a/README
+++ /dev/null
@@ -1,29 +0,0 @@
-DOXYGEN Version 1.8.4
-
-Please read INSTALL for compilation instructions.
-
-The latest version of doxygen can be obtained from:
-  http://www.doxygen.org/
-
-There are three mailing lists:
-  doxygen-users@lists.sourceforge.net        For doxygen users
-  doxygen-develop@lists.sourceforge.net      For doxygen developers
-  doxygen-announce@lists.sourceforge.net     Announcement of new releases only
-
-please follow the link in
-
-  http://sourceforge.net/projects/doxygen
-
-to subscribe to the lists or to visit the archives.
-
-Use the bug tracker to report bugs:
-
-  https://bugzilla.gnome.org/enter_bug.cgi?product=doxygen
-
-Before reporting a bug, please check that it has not already been reported.
-Also, please use the bug tracker for reporting bugs rather than the help
-forum.
-
-Enjoy,
-
-Dimitri van Heesch (dimitri@stack.nl) (19 May 2013)
diff --git a/README.md b/README.md
new file mode 100644 (file)
index 0000000..eb0e103
--- /dev/null
+++ b/README.md
@@ -0,0 +1,66 @@
+Doxygen
+===============
+Doxygen is the de facto standard tool for generating documentation from 
+annotated C++ sources, but it also supports other popular programming 
+languages such as C, Objective-C, C#, PHP, Java, Python, IDL 
+(Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, 
+and to some extent D.
+
+Doxygen can help you in three ways:
+
+1. It can generate an on-line documentation browser (in HTML) and/or an 
+   off-line reference manual (in LaTeX) from a set of documented source files. 
+   There is also support for generating output in RTF (MS-Word), PostScript, 
+   hyperlinked PDF, compressed HTML, DocBook and Unix man pages. 
+   The documentation is extracted directly from the sources, which makes 
+   it much easier to keep the documentation consistent with the source code.
+2. You can configure doxygen to extract the code structure from undocumented 
+   source files. This is very useful to quickly find your way in large 
+   source distributions. Doxygen can also visualize the relations between 
+   the various elements by means of include dependency graphs, inheritance 
+   diagrams, and collaboration diagrams, which are all generated automatically.
+3. You can also use doxygen for creating normal documentation (as I did for 
+   the doxygen user manual and doxygen web-site).
+
+Download
+---------
+The latest binaries and source of Doxygen can be downloaded from:
+* http://www.doxygen.org/
+
+Developers
+---------
+* Build Status: <a href="https://travis-ci.org/doxygen/doxygen"><img src="https://secure.travis-ci.org/doxygen/doxygen.png?branch=master"/></a>
+
+* Install
+  * Quick install see (./INSTALL) 
+  * else http://www.doxygen.org/manual/install.html
+
+Issues, bugs, requests, ideas
+----------------------------------
+Use the bug tracker to report bugs:
+* current list:
+    * [Bugzilla](https://bugzilla.gnome.org/buglist.cgi?product=doxygen&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED)
+* Submit a new bug or feature request 
+    * [Enter bug](https://bugzilla.gnome.org/enter_bug.cgi?product=doxygen)
+
+Comms
+----------------------------------
+### Mailing Lists ###
+
+There are three mailing lists:
+
+* doxygen-announce@lists.sourceforge.net     - Announcement of new releases only
+* doxygen-users@lists.sourceforge.net        - for doxygen users
+* doxygen-develop@lists.sourceforge.net      - for doxygen developers
+* To subscribe follow the link to
+    * http://sourceforge.net/projects/doxygen
+
+Source Code
+----------------------------------
+In May 2013, Doxygen moved from 
+subversion to git hosted at github
+* https://github.com/doxygen/doxygen
+
+Enjoy,
+
+Dimitri van Heesch (dimitri at stack.nl)
index d40f1f4..147056a 100644 (file)
@@ -15,4 +15,13 @@ bool parseConfig(
 
 void writeStringValue(QTextStream &t,QTextCodec *codec,const QString &s);
 
+// directly copied from ../../src/config.h to be consistent
+enum
+{
+ /*! Maximum length of an option in the config file. Used for
+  *  alignment purposes.
+  */
+  MAX_OPTION_LENGTH = 23
+};
+
 #endif
diff --git a/addon/doxywizard/configdoc.cpp b/addon/doxywizard/configdoc.cpp
new file mode 100644 (file)
index 0000000..c439322
--- /dev/null
@@ -0,0 +1,2241 @@
+/* WARNING: This file is generated!
+ * Do not edit this file, but edit config.xml instead and run
+ * python configgen.py -wiz config.xml to regenerate this file!
+ */
+#include "configdoc.h"
+#include "docintf.h"
+
+void addConfigDocs(DocIntf *doc)
+{
+  doc->setHeader(
+              "This file describes the settings to be used by the documentation system\n"
+              "doxygen (www.doxygen.org) for a project.\n"
+              "\n"
+              "All text after a double hash (##) is considered a comment and is placed in\n"
+              "front of the TAG it is preceding.\n"
+              "\n"
+              "All text after a single hash (#) is considered a comment and will be ignored.\n"
+              "The format is:\n"
+              "TAG = value [value, ...]\n"
+              "For lists, items can also be appended using:\n"
+              "TAG += value [value, ...]\n"
+              "Values that contain spaces should be placed between quotes (\\\" \\\")."
+             );
+  doc->add(
+              "DOXYFILE_ENCODING",
+              "This tag specifies the encoding used for all characters in the config file\n"
+              "that follow. The default is UTF-8 which is also the encoding used for all text\n"
+              "before the first occurrence of this tag. Doxygen uses libiconv (or the iconv\n"
+              "built into libc) for the transcoding. See http://www.gnu.org/software/libiconv\n"
+              "for the list of possible encodings.\n"
+              "The default value is: UTF-8."
+          );
+  doc->add(
+              "PROJECT_NAME",
+              "The PROJECT_NAME tag is a single word (or a sequence of words surrounded by\n"
+              "double-quotes, unless you are using Doxywizard) that should identify the\n"
+              "project for which the documentation is generated. This name is used in the\n"
+              "title of most generated pages and in a few other places.\n"
+              "The default value is: My Project."
+          );
+  doc->add(
+              "PROJECT_NUMBER",
+              "The PROJECT_NUMBER tag can be used to enter a project or revision number. This\n"
+              "could be handy for archiving the generated documentation or if some version\n"
+              "control system is used."
+          );
+  doc->add(
+              "PROJECT_BRIEF",
+              "Using the PROJECT_BRIEF tag one can provide an optional one line description\n"
+              "for a project that appears at the top of each page and should give viewer a\n"
+              "quick idea about the purpose of the project. Keep the description short."
+          );
+  doc->add(
+              "PROJECT_LOGO",
+              "With the PROJECT_LOGO tag one can specify an logo or icon that is included in\n"
+              "the documentation. The maximum height of the logo should not exceed 55 pixels\n"
+              "and the maximum width should not exceed 200 pixels. Doxygen will copy the logo\n"
+              "to the output directory."
+          );
+  doc->add(
+              "OUTPUT_DIRECTORY",
+              "The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path\n"
+              "into which the generated documentation will be written. If a relative path is\n"
+              "entered, it will be relative to the location where doxygen was started. If\n"
+              "left blank the current directory will be used."
+          );
+  doc->add(
+              "CREATE_SUBDIRS",
+              "If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-\n"
+              "directories (in 2 levels) under the output directory of each output format and\n"
+              "will distribute the generated files over these directories. Enabling this\n"
+              "option can be useful when feeding doxygen a huge amount of source files, where\n"
+              "putting all generated files in the same directory would otherwise causes\n"
+              "performance problems for the file system.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "OUTPUT_LANGUAGE",
+              "The OUTPUT_LANGUAGE tag is used to specify the language in which all\n"
+              "documentation generated by doxygen is written. Doxygen will use this\n"
+              "information to generate all constant output in the proper language.\n"
+              "Possible values are: Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-\n"
+              "Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto, Farsi,\n"
+              "Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en,\n"
+              "Korean, Korean-en, Latvian, Norwegian, Macedonian, Persian, Polish,\n"
+              "Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish,\n"
+              "Turkish, Ukrainian and Vietnamese.\n"
+              "The default value is: English."
+          );
+  doc->add(
+              "BRIEF_MEMBER_DESC",
+              "If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member\n"
+              "descriptions after the members that are listed in the file and class\n"
+              "documentation (similar to Javadoc). Set to NO to disable this.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "REPEAT_BRIEF",
+              "If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief\n"
+              "description of a member or function before the detailed description\n"
+              "\n"
+              "Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the\n"
+              "brief descriptions will be completely suppressed.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "ABBREVIATE_BRIEF",
+              "This tag implements a quasi-intelligent brief description abbreviator that is\n"
+              "used to form the text in various listings. Each string in this list, if found\n"
+              "as the leading text of the brief description, will be stripped from the text\n"
+              "and the result, after processing the whole list, is used as the annotated\n"
+              "text. Otherwise, the brief description is used as-is. If left blank, the\n"
+              "following values are used ($name is automatically replaced with the name of\n"
+              "the entity):The $name class, The $name widget, The $name file, is, provides,\n"
+              "specifies, contains, represents, a, an and the."
+          );
+  doc->add(
+              "ALWAYS_DETAILED_SEC",
+              "If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then\n"
+              "doxygen will generate a detailed section even if there is only a brief\n"
+              "description.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "INLINE_INHERITED_MEMB",
+              "If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all\n"
+              "inherited members of a class in the documentation of that class as if those\n"
+              "members were ordinary class members. Constructors, destructors and assignment\n"
+              "operators of the base classes will not be shown.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "FULL_PATH_NAMES",
+              "If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path\n"
+              "before files name in the file list and in the header files. If set to NO the\n"
+              "shortest path that makes the file name unique will be used\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "STRIP_FROM_PATH",
+              "The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.\n"
+              "Stripping is only done if one of the specified strings matches the left-hand\n"
+              "part of the path. The tag can be used to show relative paths in the file list.\n"
+              "If left blank the directory from which doxygen is run is used as the path to\n"
+              "strip.\n"
+              "\n"
+              "Note that you can specify absolute paths here, but also relative paths, which\n"
+              "will be relative from the directory where doxygen is started.\n"
+              "This tag requires that the tag FULL_PATH_NAMES is set to YES."
+          );
+  doc->add(
+              "STRIP_FROM_INC_PATH",
+              "The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the\n"
+              "path mentioned in the documentation of a class, which tells the reader which\n"
+              "header file to include in order to use a class. If left blank only the name of\n"
+              "the header file containing the class definition is used. Otherwise one should\n"
+              "specify the list of include paths that are normally passed to the compiler\n"
+              "using the -I flag."
+          );
+  doc->add(
+              "SHORT_NAMES",
+              "If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but\n"
+              "less readable) file names. This can be useful is your file systems doesn't\n"
+              "support long names like on DOS, Mac, or CD-ROM.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "JAVADOC_AUTOBRIEF",
+              "If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the\n"
+              "first line (until the first dot) of a Javadoc-style comment as the brief\n"
+              "description. If set to NO, the Javadoc-style will behave just like regular Qt-\n"
+              "style comments (thus requiring an explicit @brief command for a brief\n"
+              "description.)\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "QT_AUTOBRIEF",
+              "If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first\n"
+              "line (until the first dot) of a Qt-style comment as the brief description. If\n"
+              "set to NO, the Qt-style will behave just like regular Qt-style comments (thus\n"
+              "requiring an explicit \\brief command for a brief description.)\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "MULTILINE_CPP_IS_BRIEF",
+              "The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a\n"
+              "multi-line C++ special comment block (i.e. a block of //! or /// comments) as\n"
+              "a brief description. This used to be the default behavior. The new default is\n"
+              "to treat a multi-line C++ comment block as a detailed description. Set this\n"
+              "tag to YES if you prefer the old behavior instead.\n"
+              "\n"
+              "Note that setting this tag to YES also means that rational rose comments are\n"
+              "not recognized any more.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "INHERIT_DOCS",
+              "If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the\n"
+              "documentation from any documented member that it re-implements.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "SEPARATE_MEMBER_PAGES",
+              "If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a\n"
+              "new page for each member. If set to NO, the documentation of a member will be\n"
+              "part of the file/class/namespace that contains it.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "TAB_SIZE",
+              "The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen\n"
+              "uses this value to replace tabs by spaces in code fragments.\n"
+              "Minimum value: 1, maximum value: 16, default value: 4."
+          );
+  doc->add(
+              "ALIASES",
+              "This tag can be used to specify a number of aliases that act as commands in\n"
+              "the documentation. An alias has the form:\n"
+              "name=value\n"
+              "For example adding\n"
+              "\"sideeffect=@par Side Effects:\\n\"\n"
+              "will allow you to put the command \\sideeffect (or @sideeffect) in the\n"
+              "documentation, which will result in a user-defined paragraph with heading\n"
+              "\"Side Effects:\". You can put \\n's in the value part of an alias to insert\n"
+              "newlines."
+          );
+  doc->add(
+              "TCL_SUBST",
+              "This tag can be used to specify a number of word-keyword mappings (TCL only).\n"
+              "A mapping has the form \"name=value\". For example adding \"class=itcl::class\"\n"
+              "will allow you to use the command class in the itcl::class meaning."
+          );
+  doc->add(
+              "OPTIMIZE_OUTPUT_FOR_C",
+              "Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources\n"
+              "only. Doxygen will then generate output that is more tailored for C. For\n"
+              "instance, some of the names that are used will be different. The list of all\n"
+              "members will be omitted, etc.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "OPTIMIZE_OUTPUT_JAVA",
+              "Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or\n"
+              "Python sources only. Doxygen will then generate output that is more tailored\n"
+              "for that language. For instance, namespaces will be presented as packages,\n"
+              "qualified scopes will look different, etc.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "OPTIMIZE_FOR_FORTRAN",
+              "Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran\n"
+              "sources. Doxygen will then generate output that is tailored for Fortran.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "OPTIMIZE_OUTPUT_VHDL",
+              "Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL\n"
+              "sources. Doxygen will then generate output that is tailored for VHDL.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "EXTENSION_MAPPING",
+              "Doxygen selects the parser to use depending on the extension of the files it\n"
+              "parses. With this tag you can assign which parser to use for a given\n"
+              "extension. Doxygen has a built-in mapping, but you can override or extend it\n"
+              "using this tag. The format is ext=language, where ext is a file extension, and\n"
+              "language is one of the parsers supported by doxygen: IDL, Java, Javascript,\n"
+              "C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make\n"
+              "doxygen treat .inc files as Fortran files (default is PHP), and .f files as C\n"
+              "(default is Fortran), use: inc=Fortran f=C.\n"
+              "\n"
+              "Note For files without extension you can use no_extension as a placeholder.\n"
+              "\n"
+              "Note that for custom extensions you also need to set FILE_PATTERNS otherwise\n"
+              "the files are not read by doxygen."
+          );
+  doc->add(
+              "MARKDOWN_SUPPORT",
+              "If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments\n"
+              "according to the Markdown format, which allows for more readable\n"
+              "documentation. See http://daringfireball.net/projects/markdown/ for details.\n"
+              "The output of markdown processing is further processed by doxygen, so you can\n"
+              "mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in\n"
+              "case of backward compatibilities issues.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "AUTOLINK_SUPPORT",
+              "When enabled doxygen tries to link words that correspond to documented\n"
+              "classes, or namespaces to their corresponding documentation. Such a link can\n"
+              "be prevented in individual cases by by putting a % sign in front of the word\n"
+              "or globally by setting AUTOLINK_SUPPORT to NO.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "BUILTIN_STL_SUPPORT",
+              "If you use STL classes (i.e. std::string, std::vector, etc.) but do not want\n"
+              "to include (a tag file for) the STL sources as input, then you should set this\n"
+              "tag to YES in order to let doxygen match functions declarations and\n"
+              "definitions whose arguments contain STL classes (e.g. func(std::string);\n"
+              "versus func(std::string) {}). This also make the inheritance and collaboration\n"
+              "diagrams that involve STL classes more complete and accurate.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "CPP_CLI_SUPPORT",
+              "If you use Microsoft's C++/CLI language, you should set this option to YES to\n"
+              "enable parsing support.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "SIP_SUPPORT",
+              "Set the SIP_SUPPORT tag to YES if your project consists of sip (see:\n"
+              "http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen\n"
+              "will parse them like normal C++ but will assume all classes use public instead\n"
+              "of private inheritance when no explicit protection keyword is present.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "IDL_PROPERTY_SUPPORT",
+              "For Microsoft's IDL there are propget and propput attributes to indicate\n"
+              "getter and setter methods for a property. Setting this option to YES will make\n"
+              "doxygen to replace the get and set methods by a property in the documentation.\n"
+              "This will only work if the methods are indeed getting or setting a simple\n"
+              "type. If this is not the case, or you want to show the methods anyway, you\n"
+              "should set this option to NO.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "DISTRIBUTE_GROUP_DOC",
+              "If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC\n"
+              "tag is set to YES, then doxygen will reuse the documentation of the first\n"
+              "member in the group (if any) for the other members of the group. By default\n"
+              "all members of a group must be documented explicitly.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "SUBGROUPING",
+              "Set the SUBGROUPING tag to YES to allow class member groups of the same type\n"
+              "(for instance a group of public functions) to be put as a subgroup of that\n"
+              "type (e.g. under the Public Functions section). Set it to NO to prevent\n"
+              "subgrouping. Alternatively, this can be done per class using the\n"
+              "\\nosubgrouping command.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "INLINE_GROUPED_CLASSES",
+              "When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions\n"
+              "are shown inside the group in which they are included (e.g. using \\ingroup)\n"
+              "instead of on a separate page (for HTML and Man pages) or section (for LaTeX\n"
+              "and RTF).\n"
+              "\n"
+              "Note that this feature does not work in combination with\n"
+              "SEPARATE_MEMBER_PAGES.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "INLINE_SIMPLE_STRUCTS",
+              "When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions\n"
+              "with only public data fields or simple typedef fields will be shown inline in\n"
+              "the documentation of the scope in which they are defined (i.e. file,\n"
+              "namespace, or group documentation), provided this scope is documented. If set\n"
+              "to NO, structs, classes, and unions are shown on a separate page (for HTML and\n"
+              "Man pages) or section (for LaTeX and RTF).\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "TYPEDEF_HIDES_STRUCT",
+              "When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or\n"
+              "enum is documented as struct, union, or enum with the name of the typedef. So\n"
+              "typedef struct TypeS {} TypeT, will appear in the documentation as a struct\n"
+              "with name TypeT. When disabled the typedef will appear as a member of a file,\n"
+              "namespace, or class. And the struct will be named TypeS. This can typically be\n"
+              "useful for C code in case the coding convention dictates that all compound\n"
+              "types are typedef'ed and only the typedef is referenced, never the tag name.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "LOOKUP_CACHE_SIZE",
+              "The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This\n"
+              "cache is used to resolve symbols given their name and scope. Since this can be\n"
+              "an expensive process and often the same symbol appears multiple times in the\n"
+              "code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small\n"
+              "doxygen will become slower. If the cache is too large, memory is wasted. The\n"
+              "cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range\n"
+              "is 0..9, the default is 0, corresponding to a cache size of 2^16=65536\n"
+              "symbols. At the end of a run doxygen will report the cache usage and suggest\n"
+              "the optimal cache size from a speed point of view.\n"
+              "Minimum value: 0, maximum value: 9, default value: 0."
+          );
+  doc->add(
+              "EXTRACT_ALL",
+              "If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in\n"
+              "documentation are documented, even if no documentation was available. Private\n"
+              "class members and static file members will be hidden unless the\n"
+              "EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.\n"
+              "Note: This will also disable the warnings about undocumented members that are\n"
+              "normally produced when WARNINGS is set to YES.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "EXTRACT_PRIVATE",
+              "If the EXTRACT_PRIVATE tag is set to YES all private members of a class will\n"
+              "be included in the documentation.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "EXTRACT_PACKAGE",
+              "If the EXTRACT_PACKAGE tag is set to YES all members with package or internal\n"
+              "scope will be included in the documentation.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "EXTRACT_STATIC",
+              "If the EXTRACT_STATIC tag is set to YES all static members of a file will be\n"
+              "included in the documentation.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "EXTRACT_LOCAL_CLASSES",
+              "If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined\n"
+              "locally in source files will be included in the documentation. If set to NO\n"
+              "only classes defined in header files are included. Does not have any effect\n"
+              "for Java sources.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "EXTRACT_LOCAL_METHODS",
+              "This flag is only useful for Objective-C code. When set to YES local methods,\n"
+              "which are defined in the implementation section but not in the interface are\n"
+              "included in the documentation. If set to NO only methods in the interface are\n"
+              "included.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "EXTRACT_ANON_NSPACES",
+              "If this flag is set to YES, the members of anonymous namespaces will be\n"
+              "extracted and appear in the documentation as a namespace called\n"
+              "'anonymous_namespace{file}', where file will be replaced with the base name of\n"
+              "the file that contains the anonymous namespace. By default anonymous namespace\n"
+              "are hidden.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "HIDE_UNDOC_MEMBERS",
+              "If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all\n"
+              "undocumented members inside documented classes or files. If set to NO these\n"
+              "members will be included in the various overviews, but no documentation\n"
+              "section is generated. This option has no effect if EXTRACT_ALL is enabled.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "HIDE_UNDOC_CLASSES",
+              "If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all\n"
+              "undocumented classes that are normally visible in the class hierarchy. If set\n"
+              "to NO these classes will be included in the various overviews. This option has\n"
+              "no effect if EXTRACT_ALL is enabled.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "HIDE_FRIEND_COMPOUNDS",
+              "If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend\n"
+              "(class|struct|union) declarations. If set to NO these declarations will be\n"
+              "included in the documentation.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "HIDE_IN_BODY_DOCS",
+              "If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any\n"
+              "documentation blocks found inside the body of a function. If set to NO these\n"
+              "blocks will be appended to the function's detailed documentation block.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "INTERNAL_DOCS",
+              "The INTERNAL_DOCS tag determines if documentation that is typed after a\n"
+              "\\internal command is included. If the tag is set to NO then the documentation\n"
+              "will be excluded. Set it to YES to include the internal documentation.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "CASE_SENSE_NAMES",
+              "If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file\n"
+              "names in lower-case letters. If set to YES upper-case letters are also\n"
+              "allowed. This is useful if you have classes or files whose names only differ\n"
+              "in case and if your file system supports case sensitive file names. Windows\n"
+              "and Mac users are advised to set this option to NO.\n"
+              "The default value is: system dependent."
+          );
+  doc->add(
+              "HIDE_SCOPE_NAMES",
+              "If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with\n"
+              "their full class and namespace scopes in the documentation. If set to YES the\n"
+              "scope will be hidden.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "SHOW_INCLUDE_FILES",
+              "If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of\n"
+              "the files that are included by a file in the documentation of that file.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "FORCE_LOCAL_INCLUDES",
+              "If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include\n"
+              "files with double quotes in the documentation rather than with sharp brackets.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "INLINE_INFO",
+              "If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the\n"
+              "documentation for inline members.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "SORT_MEMBER_DOCS",
+              "If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the\n"
+              "(detailed) documentation of file and class members alphabetically by member\n"
+              "name. If set to NO the members will appear in declaration order.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "SORT_BRIEF_DOCS",
+              "If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief\n"
+              "descriptions of file, namespace and class members alphabetically by member\n"
+              "name. If set to NO the members will appear in declaration order.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "SORT_MEMBERS_CTORS_1ST",
+              "If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the\n"
+              "(brief and detailed) documentation of class members so that constructors and\n"
+              "destructors are listed first. If set to NO the constructors will appear in the\n"
+              "respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.\n"
+              "Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief\n"
+              "member documentation.\n"
+              "Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting\n"
+              "detailed member documentation.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "SORT_GROUP_NAMES",
+              "If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy\n"
+              "of group names into alphabetical order. If set to NO the group names will\n"
+              "appear in their defined order.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "SORT_BY_SCOPE_NAME",
+              "If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by\n"
+              "fully-qualified names, including namespaces. If set to NO, the class list will\n"
+              "be sorted only by class name, not including the namespace part.\n"
+              "Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.\n"
+              "Note: This option applies only to the class list, not to the alphabetical\n"
+              "list.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "STRICT_PROTO_MATCHING",
+              "If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper\n"
+              "type resolution of all parameters of a function it will reject a match between\n"
+              "the prototype and the implementation of a member function even if there is\n"
+              "only one candidate or it is obvious which candidate to choose by doing a\n"
+              "simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still\n"
+              "accept a match between prototype and implementation in such cases.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "GENERATE_TODOLIST",
+              "The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the\n"
+              "todo list. This list is created by putting \\todo commands in the\n"
+              "documentation.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "GENERATE_TESTLIST",
+              "The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the\n"
+              "test list. This list is created by putting \\test commands in the\n"
+              "documentation.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "GENERATE_BUGLIST",
+              "The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug\n"
+              "list. This list is created by putting \\bug commands in the documentation.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "GENERATE_DEPRECATEDLIST",
+              "The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)\n"
+              "the deprecated list. This list is created by putting \\deprecated commands in\n"
+              "the documentation.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "ENABLED_SECTIONS",
+              "The ENABLED_SECTIONS tag can be used to enable conditional documentation\n"
+              "sections, marked by \\if <section_label> ... \\endif and \\cond <section_label>\n"
+              "... \\endcond blocks."
+          );
+  doc->add(
+              "MAX_INITIALIZER_LINES",
+              "The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the\n"
+              "initial value of a variable or macro / define can have for it to appear in the\n"
+              "documentation. If the initializer consists of more lines than specified here\n"
+              "it will be hidden. Use a value of 0 to hide initializers completely. The\n"
+              "appearance of the value of individual variables and macros / defines can be\n"
+              "controlled using \\showinitializer or \\hideinitializer command in the\n"
+              "documentation regardless of this setting.\n"
+              "Minimum value: 0, maximum value: 10000, default value: 30."
+          );
+  doc->add(
+              "SHOW_USED_FILES",
+              "Set the SHOW_USED_FILES tag to NO to disable the list of files generated at\n"
+              "the bottom of the documentation of classes and structs. If set to YES the list\n"
+              "will mention the files that were used to generate the documentation.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "SHOW_FILES",
+              "Set the SHOW_FILES tag to NO to disable the generation of the Files page. This\n"
+              "will remove the Files entry from the Quick Index and from the Folder Tree View\n"
+              "(if specified).\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "SHOW_NAMESPACES",
+              "Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces\n"
+              "page. This will remove the Namespaces entry from the Quick Index and from the\n"
+              "Folder Tree View (if specified).\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "FILE_VERSION_FILTER",
+              "The FILE_VERSION_FILTER tag can be used to specify a program or script that\n"
+              "doxygen should invoke to get the current version for each file (typically from\n"
+              "the version control system). Doxygen will invoke the program by executing (via\n"
+              "popen()) the command command input-file, where command is the value of the\n"
+              "FILE_VERSION_FILTER tag, and input-file is the name of an input file provided\n"
+              "by doxygen. Whatever the program writes to standard output is used as the file\n"
+              "version. For an example see the documentation."
+          );
+  doc->add(
+              "LAYOUT_FILE",
+              "The LAYOUT_FILE tag can be used to specify a layout file which will be parsed\n"
+              "by doxygen. The layout file controls the global structure of the generated\n"
+              "output files in an output format independent way. To create the layout file\n"
+              "that represents doxygen's defaults, run doxygen with the -l option. You can\n"
+              "optionally specify a file name after the option, if omitted DoxygenLayout.xml\n"
+              "will be used as the name of the layout file.\n"
+              "\n"
+              "Note that if you run doxygen from a directory containing a file called\n"
+              "DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE\n"
+              "tag is left empty."
+          );
+  doc->add(
+              "CITE_BIB_FILES",
+              "The CITE_BIB_FILES tag can be used to specify one or more bib files containing\n"
+              "the reference definitions. This must be a list of .bib files. The .bib\n"
+              "extension is automatically appended if omitted. This requires the bibtex tool\n"
+              "to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.\n"
+              "For LaTeX the style of the bibliography can be controlled using\n"
+              "LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the\n"
+              "search path. Do not use file names with spaces, bibtex cannot handle them. See\n"
+              "also \\cite for info how to create references."
+          );
+  doc->add(
+              "QUIET",
+              "The QUIET tag can be used to turn on/off the messages that are generated to\n"
+              "standard output by doxygen. If QUIET is set to YES this implies that the\n"
+              "messages are off.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "WARNINGS",
+              "The WARNINGS tag can be used to turn on/off the warning messages that are\n"
+              "generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES\n"
+              "this implies that the warnings are on.\n"
+              "\n"
+              "Tip: Turn warnings on while writing the documentation.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "WARN_IF_UNDOCUMENTED",
+              "If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate\n"
+              "warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag\n"
+              "will automatically be disabled.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "WARN_IF_DOC_ERROR",
+              "If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for\n"
+              "potential errors in the documentation, such as not documenting some parameters\n"
+              "in a documented function, or documenting parameters that don't exist or using\n"
+              "markup commands wrongly.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "WARN_NO_PARAMDOC",
+              "This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that\n"
+              "are documented, but have no documentation for their parameters or return\n"
+              "value. If set to NO doxygen will only warn about wrong or incomplete parameter\n"
+              "documentation, but not about the absence of documentation.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "WARN_FORMAT",
+              "The WARN_FORMAT tag determines the format of the warning messages that doxygen\n"
+              "can produce. The string should contain the $file, $line, and $text tags, which\n"
+              "will be replaced by the file and line number from which the warning originated\n"
+              "and the warning text. Optionally the format may contain $version, which will\n"
+              "be replaced by the version of the file (if it could be obtained via\n"
+              "FILE_VERSION_FILTER)\n"
+              "The default value is: $file:$line: $text."
+          );
+  doc->add(
+              "WARN_LOGFILE",
+              "The WARN_LOGFILE tag can be used to specify a file to which warning and error\n"
+              "messages should be written. If left blank the output is written to standard\n"
+              "error (stderr)."
+          );
+  doc->add(
+              "INPUT",
+              "The INPUT tag is used to specify the files and/or directories that contain\n"
+              "documented source files. You may enter file names like myfile.cpp or\n"
+              "directories like /usr/src/myproject. Separate the files or directories with\n"
+              "spaces.\n"
+              "Note: If this tag is empty the current directory is searched."
+          );
+  doc->add(
+              "INPUT_ENCODING",
+              "This tag can be used to specify the character encoding of the source files\n"
+              "that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses\n"
+              "libiconv (or the iconv built into libc) for the transcoding. See the libiconv\n"
+              "documentation (see: http://www.gnu.org/software/libiconv) for the list of\n"
+              "possible encodings.\n"
+              "The default value is: UTF-8."
+          );
+  doc->add(
+              "FILE_PATTERNS",
+              "If the value of the INPUT tag contains directories, you can use the\n"
+              "FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and\n"
+              "*.h) to filter out the source-files in the directories. If left blank the\n"
+              "following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,\n"
+              "*.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,\n"
+              "*.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,\n"
+              "*.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,\n"
+              "*.qsf, *.as and *.js."
+          );
+  doc->add(
+              "RECURSIVE",
+              "The RECURSIVE tag can be used to specify whether or not subdirectories should\n"
+              "be searched for input files as well.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "EXCLUDE",
+              "The EXCLUDE tag can be used to specify files and/or directories that should be\n"
+              "excluded from the INPUT source files. This way you can easily exclude a\n"
+              "subdirectory from a directory tree whose root is specified with the INPUT tag.\n"
+              "\n"
+              "Note that relative paths are relative to the directory from which doxygen is\n"
+              "run."
+          );
+  doc->add(
+              "EXCLUDE_SYMLINKS",
+              "The EXCLUDE_SYMLINKS tag can be used to select whether or not files or\n"
+              "directories that are symbolic links (a Unix file system feature) are excluded\n"
+              "from the input.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "EXCLUDE_PATTERNS",
+              "If the value of the INPUT tag contains directories, you can use the\n"
+              "EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude\n"
+              "certain files from those directories.\n"
+              "\n"
+              "Note that the wildcards are matched against the file with absolute path, so to\n"
+              "exclude all test directories for example use the pattern */test/*"
+          );
+  doc->add(
+              "EXCLUDE_SYMBOLS",
+              "The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names\n"
+              "(namespaces, classes, functions, etc.) that should be excluded from the\n"
+              "output. The symbol name can be a fully qualified name, a word, or if the\n"
+              "wildcard * is used, a substring. Examples: ANamespace, AClass,\n"
+              "AClass::ANamespace, ANamespace::*Test\n"
+              "\n"
+              "Note that the wildcards are matched against the file with absolute path, so to\n"
+              "exclude all test directories use the pattern */test/*"
+          );
+  doc->add(
+              "EXAMPLE_PATH",
+              "The EXAMPLE_PATH tag can be used to specify one or more files or directories\n"
+              "that contain example code fragments that are included (see the \\include\n"
+              "command)."
+          );
+  doc->add(
+              "EXAMPLE_PATTERNS",
+              "If the value of the EXAMPLE_PATH tag contains directories, you can use the\n"
+              "EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and\n"
+              "*.h) to filter out the source-files in the directories. If left blank all\n"
+              "files are included."
+          );
+  doc->add(
+              "EXAMPLE_RECURSIVE",
+              "If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be\n"
+              "searched for input files to be used with the \\include or \\dontinclude commands\n"
+              "irrespective of the value of the RECURSIVE tag.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "IMAGE_PATH",
+              "The IMAGE_PATH tag can be used to specify one or more files or directories\n"
+              "that contain images that are to be included in the documentation (see the\n"
+              "\\image command)."
+          );
+  doc->add(
+              "INPUT_FILTER",
+              "The INPUT_FILTER tag can be used to specify a program that doxygen should\n"
+              "invoke to filter for each input file. Doxygen will invoke the filter program\n"
+              "by executing (via popen()) the command:\n"
+              "\n"
+              "<filter> <input-file>\n"
+              "\n"
+              "where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the\n"
+              "name of an input file. Doxygen will then use the output that the filter\n"
+              "program writes to standard output. If FILTER_PATTERNS is specified, this tag\n"
+              "will be ignored.\n"
+              "\n"
+              "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."
+          );
+  doc->add(
+              "FILTER_PATTERNS",
+              "The FILTER_PATTERNS tag can be used to specify filters on a per file pattern\n"
+              "basis. Doxygen will compare the file name with each pattern and apply the\n"
+              "filter if there is a match. The filters are a list of the form: pattern=filter\n"
+              "(like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how\n"
+              "filters are used. If the FILTER_PATTERNS tag is empty or if none of the\n"
+              "patterns match the file name, INPUT_FILTER is applied."
+          );
+  doc->add(
+              "FILTER_SOURCE_FILES",
+              "If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using\n"
+              "INPUT_FILTER ) will also be used to filter the input files that are used for\n"
+              "producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "FILTER_SOURCE_PATTERNS",
+              "The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file\n"
+              "pattern. A pattern will override the setting for FILTER_PATTERN (if any) and\n"
+              "it is also possible to disable source filtering for a specific pattern using\n"
+              "*.ext= (so without naming a filter).\n"
+              "This tag requires that the tag FILTER_SOURCE_FILES is set to YES."
+          );
+  doc->add(
+              "USE_MDFILE_AS_MAINPAGE",
+              "If the USE_MDFILE_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\n"
+              "(index.html). This can be useful if you have a project on for instance GitHub\n"
+              "and want to reuse the introduction page also for the doxygen output."
+          );
+  doc->add(
+              "SOURCE_BROWSER",
+              "If the SOURCE_BROWSER tag is set to YES then a list of source files will be\n"
+              "generated. Documented entities will be cross-referenced with these sources.\n"
+              "\n"
+              "Note: To get rid of all source code in the generated output, make sure that\n"
+              "also VERBATIM_HEADERS is set to NO.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "INLINE_SOURCES",
+              "Setting the INLINE_SOURCES tag to YES will include the body of functions,\n"
+              "classes and enums directly into the documentation.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "STRIP_CODE_COMMENTS",
+              "Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any\n"
+              "special comment blocks from generated source code fragments. Normal C, C++ and\n"
+              "Fortran comments will always remain visible.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "REFERENCED_BY_RELATION",
+              "If the REFERENCED_BY_RELATION tag is set to YES then for each documented\n"
+              "function all documented functions referencing it will be listed.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "REFERENCES_RELATION",
+              "If the REFERENCES_RELATION tag is set to YES then for each documented function\n"
+              "all documented entities called/used by that function will be listed.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "REFERENCES_LINK_SOURCE",
+              "If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set\n"
+              "to YES, then the hyperlinks from functions in REFERENCES_RELATION and\n"
+              "REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will\n"
+              "link to the documentation.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "SOURCE_TOOLTIPS",
+              "If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the\n"
+              "source code will show a tooltip with additional information such as prototype,\n"
+              "brief description and links to the definition and documentation. Since this\n"
+              "will make the HTML file larger and loading of large files a bit slower, you\n"
+              "can opt to disable this feature.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag SOURCE_BROWSER is set to YES."
+          );
+  doc->add(
+              "USE_HTAGS",
+              "If the USE_HTAGS tag is set to YES then the references to source code will\n"
+              "point to the HTML generated by the htags(1) tool instead of doxygen built-in\n"
+              "source browser. The htags tool is part of GNU's global source tagging system\n"
+              "(see http://www.gnu.org/software/global/global.html). You will need version\n"
+              "4.8.6 or higher.\n"
+              "\n"
+              "To use it do the following:\n"
+              "- Install the latest version of global\n"
+              "- Enable SOURCE_BROWSER and USE_HTAGS in the config file\n"
+              "- Make sure the INPUT points to the root of the source tree\n"
+              "- Run doxygen as normal\n"
+              "\n"
+              "Doxygen will invoke htags (and that will in turn invoke gtags), so these\n"
+              "tools must be available from the command line (i.e. in the search path).\n"
+              "\n"
+              "The result: instead of the source browser generated by doxygen, the links to\n"
+              "source code will now point to the output of htags.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag SOURCE_BROWSER is set to YES."
+          );
+  doc->add(
+              "VERBATIM_HEADERS",
+              "If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a\n"
+              "verbatim copy of the header file for each class for which an include is\n"
+              "specified. Set to NO to disable this.\n"
+              "See also: Section \\class.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "CLANG_ASSISTED_PARSING",
+              "If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the\n"
+              "clang parser (see: http://clang.llvm.org/) for more acurate parsing at the\n"
+              "cost of reduced performance. This can be particularly helpful with template\n"
+              "rich C++ code for which doxygen's built-in parser lacks the necessary type\n"
+              "information.\n"
+              "Note: The availability of this option depends on whether or not doxygen was\n"
+              "compiled with the --with-libclang option.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "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 already be set by doxygen for the files and directories\n"
+              "specified with INPUT and INCLUDE_PATH.\n"
+              "This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES."
+          );
+  doc->add(
+              "ALPHABETICAL_INDEX",
+              "If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all\n"
+              "compounds will be generated. Enable this if the project contains a lot of\n"
+              "classes, structs, unions or interfaces.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "COLS_IN_ALPHA_INDEX",
+              "The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in\n"
+              "which the alphabetical index list will be split.\n"
+              "Minimum value: 1, maximum value: 20, default value: 5.\n"
+              "This tag requires that the tag ALPHABETICAL_INDEX is set to YES."
+          );
+  doc->add(
+              "IGNORE_PREFIX",
+              "In case all classes in a project start with a common prefix, all classes will\n"
+              "be put under the same header in the alphabetical index. The IGNORE_PREFIX tag\n"
+              "can be used to specify a prefix (or a list of prefixes) that should be ignored\n"
+              "while generating the index headers.\n"
+              "This tag requires that the tag ALPHABETICAL_INDEX is set to YES."
+          );
+  doc->add(
+              "GENERATE_HTML",
+              "If the GENERATE_HTML tag is set to YES doxygen will generate HTML output\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "HTML_OUTPUT",
+              "The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a\n"
+              "relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n"
+              "it.\n"
+              "The default directory is: html.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "HTML_FILE_EXTENSION",
+              "The HTML_FILE_EXTENSION tag can be used to specify the file extension for each\n"
+              "generated HTML page (for example: .htm, .php, .asp).\n"
+              "The default value is: .html.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "HTML_HEADER",
+              "The HTML_HEADER tag can be used to specify a user-defined HTML header file for\n"
+              "each generated HTML page. If the tag is left blank doxygen will generate a\n"
+              "standard header.\n"
+              "\n"
+              "To get valid HTML the header file that includes any scripts and style sheets\n"
+              "that doxygen needs, which is dependent on the configuration options used (e.g.\n"
+              "the setting GENERATE_TREEVIEW). It is highly recommended to start with a\n"
+              "default header using\n"
+              "doxygen -w html new_header.html new_footer.html new_stylesheet.css\n"
+              "YourConfigFile\n"
+              "and then modify the file new_header.html. See also section \"Doxygen usage\"\n"
+              "for information on how to generate the default header that doxygen normally\n"
+              "uses.\n"
+              "Note: The header is subject to change so you typically have to regenerate the\n"
+              "default header when upgrading to a newer version of doxygen. For a description\n"
+              "of the possible markers and block names see the documentation.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "HTML_FOOTER",
+              "The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each\n"
+              "generated HTML page. If the tag is left blank doxygen will generate a standard\n"
+              "footer. See HTML_HEADER for more information on how to generate a default\n"
+              "footer and what special commands can be used inside the footer. See also\n"
+              "section \"Doxygen usage\" for information on how to generate the default footer\n"
+              "that doxygen normally uses.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "HTML_STYLESHEET",
+              "The HTML_STYLESHEET tag can be used to specify a user-defined cascading style\n"
+              "sheet that is used by each HTML page. It can be used to fine-tune the look of\n"
+              "the HTML output. If left blank doxygen will generate a default style sheet.\n"
+              "See also section \"Doxygen usage\" for information on how to generate the style\n"
+              "sheet that doxygen normally uses.\n"
+              "Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as\n"
+              "it is more robust and this tag (HTML_STYLESHEET) will in the future become\n"
+              "obsolete.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "HTML_EXTRA_STYLESHEET",
+              "The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user-\n"
+              "defined cascading style sheet that is included after the standard style sheets\n"
+              "created by doxygen. Using this option one can overrule certain style aspects.\n"
+              "This is preferred over using HTML_STYLESHEET since it does not replace the\n"
+              "standard style sheet and is therefor more robust against future updates.\n"
+              "Doxygen will copy the style sheet file to the output directory. For an example\n"
+              "see the documentation.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "HTML_EXTRA_FILES",
+              "The HTML_EXTRA_FILES tag can be used to specify one or more extra images or\n"
+              "other source files which should be copied to the HTML output directory. Note\n"
+              "that these files will be copied to the base HTML output directory. Use the\n"
+              "$relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these\n"
+              "files. In the HTML_STYLESHEET file, use the file name only. Also note that the\n"
+              "files will be copied as-is; there are no commands or markers available.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "HTML_COLORSTYLE_HUE",
+              "The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen\n"
+              "will adjust the colors in the stylesheet and background images according to\n"
+              "this color. Hue is specified as an angle on a colorwheel, see\n"
+              "http://en.wikipedia.org/wiki/Hue for more information. For instance the value\n"
+              "0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300\n"
+              "purple, and 360 is red again.\n"
+              "Minimum value: 0, maximum value: 359, default value: 220.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "HTML_COLORSTYLE_SAT",
+              "The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors\n"
+              "in the HTML output. For a value of 0 the output will use grayscales only. A\n"
+              "value of 255 will produce the most vivid colors.\n"
+              "Minimum value: 0, maximum value: 255, default value: 100.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "HTML_COLORSTYLE_GAMMA",
+              "The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the\n"
+              "luminance component of the colors in the HTML output. Values below 100\n"
+              "gradually make the output lighter, whereas values above 100 make the output\n"
+              "darker. The value divided by 100 is the actual gamma applied, so 80 represents\n"
+              "a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not\n"
+              "change the gamma.\n"
+              "Minimum value: 40, maximum value: 240, default value: 80.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "HTML_TIMESTAMP",
+              "If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML\n"
+              "page will contain the date and time when the page was generated. Setting this\n"
+              "to NO can help when comparing the output of multiple runs.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "HTML_DYNAMIC_SECTIONS",
+              "If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML\n"
+              "documentation will contain sections that can be hidden and shown after the\n"
+              "page has loaded.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "HTML_INDEX_NUM_ENTRIES",
+              "With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries\n"
+              "shown in the various tree structured indices initially; the user can expand\n"
+              "and collapse entries dynamically later on. Doxygen will expand the tree to\n"
+              "such a level that at most the specified number of entries are visible (unless\n"
+              "a fully collapsed tree already exceeds this amount). So setting the number of\n"
+              "entries 1 will produce a full collapsed tree by default. 0 is a special value\n"
+              "representing an infinite number of entries and will result in a full expanded\n"
+              "tree by default.\n"
+              "Minimum value: 0, maximum value: 9999, default value: 100.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "GENERATE_DOCSET",
+              "If the GENERATE_DOCSET tag is set to YES, additional index files will be\n"
+              "generated that can be used as input for Apple's Xcode 3 integrated development\n"
+              "environment (see: http://developer.apple.com/tools/xcode/), introduced with\n"
+              "OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a\n"
+              "Makefile in the HTML output directory. Running make will produce the docset in\n"
+              "that directory and running make install will install the docset in\n"
+              "~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at\n"
+              "startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html\n"
+              "for more information.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "DOCSET_FEEDNAME",
+              "This tag determines the name of the docset feed. A documentation feed provides\n"
+              "an umbrella under which multiple documentation sets from a single provider\n"
+              "(such as a company or product suite) can be grouped.\n"
+              "The default value is: Doxygen generated docs.\n"
+              "This tag requires that the tag GENERATE_DOCSET is set to YES."
+          );
+  doc->add(
+              "DOCSET_BUNDLE_ID",
+              "This tag specifies a string that should uniquely identify the documentation\n"
+              "set bundle. This should be a reverse domain-name style string, e.g.\n"
+              "com.mycompany.MyDocSet. Doxygen will append .docset to the name.\n"
+              "The default value is: org.doxygen.Project.\n"
+              "This tag requires that the tag GENERATE_DOCSET is set to YES."
+          );
+  doc->add(
+              "DOCSET_PUBLISHER_ID",
+              "The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify\n"
+              "the documentation publisher. This should be a reverse domain-name style\n"
+              "string, e.g. com.mycompany.MyDocSet.documentation.\n"
+              "The default value is: org.doxygen.Publisher.\n"
+              "This tag requires that the tag GENERATE_DOCSET is set to YES."
+          );
+  doc->add(
+              "DOCSET_PUBLISHER_NAME",
+              "The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.\n"
+              "The default value is: Publisher.\n"
+              "This tag requires that the tag GENERATE_DOCSET is set to YES."
+          );
+  doc->add(
+              "GENERATE_HTMLHELP",
+              "If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three\n"
+              "additional HTML index files: index.hhp, index.hhc, and index.hhk. The\n"
+              "index.hhp is a project file that can be read by Microsoft's HTML Help Workshop\n"
+              "(see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on\n"
+              "Windows.\n"
+              "\n"
+              "The HTML Help Workshop contains a compiler that can convert all HTML output\n"
+              "generated by doxygen into a single compiled HTML file (.chm). Compiled HTML\n"
+              "files are now used as the Windows 98 help format, and will replace the old\n"
+              "Windows help format (.hlp) on all Windows platforms in the future. Compressed\n"
+              "HTML files also contain an index, a table of contents, and you can search for\n"
+              "words in the documentation. The HTML workshop also contains a viewer for\n"
+              "compressed HTML files.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "CHM_FILE",
+              "The CHM_FILE tag can be used to specify the file name of the resulting .chm\n"
+              "file. You can add a path in front of the file if the result should not be\n"
+              "written to the html output directory.\n"
+              "This tag requires that the tag GENERATE_HTMLHELP is set to YES."
+          );
+  doc->add(
+              "HHC_LOCATION",
+              "The HHC_LOCATION tag can be used to specify the location (absolute path\n"
+              "including file name) of the HTML help compiler ( hhc.exe). If non-empty\n"
+              "doxygen will try to run the HTML help compiler on the generated index.hhp.\n"
+              "The file has to be specified with full path.\n"
+              "This tag requires that the tag GENERATE_HTMLHELP is set to YES."
+          );
+  doc->add(
+              "GENERATE_CHI",
+              "The GENERATE_CHI flag controls if a separate .chi index file is generated (\n"
+              "YES) or that it should be included in the master .chm file ( NO).\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTMLHELP is set to YES."
+          );
+  doc->add(
+              "CHM_INDEX_ENCODING",
+              "The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)\n"
+              "and project file content.\n"
+              "This tag requires that the tag GENERATE_HTMLHELP is set to YES."
+          );
+  doc->add(
+              "BINARY_TOC",
+              "The BINARY_TOC flag controls whether a binary table of contents is generated (\n"
+              "YES) or a normal table of contents ( NO) in the .chm file.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTMLHELP is set to YES."
+          );
+  doc->add(
+              "TOC_EXPAND",
+              "The TOC_EXPAND flag can be set to YES to add extra items for group members to\n"
+              "the table of contents of the HTML help documentation and to the tree view.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTMLHELP is set to YES."
+          );
+  doc->add(
+              "GENERATE_QHP",
+              "If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and\n"
+              "QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that\n"
+              "can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help\n"
+              "(.qch) of the generated HTML documentation.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "QCH_FILE",
+              "If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify\n"
+              "the file name of the resulting .qch file. The path specified is relative to\n"
+              "the HTML output folder.\n"
+              "This tag requires that the tag GENERATE_QHP is set to YES."
+          );
+  doc->add(
+              "QHP_NAMESPACE",
+              "The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help\n"
+              "Project output. For more information please see Qt Help Project / Namespace\n"
+              "(see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).\n"
+              "The default value is: org.doxygen.Project.\n"
+              "This tag requires that the tag GENERATE_QHP is set to YES."
+          );
+  doc->add(
+              "QHP_VIRTUAL_FOLDER",
+              "The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt\n"
+              "Help Project output. For more information please see Qt Help Project / Virtual\n"
+              "Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-\n"
+              "folders).\n"
+              "The default value is: doc.\n"
+              "This tag requires that the tag GENERATE_QHP is set to YES."
+          );
+  doc->add(
+              "QHP_CUST_FILTER_NAME",
+              "If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom\n"
+              "filter to add. For more information please see Qt Help Project / Custom\n"
+              "Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-\n"
+              "filters).\n"
+              "This tag requires that the tag GENERATE_QHP is set to YES."
+          );
+  doc->add(
+              "QHP_CUST_FILTER_ATTRS",
+              "The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the\n"
+              "custom filter to add. For more information please see Qt Help Project / Custom\n"
+              "Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-\n"
+              "filters).\n"
+              "This tag requires that the tag GENERATE_QHP is set to YES."
+          );
+  doc->add(
+              "QHP_SECT_FILTER_ATTRS",
+              "The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this\n"
+              "project's filter section matches. Qt Help Project / Filter Attributes (see:\n"
+              "http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).\n"
+              "This tag requires that the tag GENERATE_QHP is set to YES."
+          );
+  doc->add(
+              "QHG_LOCATION",
+              "The QHG_LOCATION tag can be used to specify the location of Qt's\n"
+              "qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the\n"
+              "generated .qhp file.\n"
+              "This tag requires that the tag GENERATE_QHP is set to YES."
+          );
+  doc->add(
+              "GENERATE_ECLIPSEHELP",
+              "If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be\n"
+              "generated, together with the HTML files, they form an Eclipse help plugin. To\n"
+              "install this plugin and make it available under the help contents menu in\n"
+              "Eclipse, the contents of the directory containing the HTML and XML files needs\n"
+              "to be copied into the plugins directory of eclipse. The name of the directory\n"
+              "within the plugins directory should be the same as the ECLIPSE_DOC_ID value.\n"
+              "After copying Eclipse needs to be restarted before the help appears.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "ECLIPSE_DOC_ID",
+              "A unique identifier for the Eclipse help plugin. When installing the plugin\n"
+              "the directory name containing the HTML and XML files should also have this\n"
+              "name. Each documentation set should have its own identifier.\n"
+              "The default value is: org.doxygen.Project.\n"
+              "This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES."
+          );
+  doc->add(
+              "DISABLE_INDEX",
+              "If you want full control over the layout of the generated HTML pages it might\n"
+              "be necessary to disable the index and replace it with your own. The\n"
+              "DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top\n"
+              "of each HTML page. A value of NO enables the index and the value YES disables\n"
+              "it. Since the tabs in the index contain the same information as the navigation\n"
+              "tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "GENERATE_TREEVIEW",
+              "The GENERATE_TREEVIEW tag is used to specify whether a tree-like index\n"
+              "structure should be generated to display hierarchical information. If the tag\n"
+              "value is set to YES, a side panel will be generated containing a tree-like\n"
+              "index structure (just like the one that is generated for HTML Help). For this\n"
+              "to work a browser that supports JavaScript, DHTML, CSS and frames is required\n"
+              "(i.e. any modern browser). Windows users are probably better off using the\n"
+              "HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can\n"
+              "further fine-tune the look of the index. As an example, the default style\n"
+              "sheet generated by doxygen has an example that shows how to put an image at\n"
+              "the root of the tree instead of the PROJECT_NAME. Since the tree basically has\n"
+              "the same information as the tab index, you could consider setting\n"
+              "DISABLE_INDEX to YES when enabling this option.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "ENUM_VALUES_PER_LINE",
+              "The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that\n"
+              "doxygen will group on one line in the generated HTML documentation.\n"
+              "\n"
+              "Note that a value of 0 will completely suppress the enum values from appearing\n"
+              "in the overview section.\n"
+              "Minimum value: 0, maximum value: 20, default value: 4.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "TREEVIEW_WIDTH",
+              "If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used\n"
+              "to set the initial width (in pixels) of the frame in which the tree is shown.\n"
+              "Minimum value: 0, maximum value: 1500, default value: 250.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "EXT_LINKS_IN_WINDOW",
+              "When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to\n"
+              "external symbols imported via tag files in a separate window.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "FORMULA_FONTSIZE",
+              "Use this tag to change the font size of LaTeX formulas included as images in\n"
+              "the HTML documentation. When you change the font size after a successful\n"
+              "doxygen run you need to manually remove any form_*.png images from the HTML\n"
+              "output directory to force them to be regenerated.\n"
+              "Minimum value: 8, maximum value: 50, default value: 10.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "FORMULA_TRANSPARENT",
+              "Use the FORMULA_TRANPARENT tag to determine whether or not the images\n"
+              "generated for formulas are transparent PNGs. Transparent PNGs are not\n"
+              "supported properly for IE 6.0, but are supported on all modern browsers.\n"
+              "\n"
+              "Note that when changing this option you need to delete any form_*.png files in\n"
+              "the HTML output directory before the changes have effect.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "USE_MATHJAX",
+              "Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see\n"
+              "http://www.mathjax.org) which uses client side Javascript for the rendering\n"
+              "instead of using prerendered bitmaps. Use this if you do not have LaTeX\n"
+              "installed or if you want to formulas look prettier in the HTML output. When\n"
+              "enabled you may also need to install MathJax separately and configure the path\n"
+              "to it using the MATHJAX_RELPATH option.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "MATHJAX_FORMAT",
+              "When MathJax is enabled you can set the default output format to be used for\n"
+              "the MathJax output. See the MathJax site (see:\n"
+              "http://docs.mathjax.org/en/latest/output.html) for more details.\n"
+              "Possible values are: HTML-CSS (which is slower, but has the best\n"
+              "compatibility), NativeMML (i.e. MathML) and SVG.\n"
+              "The default value is: HTML-CSS.\n"
+              "This tag requires that the tag USE_MATHJAX is set to YES."
+          );
+  doc->add(
+              "MATHJAX_RELPATH",
+              "When MathJax is enabled you need to specify the location relative to the HTML\n"
+              "output directory using the MATHJAX_RELPATH option. The destination directory\n"
+              "should contain the MathJax.js script. For instance, if the mathjax directory\n"
+              "is located at the same level as the HTML output directory, then\n"
+              "MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax\n"
+              "Content Delivery Network so you can quickly see the result without installing\n"
+              "MathJax. However, it is strongly recommended to install a local copy of\n"
+              "MathJax from http://www.mathjax.org before deployment.\n"
+              "The default value is: http://cdn.mathjax.org/mathjax/latest.\n"
+              "This tag requires that the tag USE_MATHJAX is set to YES."
+          );
+  doc->add(
+              "MATHJAX_EXTENSIONS",
+              "The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax\n"
+              "extension names that should be enabled during MathJax rendering. For example\n"
+              "MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols\n"
+              "This tag requires that the tag USE_MATHJAX is set to YES."
+          );
+  doc->add(
+              "MATHJAX_CODEFILE",
+              "The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces\n"
+              "of code that will be used on startup of the MathJax code. See the MathJax site\n"
+              "(see: http://docs.mathjax.org/en/latest/output.html) for more details. For an\n"
+              "example see the documentation.\n"
+              "This tag requires that the tag USE_MATHJAX is set to YES."
+          );
+  doc->add(
+              "SEARCHENGINE",
+              "When the SEARCHENGINE tag is enabled doxygen will generate a search box for\n"
+              "the HTML output. The underlying search engine uses javascript and DHTML and\n"
+              "should work on any modern browser. Note that when using HTML help\n"
+              "(GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)\n"
+              "there is already a search function so this one should typically be disabled.\n"
+              "For large projects the javascript based search engine can be slow, then\n"
+              "enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to\n"
+              "search using the keyboard; to jump to the search box use <access key> + S\n"
+              "(what the <access key> is depends on the OS and browser, but it is typically\n"
+              "<CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down\n"
+              "key> to jump into the search results window, the results can be navigated\n"
+              "using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel\n"
+              "the search. The filter options can be selected when the cursor is inside the\n"
+              "search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>\n"
+              "to select a filter and <Enter> or <escape> to activate or cancel the filter\n"
+              "option.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+          );
+  doc->add(
+              "SERVER_BASED_SEARCH",
+              "When the SERVER_BASED_SEARCH tag is enabled the search engine will be\n"
+              "implemented using a web server instead of a web client using Javascript. There\n"
+              "are two flavours of web server based searching depending on the\n"
+              "EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for\n"
+              "searching and an index file used by the script. When EXTERNAL_SEARCH is\n"
+              "enabled the indexing and searching needs to be provided by external tools. See\n"
+              "the section \"External Indexing and Searching\" for details.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag SEARCHENGINE is set to YES."
+          );
+  doc->add(
+              "EXTERNAL_SEARCH",
+              "When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP\n"
+              "script for searching. Instead the search results are written to an XML file\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 the\n"
+              "search results.\n"
+              "\n"
+              "Doxygen ships with an example indexer ( doxyindexer) and search engine\n"
+              "(doxysearch.cgi) which are based on the open source search engine library\n"
+              "Xapian (see: http://xapian.org/).\n"
+              "\n"
+              "See the section \"External Indexing and Searching\" for details.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag SEARCHENGINE is set to YES."
+          );
+  doc->add(
+              "SEARCHENGINE_URL",
+              "The SEARCHENGINE_URL should point to a search engine hosted by a web server\n"
+              "which will return the search results when EXTERNAL_SEARCH is enabled.\n"
+              "\n"
+              "Doxygen ships with an example indexer ( doxyindexer) and search engine\n"
+              "(doxysearch.cgi) which are based on the open source search engine library\n"
+              "Xapian (see: http://xapian.org/). See the section \"External Indexing and\n"
+              "Searching\" for details.\n"
+              "This tag requires that the tag SEARCHENGINE is set to YES."
+          );
+  doc->add(
+              "SEARCHDATA_FILE",
+              "When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed\n"
+              "search data is written to a file for indexing by an external tool. With the\n"
+              "SEARCHDATA_FILE tag the name of this file can be specified.\n"
+              "The default file is: searchdata.xml.\n"
+              "This tag requires that the tag SEARCHENGINE is set to YES."
+          );
+  doc->add(
+              "EXTERNAL_SEARCH_ID",
+              "When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the\n"
+              "EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is\n"
+              "useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple\n"
+              "projects and redirect the results back to the right project.\n"
+              "This tag requires that the tag SEARCHENGINE is set to YES."
+          );
+  doc->add(
+              "EXTRA_SEARCH_MAPPINGS",
+              "The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen\n"
+              "projects other than the one defined by this configuration file, but that are\n"
+              "all added to the same external search index. Each project needs to have a\n"
+              "unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of\n"
+              "to a relative location where the documentation can be found. The format is:\n"
+              "EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...\n"
+              "This tag requires that the tag SEARCHENGINE is set to YES."
+          );
+  doc->add(
+              "GENERATE_LATEX",
+              "If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "LATEX_OUTPUT",
+              "The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a\n"
+              "relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n"
+              "it.\n"
+              "The default directory is: latex.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+          );
+  doc->add(
+              "LATEX_CMD_NAME",
+              "The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be\n"
+              "invoked.\n"
+              "\n"
+              "Note that when enabling USE_PDFLATEX this option is only used for generating\n"
+              "bitmaps for formulas in the HTML output, but not in the Makefile that is\n"
+              "written to the output directory.\n"
+              "The default file is: latex.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+          );
+  doc->add(
+              "MAKEINDEX_CMD_NAME",
+              "The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate\n"
+              "index for LaTeX.\n"
+              "The default file is: makeindex.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+          );
+  doc->add(
+              "COMPACT_LATEX",
+              "If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX\n"
+              "documents. This may be useful for small projects and may help to save some\n"
+              "trees in general.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+          );
+  doc->add(
+              "PAPER_TYPE",
+              "The PAPER_TYPE tag can be used to set the paper type that is used by the\n"
+              "printer.\n"
+              "Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x\n"
+              "14 inches) and executive (7.25 x 10.5 inches).\n"
+              "The default value is: a4.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+          );
+  doc->add(
+              "EXTRA_PACKAGES",
+              "The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names\n"
+              "that should be included in the LaTeX output. To get the times font for\n"
+              "instance you can specify\n"
+              "EXTRA_PACKAGES=times\n"
+              "If left blank no extra packages will be included.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+          );
+  doc->add(
+              "LATEX_HEADER",
+              "The LATEX_HEADER tag can be used to specify a personal LaTeX header for the\n"
+              "generated LaTeX document. The header should contain everything until the first\n"
+              "chapter. If it is left blank doxygen will generate a standard header. See\n"
+              "section \"Doxygen usage\" for information on how to let doxygen write the\n"
+              "default header to a separate file.\n"
+              "\n"
+              "Note: Only use a user-defined header if you know what you are doing! The\n"
+              "following commands have a special meaning inside the header: $title,\n"
+              "$datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will\n"
+              "replace them by respectively the title of the page, the current date and time,\n"
+              "only the current date, the version number of doxygen, the project name (see\n"
+              "PROJECT_NAME), or the project number (see PROJECT_NUMBER).\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+          );
+  doc->add(
+              "LATEX_FOOTER",
+              "The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the\n"
+              "generated LaTeX document. The footer should contain everything after the last\n"
+              "chapter. If it is left blank doxygen will generate a standard footer.\n"
+              "\n"
+              "Note: Only use a user-defined footer if you know what you are doing!\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+          );
+  doc->add(
+              "LATEX_EXTRA_FILES",
+              "The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or\n"
+              "other source files which should be copied to the LATEX_OUTPUT output\n"
+              "directory. Note that the files will be copied as-is; there are no commands or\n"
+              "markers available.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+          );
+  doc->add(
+              "PDF_HYPERLINKS",
+              "If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is\n"
+              "prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will\n"
+              "contain links (just like the HTML output) instead of page references. This\n"
+              "makes the output suitable for online browsing using a PDF viewer.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+          );
+  doc->add(
+              "USE_PDFLATEX",
+              "If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate\n"
+              "the PDF file directly from the LaTeX files. Set this option to YES to get a\n"
+              "higher quality PDF documentation.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+          );
+  doc->add(
+              "LATEX_BATCHMODE",
+              "If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode\n"
+              "command to the generated LaTeX files. This will instruct LaTeX to keep running\n"
+              "if errors occur, instead of asking the user for help. This option is also used\n"
+              "when generating formulas in HTML.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+          );
+  doc->add(
+              "LATEX_HIDE_INDICES",
+              "If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the\n"
+              "index chapters (such as File Index, Compound Index, etc.) in the output.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+          );
+  doc->add(
+              "LATEX_SOURCE_CODE",
+              "If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source\n"
+              "code with syntax highlighting in the LaTeX output.\n"
+              "\n"
+              "Note that which sources are shown also depends on other settings such as\n"
+              "SOURCE_BROWSER.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+          );
+  doc->add(
+              "LATEX_BIB_STYLE",
+              "The LATEX_BIB_STYLE tag can be used to specify the style to use for the\n"
+              "bibliography, e.g. plainnat, or ieeetr. See\n"
+              "http://en.wikipedia.org/wiki/BibTeX and \\cite for more info.\n"
+              "The default value is: plain.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+          );
+  doc->add(
+              "GENERATE_RTF",
+              "If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The\n"
+              "RTF output is optimized for Word 97 and may not look too pretty with other RTF\n"
+              "readers/editors.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "RTF_OUTPUT",
+              "The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a\n"
+              "relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n"
+              "it.\n"
+              "The default directory is: rtf.\n"
+              "This tag requires that the tag GENERATE_RTF is set to YES."
+          );
+  doc->add(
+              "COMPACT_RTF",
+              "If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF\n"
+              "documents. This may be useful for small projects and may help to save some\n"
+              "trees in general.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_RTF is set to YES."
+          );
+  doc->add(
+              "RTF_HYPERLINKS",
+              "If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will\n"
+              "contain hyperlink fields. The RTF file will contain links (just like the HTML\n"
+              "output) instead of page references. This makes the output suitable for online\n"
+              "browsing using Word or some other Word compatible readers that support those\n"
+              "fields.\n"
+              "\n"
+              "Note: WordPad (write) and others do not support links.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_RTF is set to YES."
+          );
+  doc->add(
+              "RTF_STYLESHEET_FILE",
+              "Load stylesheet definitions from file. Syntax is similar to doxygen's config\n"
+              "file, i.e. a series of assignments. You only have to provide replacements,\n"
+              "missing definitions are set to their default value.\n"
+              "\n"
+              "See also section \"Doxygen usage\" for information on how to generate the\n"
+              "default style sheet that doxygen normally uses.\n"
+              "This tag requires that the tag GENERATE_RTF is set to YES."
+          );
+  doc->add(
+              "RTF_EXTENSIONS_FILE",
+              "Set optional variables used in the generation of an RTF document. Syntax is\n"
+              "similar to doxygen's config file. A template extensions file can be generated\n"
+              "using doxygen -e rtf extensionFile.\n"
+              "This tag requires that the tag GENERATE_RTF is set to YES."
+          );
+  doc->add(
+              "GENERATE_MAN",
+              "If the GENERATE_MAN tag is set to YES doxygen will generate man pages for\n"
+              "classes and files.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "MAN_OUTPUT",
+              "The MAN_OUTPUT tag is used to specify where the man pages will be put. If a\n"
+              "relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n"
+              "it. A directory man3 will be created inside the directory specified by\n"
+              "MAN_OUTPUT.\n"
+              "The default directory is: man.\n"
+              "This tag requires that the tag GENERATE_MAN is set to YES."
+          );
+  doc->add(
+              "MAN_EXTENSION",
+              "The MAN_EXTENSION tag determines the extension that is added to the generated\n"
+              "man pages. In case the manual section does not start with a number, the number\n"
+              "3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is\n"
+              "optional.\n"
+              "The default value is: .3.\n"
+              "This tag requires that the tag GENERATE_MAN is set to YES."
+          );
+  doc->add(
+              "MAN_LINKS",
+              "If the MAN_LINKS tag is set to YES and doxygen generates man output, then it\n"
+              "will generate one additional man file for each entity documented in the real\n"
+              "man page(s). These additional files only source the real man page, but without\n"
+              "them the man command would be unable to find the correct page.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_MAN is set to YES."
+          );
+  doc->add(
+              "GENERATE_XML",
+              "If the GENERATE_XML tag is set to YES doxygen will generate an XML file that\n"
+              "captures the structure of the code including all documentation.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "XML_OUTPUT",
+              "The XML_OUTPUT tag is used to specify where the XML pages will be put. If a\n"
+              "relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n"
+              "it.\n"
+              "The default directory is: xml.\n"
+              "This tag requires that the tag GENERATE_XML is set to YES."
+          );
+  doc->add(
+              "XML_SCHEMA",
+              "The XML_SCHEMA tag can be used to specify a XML schema, which can be used by a\n"
+              "validating XML parser to check the syntax of the XML files.\n"
+              "This tag requires that the tag GENERATE_XML is set to YES."
+          );
+  doc->add(
+              "XML_DTD",
+              "The XML_DTD tag can be used to specify a XML DTD, which can be used by a\n"
+              "validating XML parser to check the syntax of the XML files.\n"
+              "This tag requires that the tag GENERATE_XML is set to YES."
+          );
+  doc->add(
+              "XML_PROGRAMLISTING",
+              "If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program\n"
+              "listings (including syntax highlighting and cross-referencing information) to\n"
+              "the XML output. Note that enabling this will significantly increase the size\n"
+              "of the XML output.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag GENERATE_XML is set to YES."
+          );
+  doc->add(
+              "GENERATE_DOCBOOK",
+              "If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files\n"
+              "that can be used to generate PDF.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "DOCBOOK_OUTPUT",
+              "The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.\n"
+              "If a relative path is entered the value of OUTPUT_DIRECTORY will be put in\n"
+              "front of it.\n"
+              "The default directory is: docbook.\n"
+              "This tag requires that the tag GENERATE_DOCBOOK is set to YES."
+          );
+  doc->add(
+              "GENERATE_AUTOGEN_DEF",
+              "If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen\n"
+              "Definitions (see http://autogen.sf.net) file that captures the structure of\n"
+              "the code including all documentation. Note that this feature is still\n"
+              "experimental and incomplete at the moment.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "GENERATE_PERLMOD",
+              "If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module\n"
+              "file that captures the structure of the code including all documentation.\n"
+              "\n"
+              "Note that this feature is still experimental and incomplete at the moment.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "PERLMOD_LATEX",
+              "If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary\n"
+              "Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI\n"
+              "output from the Perl module output.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_PERLMOD is set to YES."
+          );
+  doc->add(
+              "PERLMOD_PRETTY",
+              "If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely\n"
+              "formatted so it can be parsed by a human reader. This is useful if you want to\n"
+              "understand what is going on. On the other hand, if this tag is set to NO the\n"
+              "size of the Perl module output will be much smaller and Perl will parse it\n"
+              "just the same.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag GENERATE_PERLMOD is set to YES."
+          );
+  doc->add(
+              "PERLMOD_MAKEVAR_PREFIX",
+              "The names of the make variables in the generated doxyrules.make file are\n"
+              "prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful\n"
+              "so different doxyrules.make files included by the same Makefile don't\n"
+              "overwrite each other's variables.\n"
+              "This tag requires that the tag GENERATE_PERLMOD is set to YES."
+          );
+  doc->add(
+              "ENABLE_PREPROCESSING",
+              "If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all\n"
+              "C-preprocessor directives found in the sources and include files.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "MACRO_EXPANSION",
+              "If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names\n"
+              "in the source code. If set to NO only conditional compilation will be\n"
+              "performed. Macro expansion can be done in a controlled way by setting\n"
+              "EXPAND_ONLY_PREDEF to YES.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+          );
+  doc->add(
+              "EXPAND_ONLY_PREDEF",
+              "If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then\n"
+              "the macro expansion is limited to the macros specified with the PREDEFINED and\n"
+              "EXPAND_AS_DEFINED tags.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+          );
+  doc->add(
+              "SEARCH_INCLUDES",
+              "If the SEARCH_INCLUDES tag is set to YES the includes files in the\n"
+              "INCLUDE_PATH will be searched if a #include is found.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+          );
+  doc->add(
+              "INCLUDE_PATH",
+              "The INCLUDE_PATH tag can be used to specify one or more directories that\n"
+              "contain include files that are not input files but should be processed by the\n"
+              "preprocessor.\n"
+              "This tag requires that the tag SEARCH_INCLUDES is set to YES."
+          );
+  doc->add(
+              "INCLUDE_FILE_PATTERNS",
+              "You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard\n"
+              "patterns (like *.h and *.hpp) to filter out the header-files in the\n"
+              "directories. If left blank, the patterns specified with FILE_PATTERNS will be\n"
+              "used.\n"
+              "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+          );
+  doc->add(
+              "PREDEFINED",
+              "The PREDEFINED tag can be used to specify one or more macro names that are\n"
+              "defined before the preprocessor is started (similar to the -D option of e.g.\n"
+              "gcc). The argument of the tag is a list of macros of the form: name or\n"
+              "name=definition (no spaces). If the definition and the \"=\" are omitted, \"=1\"\n"
+              "is assumed. To prevent a macro definition from being undefined via #undef or\n"
+              "recursively expanded use the := operator instead of the = operator.\n"
+              "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+          );
+  doc->add(
+              "EXPAND_AS_DEFINED",
+              "If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this\n"
+              "tag can be used to specify a list of macro names that should be expanded. The\n"
+              "macro definition that is found in the sources will be used. Use the PREDEFINED\n"
+              "tag if you want to use a different macro definition that overrules the\n"
+              "definition found in the source code.\n"
+              "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+          );
+  doc->add(
+              "SKIP_FUNCTION_MACROS",
+              "If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will\n"
+              "remove all refrences to function-like macros that are alone on a line, have an\n"
+              "all uppercase name, and do not end with a semicolon. Such function macros are\n"
+              "typically used for boiler-plate code, and will confuse the parser if not\n"
+              "removed.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+          );
+  doc->add(
+              "TAGFILES",
+              "The TAGFILES tag can be used to specify one or more tag files. For each tag\n"
+              "file the location of the external documentation should be added. The format of\n"
+              "a tag file without this location is as follows:\n"
+              "TAGFILES = file1 file2 ...\n"
+              "Adding location for the tag files is done as follows:\n"
+              "TAGFILES = file1=loc1 \"file2 = loc2\" ...\n"
+              "where loc1 and loc2 can be relative or absolute paths or URLs. See the\n"
+              "section \"Linking to external documentation\" for more information about the use\n"
+              "of tag files.\n"
+              "Note: Each tag file must have an unique name (where the name does NOT include\n"
+              "the path). If a tag file is not located in the directory in which doxygen is\n"
+              "run, you must also specify the path to the tagfile here."
+          );
+  doc->add(
+              "GENERATE_TAGFILE",
+              "When a file name is specified after GENERATE_TAGFILE, doxygen will create a\n"
+              "tag file that is based on the input files it reads. See section \"Linking to\n"
+              "external documentation\" for more information about the usage of tag files."
+          );
+  doc->add(
+              "ALLEXTERNALS",
+              "If the ALLEXTERNALS tag is set to YES all external class will be listed in the\n"
+              "class index. If set to NO only the inherited external classes will be listed.\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "EXTERNAL_GROUPS",
+              "If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in\n"
+              "the modules index. If set to NO, only the current project's groups will be\n"
+              "listed.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "EXTERNAL_PAGES",
+              "If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in\n"
+              "the related pages index. If set to NO, only the current project's pages will\n"
+              "be listed.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "PERL_PATH",
+              "The PERL_PATH should be the absolute path and name of the perl script\n"
+              "interpreter (i.e. the result of 'which perl').\n"
+              "The default file (with absolute path) is: /usr/bin/perl."
+          );
+  doc->add(
+              "CLASS_DIAGRAMS",
+              "If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram\n"
+              "(in HTML and LaTeX) for classes with base or super classes. Setting the tag to\n"
+              "NO turns the diagrams off. Note that this option also works with HAVE_DOT\n"
+              "disabled, but it is recommended to install and use dot, since it yields more\n"
+              "powerful graphs.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "MSCGEN_PATH",
+              "You can define message sequence charts within doxygen comments using the \\msc\n"
+              "command. Doxygen will then run the mscgen tool (see:\n"
+              "http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the\n"
+              "documentation. The MSCGEN_PATH tag allows you to specify the directory where\n"
+              "the mscgen tool resides. If left empty the tool is assumed to be found in the\n"
+              "default search path."
+          );
+  doc->add(
+              "HIDE_UNDOC_RELATIONS",
+              "If set to YES, the inheritance and collaboration graphs will hide inheritance\n"
+              "and usage relations if the target is undocumented or is not a class.\n"
+              "The default value is: YES."
+          );
+  doc->add(
+              "HAVE_DOT",
+              "If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is\n"
+              "available from the path. This tool is part of Graphviz (see:\n"
+              "http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent\n"
+              "Bell Labs. The other options in this section have no effect if this option is\n"
+              "set to NO\n"
+              "The default value is: NO."
+          );
+  doc->add(
+              "DOT_NUM_THREADS",
+              "The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed\n"
+              "to run in parallel. When set to 0 doxygen will base this on the number of\n"
+              "processors available in the system. You can set it explicitly to a value\n"
+              "larger than 0 to get control over the balance between CPU load and processing\n"
+              "speed.\n"
+              "Minimum value: 0, maximum value: 32, default value: 0.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "DOT_FONTNAME",
+              "When you want a differently looking font n the dot files that doxygen\n"
+              "generates you can specify the font name using DOT_FONTNAME. You need to make\n"
+              "sure dot is able to find the font, which can be done by putting it in a\n"
+              "standard location or by setting the DOTFONTPATH environment variable or by\n"
+              "setting DOT_FONTPATH to the directory containing the font.\n"
+              "The default value is: Helvetica.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "DOT_FONTSIZE",
+              "The DOT_FONTSIZE tag can be used to set the size (in points) of the font of\n"
+              "dot graphs.\n"
+              "Minimum value: 4, maximum value: 24, default value: 10.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "DOT_FONTPATH",
+              "By default doxygen will tell dot to use the default font as specified with\n"
+              "DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set\n"
+              "the path where dot can find it using this tag.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "CLASS_GRAPH",
+              "If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for\n"
+              "each documented class showing the direct and indirect inheritance relations.\n"
+              "Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "COLLABORATION_GRAPH",
+              "If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a\n"
+              "graph for each documented class showing the direct and indirect implementation\n"
+              "dependencies (inheritance, containment, and class references variables) of the\n"
+              "class with other documented classes.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "GROUP_GRAPHS",
+              "If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for\n"
+              "groups, showing the direct groups dependencies.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "UML_LOOK",
+              "If the UML_LOOK tag is set to YES doxygen will generate inheritance and\n"
+              "collaboration diagrams in a style similar to the OMG's Unified Modeling\n"
+              "Language.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "UML_LIMIT_NUM_FIELDS",
+              "If the UML_LOOK tag is enabled, the fields and methods are shown inside the\n"
+              "class node. If there are many fields or methods and many nodes the graph may\n"
+              "become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the\n"
+              "number of items for each type to make the size more manageable. Set this to 0\n"
+              "for no limit. Note that the threshold may be exceeded by 50% before the limit\n"
+              "is enforced. So when you set the threshold to 10, up to 15 fields may appear,\n"
+              "but if the number exceeds 15, the total amount of fields shown is limited to\n"
+              "10.\n"
+              "Minimum value: 0, maximum value: 100, default value: 10.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "TEMPLATE_RELATIONS",
+              "If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and\n"
+              "collaboration graphs will show the relations between templates and their\n"
+              "instances.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "INCLUDE_GRAPH",
+              "If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to\n"
+              "YES then doxygen will generate a graph for each documented file showing the\n"
+              "direct and indirect include dependencies of the file with other documented\n"
+              "files.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "INCLUDED_BY_GRAPH",
+              "If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are\n"
+              "set to YES then doxygen will generate a graph for each documented file showing\n"
+              "the direct and indirect include dependencies of the file with other documented\n"
+              "files.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "CALL_GRAPH",
+              "If the CALL_GRAPH tag is set to YES then doxygen will generate a call\n"
+              "dependency graph for every global function or class method.\n"
+              "\n"
+              "Note that enabling this option will significantly increase the time of a run.\n"
+              "So in most cases it will be better to enable call graphs for selected\n"
+              "functions only using the \\callgraph command.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "CALLER_GRAPH",
+              "If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller\n"
+              "dependency graph for every global function or class method.\n"
+              "\n"
+              "Note that enabling this option will significantly increase the time of a run.\n"
+              "So in most cases it will be better to enable caller graphs for selected\n"
+              "functions only using the \\callergraph command.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "GRAPHICAL_HIERARCHY",
+              "If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical\n"
+              "hierarchy of all classes instead of a textual one.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "DIRECTORY_GRAPH",
+              "If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the\n"
+              "dependencies a directory has on other directories in a graphical way. The\n"
+              "dependency relations are determined by the #include relations between the\n"
+              "files in the directories.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "DOT_IMAGE_FORMAT",
+              "The DOT_IMAGE_FORMAT tag can be used to set the image format of the images\n"
+              "generated by dot.\n"
+              "Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order\n"
+              "to make the SVG files visible in IE 9+ (other browsers do not have this\n"
+              "requirement).\n"
+              "Possible values are: png, jpg, gif and svg.\n"
+              "The default value is: png.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "INTERACTIVE_SVG",
+              "If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to\n"
+              "enable generation of interactive SVG images that allow zooming and panning.\n"
+              "\n"
+              "Note that this requires a modern browser other than Internet Explorer. Tested\n"
+              "and working are Firefox, Chrome, Safari, and Opera.\n"
+              "Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make\n"
+              "the SVG files visible. Older versions of IE do not have SVG support.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "DOT_PATH",
+              "The DOT_PATH tag can be used to specify the path where the dot tool can be\n"
+              "found. If left blank, it is assumed the dot tool can be found in the path.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "DOTFILE_DIRS",
+              "The DOTFILE_DIRS tag can be used to specify one or more directories that\n"
+              "contain dot files that are included in the documentation (see the \\dotfile\n"
+              "command).\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "MSCFILE_DIRS",
+              "The MSCFILE_DIRS tag can be used to specify one or more directories that\n"
+              "contain msc files that are included in the documentation (see the \\mscfile\n"
+              "command)."
+          );
+  doc->add(
+              "DOT_GRAPH_MAX_NODES",
+              "The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes\n"
+              "that will be shown in the graph. If the number of nodes in a graph becomes\n"
+              "larger than this value, doxygen will truncate the graph, which is visualized\n"
+              "by representing a node as a red box. Note that doxygen if the number of direct\n"
+              "children of the root node in a graph is already larger than\n"
+              "DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that\n"
+              "the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.\n"
+              "Minimum value: 0, maximum value: 10000, default value: 50.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "MAX_DOT_GRAPH_DEPTH",
+              "The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs\n"
+              "generated by dot. A depth value of 3 means that only nodes reachable from the\n"
+              "root by following a path via at most 3 edges will be shown. Nodes that lay\n"
+              "further from the root node will be omitted. Note that setting this option to 1\n"
+              "or 2 may greatly reduce the computation time needed for large code bases. Also\n"
+              "note that the size of a graph can be further restricted by\n"
+              "DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.\n"
+              "Minimum value: 0, maximum value: 1000, default value: 0.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "DOT_TRANSPARENT",
+              "Set the DOT_TRANSPARENT tag to YES to generate images with a transparent\n"
+              "background. This is disabled by default, because dot on Windows does not seem\n"
+              "to support this out of the box.\n"
+              "\n"
+              "Warning: Depending on the platform used, enabling this option may lead to\n"
+              "badly anti-aliased labels on the edges of a graph (i.e. they become hard to\n"
+              "read).\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "DOT_MULTI_TARGETS",
+              "Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output\n"
+              "files in one run (i.e. multiple -o and -T options on the command line). This\n"
+              "makes dot run faster, but since only newer versions of dot (>1.8.10) support\n"
+              "this, this feature is disabled by default.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "GENERATE_LEGEND",
+              "If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page\n"
+              "explaining the meaning of the various boxes and arrows in the dot generated\n"
+              "graphs.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+  doc->add(
+              "DOT_CLEANUP",
+              "If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot\n"
+              "files that are used to generate the various graphs.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+          );
+}
diff --git a/addon/doxywizard/configdoc.h b/addon/doxywizard/configdoc.h
new file mode 100644 (file)
index 0000000..97ed6c3
--- /dev/null
@@ -0,0 +1,8 @@
+#ifndef CONFIGDOC_H
+#define CONFIGDOC_H
+
+class DocIntf;
+
+void addConfigDocs(DocIntf *doc);
+
+#endif
diff --git a/addon/doxywizard/docintf.h b/addon/doxywizard/docintf.h
new file mode 100644 (file)
index 0000000..6c0ff26
--- /dev/null
@@ -0,0 +1,12 @@
+#ifndef DOCINTF_H
+#define DOCINTF_H
+
+class DocIntf
+{
+  public:
+    virtual ~DocIntf() {}
+    virtual void setHeader(const char *header) = 0;
+    virtual void add(const char *name,const char *docs) = 0;
+};
+
+#endif
index 9bdf39d..11bd8f2 100644 (file)
@@ -483,7 +483,7 @@ void MainWindow::readStdout()
   if (m_running)
   {
     QByteArray data = m_runProcess->readAllStandardOutput();
-    QString text = QString::fromLocal8Bit(data);
+    QString text = QString::fromUtf8(data);
     if (!text.isEmpty())
     {
       m_outputLog->append(text.trimmed());
@@ -525,7 +525,7 @@ void MainWindow::showHtmlOutput()
   // TODO: the following doesn't seem to work with IE
 #ifdef WIN32
   //QString indexUrl(QString::fromAscii("file:///"));
-  ShellExecute(NULL, L"open", fi.absoluteFilePath().utf16(), NULL, NULL, SW_SHOWNORMAL);
+  ShellExecute(NULL, L"open", (LPCWSTR)fi.absoluteFilePath().utf16(), NULL, NULL, SW_SHOWNORMAL);
 #else
   QString indexUrl(QString::fromAscii("file://"));
   indexUrl+=fi.absoluteFilePath();
index 86bd38a..4ec2b0e 100644 (file)
@@ -20,9 +20,15 @@ macx-g++ {
 
 # Input
 HEADERS     += doxywizard.h version.h expert.h config.h helplabel.h \
-               inputbool.h inputstring.h inputint.h inputstrlist.h wizard.h
+               inputbool.h inputstring.h inputint.h inputstrlist.h wizard.h docintf.h
 SOURCES     += doxywizard.cpp ../../src/version.cpp expert.cpp wizard.cpp \
-               inputbool.cpp inputstring.cpp inputint.cpp inputstrlist.cpp
+               inputbool.cpp inputstring.cpp inputint.cpp inputstrlist.cpp 
 LEXSOURCES  += config.l
 RESOURCES   += doxywizard.qrc
 win32:RC_FILE += doxywizard.rc
+
+configdoc.target = configdoc.cpp
+configdoc.commands = python ../../src/configgen.py -wiz ../../src/config.xml > configdoc.cpp
+configdoc.depends = ../../src/config.xml ../../src/configgen.py
+QMAKE_EXTRA_TARGETS += configdoc
+GENERATED_SOURCES += $$configdoc.target
index e7b7507..efc5b00 100644 (file)
@@ -1,16 +1,16 @@
+#include <QtGui>
+#include <QtXml>
 #include "expert.h"
 #include "inputbool.h"
 #include "inputstring.h"
 #include "inputint.h"
 #include "inputstring.h"
 #include "inputstrlist.h"
-#include <QtGui>
-#include <QtXml>
 #include "config.h"
 #include "version.h"
+#include "configdoc.h"
 #include "../../src/settings.h"
 
-#undef  SA
 #define SA(x) QString::fromAscii(x)
 
 static QString convertToComment(const QString &s)
@@ -27,6 +27,20 @@ static QString convertToComment(const QString &s)
   }
 }
 
+void Expert::setHeader(const char *header)
+{
+  m_header = SA(header);
+}
+
+void Expert::add(const char *name,const char *docs)
+{
+  Input *opt = m_options[SA(name)];
+  if (opt)
+  {
+    opt->setTemplateDocs(SA(docs));
+  }
+}
+
 //------------------------------------------------------------------------------------
 
 Expert::Expert()
@@ -53,8 +67,9 @@ Expert::Expert()
   m_rootElement = configXml.documentElement();
 
   createTopics(m_rootElement);
-  m_helper = new QTextEdit;
+  m_helper = new QTextBrowser;
   m_helper->setReadOnly(true);
+  m_helper->setOpenExternalLinks(TRUE);
   m_splitter = new QSplitter(Qt::Vertical);
   m_splitter->addWidget(m_treeWidget);
   m_splitter->addWidget(m_helper);
@@ -75,6 +90,8 @@ Expert::Expert()
   connect(m_next,SIGNAL(clicked()),SLOT(nextTopic()));
 
   connect(m_prev,SIGNAL(clicked()),SLOT(prevTopic()));
+
+  addConfigDocs(this);
 }
 
 Expert::~Expert()
@@ -95,7 +112,8 @@ void Expert::createTopics(const QDomElement &rootElem)
   {
     if (childElem.tagName()==SA("group"))
     {
-      QString name = childElem.attribute(SA("name"));
+      // Remove _ from a group name like: Source_Browser
+      QString name = childElem.attribute(SA("name")).replace(SA("_"),SA(" "));
       items.append(new QTreeWidgetItem((QTreeWidget*)0,QStringList(name)));
       QWidget *widget = createTopicWidget(childElem);
       m_topics[name] = widget;
@@ -111,6 +129,311 @@ void Expert::createTopics(const QDomElement &rootElem)
           SLOT(activateTopic(QTreeWidgetItem *,QTreeWidgetItem *)));
 }
 
+static QString getDocsForNode(const QDomElement &child)
+{
+  QString type = child.attribute(SA("type"));
+  QString docs = SA("");
+  // read documentation text
+  QDomElement docsVal = child.firstChildElement();
+  while (!docsVal.isNull())
+  {
+    if (docsVal.tagName()==SA("docs") &&
+        docsVal.attribute(SA("doxywizard")) != SA("0"))
+    {
+      for (QDomNode n = docsVal.firstChild(); !n.isNull(); n = n.nextSibling())
+      {
+        QDomText t = n.toText();
+        if (!t.isNull()) docs+=t.data();
+      }
+      docs += SA("<br/>");
+    }
+    docsVal = docsVal.nextSiblingElement();
+  }
+
+  // for an enum we list the values
+  if (type==SA("enum"))
+  {
+    docs += SA("<br/>");
+    docs += SA("Possible values are: ");
+    int numValues=0;
+    docsVal = child.firstChildElement();
+    while (!docsVal.isNull())
+    {
+      if (docsVal.tagName()==SA("value"))
+      {
+        numValues++;
+      }
+      docsVal = docsVal.nextSiblingElement();
+    }
+    int i=0;
+    docsVal = child.firstChildElement();
+    while (!docsVal.isNull())
+    {
+      if (docsVal.tagName()==SA("value"))
+      {
+        i++;
+        docs += SA("<code>") + docsVal.attribute(SA("name")) + SA("</code>");
+        QString desc = docsVal.attribute(SA("desc"));
+        if (!desc.isEmpty())
+        {
+          docs+= SA(" ")+desc;
+        }
+        if (i==numValues-1)
+        {
+          docs+=SA(" and ");
+        }
+        else if (i==numValues)
+        {
+          docs+=SA(".");
+        }
+        else
+        {
+          docs+=SA(", ");
+        }
+      }
+      docsVal = docsVal.nextSiblingElement();
+    }
+    docs+=SA("<br/>");
+    docs+=SA("<br/>");
+    docs+=SA(" The default value is: <code>")+
+          child.attribute(SA("defval"))+
+          SA("</code>.");
+    docs+= SA("<br/>");
+  }
+  else if (type==SA("int"))
+  {
+    docs+=SA("<br/>");
+    docs+=SA("Minimum value: ")+child.attribute(SA("minval"))+SA(", ");
+    docs+=SA("maximum value: ")+child.attribute(SA("maxval"))+SA(", ");
+    docs+=SA("default value: ")+child.attribute(SA("defval"))+SA(".");
+    docs+= SA("<br/>");
+  }
+  else if (type==SA("bool"))
+  {
+    docs+=SA("<br/>");
+    if (child.hasAttribute(SA("altdefval")))
+    {
+      docs+=SA(" The default value is: system dependent.");
+    }
+    else
+    {
+      QString defval = child.attribute(SA("defval"));
+      docs+=SA(" The default value is: <code>")+
+            (defval==SA("1")?SA("YES"):SA("NO"))+
+            SA("</code>.");
+    }
+    docs+= SA("<br/>");
+  }
+  else if (type==SA("list"))
+  {
+    if (child.attribute(SA("format"))==SA("string"))
+    {
+      int numValues = 0;
+      docsVal = child.firstChildElement();
+      while (!docsVal.isNull())
+      {
+        if (docsVal.tagName()==SA("value"))
+        {
+          QString showDocu = SA("");
+          if (docsVal.hasAttribute(SA("show_docu")))
+          {
+            showDocu = docsVal.attribute(SA("show_docu")).toLower();
+          }
+          if ((showDocu != SA("no")) && (docsVal.attribute(SA("name"))!=SA(""))) numValues++;
+        }
+        docsVal = docsVal.nextSiblingElement();
+      }
+      if (numValues>0)
+      {
+        int i = 0;
+        docsVal = child.firstChildElement();
+        while (!docsVal.isNull())
+        {
+          if (docsVal.tagName()==SA("value"))
+          {
+            QString showDocu = SA("");
+            if (docsVal.hasAttribute(SA("show_docu")))
+            {
+              showDocu = docsVal.attribute(SA("show_docu")).toLower();
+            }
+            if ((showDocu != SA("no")) && (docsVal.attribute(SA("name"))!=SA("")))
+            {
+              i++;
+              docs += SA("<code>") + docsVal.attribute(SA("name")) + SA("</code>");
+              QString desc = docsVal.attribute(SA("desc"));
+              if (desc != SA(""))
+              {
+                docs += SA(" ") + desc;
+              }
+              if (i==numValues-1)
+              {
+                docs += SA(" and ");
+              }
+              else if (i==numValues)
+              {
+                docs += SA(".");
+              }
+              else
+              {
+                docs += SA(", ");
+              }
+            }
+          }
+          docsVal = docsVal.nextSiblingElement();
+        }
+      }
+      // docs+= SA("<br/>");
+    }
+  }
+  else if (type==SA("string"))
+  {
+    QString defval = child.attribute(SA("defval"));
+    if (child.attribute(SA("format")) == SA("dir"))
+    {
+      if (defval != SA(""))
+      {
+        docs+=SA("<br/>");
+        docs += SA(" The default directory is: <code>") + defval + SA("</code>.");
+        docs += SA("<br/>");
+      }
+    }
+    else if (child.attribute(SA("format")) == SA("file"))
+    {
+      QString abspath = child.attribute(SA("abspath"));
+      if (defval != SA(""))
+      {
+        docs+=SA("<br/>");
+        if (abspath != SA("1"))
+        {
+          docs += SA(" The default file is: <code>") + defval + SA("</code>.");
+        }
+        else
+        {
+          docs += SA(" The default file (with absolute path) is: <code>") + defval + SA("</code>.");
+        }
+        docs += SA("<br/>");
+      }
+      else
+      {
+        if (abspath == SA("1"))
+        {
+          docs+=SA("<br/>");
+          docs += SA(" The file has to be specified with full path.");
+          docs += SA("<br/>");
+        }
+      }
+    }
+    else // if (child.attribute(SA("format")) == SA("string"))
+    {
+      if (defval != SA(""))
+      {
+        docs+=SA("<br/>");
+        docs += SA(" The default value is: <code>") + defval + SA("</code>.");
+        docs += SA("<br/>");
+      }
+    }
+  }
+  
+  if (child.hasAttribute(SA("depends")))
+  {
+    QString dependsOn = child.attribute(SA("depends"));
+    docs+=SA("<br/>");
+    docs+=  SA(" This tag requires that the tag \\ref cfg_");
+    docs+=  dependsOn.toLower();
+    docs+=  SA(" \"");
+    docs+=  dependsOn.toUpper();
+    docs+=  SA("\" is set to <code>YES</code>.");
+  }
+
+  // Remove / replace doxygen markup strings
+  // the regular expressions are hard to read so the intention will be given
+  QRegExp regexp;
+  // remove \n at end and replace by a space
+  regexp.setPattern(SA("\\n$"));
+  docs.replace(regexp,SA(" "));
+  // remove <br> at end
+  regexp.setPattern(SA("<br> *$"));
+  docs.replace(regexp,SA(" "));
+  // \c word -> <code>word</code>; word ends with ')', ',', '.' or ' '
+  regexp.setPattern(SA("\\\\c[ ]+([^ \\)]+)\\)"));
+  docs.replace(regexp,SA("<code>\\1</code>)"));
+
+  regexp.setPattern(SA("\\\\c[ ]+([^ ,]+),"));
+  docs.replace(regexp,SA("<code>\\1</code>,"));
+
+  regexp.setPattern(SA("\\\\c[ ]+([^ \\.]+)\\."));
+  docs.replace(regexp,SA("<code>\\1</code>."));
+
+  regexp.setPattern(SA("\\\\c[ ]+([^ ]+) "));
+  docs.replace(regexp,SA("<code>\\1</code> "));
+  // `word` -> <code>word</code>
+  docs.replace(SA("``"),SA(""));
+  regexp.setPattern(SA("`([^`]+)`"));
+  docs.replace(regexp,SA("<code>\\1</code>"));
+  // \ref key "desc" -> <code>desc</code>
+  regexp.setPattern(SA("\\\\ref[ ]+[^ ]+[ ]+\"([^ ]+)\""));
+  docs.replace(regexp,SA("<code>\\1</code> "));
+  //\ref specials
+  // \ref <key> -> description
+  regexp.setPattern(SA("\\\\ref[ ]+doxygen_usage"));
+  docs.replace(regexp,SA("\"Doxygen usage\""));
+  regexp.setPattern(SA("\\\\ref[ ]+extsearch"));
+  docs.replace(regexp,SA("\"External Indexing and Searching\""));
+  regexp.setPattern(SA("\\\\ref[ ]+external"));
+  docs.replace(regexp,SA("\"Linking to external documentation\""));
+  // fallback for not handled
+  docs.replace(SA("\\\\ref"),SA(""));
+  // \b word -> <b>word<\b>
+  regexp.setPattern(SA("\\\\b[ ]+([^ ]+) "));
+  docs.replace(regexp,SA("<b>\\1</b> "));
+  // \e word -> <em>word<\em>
+  regexp.setPattern(SA("\\\\e[ ]+([^ ]+) "));
+  docs.replace(regexp,SA("<em>\\1</em> "));
+  // \note -> <br>Note:
+  // @note -> <br>Note:
+  docs.replace(SA("\\note"),SA("<br>Note:"));
+  docs.replace(SA("@note"),SA("<br>Note:"));
+  // \#include -> #include
+  // \#undef -> #undef
+  docs.replace(SA("\\#include"),SA("#include"));
+  docs.replace(SA("\\#undef"),SA("#undef"));
+  // -# -> <br>-
+  // " - " -> <br>-
+  docs.replace(SA("-#"),SA("<br>-"));
+  docs.replace(SA(" - "),SA("<br>-"));
+  // \verbatim -> <pre>
+  // \endverbatim -> </pre>
+  docs.replace(SA("\\verbatim"),SA("<pre>"));
+  docs.replace(SA("\\endverbatim"),SA("</pre>"));
+  // \sa -> <br>See also:
+  // \par -> <br>
+  docs.replace(SA("\\sa"),SA("<br>See also:"));
+  docs.replace(SA("\\par"),SA("<br>"));
+  // 2xbackslash -> backslash
+  // \@ -> @
+  docs.replace(SA("\\\\"),SA("\\"));
+  docs.replace(SA("\\@"),SA("@"));
+  // \& -> &
+  // \$ -> $
+  docs.replace(SA("\\&"),SA("&"));
+  docs.replace(SA("\\$"),SA("$"));
+  // \< -> &lt;
+  // \> -> &gt;
+  docs.replace(SA("\\<"),SA("&lt;"));
+  docs.replace(SA("\\>"),SA("&gt;"));
+  regexp.setPattern(SA(" (http:[^ \\)]*)([ \\)])"));
+  docs.replace(regexp,SA(" <a href=\"\\1\">\\1</a>\\2"));
+  // LaTeX name as formula -> LaTeX
+  regexp.setPattern(SA("\\\\f\\$\\\\mbox\\{\\\\LaTeX\\}\\\\f\\$"));
+  docs.replace(regexp,SA("LaTeX"));
+  // Other forula's (now just 2) so explicitely mentioned.
+  regexp.setPattern(SA("\\\\f\\$2\\^\\{\\(16\\+\\\\mbox\\{LOOKUP\\\\_CACHE\\\\_SIZE\\}\\)\\}\\\\f\\$"));
+  docs.replace(regexp,SA("2^(16+LOOKUP_CACHE_SIZE)"));
+  regexp.setPattern(SA("\\\\f\\$2\\^\\{16\\} = 65536\\\\f\\$"));
+  docs.replace(regexp,SA("2^16=65536"));
+
+  return docs.trimmed();
+}
 
 QWidget *Expert::createTopicWidget(QDomElement &elem)
 {
@@ -125,6 +448,7 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
     if (setting.isEmpty() || IS_SUPPORTED(setting.toAscii()))
     {
       QString type = child.attribute(SA("type"));
+      QString docs = getDocsForNode(child);
       if (type==SA("bool"))
       {
         InputBool *boolOption = 
@@ -132,7 +456,7 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
               layout,row,
               child.attribute(SA("id")),
               child.attribute(SA("defval"))==SA("1"),
-              child.attribute(SA("docs"))
+              docs
               );
         m_options.insert(
             child.attribute(SA("id")),
@@ -163,7 +487,7 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
               child.attribute(SA("id")),
               child.attribute(SA("defval")),
               mode,
-              child.attribute(SA("docs")),
+              docs,
               child.attribute(SA("abspath"))
               );
         m_options.insert(
@@ -180,12 +504,15 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
             child.attribute(SA("id")),
             child.attribute(SA("defval")),
             InputString::StringFixed,
-            child.attribute(SA("docs"))
+            docs
             );
         QDomElement enumVal = child.firstChildElement();
         while (!enumVal.isNull())
         {
-          enumList->addValue(enumVal.attribute(SA("name")));
+          if (enumVal.tagName()==SA("value"))
+          {
+            enumList->addValue(enumVal.attribute(SA("name")));
+          }
           enumVal = enumVal.nextSiblingElement();
         }
         enumList->setDefault();
@@ -203,7 +530,7 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
               child.attribute(SA("defval")).toInt(),
               child.attribute(SA("minval")).toInt(),
               child.attribute(SA("maxval")).toInt(),
-              child.attribute(SA("docs"))
+              docs
               );
         m_options.insert(
             child.attribute(SA("id")),
@@ -236,7 +563,10 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
         QDomElement listVal = child.firstChildElement();
         while (!listVal.isNull())
         {
-          sl.append(listVal.attribute(SA("name")));
+          if (listVal.tagName()==SA("value"))
+          {
+            sl.append(listVal.attribute(SA("name")));
+          }
           listVal = listVal.nextSiblingElement();
         }
         InputStrList *listOption = 
@@ -245,7 +575,7 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
               child.attribute(SA("id")),
               sl,
               mode,
-              child.attribute(SA("docs"))
+              docs
               );
         m_options.insert(
             child.attribute(SA("id")),
@@ -366,55 +696,51 @@ void Expert::loadConfig(const QString &fileName)
 void Expert::saveTopic(QTextStream &t,QDomElement &elem,QTextCodec *codec,
                        bool brief)
 {
-  // write group header
-  t << endl;
+  if (!brief)
+  {
+    t << endl;
+  }
   t << "#---------------------------------------------------------------------------" << endl;
   t << "# " << elem.attribute(SA("docs")) << endl;
   t << "#---------------------------------------------------------------------------" << endl;
-
   // write options...
   QDomElement childElem = elem.firstChildElement();
   while (!childElem.isNull())
   {
+    QString setting = childElem.attribute(SA("setting"));
     QString type = childElem.attribute(SA("type"));
     QString name = childElem.attribute(SA("id"));
-    QHash<QString,Input*>::const_iterator i = m_options.find(name);
-    if (i!=m_options.end())
+    if (setting.isEmpty() || IS_SUPPORTED(setting.toAscii()))
     {
-      Input *option = i.value();
-      if (!brief)
+      QHash<QString,Input*>::const_iterator i = m_options.find(name);
+      if (i!=m_options.end())
       {
-        t << endl;
-        t << convertToComment(childElem.attribute(SA("docs")));
+        Input *option = i.value();
+        if (option && !brief)
+        {
+          t << endl;
+          t << convertToComment(option->templateDocs());
+          t << endl;
+        }
+        t << name.leftJustified(MAX_OPTION_LENGTH) << "= ";
+        if (option)
+        {
+          option->writeValue(t,codec);
+        }
         t << endl;
       }
-      t << name.leftJustified(23) << "= ";
-      if (option)
-      {
-        option->writeValue(t,codec);
-      }
-      t << endl;
     }
     childElem = childElem.nextSiblingElement();
   }
-
 }
 
 bool Expert::writeConfig(QTextStream &t,bool brief)
 {
+  // write global header
+  t << "# Doxyfile " << versionString << endl << endl; 
   if (!brief)
   {
-    // write global header
-    t << "# Doxyfile " << versionString << endl << endl; // TODO: add version
-    t << "# This file describes the settings to be used by the documentation system\n";
-    t << "# doxygen (www.doxygen.org) for a project\n";
-    t << "#\n";
-    t << "# All text after a hash (#) is considered a comment and will be ignored\n";
-    t << "# The format is:\n";
-    t << "#       TAG = value [value, ...]\n";
-    t << "# For lists items can also be appended using:\n";
-    t << "#       TAG += value [value, ...]\n";
-    t << "# Values that contain spaces should be placed between quotes (\" \")\n";
+    t << convertToComment(m_header);
   }
 
   QTextCodec *codec = 0;
@@ -430,7 +756,10 @@ bool Expert::writeConfig(QTextStream &t,bool brief)
   QDomElement childElem = m_rootElement.firstChildElement();
   while (!childElem.isNull())
   {
-    saveTopic(t,childElem,codec,brief);
+    if (childElem.tagName()==SA("group"))
+    {
+      saveTopic(t,childElem,codec,brief);
+    }
     childElem = childElem.nextSiblingElement();
   }
   return true;
@@ -454,9 +783,10 @@ void Expert::showHelp(Input *option)
     m_helper->setText(
         QString::fromAscii("<qt><b>")+option->id()+
         QString::fromAscii("</b><br>")+
+        QString::fromAscii("<br/>")+
         option->docs().
         replace(QChar::fromAscii('\n'),QChar::fromAscii(' '))+
-        QString::fromAscii("<qt>")
+        QString::fromAscii("</qt>")
         );
     m_inShowHelp = FALSE;
   }
index 8d43161..2c65446 100644 (file)
@@ -5,16 +5,18 @@
 #include <QDomElement>
 #include <QHash>
 
+#include "docintf.h"
+
 class QTreeWidget;
 class QTreeWidgetItem;
 class QStackedWidget;
 class QSettings;
-class QTextEdit;
+class QTextBrowser;
 class QTextCodec;
 class QPushButton;
 class Input;
 
-class Expert : public QSplitter
+class Expert : public QSplitter, public DocIntf
 {
     Q_OBJECT
 
@@ -32,6 +34,10 @@ class Expert : public QSplitter
     bool htmlOutputPresent(const QString &workingDir) const;
     bool pdfOutputPresent(const QString &workingDir) const;
     QString getHtmlOutputIndex(const QString &workingDir) const;
+
+    // DocIntf methods
+    void setHeader(const char *name);
+    void add(const char *name,const char *doc);
   
   public slots:
     void activateTopic(QTreeWidgetItem *,QTreeWidgetItem *);
@@ -50,7 +56,7 @@ class Expert : public QSplitter
     void saveTopic(QTextStream &t,QDomElement &elem,QTextCodec *codec,bool brief);
 
     QSplitter               *m_splitter;
-    QTextEdit               *m_helper;
+    QTextBrowser            *m_helper;
     QTreeWidget             *m_treeWidget;
     QStackedWidget          *m_topicStack;
     QHash<QString,QWidget *> m_topics;
@@ -60,6 +66,7 @@ class Expert : public QSplitter
     QPushButton             *m_prev;
     QDomElement              m_rootElement;
     bool                     m_inShowHelp;
+    QString                  m_header;
 };
 
 #endif
index dd1773c..9e0a1bf 100644 (file)
@@ -23,11 +23,13 @@ class Input
     virtual Kind kind() const = 0;
     virtual QString docs() const = 0;
     virtual QString id() const = 0;
+    virtual QString templateDocs() const = 0;
     virtual void addDependency(Input *option) = 0;
     virtual void setEnabled(bool) = 0;
     virtual void updateDependencies() = 0;
     virtual void reset() = 0;
     virtual void writeValue(QTextStream &t,QTextCodec *codec) = 0;
+    virtual void setTemplateDocs(const QString &docs) = 0;
 };
 
 
index 470127a..69a6893 100644 (file)
@@ -36,10 +36,12 @@ class InputBool : public QObject, public Input
     Kind kind() const { return Bool; }
     QString docs() const { return m_docs; }
     QString id() const { return m_id; }
+    QString templateDocs() const { return m_tdocs; }
     void addDependency(Input *option) { m_dependencies+=option; }
     void setEnabled(bool);
     void updateDependencies();
     void writeValue(QTextStream &t,QTextCodec *codec);
+    void setTemplateDocs(const QString &docs) { m_tdocs = docs; }
 
   public slots:
     void reset();
@@ -64,7 +66,7 @@ class InputBool : public QObject, public Input
     QList<Input*> m_dependencies;
     QString m_id;
     QLabel *m_lab;
-
+    QString m_tdocs;
 };
 
 #endif
index 846b7c2..c4723be 100644 (file)
@@ -39,10 +39,12 @@ class InputInt : public QObject, public Input
     Kind kind() const { return Int; }
     QString docs() const { return m_docs; }
     QString id() const { return m_id; }
+    QString templateDocs() const { return m_tdocs; }
     void addDependency(Input *) { Q_ASSERT(false); }
     void setEnabled(bool);
     void updateDependencies() {}
     void writeValue(QTextStream &t,QTextCodec *codec);
+    void setTemplateDocs(const QString &docs) { m_tdocs = docs; }
 
   public slots:
     void reset();
@@ -66,6 +68,7 @@ class InputInt : public QObject, public Input
     QVariant  m_value;
     QString   m_docs;
     QString   m_id;
+    QString   m_tdocs;
 };
 
 #endif
index ab2c8e2..c904dad 100644 (file)
@@ -53,10 +53,12 @@ class InputString : public QObject, public Input
     Kind kind() const { return String; }
     QString docs() const { return m_docs; }
     QString id() const { return m_id; }
+    QString templateDocs() const { return m_tdocs; }
     void addDependency(Input *) { Q_ASSERT(false); }
     void setEnabled(bool);
     void updateDependencies() {}
     void writeValue(QTextStream &t,QTextCodec *codec);
+    void setTemplateDocs(const QString &docs) { m_tdocs = docs; }
 
   public slots:
     void reset();
@@ -86,6 +88,7 @@ class InputString : public QObject, public Input
     QString       m_docs;
     QString       m_id;
     bool          m_absPath;
+    QString       m_tdocs;
 };
 
 #endif
index 3a9278d..352ed5e 100644 (file)
@@ -49,10 +49,12 @@ class InputStrList : public QObject, public Input
     Kind kind() const { return StrList; }
     QString docs() const { return m_docs; }
     QString id() const { return m_id; }
+    QString templateDocs() const { return m_tdocs; }
     void addDependency(Input *) { Q_ASSERT(false); }
     void setEnabled(bool);
     void updateDependencies() {}
     void writeValue(QTextStream &t,QTextCodec *codec);
+    void setTemplateDocs(const QString &docs) { m_tdocs = docs; }
 
   public slots:
     void reset();
@@ -85,7 +87,7 @@ class InputStrList : public QObject, public Input
     QVariant      m_value;
     QString       m_docs;
     QString       m_id;
-
+    QString       m_tdocs;
 };
 
 #endif
index ba1bca2..7b554a3 100755 (executable)
--- a/configure
+++ b/configure
@@ -17,7 +17,7 @@
 
 doxygen_version_major=1
 doxygen_version_minor=8
-doxygen_version_revision=4
+doxygen_version_revision=5
 
 #NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
 doxygen_version_mmn=NO
@@ -41,6 +41,8 @@ f_bison=NO
 f_search=NO
 f_langs=nl,sv,cz,fr,id,it,de,jp,je,es,fi,ru,hr,pl,pt,hu,kr,ke,ro,si,cn,no,mk,br,dk,sk,ua,gr,tw,sr,ca,lt,za,ar,fa,sc,vi,tr,eo,am
 f_sqlite3=NO
+f_sqlite3static=NO
+f_sqlite3_path=NO
 f_libclang=NO
 f_libclangstatic=NO
 
@@ -103,6 +105,13 @@ while test -n "$1";  do
     --with-sqlite3 | -with-sqlite3)
        f_sqlite3=YES
        ;;
+    --with-sqlite3-static | -with-sqlite3-static)
+       f_sqlite3=YES
+       f_sqlite3static=YES
+       ;;
+    --sqlite3-path | -sqlite3-path)
+       shift; f_sqlite3_path=$1
+       ;;
     --with-libclang | -with-libclang)
        f_libclang=YES
        ;;
@@ -128,7 +137,8 @@ Usage: $0 [--help] [--shared] [--static] [--release] [--debug]
           [--perl name] [--flex name] [--bison name] [--make name] 
           [--dot name] [--platform target] [--prefix dir] [--docdir dir] 
           [--install name] [--english-only] [--enable-langs list] 
-          [--with-sqlite3] [--with-libclang]
+          [--with-sqlite3] [--with-sqlite3-static] [--sqlite3-path]
+          [--with-libclang] [--with-libclang-static]
           [--with-doxywizard] [--with-doxysearch] [--with-doxyapp]
 
 Options: 
@@ -256,6 +266,9 @@ if test -z "$f_platform"; then
     Cygwin:*|CYGWIN*)
       f_platform=win32-g++
       ;;
+    MINGW32_NT*)
+      f_platform=win32-mingw
+      ;;
     *MiNT:*)
       f_platform=m68k-atari-mint-g++
       ;;
@@ -420,9 +433,18 @@ fi
 
 if test "$f_sqlite3" = YES; then
   printf "  Checking for sqlite3 ... "
-  sqlite3_hdr_dir="/usr/include /usr/local/include /opt/local/include"
-  sqlite3_lib_dir="/usr/lib /usr/local/lib /opt/local/lib"
-  sqlite3_lib_name="libsqlite3.so libsqlite3.dylib libsqlite3.a"
+  if test "$f_sqlite3_path" = NO; then
+    sqlite3_hdr_dir="/usr/include /usr/local/include /opt/local/include"
+    sqlite3_lib_dir="/usr/lib /usr/local/lib /opt/local/lib /usr/lib/x86_64-linux-gnu"
+  else
+    sqlite3_hdr_dir="$f_sqlite3_path/include"
+    sqlite3_lib_dir="$f_sqlite3_path/lib"
+  fi
+  if test "$f_sqlite3static" = NO; then
+    sqlite3_lib_name="libsqlite3.so libsqlite3.dylib libsqlite3.a libsqlite3.dll.a"
+  else
+    sqlite3_lib_name="libsqlite3.a"
+  fi
   sqlite3_hdr=NO
   sqlite3_lib=NO
   sqlite3_link=
@@ -435,9 +457,14 @@ if test "$f_sqlite3" = YES; then
   for i in $sqlite3_lib_dir; do
     if test "$sqlite3_lib" = NO; then
       for j in $sqlite3_lib_name; do
-        if test -f "$i/$j"; then
-          sqlite3_lib="$i/$j"
-          sqlite3_link="-L $i -lsqlite3"
+        if test -e "$i/$j"; then
+          if test "$f_sqlite3static" = NO; then
+            sqlite3_lib="$i/$j"
+            sqlite3_link="-L$i -lsqlite3"
+          else
+            sqlite3_lib="$i/$j"
+            sqlite3_link="$i/$j -ldl"
+          fi
           break
         fi
       done
@@ -445,6 +472,7 @@ if test "$f_sqlite3" = YES; then
   done
   if test "$sqlite3_hdr" = NO -o "$sqlite3_lib" = NO; then
     echo "not found!";
+    exit 1
   else
     echo "using header $sqlite3_hdr and library $sqlite3_lib...";
   fi
@@ -457,7 +485,7 @@ if test "$f_libclang" = YES; then
   libclang_hdr_dir="/usr/include /usr/local/include /opt/local/include"
   libclang_lib_dir="/usr/lib /usr/local/lib /opt/local/lib"
   if test "$f_libclangstatic" = NO; then
-    libclang_lib_name="libclang.so libclang.dylib libclang.a"
+    libclang_lib_name="libclang.so libclang.dylib libclang.a libclang.dll.a"
   else
     libclang_lib_name="libclang.a"
   fi
@@ -752,11 +780,11 @@ EOF
        echo "" >> $DST
        echo "doxywizard_install:" >> $DST
        if test $f_wizard = YES; then
-         echo "        \$(MAKE) MAN1DIR=\$(MAN1DIR) -C addon/doxywizard install" >> $DST
+         echo "        \$(MAKE) INSTALL=\$(DESTDIR)\$(INSTALL) MAN1DIR=\$(MAN1DIR) -C addon/doxywizard install" >> $DST
        fi
        echo "doxysearch_install:" >> $DST
        if test $f_search = YES; then
-         echo "        \$(MAKE) MAN1DIR=\$(MAN1DIR) -C addon/doxysearch install" >> $DST
+         echo "        \$(MAKE) INSTALL=\$(DESTDIR)\$(INSTALL) MAN1DIR=\$(MAN1DIR) -C addon/doxysearch install" >> $DST
        fi
        echo "" >> $DST
      fi
@@ -791,7 +819,7 @@ EOF
      #if test "$f_thread" = YES; then
      #  realopts="$realopts thread"
      #fi
-     cat $SRC .tmakeconfig | sed -e "s/\$extraopts/$realopts/g" -e "s;%%SQLITE3_LIBS%%;$sqlite3_link;g" -e "s;%%LIBCLANG_LIBS%%;$libclang_link;g" >> $DST
+     cat $SRC .tmakeconfig | sed -e "s/\$extraopts/$realopts/g" -e "s;%%SQLITE3_INC%%;$sqlite3_hdr_dir;g" -e "s;%%SQLITE3_LIBS%%;$sqlite3_link;g" -e "s;%%LIBCLANG_LIBS%%;$libclang_link;g" >> $DST
      echo "  Created $DST from $SRC..."
 done
 
index e69de29..0b15cd4 100755 (executable)
@@ -0,0 +1,118 @@
+#! /bin/sh
+#
+# $Id: configure,v 1.1 1999/07/19 17:00:15 root Exp $
+#
+# Copyright (C) 1997-2011 by Dimitri van Heesch.
+# 
+# Permission to use, copy, modify, and distribute this software and its
+# documentation under the terms of the GNU General Public License is hereby 
+# granted. No representations are made about the suitability of this software 
+# for any purpose. It is provided "as is" without express or implied warranty.
+# See the GNU General Public License for more details.
+# 
+# Documents produced by Doxygen are derivative works derived from the
+# input used in their production; they are not affected by this license.
+# 
+# shell script to configure doxygen (use for binary releases)
+
+f_prefix=/usr/local
+f_insttool=NO
+
+while test -n "$1"; do
+  case $1 in
+    --prefix)
+       shift; f_prefix=$1
+       ;;
+    --install)
+       shift; f_insttool=$1
+       ;;
+    -h | -help | --help)
+       f_help=y
+       ;;
+    *)
+       echo $1: unknown argument
+       f_help=y
+       f_error=y
+       ;;
+  esac
+  shift
+done
+
+if test "$f_help" = y; then
+  cat <<EOF
+Usage: $0 [--help] [--prefix dir] [--install name]
+
+Options: 
+
+  --help                Print this help
+
+  --prefix dir          Installation prefix directory
+                        [default: /usr/local]
+  
+  --install name        Use \`name' as the name of the GNU install tool
+                        [default: install]
+
+EOF
+  test "$f_error" = y && exit 1
+  exit 0;
+fi
+
+# - check for install ------------------------------------------------------------
+
+echo -n "  Checking for GNU install tool... "
+if test "$f_insttool" = NO; then
+  install_names="ginstall install"
+  install_dirs="/usr/bin /usr/local/bin /bin /sbin $bin_dirs"
+  install_prog=NO
+  install_found=NO
+  for i in $install_names; do
+    for j in $install_dirs; do
+      if test -x "$j/$i"; then
+        if test -n "`$j/$i --version 2>/dev/null | grep utils`"; then
+          install_found=YES
+          install_prog="$j/$i"
+          break 2
+        fi
+      fi
+    done
+  done
+  f_insttool="$install_prog" 
+fi
+
+if test "$f_insttool" = NO; then
+  if test "$install_found" = YES; then
+    echo "GNU version of install is required!"
+  else
+    echo "not found!";
+  fi
+  echo
+  exit 2
+fi
+echo "using $f_insttool";
+
+# ----------------------------------------------------------
+
+
+cat > .makeconfig <<EOF
+RM        = rm -f
+VERSION   = `cat VERSION`
+INSTALL   = $f_prefix
+INSTTOOL  = $f_insttool
+DOXYDOCS  = ..
+
+export TMAKEPATH
+EOF
+
+for i in Makefile.in ; do
+     SRC=$i
+     DST=`echo $i|sed 's%\(.*\).in$%\1%'`
+     TIME=`date`
+     cat > $DST <<EOF
+#
+# This file was generated from `basename $i` on $TIME
+#
+
+EOF
+     cat .makeconfig $SRC >> $DST
+     echo "  Created $DST from $SRC..."
+done
diff --git a/doc/.gitignore b/doc/.gitignore
new file mode 100644 (file)
index 0000000..a464770
--- /dev/null
@@ -0,0 +1 @@
+mailto.txt
\ No newline at end of file
index 591e327..cf1e461 100644 (file)
@@ -12,7 +12,7 @@
 # Documents produced by Doxygen are derivative works derived from the
 # input used in their production; they are not affected by this license.
 
-all: language FORCE
+all: language config.doc FORCE
        DOXYGEN_DOCDIR=$(DOXYDOCS); \
        export DOXYGEN_DOCDIR; \
         VERSION=$(VERSION) ; \
@@ -33,4 +33,7 @@ language: language.doc
 language.doc: $(wildcard ../src/translator*.h) maintainers.txt language.tpl translator.py
        python translator.py
 
+config.doc:  ../src/config.xml ../src/configgen.py
+       python ../src/configgen.py -doc ../src/config.xml > config.doc
+
 FORCE:
index c19b0e4..418c5b6 100644 (file)
@@ -12,7 +12,7 @@
 # Documents produced by Doxygen are derivative works derived from the
 # input used in their production; they are not affected by this license.
 
-all: language FORCE
+all: language config.doc FORCE
        @xcopy /s /q /i ..\examples ..\html\examples
        set DOXYGEN_DOCDIR=. & \
        set VERSION=$(VERSION) & \
@@ -33,4 +33,8 @@ language: language.doc
 language.doc: maintainers.txt language.tpl translator.py
        set DOXYGEN_DOCDIR=. & set VERSION=$(VERSION) & python translator.py
 
+config.doc:  ..\src\config.xml ..\src\configgen.py
+       python ..\src\configgen.py -doc ..\src\config.xml > config.doc
+
+
 FORCE:
index f8705f3..b889e7c 100644 (file)
@@ -12,7 +12,7 @@
 # Documents produced by Doxygen are derivative works derived from the
 # input used in their production; they are not affected by this license.
 
-all: language FORCE
+all: language config.doc FORCE
        @xcopy /s /q /i ..\examples ..\html\examples
        set DOXYGEN_DOCDIR=.
        set VERSION=$(VERSION)
@@ -35,4 +35,7 @@ language.doc: maintainers.txt language.tpl translator.py
        set VERSION=$(VERSION)
        python translator.py
 
+config.doc:  ../src/config.xml ../src/configgen.py
+       python ../src/configgen.py -doc ../src/config.xml > config.doc
+
 FORCE:
index 04bb8b4..05f8202 100644 (file)
 /** \page changelog Changelog
 \tableofcontents
-\section log_1_8 Release 1.8
+\section log_1_8 1.8 Series
+
+\subsection log_1_8_5 Release 1.8.5
+\htmlonly
+<b>(release date 23-08-2013)</b>
+<a name="1.8.5"></a>
+<h3>Changes</h3>
+<ul>
+<li>Doxygen's source code is now managed using git and GitHub. Automatic builds
+    and regression tests are scheduled via Travis CI.
+<li>Configuration data for the config file, the documentation, and the wizard
+    are now produced from a single source (thanks to Albert)
+<li>All translation files have been migrated to UTF-8 (thanks to Petr Prikryl)
+<li>Added black box testing framework and a set of tests.
+</ul>
+<h3>New features</h3>
+<ul>
+<li>Added SOURCE_TOOLTIPS option for advanced tooltip support while source browsing.
+</ul>
+<h3>Bug fixes (ids refer to the <a href="http://bugzilla.gnome.org/buglist.cgi?product=doxygen&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=NEEDINFO&bug_status=REOPENED&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&status_whiteboard=&status_whiteboard_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&newqueryname=&form_name=query&order=bugs.bug_id">bugzilla</a> database)</h3>
+<ul>
+<li> Bug 668007 - HTML commands - documentation of &lt;/dd&gt; tag missing
+<li> Bug 676879 - parameter on doxywizard manual Added sentenc in respect to possible argument for doxywizard Added images to the LaTex / pdf version of the manual
+<li> Bug 684324 - Strange behavior when placing cite within brief. 
+<li> Bug 688858 - SHORT_NAMES break references to \page in PDF output
+<li> Bug 691315 - Line breaks are not copied/displayed properly when using @copydoc. 
+<li> Bug 691830 - Logical confusion with DISABLE_INDEX and GENERATE_TREEVIEW
+<li> Bug 694147 - #undef is ignored by doxygen
+<li> Bug 698998 - vhdldocgen fails to generate proper latex for VHDL record type
+<li> Bug 700385 - Incorrectly parsed Q_PROPERTY with 'unsigned int' type
+<li> Bug 700646 - XML output does not handle HTML entities in titles
+<li> Bug 700693 - Duplicate entry for class template member function with no parameter
+<li> Bug 700696 - Template static member functions duplicated as non-static public
+<li> Bug 700709 - typedef warning when "using" some operator functions
+<li> Bug 700710 - Docbook output produces invalid XML for &lt;programlisting&gt; elements
+<li> Bug 700740 - Doxygen does not create links on C++ 11 style enum classes
+<li> Bug 700788 - support @cite within brief description.
+<li> Bug 700908 - code after \@cond is removed
+<li> Bug 701295 - Doxygen 1.8.4 goes into an endless loop
+<li> Bug 701314 - URLs are not created on C# classes in some cases
+<li> Bug 701550 - Error List window in Visual Studio no longer recognizes doxygen warnings
+<li> Bug 701771 - EXPAND_AS_DEFINED not working with some project structures
+<li> Bug 701919 - VHDL cross-references fail when unpaired apostrophe present
+<li> Bug 702066 - VHDL: Bad HTML formatting when using inline sources
+<li> Bug 702170 - Missing space before optional option in method argument list
+<li> Bug 702189 - Markdown and @image
+<li> Bug 702491 - UTF-16LE BOM not handled by source browser and \snippet
+<li> Bug 702590 - Crash with TAB_SIZE=-1
+<li> Bug 702676 - Closing ) of function in function documentation is in wrong color
+<li> Bug 703574 - Add configure options to enable static SQLite and non-standard SQLite
+<li> Bug 703112 - Backward documentation comments are not allowed in Fortran type-bound procedures
+<li> Bug 703133 - "operator--()" transformed to "operator&amp;ndash;()" in @copydoc
+<li> Bug 703170 - Segmentation fault parsing a fortran file
+<li> Bug 703213 - Can't use @ref instead of \ref with msc
+<li> Bug 703301 - Misleading warning about DOT font
+<li> Bug 703791 - Out-of-line docs for class template specialisations failing
+<li> Bug 704079 - Generated XML is malformed
+<li> Bug 704172 - Nested Aliases fail when the nested alias has two or more arguments.
+<li> Bug 704412 - doxygen don't hide private Inherited Members
+<li> Bug 704971 - Can't build with MinGW
+<li> Bug 704973 - Doxywizard can't show file names using non-ASCII(Unicode)
+<li> Bug 705190 - Incorrectly parsed Q_PROPERTY with 'long long' or 'long int' type
+<li> Bug 705217 - Can't use unicode characters to execute external commands
+<li> Bug 705218 - QRegExp doesn't work with 80-FF
+<li> Bug 705219 - Accept IDs using unicode for C/C++ preprocessor
+<li> Bug 705586 - @code tag as the last line of a comment block causes the parser to hang
+<li> Bug 705702 - Post-comment blocks on C++11 using definitions attach to following entity
+<li> Bug 706236 - Confusing use of GENERATE_TAGFILE
+<li> Bug 706520 - Fortran: in body documentation lands on wrong place
+<li> Small typo correceted in doxywizard_usage.doc Generated config.doc file in git is not identical to the generated one
+<li> Various improvements to the (still experimental) sqlite3 support (thanks to Adrian Negreanu)
+<li> jquery: use the env MINIFIER if specified
+<li> Some words now in code style __attribute__ was seen (markdown) as the bold word attribute Reformulation of a sentence due to a not nice split of word (__declspec was split directly after __ in pdf)
+<li> Extended list with supported options for automatic link generation
+<li> Added -v option (analogous to --version). In case option started with -- and is not a known valuue (help or version) and error is given instead of starting Doxygen
+<li> Fixed regression when nested class were processed before their parent
+<li> Minor changes to the way the code for config options is generated (thanks to Albert for the patch)
+<li> Brief description did not appear in the page index, when a page did not have any details.
+<li> Using &amp; in the project name caused invalid HTML and LaTeX output
+<li> Fixed regression caused by the patch for bug 705219
+<li> Fixed issue running dot on files with non-ascii characters
+<li> Delayed expanding the HTML navigation tree until after the page has loaded
+<li> Made some fixed to the configure script for Cygwin (thanks to David Stacey)
+<li> config.xml is now used to generate configoptions.cpp and config.doc
+<li> Fixed whitespace issue when using \overload without arguments
+<li> Avoid space in the output after \n command following by a newline.
+<li> Fixed problem handling C comments inside a \code block.
+<li> Improved handling of \internal and \endinternal
+<li> Removed extra newline when reading in an input file
+<li> Make XML output adhere to MAX_INITIALIZER_LINES
+<li> Fixed issue handling \elseif after \ifnot
+<li> Fixed regression that could cause double nested classes
+<li> Fixed issue handling \docbookonly..\enddocbookonly section
+<li> The language specifier in e.g. \code{.py} was ignored for the XML output
+<li> Fix reference to scoped enum imported via a tag file.
+<li> Replaced utf8 character that broke latex compilation of the manual
+<li> Fixed unused parameter warnings
+<li> Add support for writing and importing C++11 style enums to and from tag files
+<li> Fixed regression introduced by fixed bug Bug 700740
+<li> Fixed type in function name
+<li> Remove some unneeded and still enabled debug info
+<li> Included fix for "Constant Groups" regression on file pages (thanks to Michael Stahl) 
+<li> Add scopes to Fortran prototype name parsing (thanks to Oleg Batrashev).
+<li> Prototype scan for function, does not yet catch parameter types (thanks to Oleg Batrashev).
+</ul>
+\endhtmlonly
 
 \subsection log_1_8_4 Release 1.8.4
 \htmlonly
 <b>(release date 19-05-2013)</b>
-<a name="1.8.3.1"></a>
+<a name="1.8.4"></a>
 <h3>Changes</h3>
 <ul>
 <li>   id 686384: When INLINE_SIMPLE_STRUCTS is enabled, also structs with
 <li>   id 693422: Adds support for Latvian (thanks to a patch by Lauris).
 <li>   Included language updates for Ukrainian, Romanian, and Korean
 </ul>
-<h3>Bug fixes (ids refer to the <a href="http://bugzilla.gnome.org/buglist.cgi?product=doxygen&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=NEEDINFO&bug_status=REOPENED&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&status_whiteboard=&status_whiteboard_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&newqueryname=&form_name=query&order=bugs.bug_id">bugzilla</a> database)</h3>
+<h3>Bug fixes</h3>
 <ul>
 <li>   id 145294: Fixed parse issue when using less than inside a template
        argument.
@@ -877,7 +982,7 @@ make sure you add the following:
 <li>   Fixed some typos in the manual (thanks Albert).
 </ul>
 \endhtmlonly
-\section log_1_7 Release 1.7
+\section log_1_7 1.7 Series
 \htmlonly
 <a name="1.7.6.1"></a>
 <h1>Doxygen Release 1.7.6.1</h1>
@@ -1620,7 +1725,7 @@ make sure you add the following:
 
 </ul>
 \endhtmlonly
-\section log_1_6 Release 1.6
+\section log_1_6 1.6 Series
 \htmlonly
 <a name="1.6.3"></a>
 <h1>Doxygen Release 1.6.3</h1>
index 9cada6e..7054c11 100644 (file)
@@ -2971,7 +2971,7 @@ class Receiver
 \section cmddcolon \\::
 
   \addindex \\\::
-  This command write a double colon (\c \::) to the output. This
+  This command writes a double colon (\c \::) to the output. This
   character sequence has to be escaped in some cases, because it is used
   to reference to documented entities.
 
@@ -2979,7 +2979,7 @@ class Receiver
 \section cmdpipe \\|
 
   \addindex \\|
-  This command write a pip symbol (\|) to the output. This
+  This command writes a pipe symbol (\|) to the output. This
   character has to be escaped in some cases, because it is used
   for Markdown tables.
 
index 6bd0b84..99c4e83 100644 (file)
@@ -1,4 +1,8 @@
-e******************************************************************************
+/* WARNING: This file is generated!
+ * Do not edit this file, but edit config.xml instead and run
+ * python configgen.py -doc config.xml to regenerate this file!
+ */
+/*
  *
  * 
  *
@@ -58,41 +62,41 @@ with these paths before the <code>\@INCLUDE</code> tag, e.g.:
 The configuration options can be divided into several categories.
 Below is an alphabetical index of the tags that are recognized 
 followed by the descriptions of the tags grouped by category.
-
 \secreflist
 \refitem cfg_abbreviate_brief ABBREVIATE_BRIEF
 \refitem cfg_aliases ALIASES
-\refitem cfg_allexternals ALLEXTERNALS 
-\refitem cfg_alphabetical_index ALPHABETICAL_INDEX 
+\refitem cfg_allexternals ALLEXTERNALS
+\refitem cfg_alphabetical_index ALPHABETICAL_INDEX
 \refitem cfg_always_detailed_sec ALWAYS_DETAILED_SEC
 \refitem cfg_autolink_support AUTOLINK_SUPPORT
 \refitem cfg_binary_toc BINARY_TOC
-\refitem cfg_brief_member_desc BRIEF_MEMBER_DESC 
+\refitem cfg_brief_member_desc BRIEF_MEMBER_DESC
 \refitem cfg_builtin_stl_support BUILTIN_STL_SUPPORT
-\refitem cfg_call_graph CALL_GRAPH
 \refitem cfg_caller_graph CALLER_GRAPH
-\refitem cfg_case_sense_names CASE_SENSE_NAMES 
+\refitem cfg_call_graph CALL_GRAPH
+\refitem cfg_case_sense_names CASE_SENSE_NAMES
 \refitem cfg_chm_file CHM_FILE
 \refitem cfg_chm_index_encoding CHM_INDEX_ENCODING
 \refitem cfg_cite_bib_files CITE_BIB_FILES
-\refitem cfg_clang_assisted_parsig CLANG_ASSISTED_PARSING
+\refitem cfg_clang_assisted_parsing CLANG_ASSISTED_PARSING
 \refitem cfg_clang_options CLANG_OPTIONS
-\refitem cfg_class_diagrams CLASS_DIAGRAMS 
+\refitem cfg_class_diagrams CLASS_DIAGRAMS
 \refitem cfg_class_graph CLASS_GRAPH
 \refitem cfg_collaboration_graph COLLABORATION_GRAPH
 \refitem cfg_cols_in_alpha_index COLS_IN_ALPHA_INDEX
-\refitem cfg_compact_latex COMPACT_LATEX 
+\refitem cfg_compact_latex COMPACT_LATEX
 \refitem cfg_compact_rtf COMPACT_RTF
 \refitem cfg_cpp_cli_support CPP_CLI_SUPPORT
 \refitem cfg_create_subdirs CREATE_SUBDIRS
 \refitem cfg_directory_graph DIRECTORY_GRAPH
-\refitem cfg_disable_index DISABLE_INDEX 
+\refitem cfg_disable_index DISABLE_INDEX
 \refitem cfg_distribute_group_doc DISTRIBUTE_GROUP_DOC
 \refitem cfg_docbook_output DOCBOOK_OUTPUT
 \refitem cfg_docset_bundle_id DOCSET_BUNDLE_ID
 \refitem cfg_docset_feedname DOCSET_FEEDNAME
 \refitem cfg_docset_publisher_id DOCSET_PUBLISHER_ID
 \refitem cfg_docset_publisher_name DOCSET_PUBLISHER_NAME
+\refitem cfg_dotfile_dirs DOTFILE_DIRS
 \refitem cfg_dot_cleanup DOT_CLEANUP
 \refitem cfg_dot_fontname DOT_FONTNAME
 \refitem cfg_dot_fontpath DOT_FONTPATH
@@ -103,11 +107,10 @@ followed by the descriptions of the tags grouped by category.
 \refitem cfg_dot_num_threads DOT_NUM_THREADS
 \refitem cfg_dot_path DOT_PATH
 \refitem cfg_dot_transparent DOT_TRANSPARENT
-\refitem cfg_dotfile_dirs DOTFILE_DIRS
 \refitem cfg_doxyfile_encoding DOXYFILE_ENCODING
 \refitem cfg_eclipse_doc_id ECLIPSE_DOC_ID
-\refitem cfg_enable_preprocessing ENABLE_PREPROCESSING
 \refitem cfg_enabled_sections ENABLED_SECTIONS
+\refitem cfg_enable_preprocessing ENABLE_PREPROCESSING
 \refitem cfg_enum_values_per_line ENUM_VALUES_PER_LINE
 \refitem cfg_example_path EXAMPLE_PATH
 \refitem cfg_example_patterns EXAMPLE_PATTERNS
@@ -118,14 +121,11 @@ followed by the descriptions of the tags grouped by category.
 \refitem cfg_exclude_symlinks EXCLUDE_SYMLINKS
 \refitem cfg_expand_as_defined EXPAND_AS_DEFINED
 \refitem cfg_expand_only_predef EXPAND_ONLY_PREDEF
-\refitem cfg_ext_links_in_window EXT_LINKS_IN_WINDOW
 \refitem cfg_extension_mapping EXTENSION_MAPPING
 \refitem cfg_external_groups EXTERNAL_GROUPS
 \refitem cfg_external_pages EXTERNAL_PAGES
 \refitem cfg_external_search EXTERNAL_SEARCH
 \refitem cfg_external_search_id EXTERNAL_SEARCH_ID
-\refitem cfg_extra_packages EXTRA_PACKAGES
-\refitem cfg_extra_search_mappings EXTRA_SEARCH_MAPPINGS
 \refitem cfg_extract_all EXTRACT_ALL
 \refitem cfg_extract_anon_nspaces EXTRACT_ANON_NSPACES
 \refitem cfg_extract_local_classes EXTRACT_LOCAL_CLASSES
@@ -133,6 +133,9 @@ followed by the descriptions of the tags grouped by category.
 \refitem cfg_extract_package EXTRACT_PACKAGE
 \refitem cfg_extract_private EXTRACT_PRIVATE
 \refitem cfg_extract_static EXTRACT_STATIC
+\refitem cfg_extra_packages EXTRA_PACKAGES
+\refitem cfg_extra_search_mappings EXTRA_SEARCH_MAPPINGS
+\refitem cfg_ext_links_in_window EXT_LINKS_IN_WINDOW
 \refitem cfg_file_patterns FILE_PATTERNS
 \refitem cfg_file_version_filter FILE_VERSION_FILTER
 \refitem cfg_filter_patterns FILTER_PATTERNS
@@ -172,7 +175,6 @@ followed by the descriptions of the tags grouped by category.
 \refitem cfg_hide_undoc_classes HIDE_UNDOC_CLASSES
 \refitem cfg_hide_undoc_members HIDE_UNDOC_MEMBERS
 \refitem cfg_hide_undoc_relations HIDE_UNDOC_RELATIONS
-\refitem cfg_html_align_members HTML_ALIGN_MEMBERS
 \refitem cfg_html_colorstyle_gamma HTML_COLORSTYLE_GAMMA
 \refitem cfg_html_colorstyle_hue HTML_COLORSTYLE_HUE
 \refitem cfg_html_colorstyle_sat HTML_COLORSTYLE_SAT
@@ -189,10 +191,10 @@ followed by the descriptions of the tags grouped by category.
 \refitem cfg_idl_property_support IDL_PROPERTY_SUPPORT
 \refitem cfg_ignore_prefix IGNORE_PREFIX
 \refitem cfg_image_path IMAGE_PATH
+\refitem cfg_included_by_graph INCLUDED_BY_GRAPH
 \refitem cfg_include_file_patterns INCLUDE_FILE_PATTERNS
 \refitem cfg_include_graph INCLUDE_GRAPH
 \refitem cfg_include_path INCLUDE_PATH
-\refitem cfg_included_by_graph INCLUDED_BY_GRAPH
 \refitem cfg_inherit_docs INHERIT_DOCS
 \refitem cfg_inline_grouped_classes INLINE_GROUPED_CLASSES
 \refitem cfg_inline_info INLINE_INFO
@@ -222,10 +224,10 @@ followed by the descriptions of the tags grouped by category.
 \refitem cfg_man_links MAN_LINKS
 \refitem cfg_man_output MAN_OUTPUT
 \refitem cfg_markdown_support MARKDOWN_SUPPORT
+\refitem cfg_mathjax_codefile MATHJAX_CODEFILE
 \refitem cfg_mathjax_extensions MATHJAX_EXTENSIONS
 \refitem cfg_mathjax_format MATHJAX_FORMAT
 \refitem cfg_mathjax_relpath MATHJAX_RELPATH
-\refitem cfg_mathjax_codefile MATHJAX_CODEFILE
 \refitem cfg_max_dot_graph_depth MAX_DOT_GRAPH_DEPTH
 \refitem cfg_max_initializer_lines MAX_INITIALIZER_LINES
 \refitem cfg_mscfile_dirs MSCFILE_DIRS
@@ -239,10 +241,10 @@ followed by the descriptions of the tags grouped by category.
 \refitem cfg_output_language OUTPUT_LANGUAGE
 \refitem cfg_paper_type PAPER_TYPE
 \refitem cfg_pdf_hyperlinks PDF_HYPERLINKS
-\refitem cfg_perl_path PERL_PATH
 \refitem cfg_perlmod_latex PERLMOD_LATEX
 \refitem cfg_perlmod_makevar_prefix PERLMOD_MAKEVAR_PREFIX
 \refitem cfg_perlmod_pretty PERLMOD_PRETTY
+\refitem cfg_perl_path PERL_PATH
 \refitem cfg_predefined PREDEFINED
 \refitem cfg_project_brief PROJECT_BRIEF
 \refitem cfg_project_logo PROJECT_LOGO
@@ -266,10 +268,10 @@ followed by the descriptions of the tags grouped by category.
 \refitem cfg_rtf_hyperlinks RTF_HYPERLINKS
 \refitem cfg_rtf_output RTF_OUTPUT
 \refitem cfg_rtf_stylesheet_file RTF_STYLESHEET_FILE
-\refitem cfg_search_includes SEARCH_INCLUDES
 \refitem cfg_searchdata_file SEARCHDATA_FILE
 \refitem cfg_searchengine SEARCHENGINE
 \refitem cfg_searchengine_url SEARCHENGINE_URL
+\refitem cfg_search_includes SEARCH_INCLUDES
 \refitem cfg_separate_member_pages SEPARATE_MEMBER_PAGES
 \refitem cfg_server_based_search SERVER_BASED_SEARCH
 \refitem cfg_short_names SHORT_NAMES
@@ -282,9 +284,10 @@ followed by the descriptions of the tags grouped by category.
 \refitem cfg_sort_brief_docs SORT_BRIEF_DOCS
 \refitem cfg_sort_by_scope_name SORT_BY_SCOPE_NAME
 \refitem cfg_sort_group_names SORT_GROUP_NAMES
+\refitem cfg_sort_members_ctors_1st SORT_MEMBERS_CTORS_1ST
 \refitem cfg_sort_member_docs SORT_MEMBER_DOCS
-\refitem cfg_sort_members_constructors_first SORT_MEMBERS_CTORS_1ST
 \refitem cfg_source_browser SOURCE_BROWSER
+\refitem cfg_source_tooltips SOURCE_TOOLTIPS
 \refitem cfg_strict_proto_matching STRICT_PROTO_MATCHING
 \refitem cfg_strip_code_comments STRIP_CODE_COMMENTS
 \refitem cfg_strip_from_inc_path STRIP_FROM_INC_PATH
@@ -304,20 +307,19 @@ followed by the descriptions of the tags grouped by category.
 \refitem cfg_use_mdfile_as_mainpage USE_MDFILE_AS_MAINPAGE
 \refitem cfg_use_pdflatex USE_PDFLATEX
 \refitem cfg_verbatim_headers VERBATIM_HEADERS
+\refitem cfg_warnings WARNINGS
 \refitem cfg_warn_format WARN_FORMAT
 \refitem cfg_warn_if_doc_error WARN_IF_DOC_ERROR
 \refitem cfg_warn_if_undocumented WARN_IF_UNDOCUMENTED
 \refitem cfg_warn_logfile WARN_LOGFILE
 \refitem cfg_warn_no_paramdoc WARN_NO_PARAMDOC
-\refitem cfg_warnings WARNINGS
 \refitem cfg_xml_dtd XML_DTD
 \refitem cfg_xml_output XML_OUTPUT
 \refitem cfg_xml_programlisting XML_PROGRAMLISTING
 \refitem cfg_xml_schema XML_SCHEMA
 \endsecreflist
-
-\section config_project Project related options
-\anchor cfg_doxyfile_encoding
+\section config_project Project related configuration options
+ \anchor cfg_doxyfile_encoding
 <dl>
 
 <dt>\c DOXYFILE_ENCODING <dd>
@@ -328,85 +330,138 @@ followed by the descriptions of the tags grouped by category.
  \c libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of
  possible encodings.
 
-\anchor cfg_project_name
+The default value is: <code>UTF-8</code>.
+
+ \anchor cfg_project_name
 <dt>\c PROJECT_NAME <dd>
  \addindex PROJECT_NAME
  The \c PROJECT_NAME tag is a single word (or a sequence of words
- surrounded by double-quotes) that should identify the project for which the 
+ surrounded by double-quotes, unless you are using Doxywizard) that should identify the project for which the 
  documentation is generated. This name is used in the title of most 
  generated pages and in a few other places.
 
-\anchor cfg_project_number
+The default value is: <code>My Project</code>.
+
+ \anchor cfg_project_number
 <dt>\c PROJECT_NUMBER <dd>
  \addindex PROJECT_NUMBER
  The \c PROJECT_NUMBER tag can be used to enter a project or revision number.
  This could be handy for archiving the generated documentation or
  if some version control system is used.
 
-\anchor cfg_project_brief
+ \anchor cfg_project_brief
 <dt>\c PROJECT_BRIEF <dd>
+ \addindex PROJECT_BRIEF
  Using the \c PROJECT_BRIEF tag one can provide an optional one line description 
  for a project that appears at the top of each page and should give viewer 
- a quick idea about the purpose of the project. Keep the description short. 
+ a quick idea about the purpose of the project. Keep the description short.
 
-\anchor cfg_project_logo
+ \anchor cfg_project_logo
 <dt>\c PROJECT_LOGO <dd>
+ \addindex PROJECT_LOGO
  With the \c PROJECT_LOGO tag one can specify an logo or icon that is 
  included in the documentation. The maximum height of the logo should not 
  exceed 55 pixels and the maximum width should not exceed 200 pixels. 
  Doxygen will copy the logo to the output directory.
 
-\anchor cfg_output_directory
-<dt>\c OUTPUT_DIRECTORY <dd> 
+ \anchor cfg_output_directory
+<dt>\c OUTPUT_DIRECTORY <dd>
  \addindex OUTPUT_DIRECTORY
  The \c OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
  path into which the generated documentation will be written. 
  If a relative path is entered, it will be relative to the location 
  where doxygen was started. If left blank the current directory will be used.
 
-\anchor cfg_create_subdirs
-<dt>\c CREATE_SUBDIRS <dd> 
+ \anchor cfg_create_subdirs
+<dt>\c CREATE_SUBDIRS <dd>
  \addindex CREATE_SUBDIRS
  If the \c CREATE_SUBDIRS tag is set to \c YES, then doxygen will create
  4096 sub-directories (in 2 levels) under the output directory of each output 
  format and will distribute the generated files over these directories. 
  Enabling this option can be useful when feeding doxygen a huge amount of source
  files, where putting all generated files in the same directory would otherwise
- causes performance problems for the file system. 
+ causes performance problems for the file system.
+
 
-\anchor cfg_output_language
+The default value is: <code>NO</code>.
+
+ \anchor cfg_output_language
 <dt>\c OUTPUT_LANGUAGE <dd>
  \addindex OUTPUT_LANGUAGE
  The \c OUTPUT_LANGUAGE tag is used to specify the language in which all
  documentation generated by doxygen is written. Doxygen will use this
  information to generate all constant output in the proper language.
- The default language is English, other supported languages are:
- Afrikaans, Arabic, Brazilian, Catalan, Chinese, Croatian, Czech, Danish, Dutch, 
- Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, 
- Latvian, Lithuanian, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, 
- Serbian,  Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
 
-\anchor cfg_brief_member_desc
+Possible values are: 
+<code>Afrikaans</code>, 
+<code>Arabic</code>, 
+<code>Brazilian</code>, 
+<code>Catalan</code>, 
+<code>Chinese</code>, 
+<code>Chinese-Traditional</code>, 
+<code>Croatian</code>, 
+<code>Czech</code>, 
+<code>Danish</code>, 
+<code>Dutch</code>, 
+<code>English</code>, 
+<code>Esperanto</code>, 
+<code>Farsi</code>, 
+<code>Finnish</code>, 
+<code>French</code>, 
+<code>German</code>, 
+<code>Greek</code>, 
+<code>Hungarian</code>, 
+<code>Italian</code>, 
+<code>Japanese</code>, 
+<code>Japanese-en</code>, 
+<code>Korean</code>, 
+<code>Korean-en</code>, 
+<code>Latvian</code>, 
+<code>Norwegian</code>, 
+<code>Macedonian</code>, 
+<code>Persian</code>, 
+<code>Polish</code>, 
+<code>Portuguese</code>, 
+<code>Romanian</code>, 
+<code>Russian</code>, 
+<code>Serbian</code>, 
+<code>Slovak</code>, 
+<code>Slovene</code>, 
+<code>Spanish</code>, 
+<code>Swedish</code>, 
+<code>Turkish</code>, 
+<code>Ukrainian</code> and 
+<code>Vietnamese</code>.
+
+
+The default value is: <code>English</code>.
+
+ \anchor cfg_brief_member_desc
 <dt>\c BRIEF_MEMBER_DESC <dd>
  \addindex BRIEF_MEMBER_DESC
- If the \c BRIEF_MEMBER_DESC tag is set to \c YES (the default) doxygen will
+ If the \c BRIEF_MEMBER_DESC tag is set to \c YES doxygen will
  include brief member descriptions after the members that are listed in
  the file and class documentation (similar to \c Javadoc).
  Set to \c NO to disable this.
 
-\anchor cfg_repeat_brief
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_repeat_brief
 <dt>\c REPEAT_BRIEF <dd>
  \addindex REPEAT_BRIEF
- If the \c REPEAT_BRIEF tag is set to \c YES (the default) doxygen will 
+ If the \c REPEAT_BRIEF tag is set to \c YES doxygen will 
  prepend the brief description of a member or function before the detailed 
  description 
-
- \par Note: 
+ <br>Note: 
  If both \ref cfg_hide_undoc_members "HIDE_UNDOC_MEMBERS" and
  \ref cfg_brief_member_desc "BRIEF_MEMBER_DESC" are set to \c NO, the 
  brief descriptions will be completely suppressed.
 
-\anchor cfg_abbreviate_brief
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_abbreviate_brief
 <dt>\c ABBREVIATE_BRIEF <dd>
  \addindex ABBREVIATE_BRIEF
  This tag implements a quasi-intelligent brief description abbreviator
@@ -414,11 +469,21 @@ followed by the descriptions of the tags grouped by category.
  in this list, if found as the leading text of the brief description, will be
  stripped from the text and the result, after processing the whole list, is used
  as the annotated text. Otherwise, the brief description is used as-is. If left
- blank, the following values are used ("$name" is automatically replaced with the
- name of the entity): "The $name class" "The $name widget" "The $name file"
- "is" "provides" "specifies" "contains" "represents" "a" "an" "the".
-
-\anchor cfg_always_detailed_sec
+ blank, the following values are used (`$name` is automatically replaced with the
+ name of the entity):
+<code>The $name class</code>, 
+<code>The $name widget</code>, 
+<code>The $name file</code>, 
+<code>is</code>, 
+<code>provides</code>, 
+<code>specifies</code>, 
+<code>contains</code>, 
+<code>represents</code>, 
+<code>a</code>, 
+<code>an</code> and 
+<code>the</code>.
+
+ \anchor cfg_always_detailed_sec
 <dt>\c ALWAYS_DETAILED_SEC <dd>
  \addindex ALWAYS_DETAILED_SEC
  If the \c ALWAYS_DETAILED_SEC and \ref cfg_repeat_brief "REPEAT_BRIEF" tags 
@@ -426,127 +491,90 @@ followed by the descriptions of the tags grouped by category.
  doxygen will generate a detailed section even if there is only a brief
  description.
 
-\anchor cfg_inline_inherited_memb
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_inline_inherited_memb
 <dt>\c INLINE_INHERITED_MEMB <dd>
-\addindex INLINE_INHERITED_MEMB
+ \addindex INLINE_INHERITED_MEMB
  If the \c INLINE_INHERITED_MEMB tag is set to \c YES, doxygen will show all inherited
  members of a class in the documentation of that class as if those members were
  ordinary class members. Constructors, destructors and assignment operators of
  the base classes will not be shown.
 
-\anchor cfg_full_path_names
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_full_path_names
 <dt>\c FULL_PATH_NAMES <dd>
  \addindex FULL_PATH_NAMES
  If the \c FULL_PATH_NAMES tag is set to \c YES doxygen will prepend the full
  path before files name in the file list and in the header files. If set
  to \c NO the shortest path that makes the file name unique will be used
 
-\anchor cfg_strip_from_path
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_strip_from_path
 <dt>\c STRIP_FROM_PATH <dd>
  \addindex STRIP_FROM_PATH
If the \ref cfg_full_path_names "FULL_PATH_NAMES" tag is set to \c YES then the \c STRIP_FROM_PATH tag
The \c STRIP_FROM_PATH tag
  can be used to strip a user-defined part of the path. Stripping is
  only done if one of the specified strings matches the left-hand part of the 
  path. The tag can be used to show relative paths in the file list.
  If left blank the directory from which doxygen is run is used as the
  path to strip.
+ <br>Note that you can specify absolute paths here, but also 
+ relative paths, which will be relative from the directory where doxygen is 
+ started.
+
 
-\anchor cfg_strip_from_inc_path
+This tag requires that the tag \ref cfg_full_path_names "FULL_PATH_NAMES" is set to \c YES.
+ \anchor cfg_strip_from_inc_path
 <dt>\c STRIP_FROM_INC_PATH <dd>
  \addindex STRIP_FROM_INC_PATH
  The \c STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
  the path mentioned in the documentation of a class, which tells
  the reader which header file to include in order to use a class. 
  If left blank only the name of the header file containing the class
- definition is used. Otherwise one should specify the include paths that 
+ definition is used. Otherwise one should specify the list of include paths that 
  are normally passed to the compiler using the `-I` flag.
 
-\anchor cfg_short_names
+ \anchor cfg_short_names
 <dt>\c SHORT_NAMES <dd>
  \addindex SHORT_NAMES
  If the \c SHORT_NAMES tag is set to \c YES, doxygen will generate much shorter
  (but less readable) file names. This can be useful is your file systems
  doesn't support long names like on DOS, Mac, or CD-ROM.
 
-\anchor cfg_javadoc_autobrief
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_javadoc_autobrief
 <dt>\c JAVADOC_AUTOBRIEF <dd>
  \addindex JAVADOC_AUTOBRIEF
-  If the \c JAVADOC_AUTOBRIEF is set to \c YES then doxygen
+  If the \c JAVADOC_AUTOBRIEF tag is set to \c YES then doxygen
   will interpret the first line (until the first dot) of a Javadoc-style
-  comment as the brief description. If set to \c NO (the default), the 
+  comment as the brief description. If set to \c NO, the 
   Javadoc-style will behave just like regular Qt-style comments
   (thus requiring an explicit \ref cmdbrief "\@brief" command for a brief description.)
 
-\anchor cfg_qt_autobrief
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_qt_autobrief
 <dt>\c QT_AUTOBRIEF <dd>
  \addindex QT_AUTOBRIEF
-  If the \c QT_AUTOBRIEF is set to \c YES then doxygen
+  If the \c QT_AUTOBRIEF tag is set to \c YES then doxygen
   will interpret the first line (until the first dot) of a Qt-style
-  comment as the brief description. If set to \c NO (the default), the
+  comment as the brief description. If set to \c NO, the
   Qt-style will behave just like regular Qt-style comments (thus
   requiring an explicit \ref cmdbrief "\\brief" command for a brief description.)
 
-\anchor cfg_markdown_support
-<dt>\c MARKDOWN_SUPPORT <dd>
- \addindex MARKDOWN_SUPPORT
- If \c MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all 
- comments according to the Markdown format, which allows for more readable 
- documentation. See http://daringfireball.net/projects/markdown/ for details. 
- The output of markdown processing is further processed by doxygen, so you 
- can mix doxygen, HTML, and XML commands with Markdown formatting. 
- Disable only in case of backward compatibilities issues. 
-
-\anchor cfg_autolink_support
-<dt>\c AUTOLINK_SUPPORT <dd>
- \addindex AUTOLINK_SUPPORT
- When enabled doxygen tries to link words that correspond to documented classes, 
- or namespaces to their corresponding documentation. Such a link can be 
- prevented in individual cases by by putting a \c % sign in front of the word or 
- globally by setting \c AUTOLINK_SUPPORT to \c NO.
-
-\anchor cfg_builtin_stl_support
-<dt>\c BUILTIN_STL_SUPPORT <dd>
- \addindex BUILTIN_STL_SUPPORT
- If you use STL classes (i.e. `std::string`, `std::vector`, etc.) but do not want to
- include (a tag file for) the STL sources as input, then you should
- set this tag to \c YES in order to let doxygen match functions declarations and
- definitions whose arguments contain STL classes (e.g. `func(std::string`); versus
- `func(std::string) {}`). This also make the inheritance and collaboration
- diagrams that involve STL classes more complete and accurate.
-
-\anchor cfg_cpp_cli_support
-<dt>\c CPP_CLI_SUPPORT <dd>
- \addindex CPP_CLI_SUPPORT
- If you use Microsoft's C++/CLI language, you should set this option to \c YES to
- enable parsing support.
-
-\anchor cfg_sip_support
-<dt>\c SIP_SUPPORT <dd>
- \addindex OPTIMIZE_OUTPUT_SIP
- Set the \c SIP_SUPPORT tag to \c YES if your project consists 
- of <a href="http://www.riverbankcomputing.co.uk/software/sip/intro">sip</a> sources only. 
- Doxygen will parse them like normal C++ but will assume all classes use public 
- instead of private inheritance when no explicit protection keyword is present. 
-
-\anchor cfg_idl_property_support
-<dt>\c IDL_PROPERTY_SUPPORT <dd>
- \addindex IDL_PROPERTY_SUPPORT
- For Microsoft's IDL there are \c propget and \c propput attributes to indicate getter
- and setter methods for a property. Setting this option to \c YES (the default)
- will make doxygen to replace the get and set methods by a property in the
- documentation. This will only work if the methods are indeed getting or 
- setting a simple type. If this is not the case, or you want to show the 
- methods anyway, you should set this option to \c NO.
 
-\anchor cfg_distribute_group_doc
-<dt>\c DISTRIBUTE_GROUP_DOC <dd>
- \addindex DISTRIBUTE_GROUP_DOC
- If member grouping is used in the documentation and the \c DISTRIBUTE_GROUP_DOC
- tag is set to \c YES, then doxygen will reuse the documentation of the first
- member in the group (if any) for the other members of the group. By default
- all members of a group must be documented explicitly.
+The default value is: <code>NO</code>.
 
-\anchor cfg_multiline_cpp_is_brief
+ \anchor cfg_multiline_cpp_is_brief
 <dt>\c MULTILINE_CPP_IS_BRIEF <dd>
  \addindex MULTILINE_CPP_IS_BRIEF
   The \c MULTILINE_CPP_IS_BRIEF tag can be set to \c YES to make doxygen
@@ -554,140 +582,247 @@ followed by the descriptions of the tags grouped by category.
   comments) as a brief description. This used to be the default behavior.
   The new default is to treat a multi-line C++ comment block as a detailed
   description. Set this tag to \c YES if you prefer the old behavior instead.
-  Note that setting this tag to \c YES also means that rational rose comments
+  <br>Note that setting this tag to \c YES also means that rational rose comments
   are not recognized any more.
 
-<!--
-\anchor cfg_details_at_top
-<dt>\c DETAILS_AT_TOP <dd>
- \addindex DETAILS_AT_TOP
-  If the \c DETAILS_AT_TOP tag is set to \c YES then doxygen
-  will output the detailed description near the top, like \c Javadoc.
-  If set to \c NO, the detailed description appears after the member
-  documentation.
--->
-
-\anchor cfg_inherit_docs
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_inherit_docs
 <dt>\c INHERIT_DOCS <dd>
  \addindex INHERIT_DOCS
- If the \c INHERIT_DOCS tag is set to \c YES (the default) then an undocumented
+ If the \c INHERIT_DOCS tag is set to \c YES then an undocumented
  member inherits the documentation from any documented member that it
  re-implements.
 
-\anchor cfg_separate_member_pages
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_separate_member_pages
 <dt>\c SEPARATE_MEMBER_PAGES <dd>
  \addindex SEPARATE_MEMBER_PAGES
  If the \c SEPARATE_MEMBER_PAGES tag is set to \c YES, then doxygen will produce
  a new page for each member. If set to \c NO, the documentation of a member will
  be part of the file/class/namespace that contains it.
 
-\anchor cfg_tab_size
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_tab_size
 <dt>\c TAB_SIZE <dd>
  \addindex TAB_SIZE
the \c TAB_SIZE tag can be used to set the number of spaces in a tab.
The \c TAB_SIZE tag can be used to set the number of spaces in a tab.
  Doxygen uses this value to replace tabs by spaces in code fragments.
 
-\anchor cfg_aliases
+
+ Minimum value: <code>1</code>, maximum value: <code>16</code>, default value: <code>4</code>.
+
+ \anchor cfg_aliases
 <dt>\c ALIASES <dd>
  \addindex ALIASES
- This tag can be used to specify a number of aliases that act
- as commands in the documentation. An alias has the form 
+ This tag can be used to specify a number of aliases that act
+ as commands in the documentation. An alias has the form: 
 \verbatim
  name=value
 \endverbatim
  For example adding 
 \verbatim
- "sideeffect=\par Side Effects:\n" 
+ "sideeffect=@par Side Effects:\n" 
 \endverbatim
  will allow you to
- put the command \\sideeffect (or \@sideeffect) in the documentation, which 
+ put the command \c \\sideeffect (or \c \@sideeffect) in the documentation, which 
  will result in a user-defined paragraph with heading "Side Effects:".
  You can put \ref cmdn "\\n"'s in the value part of an alias to insert newlines.
 
-\anchor cfg_tcl_subst
+ \anchor cfg_tcl_subst
 <dt>\c TCL_SUBST <dd>
  \addindex TCL_SUBST
  This tag can be used to specify a number of word-keyword mappings (TCL only). 
- A mapping has the form "name=value". For example adding 
"class=itcl::class" will allow you to use the command class in the 
itcl::class meaning.
+ A mapping has the form <code>"name=value"</code>. For example adding 
<code>"class=itcl::class"</code> will allow you to use the command class in the 
<code>itcl::class</code> meaning.
 
-\anchor cfg_optimize_output_for_c
+ \anchor cfg_optimize_output_for_c
 <dt>\c OPTIMIZE_OUTPUT_FOR_C <dd>
  \addindex OPTIMIZE_OUTPUT_FOR_C
  Set the \c OPTIMIZE_OUTPUT_FOR_C tag to \c YES if your project consists 
  of C sources only. Doxygen will then generate output that is more tailored 
  for C. For instance, some of the names that are used will be different. 
- The list of all members will be omitted, etc. 
+ The list of all members will be omitted, etc.
 
-\anchor cfg_optimize_output_java
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_optimize_output_java
 <dt>\c OPTIMIZE_OUTPUT_JAVA <dd>
  \addindex OPTIMIZE_OUTPUT_JAVA
- Set the OPTIMIZE_OUTPUT_JAVA tag to \c YES if your project consists of Java or
+ Set the \c OPTIMIZE_OUTPUT_JAVA tag to \c YES if your project consists of Java or
  Python sources only. Doxygen will then generate output that is more tailored 
  for that language. For instance, namespaces will be presented as packages, 
- qualified scopes will look different, etc. 
+ qualified scopes will look different, etc.
+
+
+The default value is: <code>NO</code>.
 
-\anchor cfg_optimize_for_fortran
+ \anchor cfg_optimize_for_fortran
 <dt>\c OPTIMIZE_FOR_FORTRAN <dd>
  \addindex OPTIMIZE_FOR_FORTRAN
  Set the \c OPTIMIZE_FOR_FORTRAN tag to \c YES if your project consists of Fortran 
  sources. Doxygen will then generate output that is tailored for Fortran.
 
-\anchor cfg_optimize_output_vhdl
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_optimize_output_vhdl
 <dt>\c OPTIMIZE_OUTPUT_VHDL <dd>
  \addindex OPTIMIZE_OUTPUT_VHDL
  Set the \c OPTIMIZE_OUTPUT_VHDL tag to \c YES if your project consists of VHDL 
  sources. Doxygen will then generate output that is tailored for VHDL.
 
-\anchor cfg_extension_mapping
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_extension_mapping
 <dt>\c EXTENSION_MAPPING <dd>
  \addindex EXTENSION_MAPPING
  Doxygen selects the parser to use depending on the extension of the files it parses.
  With this tag you can assign which parser to use for a given extension.
  Doxygen has a built-in mapping, but you can override or extend it using this tag.
- The format is ext=language, where ext is a file extension, and language is one of
+ The format is <code>ext=language</code>, where \c ext is a file extension, and language is one of
  the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
  Objective-C, Python, Fortran, VHDL. 
 
  For instance to make doxygen treat
.inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
<code>.inc</code> files as Fortran files (default is PHP), and <code>.f</code> files as C (default is Fortran),
  use: `inc=Fortran f=C`.
 
- For files without extension you can use `no_extension` as a placeholder.
+ <br>Note For files without extension you can use `no_extension` as a placeholder.
+ <br>Note that for custom extensions you also need to set \ref cfg_file_patterns "FILE_PATTERNS" otherwise the 
+ files are not read by doxygen.
+
+ \anchor cfg_markdown_support
+<dt>\c MARKDOWN_SUPPORT <dd>
+ \addindex MARKDOWN_SUPPORT
+ If the \c MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all 
+ comments according to the Markdown format, which allows for more readable 
+ documentation. See http://daringfireball.net/projects/markdown/ for details. 
+ The output of markdown processing is further processed by doxygen, so you 
+ can mix doxygen, HTML, and XML commands with Markdown formatting. 
+ Disable only in case of backward compatibilities issues.
+
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_autolink_support
+<dt>\c AUTOLINK_SUPPORT <dd>
+ \addindex AUTOLINK_SUPPORT
+ When enabled doxygen tries to link words that correspond to documented classes, 
+ or namespaces to their corresponding documentation. Such a link can be 
+ prevented in individual cases by by putting a \c % sign in front of the word or 
+ globally by setting \c AUTOLINK_SUPPORT to \c NO.
+
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_builtin_stl_support
+<dt>\c BUILTIN_STL_SUPPORT <dd>
+ \addindex BUILTIN_STL_SUPPORT
+ If you use STL classes (i.e. `std::string`, `std::vector`, etc.) but do not want to
+ include (a tag file for) the STL sources as input, then you should
+ set this tag to \c YES in order to let doxygen match functions declarations and
+ definitions whose arguments contain STL classes (e.g. `func(std::string`); versus
+ `func(std::string) {}`). This also make the inheritance and collaboration
+ diagrams that involve STL classes more complete and accurate.
+
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_cpp_cli_support
+<dt>\c CPP_CLI_SUPPORT <dd>
+ \addindex CPP_CLI_SUPPORT
+ If you use Microsoft's C++/CLI language, you should set this option to \c YES to
+ enable parsing support.
+
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_sip_support
+<dt>\c SIP_SUPPORT <dd>
+ \addindex SIP_SUPPORT
+ Set the \c SIP_SUPPORT tag to \c YES if your project consists 
+ of <a href="http://www.riverbankcomputing.co.uk/software/sip/intro">sip</a> sources only. 
+ Doxygen will parse them like normal C++ but will assume all classes use public 
+ instead of private inheritance when no explicit protection keyword is present.
+
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_idl_property_support
+<dt>\c IDL_PROPERTY_SUPPORT <dd>
+ \addindex IDL_PROPERTY_SUPPORT
+ For Microsoft's IDL there are \c propget and \c propput attributes to indicate getter
+ and setter methods for a property. Setting this option to \c YES
+ will make doxygen to replace the get and set methods by a property in the
+ documentation. This will only work if the methods are indeed getting or 
+ setting a simple type. If this is not the case, or you want to show the 
+ methods anyway, you should set this option to \c NO.
+
 
-\anchor cfg_subgrouping
+The default value is: <code>YES</code>.
+
+ \anchor cfg_distribute_group_doc
+<dt>\c DISTRIBUTE_GROUP_DOC <dd>
+ \addindex DISTRIBUTE_GROUP_DOC
+ If member grouping is used in the documentation and the \c DISTRIBUTE_GROUP_DOC
+ tag is set to \c YES, then doxygen will reuse the documentation of the first
+ member in the group (if any) for the other members of the group. By default
+ all members of a group must be documented explicitly.
+
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_subgrouping
 <dt>\c SUBGROUPING <dd>
  \addindex SUBGROUPING
- Set the \c SUBGROUPING tag to \c YES (the default) to allow class member groups of
+ Set the \c SUBGROUPING tag to \c YES to allow class member groups of
  the same type (for instance a group of public functions) to be put as a
  subgroup of that type (e.g. under the Public Functions section). Set it to
  \c NO to prevent subgrouping. Alternatively, this can be done per class using
- the \ref cmdnosubgrouping "\\nosubgrouping" command. 
+ the \ref cmdnosubgrouping "\\nosubgrouping" command.
+
+
+The default value is: <code>YES</code>.
 
-\anchor cfg_inline_grouped_classes
+ \anchor cfg_inline_grouped_classes
 <dt>\c INLINE_GROUPED_CLASSES <dd>
  \addindex INLINE_GROUPED_CLASSES
-When the \c INLINE_GROUPED_CLASSES tag is set to \c YES, classes, structs and 
-unions are shown inside the group in which they are included 
-(e.g. using \ref cmdingroup "\\ingroup") instead of on a separate page (for HTML and Man pages) 
-or section (for \f$\mbox{\LaTeX}\f$ and RTF). Note that this feature does not work in
-combination with \ref cfg_separate_member_pages "SEPARATE_MEMBER_PAGES".
+ When the \c INLINE_GROUPED_CLASSES tag is set to \c YES, classes, structs and 
+ unions are shown inside the group in which they are included 
+ (e.g. using \ref cmdingroup "\\ingroup") instead of on a separate page (for HTML and Man pages) 
+ or section (for \f$\mbox{\LaTeX}\f$ and RTF).
+ <br>Note that this feature does not work in
+ combination with \ref cfg_separate_member_pages "SEPARATE_MEMBER_PAGES".
 
-\anchor cfg_inline_simple_structs
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_inline_simple_structs
 <dt>\c INLINE_SIMPLE_STRUCTS <dd>
  \addindex INLINE_SIMPLE_STRUCTS
-When the \c INLINE_SIMPLE_STRUCTS tag is set to \c YES, structs, classes, and 
-unions with only public data fields or simple typedef fields will be shown 
-inline in the documentation of the scope in which they are defined (i.e. file, 
-namespace, or group documentation), provided this scope is documented. If set 
-to \c NO (the default), structs, classes, and unions are shown on a separate 
-page (for HTML and Man pages) or section (for \f$\mbox{\LaTeX}\f$ and RTF).
-
-\anchor cfg_typedef_hides_struct 
+ When the \c INLINE_SIMPLE_STRUCTS tag is set to \c YES, structs, classes, and 
+ unions with only public data fields or simple typedef fields will be shown 
+ inline in the documentation of the scope in which they are defined (i.e. file, 
+ namespace, or group documentation), provided this scope is documented. If set 
+ to \c NO, structs, classes, and unions are shown on a separate 
+ page (for HTML and Man pages) or section (for \f$\mbox{\LaTeX}\f$ and RTF).
+
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_typedef_hides_struct
 <dt>\c TYPEDEF_HIDES_STRUCT <dd>
  \addindex TYPEDEF_HIDES_STRUCT
- When \c TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+ When \c TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or enum
  is documented as struct, union, or enum with the name of the typedef. So 
  <code>typedef struct TypeS {} TypeT</code>, will appear in the documentation as a struct 
  with name \c TypeT. When disabled the typedef will appear as a member of a file, 
@@ -695,7 +830,10 @@ page (for HTML and Man pages) or section (for \f$\mbox{\LaTeX}\f$ and RTF).
  be useful for C code in case the coding convention dictates that all compound 
  types are typedef'ed and only the typedef is referenced, never the tag name.
 
-\anchor cfg_lookup_cache_size
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_lookup_cache_size
 <dt>\c LOOKUP_CACHE_SIZE <dd>
  \addindex LOOKUP_CACHE_SIZE
  The size of the symbol lookup cache can be 
@@ -709,10 +847,12 @@ page (for HTML and Man pages) or section (for \f$\mbox{\LaTeX}\f$ and RTF).
  At the end of a run doxygen will report the cache usage and suggest the
  optimal cache size from a speed point of view.
 
-</dl>
 
-\section config_build Build related options
-\anchor cfg_extract_all
+ Minimum value: <code>0</code>, maximum value: <code>9</code>, default value: <code>0</code>.
+
+</dl>
+\section config_build Build related configuration options
+ \anchor cfg_extract_all
 <dl>
 
 <dt>\c EXTRACT_ALL <dd>
@@ -721,31 +861,43 @@ page (for HTML and Man pages) or section (for \f$\mbox{\LaTeX}\f$ and RTF).
  entities in documentation are documented, even if no documentation was 
  available. Private class members and static file members will be hidden 
  unless the \ref cfg_extract_private "EXTRACT_PRIVATE" respectively 
- \ref cfg_extract_static "EXTRACT_STATIC" tags are set to \c YES
+ \ref cfg_extract_static "EXTRACT_STATIC" tags are set to \c YES.
 
  \note This will also disable the warnings about undocumented members 
  that are normally produced when \ref cfg_warnings "WARNINGS" is 
- set to \c YES
+ set to \c YES.
+
+
+The default value is: <code>NO</code>.
 
-\anchor cfg_extract_private
+ \anchor cfg_extract_private
 <dt>\c EXTRACT_PRIVATE <dd>
  \addindex EXTRACT_PRIVATE
  If the \c EXTRACT_PRIVATE tag is set to \c YES all private members of a 
  class will be included in the documentation.
 
-\anchor cfg_extract_package
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_extract_package
 <dt>\c EXTRACT_PACKAGE <dd>
  \addindex EXTRACT_PACKAGE
  If the \c EXTRACT_PACKAGE tag is set to \c YES all members with package 
- or internal scope will be included in the documentation. 
+ or internal scope will be included in the documentation.
+
+
+The default value is: <code>NO</code>.
 
-\anchor cfg_extract_static
+ \anchor cfg_extract_static
 <dt>\c EXTRACT_STATIC <dd>
  \addindex EXTRACT_STATIC
  If the \c EXTRACT_STATIC tag is set to \c YES all static members of a file
  will be included in the documentation.
 
-\anchor cfg_extract_local_classes
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_extract_local_classes
 <dt>\c EXTRACT_LOCAL_CLASSES <dd>
  \addindex EXTRACT_LOCAL_CLASSES
  If the \c EXTRACT_LOCAL_CLASSES tag is set to \c YES classes (and structs) 
@@ -753,7 +905,21 @@ page (for HTML and Man pages) or section (for \f$\mbox{\LaTeX}\f$ and RTF).
  If set to \c NO only classes defined in header files are included. Does not
  have any effect for Java sources.
 
-\anchor cfg_extract_anon_nspaces
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_extract_local_methods
+<dt>\c EXTRACT_LOCAL_METHODS <dd>
+ \addindex EXTRACT_LOCAL_METHODS
+ This flag is only useful for Objective-C code. When set to \c YES local 
+ methods, which are defined in the implementation section but not in
+ the interface are included in the documentation.
+ If set to \c NO only methods in the interface are included.
+
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_extract_anon_nspaces
 <dt>\c EXTRACT_ANON_NSPACES <dd>
  \addindex EXTRACT_ANON_NSPACES
  If this flag is set to \c YES, the members of anonymous namespaces will be extracted
@@ -761,150 +927,181 @@ page (for HTML and Man pages) or section (for \f$\mbox{\LaTeX}\f$ and RTF).
  where file will be replaced with the base name of the file that contains the anonymous
  namespace. By default anonymous namespace are hidden.
 
-\anchor cfg_extract_local_methods
-<dt>\c EXTRACT_LOCAL_METHODS <dd>
- \addindex EXTRACT_LOCAL_METHODS
- This flag is only useful for Objective-C code. When set to \c YES local 
- methods, which are defined in the implementation section but not in
- the interface are included in the documentation.
- If set to \c NO (the default) only methods in the interface are included.
 
-\anchor cfg_hide_undoc_members
+The default value is: <code>NO</code>.
+
+ \anchor cfg_hide_undoc_members
 <dt>\c HIDE_UNDOC_MEMBERS <dd>
  \addindex HIDE_UNDOC_MEMBERS
  If the \c HIDE_UNDOC_MEMBERS tag is set to \c YES, doxygen will hide all
  undocumented members inside documented classes or files. 
- If set to \c NO (the default) these members will be included in the
+ If set to \c NO these members will be included in the
  various overviews, but no documentation section is generated.
  This option has no effect if \ref cfg_extract_all "EXTRACT_ALL" is enabled.
 
-\anchor cfg_hide_undoc_classes
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_hide_undoc_classes
 <dt>\c HIDE_UNDOC_CLASSES <dd>
  \addindex HIDE_UNDOC_CLASSES
- If the \c HIDE_UNDOC_CLASSESS tag is set to \c YES, doxygen will hide all
- undocumented classes.
- If set to \c NO (the default) these classes will be included in the
+ If the \c HIDE_UNDOC_CLASSES tag is set to \c YES, doxygen will hide all
+ undocumented classes that are normally visible in the class hierarchy. 
+ If set to \c NO these classes will be included in the
  various overviews.
  This option has no effect if \ref cfg_extract_all "EXTRACT_ALL" is enabled.
 
-\anchor cfg_hide_friend_compounds
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_hide_friend_compounds
 <dt>\c HIDE_FRIEND_COMPOUNDS <dd>
  \addindex HIDE_FRIEND_COMPOUNDS
  If the \c HIDE_FRIEND_COMPOUNDS tag is set to \c YES, doxygen will hide all
  friend (class|struct|union) declarations.
- If set to \c NO (the default) these declarations will be included in the
+ If set to \c NO these declarations will be included in the
  documentation.
-\anchor cfg_hide_in_body_docs
+
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_hide_in_body_docs
 <dt>\c HIDE_IN_BODY_DOCS <dd>
  \addindex HIDE_IN_BODY_DOCS
-If the \c HIDE_IN_BODY_DOCS tag is set to \c YES, doxygen will hide any 
-documentation blocks found inside the body of a function.
-If set to \c NO (the default) these blocks will be appended to the 
-function's detailed documentation block.
-\anchor cfg_internal_docs
+ If the \c HIDE_IN_BODY_DOCS tag is set to \c YES, doxygen will hide any 
+ documentation blocks found inside the body of a function.
+ If set to \c NO these blocks will be appended to the 
+ function's detailed documentation block.
+
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_internal_docs
 <dt>\c INTERNAL_DOCS <dd>
  \addindex INTERNAL_DOCS
  The \c INTERNAL_DOCS tag determines if documentation
  that is typed after a \ref cmdinternal "\\internal" command is included. If the tag is set
- to \c NO (the default) then the documentation will be excluded.
+ to \c NO then the documentation will be excluded.
  Set it to \c YES to include the internal documentation.
 
-\anchor cfg_case_sense_names
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_case_sense_names
 <dt>\c CASE_SENSE_NAMES <dd>
  \addindex CASE_SENSE_NAMES
  If the \c CASE_SENSE_NAMES tag is set to \c NO then doxygen
  will only generate file names in lower-case letters. If set to
  \c YES upper-case letters are also allowed. This is useful if you have
  classes or files whose names only differ in case and if your file system
- supports case sensitive file names. Windows users are advised to set this
+ supports case sensitive file names. Windows and Mac users are advised to set this
  option to \c NO.
 
-\anchor cfg_hide_scope_names
+
+The default value is: system dependent.
+
+ \anchor cfg_hide_scope_names
 <dt>\c HIDE_SCOPE_NAMES <dd>
  \addindex HIDE_SCOPE_NAMES
- If the \c HIDE_SCOPE_NAMES tag is set to \c NO (the default) then doxygen 
+ If the \c HIDE_SCOPE_NAMES tag is set to \c NO then doxygen 
  will show members with their full class and namespace scopes in the
- documentation. If set to \c YES the scope will be hidden. 
+ documentation. If set to \c YES the scope will be hidden.
+
+
+The default value is: <code>NO</code>.
 
-\anchor cfg_show_include_files
+ \anchor cfg_show_include_files
 <dt>\c SHOW_INCLUDE_FILES <dd>
  \addindex SHOW_INCLUDE_FILES
- If the SHOW_INCLUDE_FILES tag is set to \c YES (the default) then doxygen
+ If the \c SHOW_INCLUDE_FILES tag is set to \c YES then doxygen
  will put a list of the files that are included by a file in the documentation 
  of that file.
 
-\anchor cfg_force_local_includes
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_force_local_includes
 <dt>\c FORCE_LOCAL_INCLUDES <dd>
  \addindex FORCE_LOCAL_INCLUDES
  If the \c FORCE_LOCAL_INCLUDES tag is set to \c YES then doxygen 
  will list include files with double quotes in the documentation 
  rather than with sharp brackets.
 
-\anchor cfg_inline_info
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_inline_info
 <dt>\c INLINE_INFO <dd>
- \addindex INLINE_INFO 
- If the \c INLINE_INFO tag is set to \c YES (the default) then a tag [inline]
+ \addindex INLINE_INFO
+ If the \c INLINE_INFO tag is set to \c YES then a tag [inline]
  is inserted in the documentation for inline members.
 
-\anchor cfg_sort_member_docs
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_sort_member_docs
 <dt>\c SORT_MEMBER_DOCS <dd>
  \addindex SORT_MEMBER_DOCS
- If the \c SORT_MEMBER_DOCS tag is set to \c YES (the default) then doxygen
+ If the \c SORT_MEMBER_DOCS tag is set to \c YES then doxygen
  will sort the (detailed) documentation of file and class members
  alphabetically by member name. If set to \c NO the members will appear in
  declaration order.
 
-\anchor cfg_sort_brief_docs
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_sort_brief_docs
 <dt>\c SORT_BRIEF_DOCS <dd>
  \addindex SORT_BRIEF_DOCS
  If the \c SORT_BRIEF_DOCS tag is set to \c YES then doxygen will sort the
  brief descriptions of file, namespace and class members alphabetically
- by member name. If set to \c NO (the default) the members will appear in
+ by member name. If set to \c NO the members will appear in
  declaration order.
 
 
-\anchor cfg_sort_group_names
+The default value is: <code>NO</code>.
+
+ \anchor cfg_sort_members_ctors_1st
+<dt>\c SORT_MEMBERS_CTORS_1ST <dd>
+ \addindex SORT_MEMBERS_CTORS_1ST
+ If the \c SORT_MEMBERS_CTORS_1ST tag is set to \c YES then doxygen
+ will sort the (brief and detailed) documentation of class members so that
+ constructors and destructors are listed first. If set to \c NO
+ the constructors will appear in the respective orders defined by
+ \ref cfg_sort_brief_docs "SORT_BRIEF_DOCS" and \ref cfg_sort_member_docs "SORT_MEMBER_DOCS".
+ \note If \ref cfg_sort_brief_docs "SORT_BRIEF_DOCS" is set to \c NO this option is ignored for
+       sorting brief member documentation.
+ \note If \ref cfg_sort_member_docs "SORT_MEMBER_DOCS" is set to \c NO this option is ignored for
+       sorting detailed member documentation.
+
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_sort_group_names
 <dt>\c SORT_GROUP_NAMES <dd>
  \addindex SORT_GROUP_NAMES
  If the \c SORT_GROUP_NAMES tag is set to \c YES then doxygen will sort the 
- hierarchy of group names into alphabetical order. If set to \c NO (the default)
- the group names will appear in their defined order. 
+ hierarchy of group names into alphabetical order. If set to \c NO
+ the group names will appear in their defined order.
+
 
-\anchor cfg_sort_by_scope_name
+The default value is: <code>NO</code>.
+
+ \anchor cfg_sort_by_scope_name
 <dt>\c SORT_BY_SCOPE_NAME <dd>
  \addindex SORT_BY_SCOPE_NAME
  If the \c SORT_BY_SCOPE_NAME tag is set to \c YES, the class list will be
  sorted by fully-qualified names, including namespaces. If set to
- \c NO (the default), the class list will be sorted only by class name,
+ \c NO, the class list will be sorted only by class name,
  not including the namespace part.
@note This option is not very useful if \ref cfg_hide_scope_names "HIDE_SCOPE_NAMES" is set to \c YES.
@note This option applies only to the class list, not to the 
\note This option is not very useful if \ref cfg_hide_scope_names "HIDE_SCOPE_NAMES" is set to \c YES.
\note This option applies only to the class list, not to the 
        alphabetical list.
 
-\anchor cfg_sort_members_constructors_first
-<dt>\c SORT_MEMBERS_CTORS_1ST <dd>
- \addindex SORT_MEMBERS_CTORS_1ST
- If the \c SORT_MEMBERS_CTORS_1ST tag is set to \c YES then doxygen
- will sort the (brief and detailed) documentation of class members so that
- constructors and destructors are listed first. If set to \c NO (the default)
- the constructors will appear in the respective orders defined by
- \c SORT_MEMBER_DOCS and \c SORT_BRIEF_DOCS.
- @note If \ref cfg_sort_brief_docs "SORT_BRIEF_DOCS" is set to \c NO this option is ignored for
-       sorting brief member documentation.
- @note If \ref cfg_sort_member_docs "SORT_MEMBER_DOCS" is set to \c NO this option is ignored for
-       sorting detailed member documentation.
 
-\anchor cfg_generate_deprecatedlist
-<dt>\c GENERATE_DEPRECATEDLIST <dd>
- \addindex GENERATE_DEPRECATEDLIST
- The GENERATE_DEPRECATEDLIST tag can be used to enable (\c YES) or
- disable (\c NO) the deprecated list. This list is created by 
- putting \ref cmddeprecated "\\deprecated"
- commands in the documentation.
+The default value is: <code>NO</code>.
 
-\anchor cfg_strict_proto_matching
+ \anchor cfg_strict_proto_matching
 <dt>\c STRICT_PROTO_MATCHING <dd>
  \addindex STRICT_PROTO_MATCHING
  If the \c STRICT_PROTO_MATCHING option is enabled and doxygen fails to
@@ -914,68 +1111,103 @@ function's detailed documentation block.
  by doing a simple string match. By disabling \c STRICT_PROTO_MATCHING doxygen 
  will still accept a match between prototype and implementation in such cases.
 
-\anchor cfg_generate_todolist
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_generate_todolist
 <dt>\c GENERATE_TODOLIST <dd>
  \addindex GENERATE_TODOLIST
- The GENERATE_TODOLIST tag can be used to enable (YES) or
+ The \c GENERATE_TODOLIST tag can be used to enable (\c YES) or
  disable (\c NO) the todo list. This list is created by 
- putting \ref cmdtodo "\\todo"
- commands in the documentation.
+ putting \ref cmdtodo "\\todo" commands in the documentation.
 
-\anchor cfg_generate_testlist
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_generate_testlist
 <dt>\c GENERATE_TESTLIST <dd>
  \addindex GENERATE_TESTLIST
- The GENERATE_TESTLIST tag can be used to enable (YES) or
+ The \c GENERATE_TESTLIST tag can be used to enable (\c YES) or
  disable (\c NO) the test list. This list is created by 
  putting \ref cmdtest "\\test" commands in the documentation.
 
-\anchor cfg_generate_buglist
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_generate_buglist
 <dt>\c GENERATE_BUGLIST <dd>
  \addindex GENERATE_BUGLIST
- The GENERATE_BUGLIST tag can be used to enable (YES) or
+ The \c GENERATE_BUGLIST tag can be used to enable (\c YES) or
  disable (\c NO) the bug list. This list is created by 
  putting \ref cmdbug "\\bug" commands in the documentation.
 
-\anchor cfg_enabled_sections
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_generate_deprecatedlist
+<dt>\c GENERATE_DEPRECATEDLIST <dd>
+ \addindex GENERATE_DEPRECATEDLIST
+ The \c GENERATE_DEPRECATEDLIST tag can be used to enable (\c YES) or
+ disable (\c NO) the deprecated list. This list is created by 
+ putting \ref cmddeprecated "\\deprecated"
+ commands in the documentation.
+
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_enabled_sections
 <dt>\c ENABLED_SECTIONS <dd>
  \addindex ENABLED_SECTIONS
  The \c ENABLED_SECTIONS tag can be used to enable conditional
- documentation sections, marked by \ref cmdif "\\if" \<section-label\> ... 
- \ref cmdendif "\\endif" and \ref cmdcond "\\cond" \<section-label\> ...
+ documentation sections, marked by \ref cmdif "\\if" \<section_label\> ... 
+ \ref cmdendif "\\endif" and \ref cmdcond "\\cond" \<section_label\> ...
  \ref cmdendcond "\\endcond" blocks.
 
-\anchor cfg_max_initializer_lines
+ \anchor cfg_max_initializer_lines
 <dt>\c MAX_INITIALIZER_LINES <dd>
  \addindex MAX_INITIALIZER_LINES
  The \c MAX_INITIALIZER_LINES tag determines the maximum number of lines
- that the initial value of a variable or define can be. If the initializer
+ that the initial value of a variable or macro / define can have for it to appear in
+ the documentation. If the initializer
  consists of more lines than specified here it will be hidden. Use a value
  of 0 to hide initializers completely. The appearance of the value of
- individual variables and defines can be controlled using \ref cmdshowinitializer "\\showinitializer"
- or \ref cmdhideinitializer "\\hideinitializer" command in the documentation.
+ individual variables and macros / defines can be controlled using \ref cmdshowinitializer "\\showinitializer"
+ or \ref cmdhideinitializer "\\hideinitializer" command in the documentation regardless of this setting.
+
+
+ Minimum value: <code>0</code>, maximum value: <code>10000</code>, default value: <code>30</code>.
 
-\anchor cfg_show_used_files
+ \anchor cfg_show_used_files
 <dt>\c SHOW_USED_FILES <dd>
  \addindex SHOW_USED_FILES
  Set the \c SHOW_USED_FILES tag to \c NO to disable the list of files generated
  at the bottom of the documentation of classes and structs. If set to \c YES the
  list will mention the files that were used to generate the documentation.
 
-\anchor cfg_show_files
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_show_files
 <dt>\c SHOW_FILES <dd>
  \addindex SHOW_FILES
  Set the \c SHOW_FILES tag to \c NO to disable the generation of the Files page.
  This will remove the Files entry from the Quick Index and from the
- Folder Tree View (if specified). The default is \c YES.
+ Folder Tree View (if specified).
+
+
+The default value is: <code>YES</code>.
 
-\anchor cfg_show_namespaces
+ \anchor cfg_show_namespaces
 <dt>\c SHOW_NAMESPACES <dd>
  \addindex SHOW_NAMESPACES
  Set the \c SHOW_NAMESPACES tag to \c NO to disable the generation of the
- Namespaces page.  This will remove the Namespaces entry from the Quick Index
- and from the Folder Tree View (if specified). The default is \c YES.
+ Namespaces page. This will remove the Namespaces entry from the Quick Index
+ and from the Folder Tree View (if specified).
 
-\anchor cfg_file_version_filter
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_file_version_filter
 <dt>\c FILE_VERSION_FILTER <dd>
  \addindex FILE_VERSION_FILTER
  The \c FILE_VERSION_FILTER tag can be used to specify a program or script that
@@ -984,99 +1216,114 @@ function's detailed documentation block.
  <code>popen()</code>) the command <code>command input-file</code>, where \c command is 
  the value of the \c FILE_VERSION_FILTER tag, and \c input-file is the name 
  of an input file provided by doxygen. 
- Whatever the program writes to standard output is used as the file version. 
-
-Example of using a shell script as a filter for Unix:
+ Whatever the program writes to standard output is used as the file version.Example of using a shell script as a filter for Unix:
 \verbatim
  FILE_VERSION_FILTER = "/bin/sh versionfilter.sh"
 \endverbatim
-
+<br>
 Example shell script for CVS:
 \verbatim
 #!/bin/sh
 cvs status $1 | sed -n 's/^[ \]*Working revision:[ \t]*\([0-9][0-9\.]*\).*/\1/p'
 \endverbatim 
+<br> 
 Example shell script for Subversion:
 \verbatim
 #!/bin/sh
 svn stat -v $1 | sed -n 's/^[ A-Z?\*|!]\{1,15\}/r/;s/ \{1,15\}/\/r/;s/ .*//p'
 \endverbatim
-
+<br>
 Example filter for ClearCase:
 \verbatim
 FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
 \endverbatim
 
-\anchor cfg_layout_file
+ \anchor cfg_layout_file
 <dt>\c LAYOUT_FILE <dd>
+ \addindex LAYOUT_FILE
  The \c LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
  doxygen. The layout file controls the global structure of the generated output files
  in an output format independent way. To create the layout file that represents
- doxygen's defaults, run doxygen with the -l option. You can optionally specify a
+ doxygen's defaults, run doxygen with the `-l` option. You can optionally specify a
  file name after the option, if omitted \c DoxygenLayout.xml will be used as the name
- of the layout file. Note that if you run doxygen from a directory containing 
+ of the layout file.
+ <br>Note that if you run doxygen from a directory containing 
  a file called \c DoxygenLayout.xml, doxygen will parse it automatically even if 
  the \c LAYOUT_FILE tag is left empty.
 
-\anchor cfg_cite_bib_files
+ \anchor cfg_cite_bib_files
 <dt>\c CITE_BIB_FILES <dd>
  \addindex CITE_BIB_FILES
- The \c CITE_BIB_FILES tag can be used to specify one or more bib files 
+ The \c CITE_BIB_FILES tag can be used to specify one or more \c bib files 
  containing the reference definitions. This must be a list of <code>.bib</code> files. The 
  <code>.bib</code> extension is automatically appended if omitted. This requires the 
- \c bibtex tool to be installed. See also http://en.wikipedia.org/wiki/BibTeX 
- for more info. For \f$\mbox{\LaTeX}\f$ the style of the bibliography can be controlled 
- using \ref cfg_latex_bib_style "LATEX_BIB_STYLE". See 
- also \ref cmdcite "\\cite" for info how to create references.
+ \c bibtex tool to be installed. See also http://en.wikipedia.org/wiki/BibTeX for
+ more info. For \f$\mbox{\LaTeX}\f$ the style of the bibliography can be controlled 
+ using \ref cfg_latex_bib_style "LATEX_BIB_STYLE".
+ To use this 
+ feature you need \c bibtex and \c perl available in the search path. Do not use 
+ file names with spaces, \c bibtex cannot handle them.
+ See also \ref cmdcite "\\cite" for info how to create references.
 
 </dl>
-
-\section messages_input Options related to warning and progress messages 
-\anchor cfg_quiet
+\section config_messages Configuration options related to warning and progress messages
+ \anchor cfg_quiet
 <dl>
 
 <dt>\c QUIET <dd>
  \addindex QUIET
  The \c QUIET tag can be used to turn on/off the messages that are generated
- to standard output by doxygen. Possible values are \c YES and \c NO, 
- where \c YES implies that the messages are off.
- If left blank \c NO is used.
+ to standard output by doxygen. If \c QUIET is set to \c YES this implies that the messages are off.
+
 
-\anchor cfg_warnings
+The default value is: <code>NO</code>.
+
+ \anchor cfg_warnings
 <dt>\c WARNINGS <dd>
  \addindex WARNINGS
  The \c WARNINGS tag can be used to turn on/off the warning messages that are
- generated to standard error by doxygen. Possible values are \c YES and \c NO, 
where \c YES implies that the warnings are on. If left blank \c NO is used.
-
+ generated to standard error (\c stderr) by doxygen. If \c WARNINGS is set to 
\c YES this implies that the warnings are on.
+<br>
  \b Tip: Turn warnings on while writing the documentation.
 
-\anchor cfg_warn_if_undocumented
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_warn_if_undocumented
 <dt>\c WARN_IF_UNDOCUMENTED <dd>
  \addindex WARN_IF_UNDOCUMENTED
- If \c WARN_IF_UNDOCUMENTED is set to \c YES, then doxygen will generate warnings
+ If the \c WARN_IF_UNDOCUMENTED tag is set to \c YES, then doxygen will generate warnings
  for undocumented members. If \ref cfg_extract_all "EXTRACT_ALL" is set to \c YES then this flag will
  automatically be disabled.
 
-\anchor cfg_warn_if_doc_error
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_warn_if_doc_error
 <dt>\c WARN_IF_DOC_ERROR <dd>
  \addindex WARN_IF_DOC_ERROR
- If \c WARN_IF_DOC_ERROR is set to \c YES, doxygen will generate warnings for
+ If the \c WARN_IF_DOC_ERROR tag is set to \c YES, doxygen will generate warnings for
  potential errors in the documentation, such as not documenting some
  parameters in a documented function, or documenting parameters that
- don't exist or using markup commands wrongly. 
+ don't exist or using markup commands wrongly.
+
+
+The default value is: <code>YES</code>.
 
-\anchor cfg_warn_no_paramdoc
+ \anchor cfg_warn_no_paramdoc
 <dt>\c WARN_NO_PARAMDOC <dd>
  \addindex WARN_NO_PARAMDOC
  This \c WARN_NO_PARAMDOC option can be enabled to get warnings for 
  functions that are documented, but have no documentation for their parameters
- or return value. If set to \c NO (the default) doxygen will only warn about
+ or return value. If set to \c NO doxygen will only warn about
  wrong or incomplete parameter documentation, but not about the absence of
  documentation.
 
-\anchor cfg_warn_format
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_warn_format
 <dt>\c WARN_FORMAT <dd>
  \addindex WARN_FORMAT
  The \c WARN_FORMAT tag determines the format of the warning messages that
@@ -1084,18 +1331,22 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
  <code>\$line</code>, and <code>\$text</code> 
  tags, which will be replaced by the file and line number from which the
  warning originated and the warning text.
+ Optionally the format may contain 
+ <code>$version</code>, which will be replaced by the version of the file (if it could 
+ be obtained via \ref cfg_file_version_filter "FILE_VERSION_FILTER")
 
-\anchor cfg_warn_logfile
+The default value is: <code>$file:$line: $text</code>.
+
+ \anchor cfg_warn_logfile
 <dt>\c WARN_LOGFILE <dd>
  \addindex WARN_LOGFILE
  The \c WARN_LOGFILE tag can be used to specify a file to which warning
  and error messages should be written. If left blank the output is written 
- to \c stderr.
+ to standard error (`stderr`).
 
 </dl>
-
-\section config_input Input related options
-\anchor cfg_input
+\section config_input Configuration options related to the input files
+ \anchor cfg_input
 <dl>
 
 <dt>\c INPUT <dd>
@@ -1103,89 +1354,127 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
  The \c INPUT tag is used to specify the files and/or directories that contain 
  documented source files. You may enter file names like 
  \c myfile.cpp or directories like \c /usr/src/myproject. 
- Separate the files or directories with spaces.<br>
+ Separate the files or directories with spaces.
 
  \note If this tag is empty the current directory is searched.
 
-\anchor cfg_input_encoding
+ \anchor cfg_input_encoding
 <dt>\c INPUT_ENCODING <dd>
  \addindex INPUT_ENCODING
  This tag can be used to specify the character encoding of the source files that 
- doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default 
input encoding. Doxygen uses `libiconv` (or the `iconv` built into `libc`) for the transcoding. 
+ doxygen parses. Internally doxygen uses the UTF-8 encoding.
+ Doxygen uses `libiconv` (or the `iconv` built into `libc`) for the transcoding. 
  See <a href="http://www.gnu.org/software/libiconv">the libiconv documentation</a> for 
  the list of possible encodings.
 
-\anchor cfg_file_patterns
+The default value is: <code>UTF-8</code>.
+
+ \anchor cfg_file_patterns
 <dt>\c FILE_PATTERNS <dd>
  \addindex FILE_PATTERNS
  If the value of the \ref cfg_input "INPUT" tag contains directories, you can use the 
  \c FILE_PATTERNS tag to specify one or more wildcard patterns 
  (like `*.cpp` and `*.h`) to filter out the source-files 
  in the directories. If left blank the following patterns are tested:
- <code>
- *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh 
- *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.markdown *.md 
- *.mm *.dox *.py *.f90 *.f *.vhd *.vhdl
- </code>
-
-\anchor cfg_recursive
+<code>*.c</code>, 
+<code>*.cc</code>, 
+<code>*.cxx</code>, 
+<code>*.cpp</code>, 
+<code>*.c++</code>, 
+<code>*.java</code>, 
+<code>*.ii</code>, 
+<code>*.ixx</code>, 
+<code>*.ipp</code>, 
+<code>*.i++</code>, 
+<code>*.inl</code>, 
+<code>*.idl</code>, 
+<code>*.ddl</code>, 
+<code>*.odl</code>, 
+<code>*.h</code>, 
+<code>*.hh</code>, 
+<code>*.hxx</code>, 
+<code>*.hpp</code>, 
+<code>*.h++</code>, 
+<code>*.cs</code>, 
+<code>*.d</code>, 
+<code>*.php</code>, 
+<code>*.php4</code>, 
+<code>*.php5</code>, 
+<code>*.phtml</code>, 
+<code>*.inc</code>, 
+<code>*.m</code>, 
+<code>*.markdown</code>, 
+<code>*.md</code>, 
+<code>*.mm</code>, 
+<code>*.dox</code>, 
+<code>*.py</code>, 
+<code>*.f90</code>, 
+<code>*.f</code>, 
+<code>*.for</code>, 
+<code>*.tcl</code>, 
+<code>*.vhd</code>, 
+<code>*.vhdl</code>, 
+<code>*.ucf</code>, 
+<code>*.qsf</code>, 
+<code>*.as</code> and 
+<code>*.js</code>.
+
+ \anchor cfg_recursive
 <dt>\c RECURSIVE <dd>
  \addindex RECURSIVE
  The \c RECURSIVE tag can be used to specify whether or not subdirectories
- should be searched for input files as well. Possible values are \c YES 
- and \c NO.  If left blank \c NO is used.
+ should be searched for input files as well.
+
+
+The default value is: <code>NO</code>.
 
-\anchor cfg_exclude
+ \anchor cfg_exclude
 <dt>\c EXCLUDE <dd>
  \addindex EXCLUDE
  The \c EXCLUDE tag can be used to specify files and/or directories that should be
  excluded from the \ref cfg_input "INPUT" source files. This way you can easily exclude a
  subdirectory from a directory tree whose root is specified with the \ref cfg_input "INPUT" tag.
- Note that relative paths are relative to the directory from which doxygen is run.
<br>Note that relative paths are relative to the directory from which doxygen is run.
 
-\anchor cfg_exclude_symlinks
+ \anchor cfg_exclude_symlinks
 <dt>\c EXCLUDE_SYMLINKS <dd>
  \addindex EXCLUDE_SYMLINKS
  The \c EXCLUDE_SYMLINKS tag can be used to select whether or not files or directories 
  that are symbolic links (a Unix file system feature) are excluded from the input.
 
-\anchor cfg_exclude_patterns
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_exclude_patterns
 <dt>\c EXCLUDE_PATTERNS <dd>
  \addindex EXCLUDE_PATTERNS
  If the value of the \ref cfg_input "INPUT" tag contains directories, you can use the
  \c EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
  certain files from those directories.
+ <br>Note that the wildcards are matched 
+ against the file with absolute path, so to exclude all test directories 
+ for example use the pattern `*``/test/``*`
 
-\anchor cfg_exclude_symbols
+ \anchor cfg_exclude_symbols
 <dt>\c EXCLUDE_SYMBOLS <dd>
-The \c EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 
-(namespaces, classes, functions, etc.) that should be excluded from the 
-output. The symbol name can be a fully qualified name, a word, or if the 
-wildcard `*` is used, a substring. Examples: `ANamespace`, `AClass`, 
-`AClass::ANamespace`, `ANamespace::*Test` 
-
- Note that the wildcards are matched against the file with absolute path, 
+ \addindex EXCLUDE_SYMBOLS
+ The \c EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 
+ (namespaces, classes, functions, etc.) that should be excluded from the 
+ output. The symbol name can be a fully qualified name, a word, or if the 
+ wildcard `*` is used, a substring. Examples: `ANamespace`, `AClass`, 
+ `AClass::ANamespace`, `ANamespace::*Test` 
<br>Note that the wildcards are matched against the file with absolute path, 
  so to exclude all test directories use the pattern 
  `*``/test/``*`
 
-\anchor cfg_example_path
+ \anchor cfg_example_path
 <dt>\c EXAMPLE_PATH <dd>
  \addindex EXAMPLE_PATH
  The \c EXAMPLE_PATH tag can be used to specify one or more files or
  directories that contain example code fragments that are included (see
  the \ref cmdinclude "\\include" command).
 
-\anchor cfg_example_recursive
-<dt>\c EXAMPLE_RECURSIVE <dd>
- \addindex EXAMPLE_RECURSIVE
- If the \c EXAMPLE_RECURSIVE tag is set to \c YES then subdirectories will be
- searched for input files to be used with the \ref cmdinclude "\\include" or
- \ref cmddontinclude "\\dontinclude" 
- commands irrespective of the value of the \ref cfg_recursive "RECURSIVE" tag. 
- Possible values are \c YES and \c NO. If left blank \c NO is used. 
-
-\anchor cfg_example_patterns
+ \anchor cfg_example_patterns
 <dt>\c EXAMPLE_PATTERNS <dd>
  \addindex EXAMPLE_PATTERNS
  If the value of the \ref cfg_example_path "EXAMPLE_PATH" tag contains directories, 
@@ -1194,39 +1483,53 @@ wildcard `*` is used, a substring. Examples: `ANamespace`, `AClass`,
  and `*.h`) to filter out the source-files in the directories. If left
  blank all files are included.
 
-\anchor cfg_image_path
+ \anchor cfg_example_recursive
+<dt>\c EXAMPLE_RECURSIVE <dd>
+ \addindex EXAMPLE_RECURSIVE
+ If the \c EXAMPLE_RECURSIVE tag is set to \c YES then subdirectories will be
+ searched for input files to be used with the \ref cmdinclude "\\include" or
+ \ref cmddontinclude "\\dontinclude" 
+ commands irrespective of the value of the \ref cfg_recursive "RECURSIVE" tag.
+
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_image_path
 <dt>\c IMAGE_PATH <dd>
  \addindex IMAGE_PATH
  The \c IMAGE_PATH tag can be used to specify one or more files or
  directories that contain images that are to be included in the 
  documentation (see the \ref cmdimage "\\image" command).
 
-\anchor cfg_input_filter
+ \anchor cfg_input_filter
 <dt>\c INPUT_FILTER <dd>
  \addindex INPUT_FILTER
  The \c INPUT_FILTER tag can be used to specify a program that doxygen should
  invoke to filter for each input file. Doxygen will invoke the filter program
  by executing (via <code>popen()</code>) the command:
-\verbatim <filter> <input-file>
-\endverbatim
+ <br>
+   <code>\<filter\> \<input-file\></code>
+ <br>
  where <code>\<filter\></code>
  is the value of the \c INPUT_FILTER tag, and <code>\<input-file\></code> is the name of an
  input file. Doxygen will then use the output that the filter program writes
- to standard output.
+ to standard output.  If \ref cfg_filter_patterns "FILTER_PATTERNS" is specified, this tag will be ignored. 
+ <br>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.
 
-\anchor cfg_filter_patterns
+ \anchor cfg_filter_patterns
 <dt>\c FILTER_PATTERNS <dd>
  \addindex FILTER_PATTERNS
  The \c FILTER_PATTERNS tag can be used to specify filters on a per file pattern
- basis.  Doxygen will compare the file name with each pattern and apply the
- filter if there is a match.  The filters are a list of the form:
+ basis. Doxygen will compare the file name with each pattern and apply the
+ filter if there is a match. The filters are a list of the form:
  pattern=filter (like `*.cpp=my_cpp_filter`). See \ref cfg_input_filter "INPUT_FILTER" for further
- info on how filters are used. If \c FILTER_PATTERNS is empty or if
+ information on how filters are used. If the \c FILTER_PATTERNS tag is empty or if
  none of the patterns match the file name, \ref cfg_input_filter "INPUT_FILTER" is 
  applied.
 
-\anchor cfg_filter_source_files
+ \anchor cfg_filter_source_files
 <dt>\c FILTER_SOURCE_FILES <dd>
  \addindex FILTER_SOURCE_FILES
  If the \c FILTER_SOURCE_FILES tag is set to \c YES, the input filter (if set using
@@ -1234,125 +1537,173 @@ wildcard `*` is used, a substring. Examples: `ANamespace`, `AClass`,
  files that are used for producing the source files to browse 
  (i.e. when \ref cfg_source_browser "SOURCE_BROWSER" is set to \c YES).
 
-\anchor cfg_filter_source_patterns
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_filter_source_patterns
 <dt>\c FILTER_SOURCE_PATTERNS <dd>
  \addindex FILTER_SOURCE_PATTERNS
  The \c FILTER_SOURCE_PATTERNS tag can be used to specify source filters per 
  file pattern. A pattern will override the setting 
  for \ref cfg_filter_patterns "FILTER_PATTERN" (if any) 
  and it is also possible to disable source filtering for a specific pattern 
- using `*.ext=` (so without naming a filter). This option only has effect when 
- \ref cfg_filter_source_files "FILTER_SOURCE_FILES" is enabled.
+ using `*.ext=` (so without naming a filter).
+
 
-\anchor cfg_use_mdfile_as_mainpage
+This tag requires that the tag \ref cfg_filter_source_files "FILTER_SOURCE_FILES" is set to \c YES.
+ \anchor cfg_use_mdfile_as_mainpage
 <dt>\c USE_MDFILE_AS_MAINPAGE <dd>
  \addindex USE_MDFILE_AS_MAINPAGE
-If the \c 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`). 
-This can be useful if you have a project on for instance GitHub and want reuse 
-the introduction page also for the doxygen output.
+ If the \c USE_MDFILE_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`). 
+ This can be useful if you have a project on for instance GitHub and want to reuse 
+ the introduction page also for the doxygen output.
 
 </dl>
-
-\section sourcebrowser_index Source browsing related options
-\anchor cfg_source_browser
+\section config_source_browser Configuration options related to source browsing
+ \anchor cfg_source_browser
 <dl>
 
 <dt>\c SOURCE_BROWSER <dd>
  \addindex SOURCE_BROWSER
  If the \c SOURCE_BROWSER tag is set to \c YES then a list of source files will
  be generated. Documented entities will be cross-referenced with these sources.
Note: To get rid of all source code in the generated output, make sure also
<br>Note: To get rid of all source code in the generated output, make sure that also
  \ref cfg_verbatim_headers "VERBATIM_HEADERS" is set to \c NO.
 
-\anchor cfg_inline_sources
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_inline_sources
 <dt>\c INLINE_SOURCES <dd>
  \addindex INLINE_SOURCES
  Setting the \c INLINE_SOURCES tag to \c YES will include the body
  of functions, classes and enums directly into the documentation.
 
-\anchor cfg_strip_code_comments
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_strip_code_comments
 <dt>\c STRIP_CODE_COMMENTS <dd>
  \addindex STRIP_CODE_COMMENTS
- Setting the \c STRIP_CODE_COMMENTS tag to \c YES (the default) will instruct
+ Setting the \c STRIP_CODE_COMMENTS tag to \c YES will instruct
  doxygen to hide any special comment blocks from generated source code
- fragments. Normal C and C++ comments will always remain visible.
+ fragments. Normal C, C++ and Fortran comments will always remain visible.
+
 
-\anchor cfg_referenced_by_relation
+The default value is: <code>YES</code>.
+
+ \anchor cfg_referenced_by_relation
 <dt>\c REFERENCED_BY_RELATION <dd>
  \addindex REFERENCED_BY_RELATION
  If the \c REFERENCED_BY_RELATION tag is set to \c YES
  then for each documented function all documented
- functions referencing it will be listed. 
+ functions referencing it will be listed.
+
 
-\anchor cfg_references_relation
+The default value is: <code>NO</code>.
+
+ \anchor cfg_references_relation
 <dt>\c REFERENCES_RELATION <dd>
  \addindex REFERENCES_RELATION
  If the \c REFERENCES_RELATION tag is set to \c YES
  then for each documented function all documented entities
- called/used by that function will be listed. 
+ called/used by that function will be listed.
+
 
-\anchor cfg_references_link_source
+The default value is: <code>NO</code>.
+
+ \anchor cfg_references_link_source
 <dt>\c REFERENCES_LINK_SOURCE <dd>
  \addindex REFERENCES_LINK_SOURCE
- If the \c REFERENCES_LINK_SOURCE tag is set to \c YES (the default)
+ If the \c REFERENCES_LINK_SOURCE tag is set to \c YES
  and \ref cfg_source_browser "SOURCE_BROWSER" tag is set to \c YES, then the hyperlinks from 
  functions in \ref cfg_references_relation "REFERENCES_RELATION" and
  \ref cfg_referenced_by_relation "REFERENCED_BY_RELATION" lists will 
  link to the source code.  Otherwise they will link to the documentation.
 
-\anchor cfg_verbatim_headers
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_source_tooltips
+<dt>\c SOURCE_TOOLTIPS <dd>
+ \addindex SOURCE_TOOLTIPS
+If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the 
+source code will show a tooltip with additional information such as prototype, 
+brief description and links to the definition and documentation. Since this will 
+make the HTML file larger and loading of large files a bit slower, you can opt 
+to disable this feature.
+
+
+The default value is: <code>YES</code>.
+
+
+This tag requires that the tag \ref cfg_source_browser "SOURCE_BROWSER" is set to \c YES.
+ \anchor cfg_use_htags
+<dt>\c USE_HTAGS <dd>
+ \addindex USE_HTAGS
+ If the \c USE_HTAGS tag is set to \c YES then the references to source code
+ will point to the HTML generated by the \c htags(1) tool instead of doxygen
+ built-in source browser. The \c htags tool is part of GNU's global source
+ tagging system (see http://www.gnu.org/software/global/global.html). You 
+ will need version 4.8.6 or higher. 
+<br>
+ To use it do the following:
+ -# Install the latest version of \c global
+ -# Enable \ref cfg_source_browser "SOURCE_BROWSER" and \c USE_HTAGS in the config file
+ -# Make sure the \ref cfg_input "INPUT" points to the root of the source tree
+ -# Run \c doxygen as normal
+<br>
+ Doxygen will invoke \c htags (and that will in turn invoke \c gtags), so these tools
+ must be available from the command line (i.e. in the search path).
+<br>
+ The result: instead of the source browser generated by doxygen, the links to
+ source code will now point to the output of \c htags.
+
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_source_browser "SOURCE_BROWSER" is set to \c YES.
+ \anchor cfg_verbatim_headers
 <dt>\c VERBATIM_HEADERS <dd>
  \addindex VERBATIM_HEADERS
-  If the \c VERBATIM_HEADERS tag is set the \c YES (the default) then doxygen
+  If the \c VERBATIM_HEADERS tag is set the \c YES then doxygen
   will generate a verbatim copy of the header file for each class for
   which an include is specified. Set to \c NO to disable this.
   \sa Section \ref cmdclass "\\class".
 
-\anchor cfg_clang_assisted_parsig 
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_clang_assisted_parsing
 <dt>\c CLANG_ASSISTED_PARSING <dd>
  \addindex CLANG_ASSISTED_PARSING
-  If \c CLANG_ASSISTED_PARSING is set to \c YES, then doxygen will use the 
+  If the \c CLANG_ASSISTED_PARSING tag is set to \c YES, then doxygen will use the 
   <a href="http://clang.llvm.org/">clang parser</a> for more acurate parsing 
   at the cost of reduced performance. This can be particularly helpful with 
   template rich C++ code for which doxygen's built-in parser lacks the 
-  necessairy type information.
+  necessary type information.
 
   @note The availability of this option depends on whether or not doxygen
   was compiled with the `--with-libclang` option.
 
-\anchor cfg_clang_options
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_clang_options
 <dt>\c CLANG_OPTIONS <dd>
- \addindex CLANG_OPTIONS 
+ \addindex CLANG_OPTIONS
  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 already be set by doxygen for the files and directories 
- specified at \c INPUT and \c INCLUDE_PATH.
-
-\anchor cfg_use_htags
-<dt>\c USE_HTAGS <dd>
- \addindex USE_HTAGS
- If the \c USE_HTAGS tag is set to \c YES then the references to source code
- will point to the HTML generated by the \c htags(1) tool instead of doxygen
- built-in source browser. The \c htags tool is part of GNU's global source
- tagging system (see http://www.gnu.org/software/global/global.html).
- To use it do the following:
-
- -# Install the latest version of global (i.e. 4.8.6 or better)
- -# Enable \ref cfg_source_browser "SOURCE_BROWSER" and \c USE_HTAGS in the config file
- -# Make sure the \ref cfg_input "INPUT" points to the root of the source tree
- -# Run doxygen as normal
-
- Doxygen will invoke \c htags (and that will in turn invoke \c gtags), so these tools
- must be available from the command line (i.e. in the search path).
+ specified with \ref cfg_input "INPUT" and \ref cfg_include_path "INCLUDE_PATH".
 
- The result: instead of the source browser generated by doxygen, the links to
- source code will now point to the output of \c htags.
 
+This tag requires that the tag \ref cfg_clang_assisted_parsing "CLANG_ASSISTED_PARSING" is set to \c YES.
 </dl>
-
-\section alphabetical_index Alphabetical index options
-\anchor cfg_alphabetical_index
+\section config_index Configuration options related to the alphabetical class index
+ \anchor cfg_alphabetical_index
 <dl>
 
 <dt>\c ALPHABETICAL_INDEX <dd>
@@ -1361,63 +1712,88 @@ the introduction page also for the doxygen output.
  of all compounds will be generated. Enable this if the project contains 
  a lot of classes, structs, unions or interfaces.
 
-<dt>\c COLS_IN_ALPHA_INDEX <dd>
+
+The default value is: <code>YES</code>.
+
  \anchor cfg_cols_in_alpha_index
+<dt>\c COLS_IN_ALPHA_INDEX <dd>
  \addindex COLS_IN_ALPHA_INDEX
- If the alphabetical index is enabled 
- (see \ref cfg_alphabetical_index "ALPHABETICAL_INDEX") then the \c COLS_IN_ALPHA_INDEX tag can be 
- used to specify the number of columns in which this list will be split (can be a number in the range [1..20])
+ The \c COLS_IN_ALPHA_INDEX tag can be 
+ used to specify the number of columns in which the alphabetical index list will be split.
+
 
-\anchor cfg_ignore_prefix
+ Minimum value: <code>1</code>, maximum value: <code>20</code>, default value: <code>5</code>.
+
+
+This tag requires that the tag \ref cfg_alphabetical_index "ALPHABETICAL_INDEX" is set to \c YES.
+ \anchor cfg_ignore_prefix
 <dt>\c IGNORE_PREFIX <dd>
  \addindex IGNORE_PREFIX
  In case all classes in a project start with a common prefix, all classes will 
  be put under the same header in the alphabetical index.
  The \c IGNORE_PREFIX tag can be used to specify a prefix 
- (or a list of prefixes) that should be ignored while generating the index 
- headers.
+ (or a list of prefixes) that should be ignored while generating the index headers.
 
+
+This tag requires that the tag \ref cfg_alphabetical_index "ALPHABETICAL_INDEX" is set to \c YES.
 </dl>
-\section html_output HTML related options
-\anchor cfg_generate_html
+\section config_html Configuration options related to the HTML output
+ \anchor cfg_generate_html
 <dl>
 
 <dt>\c GENERATE_HTML <dd>
  \addindex GENERATE_HTML
- If the \c GENERATE_HTML tag is set to \c YES (the default) doxygen will
+ If the \c GENERATE_HTML tag is set to \c YES doxygen will
  generate HTML output
 
-\anchor cfg_html_output
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_html_output
 <dt>\c HTML_OUTPUT <dd>
  \addindex HTML_OUTPUT
  The \c HTML_OUTPUT tag is used to specify where the HTML docs will be put.
  If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
- put in front of it. If left blank '<code>html</code>' will be used as the default path.
+ put in front of it.
+
+The default directory is: <code>html</code>.
 
-\anchor cfg_html_file_extension
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_html_file_extension
 <dt>\c HTML_FILE_EXTENSION <dd>
  \addindex HTML_FILE_EXTENSION
  The \c HTML_FILE_EXTENSION tag can be used to specify the file extension for 
- each generated HTML page (for example: <code>.htm, .php, .asp</code>). If it is left blank
- doxygen will generate files with <code>.html</code> extension.
+ each generated HTML page (for example: <code>.htm, .php, .asp</code>).
+
+The default value is: <code>.html</code>.
 
-\anchor cfg_html_header
-<dt>\c HTML_HEADER <dd>      
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_html_header
+<dt>\c HTML_HEADER <dd>
  \addindex HTML_HEADER
  The \c HTML_HEADER tag can be used to specify a user-defined HTML 
  header file for each generated HTML page. 
  If the tag is left blank doxygen will generate a 
  standard header. 
-
+<br>
  To get valid HTML the header file that
  includes any scripts and style sheets that doxygen
- needs, it is highly recommended to start with a default header using
+ needs, which is dependent on the configuration options used (e.g. the
+ setting \ref cfg_generate_treeview "GENERATE_TREEVIEW").
+ It is highly recommended to start with a default header using
 \verbatim
 doxygen -w html new_header.html new_footer.html new_stylesheet.css YourConfigFile
 \endverbatim
  and then modify the file \c new_header.html.
 
- The following markers have a special meaning inside the header and footer:
+ See also section \ref doxygen_usage for information on how to generate
+ the default header that doxygen normally uses.
+
+ @note The header is subject to change so you typically
+ have to regenerate the default header when upgrading to a newer version of 
+ doxygen. The following markers have a special meaning inside the header and footer:
  <dl>
  <dt><code>\$title</code><dd>will be replaced with the title of the page.
  <dt><code>\$datetime</code><dd>will be replaced with current the date and time.
@@ -1485,14 +1861,9 @@ doxygen -w html new_header.html new_footer.html new_stylesheet.css YourConfigFil
      \ref cfg_searchengine "SEARCHENGINE" are enabled.
  </dl>
 
- See also section \ref doxygen_usage for information on how to generate
- the default header that doxygen normally uses.
 
- @note The header is subject to change so you typically
- have to regenerate the default header when upgrading to a newer version of 
- doxygen.
-   
-\anchor cfg_html_footer
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_html_footer
 <dt>\c HTML_FOOTER <dd>
  \addindex HTML_FOOTER
  The \c HTML_FOOTER tag can be used to specify a user-defined HTML footer for 
@@ -1506,11 +1877,12 @@ doxygen -w html new_header.html new_footer.html new_stylesheet.css YourConfigFil
  See also section \ref doxygen_usage for information on how to generate
  the default footer that doxygen normally uses.
 
-\anchor cfg_html_stylesheet
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_html_stylesheet
 <dt>\c HTML_STYLESHEET <dd>
  \addindex HTML_STYLESHEET
-
- The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
+ The \c HTML_STYLESHEET tag can be used to specify a user-defined cascading 
  style sheet that is used by each HTML page. It can be used to 
  fine-tune the look of the HTML output. If left blank doxygen 
  will generate a default style sheet. 
@@ -1521,20 +1893,20 @@ doxygen -w html new_header.html new_footer.html new_stylesheet.css YourConfigFil
  \note It is recommended to use 
  \ref cfg_html_extra_stylesheet "HTML_EXTRA_STYLESHEET" instead of this tag,
  as it is more robust and 
- this tag will in the future become obsolete.
+ this tag (<code>HTML_STYLESHEET</code>) will in the future become obsolete.
+
 
-\anchor cfg_html_extra_stylesheet
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_html_extra_stylesheet
 <dt>\c HTML_EXTRA_STYLESHEET <dd>
  \addindex HTML_EXTRA_STYLESHEET
- The HTML_EXTRA_STYLESHEET tag can be used to specify an additional 
+ The \c HTML_EXTRA_STYLESHEET tag can be used to specify an additional 
  user-defined cascading style sheet that is included after the standard 
  style sheets created by doxygen. Using this option one can overrule 
  certain style aspects. This is preferred over using \ref cfg_html_stylesheet "HTML_STYLESHEET" 
  since it does not replace the standard style sheet and is therefor more 
  robust against future updates. Doxygen will copy the style sheet file to 
- the output directory.
-
- Here is an example stylesheet that gives the contents area a fixed width:
+ the output directory. Here is an example stylesheet that gives the contents area a fixed width:
 \verbatim
 body {
         background-color: #CCC;
@@ -1565,7 +1937,9 @@ hr.footer {
 }
 \endverbatim
 
-\anchor cfg_html_extra_files
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_html_extra_files
 <dt>\c HTML_EXTRA_FILES <dd>
  \addindex HTML_EXTRA_FILES
  The \c HTML_EXTRA_FILES tag can be used to specify one or more extra images or 
@@ -1576,26 +1950,38 @@ hr.footer {
  files. In the \ref cfg_html_stylesheet "HTML_STYLESHEET" file, use the file name only. Also note that 
  the files will be copied as-is; there are no commands or markers available.
 
-\anchor cfg_html_colorstyle_hue
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_html_colorstyle_hue
 <dt>\c HTML_COLORSTYLE_HUE <dd>
- \addindex HTML_COLOR_STYLE_HUE
+ \addindex HTML_COLORSTYLE_HUE
  The \c HTML_COLORSTYLE_HUE tag controls the color of the HTML output. 
  Doxygen will adjust the colors in the stylesheet and background images 
  according to this color. Hue is specified as an angle on a colorwheel, 
  see http://en.wikipedia.org/wiki/Hue for more information. 
  For instance the value 0 represents red, 60 is yellow, 120 is green, 
- 180 is cyan, 240 is blue, 300 purple, and 360 is red again. 
- The allowed range is 0 to 359. 
+ 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
+
+
+ Minimum value: <code>0</code>, maximum value: <code>359</code>, default value: <code>220</code>.
+
 
-\anchor cfg_html_colorstyle_sat
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_html_colorstyle_sat
 <dt>\c HTML_COLORSTYLE_SAT <dd>
  \addindex HTML_COLORSTYLE_SAT
  The \c HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of 
  the colors in the HTML output. For a value of 0 the output will use 
- grayscales only. A value of 255 will produce the most vivid colors. 
+ grayscales only. A value of 255 will produce the most vivid colors.
 
-\anchor cfg_html_colorstyle_gamma
+
+ Minimum value: <code>0</code>, maximum value: <code>255</code>, default value: <code>100</code>.
+
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_html_colorstyle_gamma
 <dt>\c HTML_COLORSTYLE_GAMMA <dd>
+ \addindex HTML_COLORSTYLE_GAMMA
  The \c HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to 
  the luminance component of the colors in the HTML output. Values below 
  100 gradually make the output lighter, whereas values above 100 make 
@@ -1603,7 +1989,12 @@ hr.footer {
  so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, 
  and 100 does not change the gamma.
 
-\anchor cfg_html_timestamp
+
+ Minimum value: <code>40</code>, maximum value: <code>240</code>, default value: <code>80</code>.
+
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_html_timestamp
 <dt>\c HTML_TIMESTAMP <dd>
  \addindex HTML_TIMESTAMP
  If the \c HTML_TIMESTAMP tag is set to \c YES then the footer of 
@@ -1611,28 +2002,27 @@ hr.footer {
  was generated. Setting this to \c NO can help when comparing the output of 
  multiple runs.
 
-\anchor cfg_html_align_members
-<dt>\c HTML_ALIGN_MEMBERS <dd>
- \addindex HTML_ALIGN_MEMBERS
- If the \c HTML_ALIGN_MEMBERS tag is set to \c YES, the members of classes,
- files or namespaces will be aligned in HTML using tables. If set to
- \c NO a bullet list will be used. 
 
- <b>Note:</b>
- Setting this tag to \c NO will become obsolete in the future, since I only
- intent to support and test the aligned representation.
+The default value is: <code>YES</code>.
 
-\anchor cfg_html_dynamic_sections
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_html_dynamic_sections
 <dt>\c HTML_DYNAMIC_SECTIONS <dd>
  \addindex HTML_DYNAMIC_SECTIONS
  If the \c HTML_DYNAMIC_SECTIONS tag is set to \c YES then the generated HTML
  documentation will contain sections that can be hidden and shown after the
- page has loaded. 
+ page has loaded.
+
 
-\anchor cfg_html_index_num_entries
-<dt>\c HTML_NUM_INDEX_ENTRIES <dd>
- \addindex HTML_NUM_INDEX_ENTRIES
- With HTML_INDEX_NUM_ENTRIES one can control the preferred number of 
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_html_index_num_entries
+<dt>\c HTML_INDEX_NUM_ENTRIES <dd>
+ \addindex HTML_INDEX_NUM_ENTRIES
+ With \c HTML_INDEX_NUM_ENTRIES one can control the preferred number of 
  entries shown in the various tree structured indices initially; the user 
  can expand and collapse entries dynamically later on. Doxygen will expand 
  the tree to such a level that at most the specified number of entries are 
@@ -1641,7 +2031,12 @@ hr.footer {
  default. 0 is a special value representing an infinite number of entries 
  and will result in a full expanded tree by default.
 
-\anchor cfg_generate_docset
+
+ Minimum value: <code>0</code>, maximum value: <code>9999</code>, default value: <code>100</code>.
+
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_generate_docset
 <dt>\c GENERATE_DOCSET <dd>
  \addindex GENERATE_DOCSET
  If the \c GENERATE_DOCSET tag is set to \c YES, additional index files
@@ -1653,36 +2048,60 @@ hr.footer {
  directory and running <code>make install</code> will install the docset in 
  <code>~/Library/Developer/Shared/Documentation/DocSets</code> 
  so that Xcode will find it at startup. See
- <a href="http://developer.apple.com/tools/creatingdocsetswithdoxygen.html">
- this article</a> for more information.
+ http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for
+ more information.
+
+
+The default value is: <code>NO</code>.
+
 
-\anchor cfg_docset_feedname 
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_docset_feedname
 <dt>\c DOCSET_FEEDNAME <dd>
  \addindex DOCSET_FEEDNAME
- When \ref cfg_generate_docset "GENERATE_DOCSET" tag is set to \c YES, this tag determines the name of the
+ This tag determines the name of the docset
  feed. A documentation feed provides an umbrella under which multiple
  documentation sets from a single provider (such as a company or product suite) 
  can be grouped.
 
-\anchor cfg_docset_bundle_id
+The default value is: <code>Doxygen generated docs</code>.
+
+
+This tag requires that the tag \ref cfg_generate_docset "GENERATE_DOCSET" is set to \c YES.
+ \anchor cfg_docset_bundle_id
 <dt>\c DOCSET_BUNDLE_ID <dd>
- When \ref cfg_generate_docset "GENERATE_DOCSET" tag is set to \c YES, this tag specifies a string that
+ \addindex DOCSET_BUNDLE_ID
+ This tag specifies a string that
  should uniquely identify the documentation set bundle. This should be a
  reverse domain-name style string, e.g. <code>com.mycompany.MyDocSet</code>. 
  Doxygen will append <code>.docset</code> to the name.
 
-\anchor cfg_docset_publisher_id
+The default value is: <code>org.doxygen.Project</code>.
+
+
+This tag requires that the tag \ref cfg_generate_docset "GENERATE_DOCSET" is set to \c YES.
+ \anchor cfg_docset_publisher_id
 <dt>\c DOCSET_PUBLISHER_ID <dd>
-When \ref cfg_generate_docset "GENERATE_DOCSET" tag is set to \c YES \c DOCSET_PUBLISHER_ID
+ \addindex DOCSET_PUBLISHER_ID
+The \c DOCSET_PUBLISHER_ID
 tag specifies a string that should uniquely identify 
 the documentation publisher. This should be a reverse domain-name style 
-string, e.g. com.mycompany.MyDocSet.documentation. 
+string, e.g. <code>com.mycompany.MyDocSet.documentation</code>.
 
-\anchor cfg_docset_publisher_name
+The default value is: <code>org.doxygen.Publisher</code>.
+
+
+This tag requires that the tag \ref cfg_generate_docset "GENERATE_DOCSET" is set to \c YES.
+ \anchor cfg_docset_publisher_name
 <dt>\c DOCSET_PUBLISHER_NAME <dd>
+ \addindex DOCSET_PUBLISHER_NAME
 The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
 
-\anchor cfg_generate_htmlhelp
+The default value is: <code>Publisher</code>.
+
+
+This tag requires that the tag \ref cfg_generate_docset "GENERATE_DOCSET" is set to \c YES.
+ \anchor cfg_generate_htmlhelp
 <dt>\c GENERATE_HTMLHELP <dd>
  \addindex GENERATE_HTMLHELP
  If the \c GENERATE_HTMLHELP tag is set to \c YES then
@@ -1692,7 +2111,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
  <a href="http://www.microsoft.com/en-us/download/details.aspx?id=21138">
  Microsoft's HTML Help Workshop</a>
  on Windows.
-
+<br>
  The HTML Help Workshop contains a compiler that can convert all HTML output 
  generated by doxygen into a single compiled HTML file (`.chm`). Compiled
  HTML files are now used as the Windows 98 help format, and will replace
@@ -1701,51 +2120,79 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
  and you can search for words in the documentation.
  The HTML workshop also contains a viewer for compressed HTML files.
 
-\anchor cfg_chm_file 
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_chm_file
 <dt>\c CHM_FILE <dd>
  \addindex CHM_FILE
-  If the \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP" tag is set to \c YES, the \c CHM_FILE tag can
+  The \c CHM_FILE tag can
   be used to specify the file name of the resulting `.chm` file. You
   can add a path in front of the file if the result should not be
   written to the html output directory.
 
-\anchor cfg_hhc_location 
+
+This tag requires that the tag \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP" is set to \c YES.
+ \anchor cfg_hhc_location
 <dt>\c HHC_LOCATION <dd>
  \addindex HHC_LOCATION
-  If the \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP" tag is set to \c YES, the \c HHC_LOCATION tag can
+  The \c HHC_LOCATION tag can
   be used to specify the location (absolute path including file name) of 
   the HTML help compiler (\c hhc.exe). If non-empty doxygen will try to run
   the HTML help compiler on the generated \c index.hhp.
 
-\anchor cfg_generate_chi
+The file has to be specified with full path.
+
+
+This tag requires that the tag \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP" is set to \c YES.
+ \anchor cfg_generate_chi
 <dt>\c GENERATE_CHI <dd>
  \addindex GENERATE_CHI
If the \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP" tag is set to \c YES, the \c GENERATE_CHI flag
The \c GENERATE_CHI flag
  controls if a separate `.chi` index file is generated (\c YES) or that
  it should be included in the master `.chm` file (\c NO).
 
-\anchor cfg_chm_index_encoding
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP" is set to \c YES.
+ \anchor cfg_chm_index_encoding
 <dt>\c CHM_INDEX_ENCODING <dd>
  \addindex CHM_INDEX_ENCODING
If the \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP" tag is set to \c YES, the \c CHM_INDEX_ENCODING 
The \c CHM_INDEX_ENCODING 
  is used to encode HtmlHelp index (\c hhk), content (\c hhc) and project file 
- content. 
+ content.
 
-\anchor cfg_binary_toc
+
+This tag requires that the tag \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP" is set to \c YES.
+ \anchor cfg_binary_toc
 <dt>\c BINARY_TOC <dd>
  \addindex BINARY_TOC
If the \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP" tag is set to \c YES, the \c BINARY_TOC flag
The \c BINARY_TOC flag
  controls whether a binary table of contents is generated (\c YES) or a
- normal table of contents (\c NO) in the .chm file.
+ normal table of contents (\c NO) in the `.chm` file.
+
 
-\anchor cfg_toc_expand
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP" is set to \c YES.
+ \anchor cfg_toc_expand
 <dt>\c TOC_EXPAND <dd>
  \addindex TOC_EXPAND
  The \c TOC_EXPAND flag can be set to \c YES to add extra items for 
  group members to the table of contents of the HTML help documentation 
  and to the tree view.
 
-\anchor cfg_generate_qhp
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP" is set to \c YES.
+ \anchor cfg_generate_qhp
 <dt>\c GENERATE_QHP <dd>
  \addindex GENERATE_QHP
  If the \c GENERATE_QHP tag is set to \c YES and both \ref cfg_qhp_namespace "QHP_NAMESPACE"
@@ -1754,59 +2201,80 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
  to generate a Qt Compressed Help (`.qch`) of the generated HTML
  documentation.
 
-\anchor cfg_qch_file
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_qch_file
 <dt>\c QCH_FILE <dd>
  \addindex QCH_FILE
  If the \ref cfg_qhg_location "QHG_LOCATION" tag is specified, the \c QCH_FILE tag can
  be used to specify the file name of the resulting `.qch` file.
  The path specified is relative to the HTML output folder.
 
-\anchor cfg_qhp_namespace
+
+This tag requires that the tag \ref cfg_generate_qhp "GENERATE_QHP" is set to \c YES.
+ \anchor cfg_qhp_namespace
 <dt>\c QHP_NAMESPACE <dd>
  \addindex QHP_NAMESPACE
  The \c QHP_NAMESPACE tag specifies the namespace to use when generating
  Qt Help Project output. For more information please see
  <a href="http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace">Qt Help Project / Namespace</a>.
 
-\anchor cfg_qhp_virtual_folder
+The default value is: <code>org.doxygen.Project</code>.
+
+
+This tag requires that the tag \ref cfg_generate_qhp "GENERATE_QHP" is set to \c YES.
+ \anchor cfg_qhp_virtual_folder
 <dt>\c QHP_VIRTUAL_FOLDER <dd>
  \addindex QHP_VIRTUAL_FOLDER
  The \c QHP_VIRTUAL_FOLDER tag specifies the namespace to use when
  generating Qt Help Project output. For more information please see
  <a href="http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-folders">Qt Help Project / Virtual Folders</a>.
 
-\anchor cfg_qhp_cust_filter_name
+The default value is: <code>doc</code>.
+
+
+This tag requires that the tag \ref cfg_generate_qhp "GENERATE_QHP" is set to \c YES.
+ \anchor cfg_qhp_cust_filter_name
 <dt>\c QHP_CUST_FILTER_NAME <dd>
 \addindex QHP_CUST_FILTER_NAME
-  If \c QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. For more information please see
+ \addindex QHP_CUST_FILTER_NAME
+  If the \c QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom filter to add. For more information please see
   <a href="http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
 
-\anchor cfg_qhp_cust_filter_attrs
+
+This tag requires that the tag \ref cfg_generate_qhp "GENERATE_QHP" is set to \c YES.
+ \anchor cfg_qhp_cust_filter_attrs
 <dt>\c QHP_CUST_FILTER_ATTRS <dd>
 \addindex QHP_CUST_FILTER_ATTRS
-  The \c QHP_CUST_FILTER_ATTRIBUTES tag specifies the list of the attributes of the custom filter to add.
+ \addindex QHP_CUST_FILTER_ATTRS
+  The \c QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the custom filter to add.
   For more information please see
   <a href="http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
 
-\anchor cfg_qhp_sect_filter_attrs
+
+This tag requires that the tag \ref cfg_generate_qhp "GENERATE_QHP" is set to \c YES.
+ \anchor cfg_qhp_sect_filter_attrs
 <dt>\c QHP_SECT_FILTER_ATTRS <dd>
 \addindex QHP_SECT_FILTER_ATTRS
+ \addindex QHP_SECT_FILTER_ATTRS
   The \c QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's filter section matches.
   <a href="http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
 
-\anchor cfg_qhg_location
+
+This tag requires that the tag \ref cfg_generate_qhp "GENERATE_QHP" is set to \c YES.
+ \anchor cfg_qhg_location
 <dt>\c QHG_LOCATION <dd>
  \addindex QHG_LOCATION
- If the \ref cfg_generate_qhp "GENERATE_QHP" tag is set to \c YES, the \c QHG_LOCATION tag can
- be used to specify the location of Qt's qhelpgenerator.
- If non-empty doxygen will try to run qhelpgenerator on the generated
- `.qhp` file.
+ The \c QHG_LOCATION tag can be used to specify the location of Qt's qhelpgenerator.
+ If non-empty doxygen will try to run qhelpgenerator on the generated `.qhp` file.
 
-\anchor cfg_generate_eclipsehelp
+
+This tag requires that the tag \ref cfg_generate_qhp "GENERATE_QHP" is set to \c YES.
+ \anchor cfg_generate_eclipsehelp
 <dt>\c GENERATE_ECLIPSEHELP <dd>
  \addindex GENERATE_ECLIPSEHELP
  If the \c GENERATE_ECLIPSEHELP tag is set to \c YES, additional index files  
- will be generated, which together with the HTML files, form an `Eclipse` help 
+ will be generated, together with the HTML files, they form an `Eclipse` help 
  plugin. 
 
  To install this plugin and make it available under the help contents 
@@ -1817,33 +2285,39 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
 
  After copying `Eclipse` needs to be restarted before the help appears.
 
-\anchor cfg_eclipse_doc_id
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_eclipse_doc_id
 <dt>\c ECLIPSE_DOC_ID <dd>
  \addindex ECLIPSE_DOC_ID
  A unique identifier for the `Eclipse` help plugin. When installing the plugin 
  the directory name containing the HTML and XML files should also have 
  this name. Each documentation set should have its own identifier.
 
-\anchor cfg_disable_index
+The default value is: <code>org.doxygen.Project</code>.
+
+
+This tag requires that the tag \ref cfg_generate_eclipsehelp "GENERATE_ECLIPSEHELP" is set to \c YES.
+ \anchor cfg_disable_index
 <dt>\c DISABLE_INDEX <dd>
  \addindex DISABLE_INDEX
  If you want full control over the layout of the generated HTML pages it
  might be necessary to disable the index and replace it with your own.
- The \c DISABLE_INDEX tag can be used to turn on/off the condensed index at
- top of each page. A value of \c NO (the default) enables the index and the
- value \c YES disables it. Since the tabs have the same information as the 
- navigation tree you can set this option to \c NO if you already set 
- \ref cfg_generate_treeview "GENERATE_TREEVIEW" to \c YES.
+ The \c DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at
+ top of each HTML page. A value of \c NO enables the index and the
+ value \c YES disables it. Since the tabs in the index contain the same 
+ information as the navigation tree, you can set this option to \c YES if 
+ you also set \ref cfg_generate_treeview "GENERATE_TREEVIEW" to \c YES.
+
+
+The default value is: <code>NO</code>.
 
-\anchor cfg_enum_values_per_line
-<dt>\c ENUM_VALUES_PER_LINE <dd>
- \addindex ENUM_VALUES_PER_LINE
- This tag can be used to set the number of enum values (range [0,1..20]) 
- that doxygen will group on one line in the generated HTML documentation. 
- Note that a value of 0 will completely suppress the enum values from
- appearing in the overview section.
 
-\anchor cfg_generate_treeview
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_generate_treeview
 <dt>\c GENERATE_TREEVIEW <dd>
  \addindex GENERATE_TREEVIEW
  The \c GENERATE_TREEVIEW tag is used to specify whether a tree-like index
@@ -1860,38 +2334,80 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
  example that shows how to put an image at the root of the tree instead of
  the \ref cfg_project_name "PROJECT_NAME".
 
-\anchor cfg_treeview_width
+ Since the tree basically has the same information as the tab index, you could
+ consider setting \ref cfg_disable_index "DISABLE_INDEX" to \c YES when 
+ enabling this option.
+
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_enum_values_per_line
+<dt>\c ENUM_VALUES_PER_LINE <dd>
+ \addindex ENUM_VALUES_PER_LINE
+ The \c ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
+ that doxygen will group on one line in the generated HTML documentation. 
+ <br>Note that a value of 0 will completely suppress the enum values from
+ appearing in the overview section.
+
+
+ Minimum value: <code>0</code>, maximum value: <code>20</code>, default value: <code>4</code>.
+
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_treeview_width
 <dt>\c TREEVIEW_WIDTH <dd>
  \addindex TREEVIEW_WIDTH
  If the treeview is enabled (see \ref cfg_generate_treeview "GENERATE_TREEVIEW") then this tag can be
  used to set the initial width (in pixels) of the frame in which the tree
  is shown.
 
-\anchor cfg_ext_links_in_window
+
+ Minimum value: <code>0</code>, maximum value: <code>1500</code>, default value: <code>250</code>.
+
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_ext_links_in_window
 <dt>\c EXT_LINKS_IN_WINDOW <dd>
  \addindex EXT_LINKS_IN_WINDOW
  When the \c EXT_LINKS_IN_WINDOW option is set to \c YES doxygen will open 
- links to external symbols imported via tag files in a separate window. 
+ links to external symbols imported via tag files in a separate window.
+
 
-\anchor cfg_formula_fontsize
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_formula_fontsize
 <dt>\c FORMULA_FONTSIZE <dd>
  \addindex FORMULA_FONTSIZE
  Use this tag to change the font size of \f$\mbox{\LaTeX}\f$ formulas included
- as images in the HTML documentation. The default is 10.
when you change the font size after a successful doxygen run you need
+ as images in the HTML documentation.
When you change the font size after a successful doxygen run you need
  to manually remove any `form_*.png` images from the HTML 
  output directory to force them to be regenerated.
 
-\anchor cfg_formula_transparent
+
+ Minimum value: <code>8</code>, maximum value: <code>50</code>, default value: <code>10</code>.
+
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_formula_transparent
 <dt>\c FORMULA_TRANSPARENT <dd>
  \addindex FORMULA_TRANSPARENT
  Use the \c FORMULA_TRANPARENT tag to determine whether or not the images 
  generated for formulas are transparent PNGs. Transparent PNGs are 
  not supported properly for IE 6.0, but are supported on all modern browsers. 
- Note that when changing this option you need to delete any `form_*.png` files 
- in the HTML output before the changes have effect. 
+ <br>Note that when changing this option you need to delete any `form_*.png` files 
+ in the HTML output directory before the changes have effect.
+
+
+The default value is: <code>YES</code>.
+
 
-\anchor cfg_use_mathjax
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_use_mathjax
 <dt>\c USE_MATHJAX <dd>
  \addindex USE_MATHJAX
  Enable the \c USE_MATHJAX option to render \f$\mbox{\LaTeX}\f$ formulas using MathJax 
@@ -1902,36 +2418,30 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
  configure the path to it using the \ref cfg_mathjax_relpath "MATHJAX_RELPATH" 
  option.
 
-\anchor cfg_mathjax_format
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_mathjax_format
 <dt>\c MATHJAX_FORMAT <dd>
  \addindex MATHJAX_FORMAT
  When MathJax is enabled you can set the default output format to be used for 
- the MathJax output. Supported types are HTML-CSS, NativeMML (i.e. MathML) and 
- SVG. The default value is HTML-CSS, which is slower, but has the best 
- compatibility. See 
-<a href="http://docs.mathjax.org/en/latest/output.html">the MathJax site</a>
-for more details.
+ the MathJax output.
+ See <a href="http://docs.mathjax.org/en/latest/output.html">the MathJax site</a>
+ for more details.
 
-\anchor cfg_mathjax_codefile
-<dt>\c MATHJAX_CODEFILE <dd>
- \addindex MATHJAX_CODEFILE
- The MATHJAX_CODE_FILE tag can be used to specify a file with javascript 
- pieces of code that will be used on startup of the MathJax code. 
- See 
-<a href="http://docs.mathjax.org/en/latest/output.html">the MathJax site</a>
- for more details.<br>
- As an example to disable the "Math Renderer" menu item in the "Math
- Settings" menu of MathJax:
-\verbatim
-MATHJAX_CODEFILE = disableRenderer
-  with in the file \c disableRenderer:
-  MathJax.Hub.Config({
-   menuSettings: {
-    showRenderer: false,
-   } 
-  });
-\endverbatim
-\anchor cfg_mathjax_relpath
+Possible values are: 
+<code>HTML-CSS</code> (which is slower, but has the best compatibility), 
+<code>NativeMML</code> (i.e. MathML) and 
+<code>SVG</code>.
+
+
+The default value is: <code>HTML-CSS</code>.
+
+
+This tag requires that the tag \ref cfg_use_mathjax "USE_MATHJAX" is set to \c YES.
+ \anchor cfg_mathjax_relpath
 <dt>\c MATHJAX_RELPATH <dd>
  \addindex MATHJAX_RELPATH
  When MathJax is enabled you need to specify the location relative to the 
@@ -1943,19 +2453,47 @@ MATHJAX_CODEFILE = disableRenderer
  installing MathJax.  However, it is strongly recommended to install a local 
  copy of MathJax from http://www.mathjax.org before deployment.
 
-\anchor cfg_mathjax_extensions
+The default value is: <code>http://cdn.mathjax.org/mathjax/latest</code>.
+
+
+This tag requires that the tag \ref cfg_use_mathjax "USE_MATHJAX" is set to \c YES.
+ \anchor cfg_mathjax_extensions
 <dt>\c MATHJAX_EXTENSIONS <dd>
  \addindex MATHJAX_EXTENSIONS
- The \c MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension 
+ The \c MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax extension 
  names that should be enabled during MathJax rendering. For example
 \verbatim
 MATHJAX_EXTENSIONS     = TeX/AMSmath TeX/AMSsymbols
 \endverbatim
 
-\anchor cfg_searchengine
+
+This tag requires that the tag \ref cfg_use_mathjax "USE_MATHJAX" is set to \c YES.
+ \anchor cfg_mathjax_codefile
+<dt>\c MATHJAX_CODEFILE <dd>
+ \addindex MATHJAX_CODEFILE
+ The \c MATHJAX_CODEFILE tag can be used to specify a file with javascript 
+ pieces of code that will be used on startup of the MathJax code. 
+ See 
+<a href="http://docs.mathjax.org/en/latest/output.html">the MathJax site</a>
+ for more details. As an example to disable the "Math Renderer" menu item in the "Math
+ Settings" menu of MathJax:
+\verbatim
+MATHJAX_CODEFILE = disableRenderer.js
+\endverbatim
+  with in the file <code>disableRenderer.js</code>:
+\verbatim
+  MathJax.Hub.Config({
+   menuSettings: {
+    showRenderer: false,
+   } 
+  });
+\endverbatim
+
+
+This tag requires that the tag \ref cfg_use_mathjax "USE_MATHJAX" is set to \c YES.
+ \anchor cfg_searchengine
 <dt>\c SEARCHENGINE <dd>
  \addindex SEARCHENGINE
-
  When the \c SEARCHENGINE tag is enabled doxygen will generate a search box
  for the HTML output. The underlying search engine uses javascript 
  and DHTML and should work on any modern browser. Note that when using
@@ -1968,19 +2506,23 @@ MATHJAX_EXTENSIONS     = TeX/AMSmath TeX/AMSsymbols
  better solution. 
 
  It is possible to search using the keyboard;
- to jump to the search box use `<access key> + S` (what the `<access key>` is
- depends on the OS and browser, but it is typically `<CTRL>`, `<ALT>`/`<option>`, or both).
- Inside the search box use the `<cursor down key>` to jump into the search 
- results window, the results can be navigated using the `<cursor keys>`.
- Press `<Enter>` to select an item or `<escape>` to cancel the search. The
+ to jump to the search box use <code>\<access key\> + S</code> (what the <code>\<access key\></code> is
+ depends on the OS and browser, but it is typically <code>\<CTRL\></code>, <code>\<ALT\></code>/<code>\<option\></code>, or both).
+ Inside the search box use the <code>\<cursor down key\></code> to jump into the search 
+ results window, the results can be navigated using the <code>\<cursor keys\></code>.
+ Press <code>\<Enter\></code> to select an item or <code>\<escape\></code> to cancel the search. The
  filter options can be selected when the cursor is inside the search box
- by pressing `<Shift>+<cursor down>`. Also here use the `<cursor keys>` to 
- select a filter and `<Enter>` or `<escape>` to activate or cancel the filter option.
+ by pressing <code>\<Shift\>+\<cursor down\></code>. Also here use the <code>\<cursor keys\></code> to 
+ select a filter and <code>\<Enter\></code> or <code>\<escape\></code> to activate or cancel the filter option.
 
-\anchor cfg_server_based_search
+
+The default value is: <code>YES</code>.
+
+
+This tag requires that the tag \ref cfg_generate_html "GENERATE_HTML" is set to \c YES.
+ \anchor cfg_server_based_search
 <dt>\c SERVER_BASED_SEARCH <dd>
  \addindex SERVER_BASED_SEARCH
-
 When the \c SERVER_BASED_SEARCH tag is enabled the search engine will be 
 implemented using a web server instead of a web client using Javascript. 
 
@@ -1989,130 +2531,175 @@ There are two flavours of web server based searching depending on the
 doxygen will generate a PHP script for searching and an index file used 
 by the script. When \ref cfg_external_search "EXTERNAL_SEARCH" is 
 enabled the indexing and searching needs to be provided by external tools. 
-See \ref extsearch for details.
+See the section \ref extsearch for details.
+
 
-\anchor cfg_external_search
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_searchengine "SEARCHENGINE" is set to \c YES.
+ \anchor cfg_external_search
 <dt>\c EXTERNAL_SEARCH <dd>
  \addindex EXTERNAL_SEARCH
+ When \c EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP 
+ 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 
+ external search engine pointed to by the 
+ \ref cfg_searchengine_url "SEARCHENGINE_URL" option to obtain 
+ the search results.
+ <br>Doxygen ships with an example indexer (\c doxyindexer) and 
+ search engine (<code>doxysearch.cgi</code>) which are based on the open source search 
+ engine library <a href="http://xapian.org/">Xapian</a>.
+ <br>See the section \ref extsearch for details.
+
 
-When \c EXTERNAL_SEARCH is enabled doxygen will no longer generate the PHP 
-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 
-external search engine pointed to by the 
-\ref cfg_searchengine_url "SEARCHENGINE_URL" option to obtain 
-the search results. See the section \ref extsearch for details.
+The default value is: <code>NO</code>.
 
-\anchor cfg_searchengine_url
+
+This tag requires that the tag \ref cfg_searchengine "SEARCHENGINE" is set to \c YES.
+ \anchor cfg_searchengine_url
 <dt>\c SEARCHENGINE_URL <dd>
  \addindex SEARCHENGINE_URL
+ The \c SEARCHENGINE_URL should point to a search engine hosted by a web server 
+ which will return the search results when \ref cfg_external_search "EXTERNAL_SEARCH" 
+ is enabled.
+ <br>Doxygen ships with an example indexer (\c doxyindexer) and 
+ search engine (<code>doxysearch.cgi</code>) which are based on the open source search 
+ engine library <a href="http://xapian.org/">Xapian</a>.
+ See the section \ref extsearch for details.
 
-The \c SEARCHENGINE_URL should point to a search engine hosted by a web server 
-which will returned the search results when \ref cfg_external_search "EXTERNAL_SEARCH" 
-is enabled.  See the section \ref extsearch for details.
 
-\anchor cfg_searchdata_file
+This tag requires that the tag \ref cfg_searchengine "SEARCHENGINE" is set to \c YES.
+ \anchor cfg_searchdata_file
 <dt>\c SEARCHDATA_FILE <dd>
  \addindex SEARCHDATA_FILE
-
 When \ref cfg_server_based_search "SERVER_BASED_SEARCH" and 
 \ref cfg_external_search "EXTERNAL_SEARCH" are both enabled the unindexed 
 search data is written to a file for indexing by an external tool. With the 
 \c SEARCHDATA_FILE tag the name of this file can be specified.
-The default is `searchdata.xml`.
 
-\anchor cfg_external_search_id 
+The default file is: <code>searchdata.xml</code>.
+
+
+This tag requires that the tag \ref cfg_searchengine "SEARCHENGINE" is set to \c YES.
+ \anchor cfg_external_search_id
 <dt>\c EXTERNAL_SEARCH_ID <dd>
  \addindex EXTERNAL_SEARCH_ID
-
 When \ref cfg_server_based_search "SERVER_BASED_SEARCH" and 
 \ref cfg_external_search "EXTERNAL_SEARCH" are both enabled the 
 \c EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is 
 useful in combination with \ref cfg_extra_search_mappings "EXTRA_SEARCH_MAPPINGS" 
 to search through multiple projects and redirect the results back to the right project.
 
-\anchor cfg_extra_search_mappings
+
+This tag requires that the tag \ref cfg_searchengine "SEARCHENGINE" is set to \c YES.
+ \anchor cfg_extra_search_mappings
 <dt>\c EXTRA_SEARCH_MAPPINGS <dd>
  \addindex EXTRA_SEARCH_MAPPINGS
-
-The \c EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen 
-projects other than the one defined by this configuration file, but that are 
-all added to the same external search index. Each project needs to have a 
-unique id set via \ref cfg_external_search_id "EXTERNAL_SEARCH_ID". 
-The search mapping then maps the id of to a relative location where the 
-documentation can be found. 
-
-The format is: 
+ The \c EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen 
+ projects other than the one defined by this configuration file, but that are 
+ all added to the same external search index. Each project needs to have a 
+ unique id set via \ref cfg_external_search_id "EXTERNAL_SEARCH_ID". 
+ The search mapping then maps the id of to a relative location where the 
+ documentation can be found. 
+
+ The format is: 
 \verbatim
 EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... 
 \endverbatim
 
+
+This tag requires that the tag \ref cfg_searchengine "SEARCHENGINE" is set to \c YES.
 </dl>
-\section latex_output LaTeX related options
-\anchor cfg_generate_latex
+\section config_latex Configuration options related to the LaTeX output
+ \anchor cfg_generate_latex
 <dl>
 
 <dt>\c GENERATE_LATEX <dd>
  \addindex GENERATE_LATEX
- If the \c GENERATE_LATEX tag is set to \c YES (the default) doxygen will
+ If the \c GENERATE_LATEX tag is set to \c YES doxygen will
  generate \f$\mbox{\LaTeX}\f$ output.
 
-\anchor cfg_latex_output
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_latex_output
 <dt>\c LATEX_OUTPUT <dd>
  \addindex LATEX_OUTPUT
  The \c LATEX_OUTPUT tag is used to specify where the \f$\mbox{\LaTeX}\f$ 
  docs will be put.
  If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
- put in front of it. If left blank '`latex`' will be used as the default path.
+ put in front of it.
 
-\anchor cfg_latex_cmd_name
+The default directory is: <code>latex</code>.
+
+
+This tag requires that the tag \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES.
+ \anchor cfg_latex_cmd_name
 <dt>\c LATEX_CMD_NAME <dd>
  \addindex LATEX_CMD_NAME
  The \c LATEX_CMD_NAME tag can be used to specify the \f$\mbox{\LaTeX}\f$ command name to be invoked. 
- If left blank 'latex' will be used as the default command name.
- Note that when enabling \ref cfg_use_pdflatex "USE_PDFLATEX" this option is only used for
+ <br>Note that when enabling \ref cfg_use_pdflatex "USE_PDFLATEX" this option is only used for
  generating bitmaps for formulas in the HTML output, but not in the
  \c Makefile that is written to the output directory.
 
-\anchor cfg_makeindex_cmd_name
+The default file is: <code>latex</code>.
+
+
+This tag requires that the tag \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES.
+ \anchor cfg_makeindex_cmd_name
 <dt>\c MAKEINDEX_CMD_NAME <dd>
  \addindex MAKEINDEX_CMD_NAME
- The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
- generate index for \f$\mbox{\LaTeX}\f$. If left blank '`makeindex`' will be used as the 
- default command name.
+ The \c MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
+ generate index for \f$\mbox{\LaTeX}\f$.
+
+The default file is: <code>makeindex</code>.
 
-\anchor cfg_compact_latex
+
+This tag requires that the tag \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES.
+ \anchor cfg_compact_latex
 <dt>\c COMPACT_LATEX <dd>
  \addindex COMPACT_LATEX
  If the \c COMPACT_LATEX tag is set to \c YES doxygen generates more compact
  \f$\mbox{\LaTeX}\f$ documents. This may be useful for small projects and may help to
  save some trees in general.
 
-\anchor cfg_paper_type
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES.
+ \anchor cfg_paper_type
 <dt>\c PAPER_TYPE <dd>
  \addindex PAPER_TYPE
  The \c PAPER_TYPE tag can be used to set the paper type that is used
- by the printer. Possible values are: 
- <ul>
- <li><code>a4</code> (210 x 297 mm).
- <li><code>letter</code> (8.5 x 11 inches).
- <li><code>legal</code> (8.5 x 14 inches).
- <li><code>executive</code> (7.25 x 10.5 inches)
- </ul> 
- If left blank \c a4 will be used.
-
-\anchor cfg_extra_packages
+ by the printer.
+
+Possible values are: 
+<code>a4</code> (210 x 297 mm), 
+<code>letter</code> (8.5 x 11 inches), 
+<code>legal</code> (8.5 x 14 inches) and 
+<code>executive</code> (7.25 x 10.5 inches).
+
+
+The default value is: <code>a4</code>.
+
+
+This tag requires that the tag \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES.
+ \anchor cfg_extra_packages
 <dt>\c EXTRA_PACKAGES <dd>
  \addindex EXTRA_PACKAGES
  The \c EXTRA_PACKAGES tag can be used to specify one or more \f$\mbox{\LaTeX}\f$ 
  package names that should be included in the \f$\mbox{\LaTeX}\f$ output.
  To get the times font for instance you can specify 
 \verbatim
-EXTRA_PACKAGES = times
+EXTRA_PACKAGES=times
 \endverbatim
  If left blank no extra packages will be included.
 
-\anchor cfg_latex_header
+
+This tag requires that the tag \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES.
+ \anchor cfg_latex_header
 <dt>\c LATEX_HEADER <dd>
  \addindex LATEX_HEADER
  The \c LATEX_HEADER tag can be used to specify a personal \f$\mbox{\LaTeX}\f$ 
@@ -2123,8 +2710,7 @@ EXTRA_PACKAGES = times
  standard header. See section \ref doxygen_usage for information on how to 
  let doxygen write the default header to a separate file.
  
- \par Note: 
-   Only use a user-defined header if you know what you are doing!
+ <br>Note: Only use a user-defined header if you know what you are doing!
 
  The following commands have a special meaning inside the header:
  <code>\$title</code>, <code>\$datetime</code>, <code>\$date</code>,
@@ -2135,202 +2721,278 @@ EXTRA_PACKAGES = times
  the version number of doxygen, the project name (see \ref cfg_project_name "PROJECT_NAME"), or the
  project number (see \ref cfg_project_number "PROJECT_NUMBER").
 
-\anchor cfg_latex_footer
+
+This tag requires that the tag \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES.
+ \anchor cfg_latex_footer
 <dt>\c LATEX_FOOTER <dd>
  \addindex LATEX_FOOTER
- The LATEX_FOOTER tag can be used to specify a personal \f$\mbox{\LaTeX}\f$ footer for 
+ The \c LATEX_FOOTER tag can be used to specify a personal \f$\mbox{\LaTeX}\f$ footer for 
  the generated \f$\mbox{\LaTeX}\f$ document. The footer should contain everything after 
  the last chapter. If it is left blank doxygen will generate a 
  standard footer.
  
- \par Note: 
-   Only use a user-defined footer if you know what you are doing!
+ <br>Note: Only use a user-defined footer if you know what you are doing!
+
 
-\anchor cfg_latex_extra_files
+This tag requires that the tag \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES.
+ \anchor cfg_latex_extra_files
 <dt>\c LATEX_EXTRA_FILES <dd>
  \addindex LATEX_EXTRA_FILES
  The \c LATEX_EXTRA_FILES tag can be used to specify one or more extra images
- or other source files which should be copied to the \f$\mbox{\LaTeX}\f$ output directory.
+ or other source files which should be copied to the \ref cfg_latex_output "LATEX_OUTPUT"
+ output directory.
  Note that the files will be copied as-is; there are no commands or markers
  available.
 
-\anchor cfg_pdf_hyperlinks
+
+This tag requires that the tag \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES.
+ \anchor cfg_pdf_hyperlinks
 <dt>\c PDF_HYPERLINKS <dd>
  \addindex PDF_HYPERLINKS
-
  If the \c PDF_HYPERLINKS tag is set to \c YES, the \f$\mbox{\LaTeX}\f$ that 
  is generated is prepared for conversion to PDF (using \c ps2pdf or \c pdflatex). 
  The PDF file will
  contain links (just like the HTML output) instead of page references.
  This makes the output suitable for online browsing using a PDF viewer.
 
-\anchor cfg_use_pdflatex
-<dt>\c USE_PDFLATEX <dd>
- \addindex LATEX_PDFLATEX
 
+The default value is: <code>YES</code>.
+
+
+This tag requires that the tag \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES.
+ \anchor cfg_use_pdflatex
+<dt>\c USE_PDFLATEX <dd>
+ \addindex USE_PDFLATEX
  If the \c LATEX_PDFLATEX tag is set to \c YES, doxygen will use
  \c pdflatex to generate the PDF file directly from the \f$\mbox{\LaTeX}\f$
- files.
+ files.  Set this option to \c YES to get a higher quality PDF documentation.
+
 
-\anchor cfg_latex_batchmode
+The default value is: <code>YES</code>.
+
+
+This tag requires that the tag \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES.
+ \anchor cfg_latex_batchmode
 <dt>\c LATEX_BATCHMODE <dd>
  \addindex LATEX_BATCHMODE
-
  If the \c LATEX_BATCHMODE tag is set to \c YES, doxygen will add the \c \\batchmode
  command to the generated \f$\mbox{\LaTeX}\f$ files. This will 
  instruct \f$\mbox{\LaTeX}\f$ to keep running if errors occur, instead of 
  asking the user for help. This option is also used when generating formulas 
  in HTML.
 
-\anchor cfg_latex_bib_style 
-<dt>\c LATEX_BIB_STYLE <dd>
- \addindex LATEX_BIB_STYLE
 
- The \c LATEX_BIB_STYLE tag can be used to specify the style to use for the 
- bibliography, e.g. \c plainnat, or \c ieeetr. The default style is 
- \c plain. See http://en.wikipedia.org/wiki/BibTeX and \ref cmdcite "\\cite"
- for more info.
+The default value is: <code>NO</code>.
 
-\anchor cfg_latex_hide_indices
+
+This tag requires that the tag \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES.
+ \anchor cfg_latex_hide_indices
 <dt>\c LATEX_HIDE_INDICES <dd>
  \addindex LATEX_HIDE_INDICES
-
- If \c LATEX_HIDE_INDICES is set to \c YES then doxygen will not
+ If the \c LATEX_HIDE_INDICES tag is set to \c YES then doxygen will not
  include the index chapters (such as File Index, Compound Index, etc.) 
- in the output. 
+ in the output.
 
-\anchor cfg_latex_source_code
- <dt>\c LATEX_SOURCE_CODE <dd>
- If \c LATEX_SOURCE_CODE is set to \c YES then doxygen will include 
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES.
+ \anchor cfg_latex_source_code
+<dt>\c LATEX_SOURCE_CODE <dd>
+ \addindex LATEX_SOURCE_CODE
+ If the \c LATEX_SOURCE_CODE tag is set to \c YES then doxygen will include 
  source code with syntax highlighting in the \f$\mbox{\LaTeX}\f$ output. 
- Note that which sources are shown also depends on other settings 
<br>Note that which sources are shown also depends on other settings 
  such as \ref cfg_source_browser "SOURCE_BROWSER".
 
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES.
+ \anchor cfg_latex_bib_style
+<dt>\c LATEX_BIB_STYLE <dd>
+ \addindex LATEX_BIB_STYLE
+ The \c LATEX_BIB_STYLE tag can be used to specify the style to use for the 
+ bibliography, e.g. \c plainnat, or \c ieeetr. 
+ See http://en.wikipedia.org/wiki/BibTeX and \ref cmdcite "\\cite"
+ for more info.
+
+The default value is: <code>plain</code>.
+
+
+This tag requires that the tag \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES.
 </dl>
-\section rtf_output RTF related options
-\anchor cfg_generate_rtf
+\section config_rtf Configuration options related to the RTF output
+ \anchor cfg_generate_rtf
 <dl>
 
 <dt>\c GENERATE_RTF <dd>
  \addindex GENERATE_RTF
  If the \c GENERATE_RTF tag is set to \c YES doxygen will generate RTF output.
  The RTF output is optimized for Word 97 and may not look too pretty with
- other readers/editors.
+ other RTF readers/editors.
+
+
+The default value is: <code>NO</code>.
 
-\anchor cfg_rtf_output
+ \anchor cfg_rtf_output
 <dt>\c RTF_OUTPUT <dd>
  \addindex RTF_OUTPUT
  The \c RTF_OUTPUT tag is used to specify where the RTF docs will be put.
  If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
- put in front of it. If left blank '`rtf`' will be used as the default path.
-\anchor cfg_compact_rtf
+ put in front of it.
+
+The default directory is: <code>rtf</code>.
+
+
+This tag requires that the tag \ref cfg_generate_rtf "GENERATE_RTF" is set to \c YES.
+ \anchor cfg_compact_rtf
 <dt>\c COMPACT_RTF <dd>
  \addindex COMPACT_RTF
  If the \c COMPACT_RTF tag is set to \c YES doxygen generates more compact
  RTF documents. This may be useful for small projects and may help to
  save some trees in general.
 
-\anchor cfg_rtf_hyperlinks
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_rtf "GENERATE_RTF" is set to \c YES.
+ \anchor cfg_rtf_hyperlinks
 <dt>\c RTF_HYPERLINKS <dd>
  \addindex RTF_HYPERLINKS
  If the \c RTF_HYPERLINKS tag is set to \c YES, the RTF that is generated
  will contain hyperlink fields. The RTF file will
  contain links (just like the HTML output) instead of page references.
  This makes the output suitable for online browsing using Word or some other
- Word compatible reader that support those fields.
+ Word compatible readers that support those fields.
+
+ <br>Note: WordPad (write) and others do not support links.
+
+
+The default value is: <code>NO</code>.
 
- \par note:
-   WordPad (write) and others do not support links.
 
-\anchor cfg_rtf_stylesheet_file 
+This tag requires that the tag \ref cfg_generate_rtf "GENERATE_RTF" is set to \c YES.
+ \anchor cfg_rtf_stylesheet_file
 <dt>\c RTF_STYLESHEET_FILE <dd>
  \addindex RTF_STYLESHEET_FILE
  Load stylesheet definitions from file. Syntax is similar to doxygen's
  config file, i.e. a series of assignments. You only have to provide
  replacements, missing definitions are set to their default value.
-
+<br>
  See also section \ref doxygen_usage for information on how to generate
  the default style sheet that doxygen normally uses.
 
-\anchor cfg_rtf_extensions_file
+
+This tag requires that the tag \ref cfg_generate_rtf "GENERATE_RTF" is set to \c YES.
+ \anchor cfg_rtf_extensions_file
 <dt>\c RTF_EXTENSIONS_FILE <dd>
+ \addindex RTF_EXTENSIONS_FILE
  Set optional variables used in the generation of an RTF document.
  Syntax is similar to doxygen's config file. 
  A template extensions file can be generated using 
  <code>doxygen -e rtf extensionFile</code>.
 
-</dl>
 
-\section man_output Man page related options
-\anchor cfg_generate_man
+This tag requires that the tag \ref cfg_generate_rtf "GENERATE_RTF" is set to \c YES.
+</dl>
+\section config_man Configuration options related to the man page output
+ \anchor cfg_generate_man
 <dl>
 
 <dt>\c GENERATE_MAN <dd>
  \addindex GENERATE_MAN
- If the \c GENERATE_MAN tag is set to \c YES (the default) doxygen will
+ If the \c GENERATE_MAN tag is set to \c YES doxygen will
  generate man pages for classes and files.
 
-\anchor cfg_man_output
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_man_output
 <dt>\c MAN_OUTPUT <dd>
  \addindex MAN_OUTPUT
  The \c MAN_OUTPUT tag is used to specify where the man pages will be put.
  If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
- put in front of it. If left blank '`man`' will be used as the default path.
+ put in front of it. 
  A directory \c man3 will be created inside the directory specified by 
  \c MAN_OUTPUT.
 
-\anchor cfg_man_extension
+The default directory is: <code>man</code>.
+
+
+This tag requires that the tag \ref cfg_generate_man "GENERATE_MAN" is set to \c YES.
+ \anchor cfg_man_extension
 <dt>\c MAN_EXTENSION <dd>
- \addindex MAX_EXTENSION
+ \addindex MAN_EXTENSION
  The \c MAN_EXTENSION tag determines the extension that is added to
- the generated man pages (default is the subroutine's section .3). In case
+ the generated man pages. In case
  the manual section does not start with a number, the number 3 is prepended.
- The dot (.) at the beginning of the \c MAN_EXTENSION is optional.
+ The dot (.) at the beginning of the \c MAN_EXTENSION tag is optional.
+
+The default value is: <code>.3</code>.
 
-\anchor cfg_man_links
-<dt>\c MAN_LINKS <dd> 
+
+This tag requires that the tag \ref cfg_generate_man "GENERATE_MAN" is set to \c YES.
+ \anchor cfg_man_links
+<dt>\c MAN_LINKS <dd>
  \addindex MAN_LINKS
  If the \c MAN_LINKS tag is set to \c YES and doxygen generates man output, 
  then it will generate one additional man file for each entity documented in 
  the real man page(s). These additional files only source the real man page, 
- but without them the man command would be unable to find the correct page. 
- The default is \c NO.
+ but without them the \c man command would be unable to find the correct page.
 
-</dl>
 
-\section xml_output XML related options
-\anchor cfg_generate_xml
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_man "GENERATE_MAN" is set to \c YES.
+</dl>
+\section config_xml Configuration options related to the XML output
+ \anchor cfg_generate_xml
 <dl>
 
 <dt>\c GENERATE_XML <dd>
  \addindex GENERATE_XML
  If the \c GENERATE_XML tag is set to \c YES doxygen will
  generate an XML file that captures the structure of
- the code including all documentation. 
+ the code including all documentation.
 
-\anchor cfg_xml_output
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_xml_output
 <dt>\c XML_OUTPUT <dd>
  \addindex XML_OUTPUT
  The \c XML_OUTPUT tag is used to specify where the XML pages will be put. 
  If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be 
- put in front of it. If left blank '`xml`' will be used as the default path.
+ put in front of it.
+
+The default directory is: <code>xml</code>.
 
-\anchor cfg_xml_schema
+
+This tag requires that the tag \ref cfg_generate_xml "GENERATE_XML" is set to \c YES.
+ \anchor cfg_xml_schema
 <dt>\c XML_SCHEMA <dd>
  \addindex XML_SCHEMA
  The \c XML_SCHEMA tag can be used to specify a XML schema,
  which can be used by a validating XML parser to check the
  syntax of the XML files.
 
-\anchor cfg_xml_dtd
+
+This tag requires that the tag \ref cfg_generate_xml "GENERATE_XML" is set to \c YES.
+ \anchor cfg_xml_dtd
 <dt>\c XML_DTD <dd>
  \addindex XML_DTD
  The \c XML_DTD tag can be used to specify a XML DTD,
  which can be used by a validating XML parser to check the
  syntax of the XML files.
 
-\anchor cfg_xml_programlisting
+
+This tag requires that the tag \ref cfg_generate_xml "GENERATE_XML" is set to \c YES.
+ \anchor cfg_xml_programlisting
 <dt>\c XML_PROGRAMLISTING <dd>
  \addindex XML_PROGRAMLISTING
  If the \c XML_PROGRAMLISTING tag is set to \c YES doxygen will
@@ -2338,10 +3000,14 @@ EXTRA_PACKAGES = times
  and cross-referencing information) to the XML output. Note that
  enabling this will significantly increase the size of the XML output.
 
-</dl>
 
-\section docbook_output Docbook related options
-\anchor cfg_generate_docbook
+The default value is: <code>YES</code>.
+
+
+This tag requires that the tag \ref cfg_generate_xml "GENERATE_XML" is set to \c YES.
+</dl>
+\section config_docbook Configuration options related to the DOCBOOK output
+ \anchor cfg_generate_docbook
 <dl>
 
 <dt>\c GENERATE_DOCBOOK <dd>
@@ -2349,17 +3015,23 @@ EXTRA_PACKAGES = times
 If the \c GENERATE_DOCBOOK tag is set to \c YES doxygen will generate Docbook files 
 that can be used to generate PDF.
 
-\anchor cfg_docbook_output
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_docbook_output
 <dt>\c DOCBOOK_OUTPUT <dd>
  \addindex DOCBOOK_OUTPUT
 The \c DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put. 
 If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be put in 
-front of it. If left blank '`docbook`' will be used as the default path.
+front of it.
 
-</dl>
+The default directory is: <code>docbook</code>.
 
-\section autogen_output AUTOGEN_DEF related options
-\anchor cfg_generate_autogen_def
+
+This tag requires that the tag \ref cfg_generate_docbook "GENERATE_DOCBOOK" is set to \c YES.
+</dl>
+\section config_autogen Configuration options for the AutoGen Definitions output
+ \anchor cfg_generate_autogen_def
 <dl>
 
 <dt>\c GENERATE_AUTOGEN_DEF <dd>
@@ -2368,39 +3040,55 @@ front of it. If left blank '`docbook`' will be used as the default path.
  generate an AutoGen Definitions (see http://autogen.sf.net) file
  that captures the structure of the code including all
  documentation. Note that this feature is still experimental 
- and incomplete at the moment. 
+ and incomplete at the moment.
 
-</dl>
 
-\section perlmod_output PERLMOD related options
-\anchor cfg_generate_perlmod
+The default value is: <code>NO</code>.
+
+</dl>
+\section config_perlmod Configuration options related to the Perl module output
+ \anchor cfg_generate_perlmod
 <dl>
 
 <dt>\c GENERATE_PERLMOD <dd>
  \addindex GENERATE_PERLMOD
  If the \c GENERATE_PERLMOD tag is set to \c YES doxygen will
  generate a Perl module file that captures the structure of
- the code including all documentation. Note that this 
+ the code including all documentation.
+ <br>Note that this 
  feature is still experimental and incomplete at the
  moment.
 
-\anchor cfg_perlmod_latex
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_perlmod_latex
 <dt>\c PERLMOD_LATEX <dd>
  \addindex PERLMOD_LATEX
  If the \c PERLMOD_LATEX tag is set to \c YES doxygen will generate 
- the necessary Makefile rules, Perl scripts and \f$\mbox{\LaTeX}\f$ code to be able 
- to generate PDF and DVI output from the Perl module output. 
+ the necessary \c Makefile rules, \c Perl scripts and \f$\mbox{\LaTeX}\f$ code to be able 
+ to generate PDF and DVI output from the Perl module output.
 
-\anchor cfg_perlmod_pretty
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_generate_perlmod "GENERATE_PERLMOD" is set to \c YES.
+ \anchor cfg_perlmod_pretty
 <dt>\c PERLMOD_PRETTY <dd>
  \addindex PERLMOD_PRETTY
  If the \c PERLMOD_PRETTY tag is set to \c YES the Perl module output will be 
  nicely formatted so it can be parsed by a human reader.  This is useful 
  if you want to understand what is going on. On the other hand, if this
  tag is set to \c NO the size of the Perl module output will be much smaller
- and Perl will parse it just the same. 
+ and Perl will parse it just the same.
+
+
+The default value is: <code>YES</code>.
 
-\anchor cfg_perlmod_makevar_prefix
+
+This tag requires that the tag \ref cfg_generate_perlmod "GENERATE_PERLMOD" is set to \c YES.
+ \anchor cfg_perlmod_makevar_prefix
 <dt>\c PERLMOD_MAKEVAR_PREFIX <dd>
  \addindex PERLMOD_MAKEVAR_PREFIX
  The names of the make variables in the generated `doxyrules.make` file 
@@ -2408,101 +3096,145 @@ front of it. If left blank '`docbook`' will be used as the default path.
  This is useful so different `doxyrules.make` files included by the same
  `Makefile` don't overwrite each other's variables.
 
-</dl>
 
-\section config_prepro Preprocessor related options
-\anchor cfg_enable_preprocessing
+This tag requires that the tag \ref cfg_generate_perlmod "GENERATE_PERLMOD" is set to \c YES.
+</dl>
+\section config_preprocessor Configuration options related to the preprocessor
+ \anchor cfg_enable_preprocessing
 <dl>
 
 <dt>\c ENABLE_PREPROCESSING <dd>
  \addindex ENABLE_PREPROCESSING
- If the \c ENABLE_PREPROCESSING tag is set to \c YES (the default) doxygen will
+ If the \c ENABLE_PREPROCESSING tag is set to \c YES doxygen will
  evaluate all C-preprocessor directives found in the sources and include
- files. 
+ files.
+
 
-\anchor cfg_macro_expansion
+The default value is: <code>YES</code>.
+
+ \anchor cfg_macro_expansion
 <dt>\c MACRO_EXPANSION <dd>
  \addindex MACRO_EXPANSION
  If the \c MACRO_EXPANSION tag is set to \c YES doxygen will expand all macro
- names in the source code. If set to \c NO (the default) only conditional 
+ names in the source code. If set to \c NO only conditional 
  compilation will be performed. Macro expansion can be done in a controlled
  way by setting \ref cfg_expand_only_predef "EXPAND_ONLY_PREDEF" to \c YES.
 
-\anchor cfg_expand_only_predef
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" is set to \c YES.
+ \anchor cfg_expand_only_predef
 <dt>\c EXPAND_ONLY_PREDEF <dd>
  \addindex EXPAND_ONLY_PREDEF
  If the \c EXPAND_ONLY_PREDEF and \ref cfg_macro_expansion "MACRO_EXPANSION" tags are both set to \c YES
  then the macro expansion is limited to the macros specified with the
  \ref cfg_predefined "PREDEFINED" and \ref cfg_expand_as_defined "EXPAND_AS_DEFINED" tags.
 
-\anchor cfg_search_includes
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" is set to \c YES.
+ \anchor cfg_search_includes
 <dt>\c SEARCH_INCLUDES <dd>
- \addindex SEARCH_INCLUDES 
- If the \c SEARCH_INCLUDES tag is set to \c YES (the default) the includes files
+ \addindex SEARCH_INCLUDES
+ If the \c SEARCH_INCLUDES tag is set to \c YES the includes files
  in the \ref cfg_include_path "INCLUDE_PATH" will be searched if a \c \#include is found.
 
-\anchor cfg_include_path
+
+The default value is: <code>YES</code>.
+
+
+This tag requires that the tag \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" is set to \c YES.
+ \anchor cfg_include_path
 <dt>\c INCLUDE_PATH <dd>
  \addindex INCLUDE_PATH
  The \c INCLUDE_PATH tag can be used to specify one or more directories that
  contain include files that are not input files but should be processed by
  the preprocessor.
 
-\anchor cfg_include_file_patterns
+
+This tag requires that the tag \ref cfg_search_includes "SEARCH_INCLUDES" is set to \c YES.
+ \anchor cfg_include_file_patterns
 <dt>\c INCLUDE_FILE_PATTERNS <dd>
  \addindex INCLUDE_FILE_PATTERNS
  You can use the \c INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
  patterns (like `*.h` and `*.hpp`) to filter out the header-files in the 
  directories. If left blank, the patterns specified with \ref cfg_file_patterns "FILE_PATTERNS" will 
- be used. 
+ be used.
+
 
-\anchor cfg_predefined
+This tag requires that the tag \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" is set to \c YES.
+ \anchor cfg_predefined
 <dt>\c PREDEFINED <dd>
  \addindex PREDEFINED
  The \c PREDEFINED tag can be used to specify one or more macro names that
  are defined before the preprocessor is started (similar to the `-D` option of
- \c gcc). The argument of the tag is a list of macros of the form:
e.g. \c gcc). The argument of the tag is a list of macros of the form:
  <code>name</code> or <code>name=definition</code> (no spaces). 
- If the definition and the "=" are omitted,  "=1" is assumed. To prevent
+ If the definition and the \c "=" are omitted,  \c "=1" is assumed. To prevent
  a macro definition from being undefined via \c \#undef or recursively expanded
- use the \c := operator instead of the \c = operator.
+ use the <code>:=</code> operator instead of the \c = operator.
 
-\anchor cfg_expand_as_defined
+
+This tag requires that the tag \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" is set to \c YES.
+ \anchor cfg_expand_as_defined
 <dt>\c EXPAND_AS_DEFINED <dd>
  \addindex EXPAND_AS_DEFINED
  If the \ref cfg_macro_expansion "MACRO_EXPANSION" and
  \ref cfg_expand_only_predef "EXPAND_ONLY_PREDEF" tags are set to \c YES then
  this tag can be used to specify a list of macro names that should be expanded.
  The macro definition that is found in the sources will be used.
- Use the \ref cfg_predefined "PREDEFINED" tag if you want to use a different macro definition.
+ Use the \ref cfg_predefined "PREDEFINED" tag if you want to use a different macro definition that
+ overrules the definition found in the source code.
+
 
-\anchor cfg_skip_function_macros
+This tag requires that the tag \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" is set to \c YES.
+ \anchor cfg_skip_function_macros
 <dt>\c SKIP_FUNCTION_MACROS <dd>
  \addindex SKIP_FUNCTION_MACROS
- If the \c SKIP_FUNCTION_MACROS tag is set to \c YES (the default) then 
- doxygen's preprocessor will remove all function-like macros that are alone 
+ If the \c SKIP_FUNCTION_MACROS tag is set to \c YES then 
+ doxygen's preprocessor will remove all refrences to function-like macros that are alone 
  on a line, have an all uppercase name, and do not end with a semicolon. 
  Such function macros are typically 
- used for boiler-plate code, and will confuse the parser if not removed. 
+ used for boiler-plate code, and will confuse the parser if not removed.
 
+
+The default value is: <code>YES</code>.
+
+
+This tag requires that the tag \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" is set to \c YES.
 </dl>
-\section config_extref External reference options
-\anchor cfg_tagfiles
+\section config_external Configuration options related to external references
+ \anchor cfg_tagfiles
 <dl>
 
-<dt>\c TAGFILES <dd> 
+<dt>\c TAGFILES <dd>
  \addindex TAGFILES
  The \c TAGFILES tag can be used to specify one or more tag files. 
 
- See \ref external for more information about the use of tag files.
+For each 
+tag file the location of the external documentation should be added. The 
+format of a tag file without this location is as follows: 
+\verbatim
+  TAGFILES = file1 file2 ... 
+\endverbatim
+Adding location for the tag files is done as follows: 
+\verbatim
+  TAGFILES = file1=loc1 "file2 = loc2" ... 
+\endverbatim
+where `loc1` and `loc2` can be relative or absolute paths or URLs.
+ See the section \ref external for more information about the use of tag files.
 
  \note
   Each tag file must have an unique name 
-  (where the name does \e not include the path).
+  (where the name does \e NOT include the path).
   If a tag file is not located in the directory in which doxygen 
   is run, you must also specify the path to the tagfile here.
 
-\anchor cfg_generate_tagfile
+ \anchor cfg_generate_tagfile
 <dt>\c GENERATE_TAGFILE <dd>
  \addindex GENERATE_TAGFILE
  When a file name is specified after \c GENERATE_TAGFILE, doxygen will create
@@ -2510,127 +3242,189 @@ front of it. If left blank '`docbook`' will be used as the default path.
  See section \ref external for more information about the usage of 
  tag files.
 
-\anchor cfg_allexternals
+ \anchor cfg_allexternals
 <dt>\c ALLEXTERNALS <dd>
  \addindex ALLEXTERNALS
  If the \c ALLEXTERNALS tag is set to \c YES all external class will be listed
  in the class index. If set to \c NO only the inherited external classes
  will be listed.
 
-\anchor cfg_external_groups
+
+The default value is: <code>NO</code>.
+
+ \anchor cfg_external_groups
 <dt>\c EXTERNAL_GROUPS <dd>
  \addindex EXTERNAL_GROUPS
  If the \c EXTERNAL_GROUPS tag is set to \c YES all external groups will be listed
  in the modules index. If set to \c NO, only the current project's groups will
  be listed.
 
-\anchor cfg_external_pages
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_external_pages
 <dt>\c EXTERNAL_PAGES <dd>
  \addindex EXTERNAL_PAGES
  If the \c EXTERNAL_PAGES tag is set to \c YES all external pages will be listed 
  in the related pages index. If set to \c NO, only the current project's 
- pages will be listed. 
-\anchor cfg_perl_path
+ pages will be listed.
+
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_perl_path
 <dt>\c PERL_PATH <dd>
  \addindex PERL_PATH
  The \c PERL_PATH should be the absolute path and name of the perl script
- interpreter (i.e. the result of '<tt>which perl</tt>').
+ interpreter (i.e. the result of `'which perl'`).
+
+The default file (with absolute path) is: <code>/usr/bin/perl</code>.
 
 </dl>
-\section config_dot Dot options
-\anchor cfg_class_diagrams
+\section config_dot Configuration options related to the dot tool
+ \anchor cfg_class_diagrams
 <dl>
 
 <dt>\c CLASS_DIAGRAMS <dd>
  \addindex CLASS_DIAGRAMS
- If the \c CLASS_DIAGRAMS tag is set to \c YES (the default) doxygen will
+ If the \c CLASS_DIAGRAMS tag is set to \c YES doxygen will
  generate a class diagram (in HTML and \f$\mbox{\LaTeX}\f$) for classes with base or
-super classes. Setting the tag to \c NO turns the diagrams off. Note that 
-this option also works with \ref cfg_have_dot "HAVE_DOT" disabled, but it is recommended to 
-install and use \c dot, since it yields more powerful graphs. 
+ super classes. Setting the tag to \c NO turns the diagrams off. Note that 
+ this option also works with \ref cfg_have_dot "HAVE_DOT" disabled, but it is recommended to 
+ install and use \c dot, since it yields more powerful graphs.
+
+
+The default value is: <code>YES</code>.
 
-\anchor cfg_mscgen_path
+ \anchor cfg_mscgen_path
 <dt>\c MSCGEN_PATH <dd>
  \addindex MSCGEN_PATH
  You can define message sequence charts within doxygen comments using the \ref cmdmsc "\\msc" 
  command. Doxygen will then run the <a href="http://www.mcternan.me.uk/mscgen/">mscgen tool</a>) to 
  produce the chart and insert it in the documentation. The <code>MSCGEN_PATH</code> tag allows you to 
- specify the directory where the mscgen tool resides. If left empty the tool is assumed to 
+ specify the directory where the \c mscgen tool resides. If left empty the tool is assumed to 
  be found in the default search path.
 
-\anchor cfg_have_dot
+ \anchor cfg_hide_undoc_relations
+<dt>\c HIDE_UNDOC_RELATIONS <dd>
+ \addindex HIDE_UNDOC_RELATIONS
+ If set to \c YES, the inheritance and collaboration graphs will hide
+ inheritance and usage relations if the target is undocumented
+ or is not a class.
+
+
+The default value is: <code>YES</code>.
+
+ \anchor cfg_have_dot
 <dt>\c HAVE_DOT <dd>
  \addindex HAVE_DOT
  If you set the \c HAVE_DOT tag to \c YES then doxygen will assume the \c dot tool is
  available from the \c path. This tool is part of 
- <a href=" http://www.graphviz.org/">Graphviz</a>, a graph 
+ <a href="http://www.graphviz.org/">Graphviz</a>, a graph 
  visualization toolkit from AT\&T and Lucent Bell Labs. The other options in 
- this section have no effect if this option is set to \c NO (the default)
+ this section have no effect if this option is set to \c NO
+
 
-\anchor cfg_dot_num_threads
+The default value is: <code>NO</code>.
+
+ \anchor cfg_dot_num_threads
 <dt>\c DOT_NUM_THREADS <dd>
  \addindex DOT_NUM_THREADS
  The \c DOT_NUM_THREADS specifies the number of \c dot invocations doxygen is 
- allowed to run in parallel. When set to 0 (the default) doxygen will 
+ allowed to run in parallel. When set to \c 0 doxygen will 
  base this on the number of processors available in the system. You can set it 
  explicitly to a value larger than 0 to get control over the balance 
- between CPU load and processing speed.  
+ between CPU load and processing speed.
+
 
-\anchor cfg_dot_fontname
+ Minimum value: <code>0</code>, maximum value: <code>32</code>, default value: <code>0</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_dot_fontname
 <dt>\c DOT_FONTNAME <dd>
  \addindex DOT_FONTNAME
- By default doxygen will use the Helvetica font for all dot files that 
- doxygen generates. 
- When you want a differently looking font you can specify the font name 
+ When you want a differently looking font n the dot files that doxygen generates
+ you can specify the font name 
  using \c DOT_FONTNAME. You need to make sure dot is able to find the font, 
  which can be done by putting it in a standard location or by setting the 
  \c DOTFONTPATH environment variable or by setting \ref cfg_dot_fontpath "DOT_FONTPATH" to the 
- directory containing the font. 
+ directory containing the font.
+
+The default value is: <code>Helvetica</code>.
 
-\anchor cfg_dot_fontsize
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_dot_fontsize
 <dt>\c DOT_FONTSIZE <dd>
-The \c DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
-The default size is 10pt. 
+ \addindex DOT_FONTSIZE
+ The \c DOT_FONTSIZE tag can be used to set the size (in points) of the font of dot graphs.
+
 
-\anchor cfg_dot_fontpath
+ Minimum value: <code>4</code>, maximum value: <code>24</code>, default value: <code>10</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_dot_fontpath
 <dt>\c DOT_FONTPATH <dd>
  \addindex DOT_FONTPATH
- By default doxygen will tell \c dot to use the output directory to look for the 
\c FreeSans.ttf font (which doxygen will put there itself). If you specify a 
+ By default doxygen will tell \c dot to use the default font as specified with \ref cfg_dot_fontname "DOT_FONTNAME".
+ If you specify a 
  different font using \ref cfg_dot_fontname "DOT_FONTNAME" you can set the path where \c dot 
  can find it using this tag.
-\anchor cfg_class_graph
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_class_graph
 <dt>\c CLASS_GRAPH <dd>
  \addindex CLASS_GRAPH
- If the \c CLASS_GRAPH and \ref cfg_have_dot "HAVE_DOT" tags are set to \c YES then doxygen
+ If the \c CLASS_GRAPH tag is set to \c YES then doxygen
  will generate a graph for each documented class showing the direct and
  indirect inheritance relations. Setting this tag to \c YES will force 
  the \ref cfg_class_diagrams "CLASS_DIAGRAMS" tag to \c NO.
 
-\anchor cfg_collaboration_graph
+
+The default value is: <code>YES</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_collaboration_graph
 <dt>\c COLLABORATION_GRAPH <dd>
  \addindex COLLABORATION_GRAPH
- If the \c COLLABORATION_GRAPH and \ref cfg_have_dot "HAVE_DOT" are set to \c YES then doxygen
+ If the \c COLLABORATION_GRAPH tag is set to \c YES then doxygen
  will generate a graph for each documented class showing the direct and
  indirect implementation dependencies (inheritance, containment, and
  class references variables) of the class with other documented classes.
 
-\anchor cfg_group_graphs
+
+The default value is: <code>YES</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_group_graphs
 <dt>\c GROUP_GRAPHS <dd>
  \addindex GROUP_GRAPHS
- If the \c GROUP_GRAPHS and \ref cfg_have_dot "HAVE_DOT" tags are set to \c YES then doxygen
+ If the \c GROUP_GRAPHS tag is set to \c YES then doxygen
  will generate a graph for groups, showing the direct groups dependencies.
 
-\anchor cfg_uml_look
+
+The default value is: <code>YES</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_uml_look
 <dt>\c UML_LOOK <dd>
  \addindex UML_LOOK
  If the \c UML_LOOK tag is set to \c YES doxygen will generate inheritance and
  collaboration diagrams in a style similar to the OMG's Unified Modeling
  Language.
 
-\anchor cfg_uml_limit_num_fields
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_uml_limit_num_fields
 <dt>\c UML_LIMIT_NUM_FIELDS <dd>
  \addindex UML_LIMIT_NUM_FIELDS
  If the \ref cfg_uml_look "UML_LOOK" tag is enabled, the fields and methods are shown inside 
@@ -2642,164 +3436,247 @@ The default size is 10pt.
  to 10, up to 15 fields may appear, but if the number exceeds 15, the
  total amount of fields shown is limited to 10.
 
-\anchor cfg_template_relations
+
+ Minimum value: <code>0</code>, maximum value: <code>100</code>, default value: <code>10</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_template_relations
 <dt>\c TEMPLATE_RELATIONS <dd>
  \addindex TEMPLATE_RELATIONS
- If the \c TEMPLATE_RELATIONS and \ref cfg_have_dot "HAVE_DOT" tags are set to \c YES then 
doxygen will show the relations between templates and their instances.
+ If the \c TEMPLATE_RELATIONS tag is set to \c YES then 
the inheritance and collaboration graphs will show the relations between templates and their instances.
 
-\anchor cfg_hide_undoc_relations
-<dt>\c HIDE_UNDOC_RELATIONS <dd>
- \addindex HIDE_UNDOC_RELATIONS
- If set to \c YES, the inheritance and collaboration graphs will hide
- inheritance and usage relations if the target is undocumented
- or is not a class.
 
-\anchor cfg_include_graph
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_include_graph
 <dt>\c INCLUDE_GRAPH <dd>
- \addindex INCLUDE_GRAPH 
- If the \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING",
- \ref cfg_search_includes "SEARCH_INCLUDES", \ref cfg_include_graph "INCLUDE_GRAPH",
- and \ref cfg_have_dot "HAVE_DOT"
+ \addindex INCLUDE_GRAPH
+ If the \c INCLUDE_GRAPH, \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" and
+ \ref cfg_search_includes "SEARCH_INCLUDES" 
  tags are set to \c YES then doxygen will generate a graph for each documented file
  showing the direct and indirect include dependencies of the file with other
  documented files.
 
-\anchor cfg_included_by_graph
+
+The default value is: <code>YES</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_included_by_graph
 <dt>\c INCLUDED_BY_GRAPH <dd>
- \addindex INCLUDED_BY_GRAPH 
- If the \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING",
- \ref cfg_search_includes "SEARCH_INCLUDES", \ref cfg_include_graph "INCLUDED_BY_GRAPH", and
- \ref cfg_have_dot "HAVE_DOT" tags are set to \c YES then doxygen will generate a graph for each
- documented header file showing the documented files that directly or indirectly
- include this file.
-
-\anchor cfg_call_graph
+ \addindex INCLUDED_BY_GRAPH
+ If the \c INCLUDED_BY_GRAPH, \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" and
+ \ref cfg_search_includes "SEARCH_INCLUDES"
+ tags are set to \c YES then doxygen will generate a graph for each documented file
+ showing the direct and indirect include dependencies of the file with other
+ documented files.
+
+
+The default value is: <code>YES</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_call_graph
 <dt>\c CALL_GRAPH <dd>
  \addindex CALL_GRAPH
- If the \c CALL_GRAPH and \ref cfg_have_dot "HAVE_DOT" tags are set to \c YES then doxygen will 
+ If the \c CALL_GRAPH tag is set to \c YES then doxygen will 
  generate a call dependency graph for every global function or class method. 
- Note that enabling this option will significantly increase the time of a run.
<br>Note that enabling this option will significantly increase the time of a run.
  So in most cases it will be better to enable call graphs for selected 
  functions only using the \ref cmdcallgraph "\\callgraph" command.
 
-\anchor cfg_caller_graph
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_caller_graph
 <dt>\c CALLER_GRAPH <dd>
  \addindex CALLER_GRAPH
- If the \c CALLER_GRAPH and \ref cfg_have_dot "HAVE_DOT" tags are set to \c YES then doxygen will 
+ If the \c CALLER_GRAPH tag is set to \c YES then doxygen will 
  generate a caller dependency graph for every global function or class method. 
- Note that enabling this option will significantly increase the time of a run.
<br>Note that enabling this option will significantly increase the time of a run.
  So in most cases it will be better to enable caller graphs for selected 
  functions only using the \ref cmdcallergraph "\\callergraph" command.
 
-\anchor cfg_graphical_hierarchy
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_graphical_hierarchy
 <dt>\c GRAPHICAL_HIERARCHY <dd>
  \addindex GRAPHICAL_HIERARCHY
- If the \c GRAPHICAL_HIERARCHY and \ref cfg_have_dot "HAVE_DOT" tags are set to \c YES then 
+ If the \c GRAPHICAL_HIERARCHY tag is set to \c YES then 
  doxygen will graphical hierarchy of all classes instead of a textual one.
 
-\anchor cfg_directory_graph
+
+The default value is: <code>YES</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_directory_graph
 <dt>\c DIRECTORY_GRAPH <dd>
- \addindex DIRECTORY_GRAPH                 
- If the \c DIRECTORY_GRAPH, and \ref cfg_have_dot "HAVE_DOT" options are set 
+ \addindex DIRECTORY_GRAPH
+ If the \c DIRECTORY_GRAPH tag is set 
  to \c YES then doxygen will show the dependencies a directory has on other directories
  in a graphical way. The dependency relations are determined by the \c \#include
  relations between the files in the directories.
 
-\anchor cfg_dot_graph_max_nodes 
-<dt>\c DOT_GRAPH_MAX_NODES <dd>
- \addindex DOT_GRAPH_MAX_NODES
- The \c DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 
- nodes that will be shown in the graph. If the number of nodes in a graph
- becomes larger than this value, doxygen will truncate the graph, which is 
- visualized by representing a node as a red box. Note that doxygen if the number
- of direct children of the root node in a graph is already larger than
- \c DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
- that the size of a graph can be further restricted by \ref cfg_max_dot_graph_depth "MAX_DOT_GRAPH_DEPTH".
 
-\anchor cfg_max_dot_graph_depth
-<dt>\c MAX_DOT_GRAPH_DEPTH <dd>
- \addindex MAX_DOT_GRAPH_DEPTH
- The \c MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
- graphs generated by \c dot. A depth value of 3 means that only nodes reachable
- from the root by following a path via at most 3 edges will be shown. Nodes
- that lay further from the root node will be omitted. Note that setting this
- option to 1 or 2 may greatly reduce the computation time needed for large
- code bases. Also note that the size of a graph can be further restricted by
- \ref cfg_dot_graph_max_nodes "DOT_GRAPH_MAX_NODES". Using a depth of 0 means no depth restriction (the default).
+The default value is: <code>YES</code>.
+
 
-\anchor cfg_dot_image_format
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_dot_image_format
 <dt>\c DOT_IMAGE_FORMAT <dd>
  \addindex DOT_IMAGE_FORMAT
  The \c DOT_IMAGE_FORMAT tag can be used to set the image format of the images
- generated by \c dot. Possible values are \c svg, \c png, \c jpg, or \c gif.
- If left blank png will be used.
+ generated by \c dot.
  \note If you choose \c svg you need to set 
  \ref cfg_html_file_extension "HTML_FILE_EXTENSION" to \c xhtml in order to make the SVG files
  visible in IE 9+ (other browsers do not have this requirement).
 
-\anchor cfg_interactive_svg
+Possible values are: 
+<code>png</code>, 
+<code>jpg</code>, 
+<code>gif</code> and 
+<code>svg</code>.
+
+
+The default value is: <code>png</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_interactive_svg
 <dt>\c INTERACTIVE_SVG <dd>
+ \addindex INTERACTIVE_SVG
  If \ref cfg_dot_image_format "DOT_IMAGE_FORMAT" is set to \c svg, then this option can be set to \c YES to
  enable generation of interactive SVG images that allow zooming and panning. 
- Note that this requires a modern browser other than Internet Explorer. 
<br>Note that this requires a modern browser other than Internet Explorer. 
  Tested and working are Firefox, Chrome, Safari, and Opera.
- \note For IE 9+ you need to set \ref cfg_html_file_extension "HTML_FILE_EXTENSION" to xhtml in order 
+ \note For IE 9+ you need to set \ref cfg_html_file_extension "HTML_FILE_EXTENSION" to \c xhtml in order 
  to make the SVG files visible. Older versions of IE do not have SVG support.
 
-\anchor cfg_dot_path
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_dot_path
 <dt>\c DOT_PATH <dd>
  \addindex DOT_PATH
- This tag can be used to specify the path where the \c dot tool can be found. 
- If left blank, it is assumed the \c dot tool can be found in the \c path. 
+ The \c DOT_PATH tag can be used to specify the path where the \c dot tool can be found. 
+ If left blank, it is assumed the \c dot tool can be found in the \c path.
 
-\anchor cfg_dotfile_dirs
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_dotfile_dirs
 <dt>\c DOTFILE_DIRS <dd>
  \addindex DOTFILE_DIRS
- This tag can be used to specify one or more directories that 
+ The \c DOTFILE_DIRS tag can be used to specify one or more directories that 
  contain dot files that are included in the documentation (see the
  \ref cmddotfile "\\dotfile" command).
 
-\anchor cfg_mscfile_dirs
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_mscfile_dirs
 <dt>\c MSCFILE_DIRS <dd>
  \addindex MSCFILE_DIRS
- This tag can be used to specify one or more directories that 
+ The \c MSCFILE_DIRS tag can be used to specify one or more directories that 
  contain msc files that are included in the documentation (see the
  \ref cmdmscfile "\\mscfile" command).
 
-\anchor cfg_dot_transparent
+ \anchor cfg_dot_graph_max_nodes
+<dt>\c DOT_GRAPH_MAX_NODES <dd>
+ \addindex DOT_GRAPH_MAX_NODES
+ The \c DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 
+ nodes that will be shown in the graph. If the number of nodes in a graph
+ becomes larger than this value, doxygen will truncate the graph, which is 
+ visualized by representing a node as a red box. Note that doxygen if the number
+ of direct children of the root node in a graph is already larger than
+ \c DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+ that the size of a graph can be further restricted by \ref cfg_max_dot_graph_depth "MAX_DOT_GRAPH_DEPTH".
+
+
+ Minimum value: <code>0</code>, maximum value: <code>10000</code>, default value: <code>50</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_max_dot_graph_depth
+<dt>\c MAX_DOT_GRAPH_DEPTH <dd>
+ \addindex MAX_DOT_GRAPH_DEPTH
+ The \c MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
+ graphs generated by \c dot. A depth value of 3 means that only nodes reachable
+ from the root by following a path via at most 3 edges will be shown. Nodes
+ that lay further from the root node will be omitted. Note that setting this
+ option to 1 or 2 may greatly reduce the computation time needed for large
+ code bases. Also note that the size of a graph can be further restricted by
+ \ref cfg_dot_graph_max_nodes "DOT_GRAPH_MAX_NODES". Using a depth of 0 means no depth restriction.
+
+
+ Minimum value: <code>0</code>, maximum value: <code>1000</code>, default value: <code>0</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_dot_transparent
 <dt>\c DOT_TRANSPARENT <dd>
  \addindex DOT_TRANSPARENT
  Set the \c DOT_TRANSPARENT tag to \c YES to generate images with a transparent
  background. This is disabled by default, because dot on Windows does not 
- seem to support this out of the box. Warning: Depending on the platform used, 
+ seem to support this out of the box.
+ <br>
+ Warning: Depending on the platform used, 
  enabling this option may lead to badly anti-aliased labels on the edges of 
- a graph (i.e. they become hard to read). 
-\anchor cfg_dot_multi_targets
+ a graph (i.e. they become hard to read).
+
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_dot_multi_targets
 <dt>\c DOT_MULTI_TARGETS <dd>
- \addindex DOT_MULTI_TARGET
+ \addindex DOT_MULTI_TARGETS
  Set the \c DOT_MULTI_TARGETS tag to \c YES allow dot to generate multiple output
  files in one run (i.e. multiple -o and -T options on the command line). This
  makes \c dot run faster, but since only newer versions of \c dot (>1.8.10)
  support this, this feature is disabled by default.
 
-\anchor cfg_generate_legend 
+
+The default value is: <code>NO</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_generate_legend
 <dt>\c GENERATE_LEGEND <dd>
  \addindex GENERATE_LEGEND
- If the \c GENERATE_LEGEND tag is set to \c YES (the default) doxygen will
+ If the \c GENERATE_LEGEND tag is set to \c YES doxygen will
  generate a legend page explaining the meaning of the various boxes and
  arrows in the dot generated graphs.
 
-\anchor cfg_dot_cleanup
+
+The default value is: <code>YES</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
+ \anchor cfg_dot_cleanup
 <dt>\c DOT_CLEANUP <dd>
  \addindex DOT_CLEANUP
-If the \c DOT_CLEANUP tag is set to \c YES (the default) doxygen will
+If the \c DOT_CLEANUP tag is set to \c YES doxygen will
 remove the intermediate dot files that are used to generate the various graphs.
 
 
+The default value is: <code>YES</code>.
+
+
+This tag requires that the tag \ref cfg_have_dot "HAVE_DOT" is set to \c YES.
 </dl>
-<h2>Examples</h2>
+\section config_examples Examples
 
 Suppose you have a simple project consisting of two files: a source file 
 \c example.cc and a header file \c example.h.
@@ -2914,4 +3791,3 @@ Go to the <a href="commands.html">next</a> section or return to the
 \endhtmlonly
 
 */
-
index 6ae8373..e6fe814 100644 (file)
 
 Doxywizard is a GUI front-end for configuring and running doxygen. 
 
+Note it is possible to start the doxywizard with as argument the configuration file to be used.
+
 When you start doxywizard it will display the main window 
 (the actual look depends on the OS used).
 
 \image html doxywizard_main.png "Main window"
+\image latex doxywizard_main.png "Main window" width=15cm
 
 The windows shows the steps to take to configure and run doxygen.
 The first step is to choose one of the ways to configure doxygen.
@@ -58,12 +61,14 @@ If you select the Wizard button in step 1, then a dialog with
 a number of tabs will appear.
 
 \image html doxywizard_page1.png "Wizard dialog: Project settings"
+\image latex doxywizard_page1.png "Wizard dialog: Project settings" width=13cm
 
 The fields in the project tab speak for themselves. Once doxygen has finished
 the Destination directory is where to look for the results. Doxygen will
 put each output format in a separate sub-directory.
 
 \image html doxywizard_page2.png "Wizard dialog: Mode of operating"
+\image latex doxywizard_page2.png "Wizard dialog: Mode of operating" width=13cm
 
 The mode tab allows you to select how doxygen will look at your sources.
 The default is to only look for things that have been documented. 
@@ -72,11 +77,13 @@ You can also select how doxygen should present the results.
 The latter does not affect the way doxygen parses your source code.
 
 \image html doxywizard_page3.png "Wizard dialog: Output to produce"
+\image latex doxywizard_page3.png "Wizard dialog: Output to produce" width=13cm
 
 You can select one or more of the output formats that doxygen should
 produce. For HTML and LaTeX there are additional options. 
 
 \image html doxywizard_page4.png "Wizard dialog: Diagrams to generate"
+\image latex doxywizard_page4.png "Wizard dialog: Diagrams to generate" width=13cm
 
 Doxygen can produce a number of diagrams. Using the diagrams tab you
 can select which ones to generate. For most diagrams the 
@@ -110,6 +117,7 @@ The kind of input widget depends on the type of the configuration option.
 </ul>
 
 \image html doxywizard_expert.png "Some options from the Expert dialog"
+\image latex doxywizard_expert.png "Some options from the Expert dialog" width=15cm
 
 The get additional information about the meaning of an option, click
 on the "Help" button at the bottom right of the dialog and then on the
@@ -120,6 +128,7 @@ item. A tooltip with additional information will appear.
 The GUI front-end has a menu with a couple of useful items
 
 \image html doxywizard_menu.png "File menu"
+\image latex doxywizard_menu.png "File menu" width=15cm
 
 <dl>
 <dt>Open...<dd>This is the same as the "Load" button in the main window
index 6fe96fe..2afb213 100644 (file)
@@ -46,6 +46,7 @@ of a HTML tag are passed on to the HTML output only
                        Note that only for C# code, this command is equivalent to
                        \ref cmdendcode "\\endcode".
 <li><tt>\<DD\></tt>    Starts an item description.
+<li><tt>\</DD\></tt>   Ends an item description.
 <li><tt>\<DFN\></tt>   Starts a piece of text displayed in a typewriter font.
 <li><tt>\</DFN\></tt>  Ends a <tt>\<DFN\></tt> section.
 <li><tt>\<DIV></tt>    Starts a section with a specific style (HTML only)
index 4eb0308..a4fe2f7 100644 (file)
@@ -29,9 +29,10 @@ If you downloaded the source distribution, you need at least the
 following to build the executable:
 <ul>
 <li>The <a href="ftp://prep.ai.mit.edu/pub/gnu/">GNU</a> tools 
-    \c flex, \c bison and <code>GNU make</code>, and \c strip
+    \c flex, \c bison, \c libiconv and <code>GNU make</code>, and \c strip
     \addindex flex
     \addindex bison
+    \addindex libiconv
     \addindex make
     \addindex strip
 <li>In order to generate a \c Makefile for your platform, you need 
@@ -48,7 +49,7 @@ tools should be installed.
 <li>Qt Software's GUI toolkit 
     <a href="http://qt-project.org/">Qt</A>
     \addindex Qt
-    version 4.3 or higher.
+    version 4.3 or higher (but currently, Qt 5.x is not supported).
     This is needed to build the GUI front-end doxywizard. 
 <li>A \f$\mbox{\LaTeX}\f$ distribution: for instance
     <a href="http://www.tug.org/interest.html#free">TeX Live</a>
index 0673fea..570bf4c 100644 (file)
@@ -12,7 +12,6 @@
  * Documents produced by Doxygen are derivative works derived from the
  * input used in their production; they are not affected by this license.
  *
- * $Id$
  */
 /*! \page langhowto Internationalization
 
@@ -23,7 +22,7 @@ text fragments, generated by doxygen, can be produced in languages other
 than English (the default). The output language is chosen through the
 configuration file (with default name and known as Doxyfile).
 
-Currently (version 1.8.3.1), 40 languages 
+Currently (version 1.8.4), 40 languages 
 are supported (sorted alphabetically):
 Afrikaans, Arabic, Armenian, Brazilian Portuguese, Catalan, Chinese,
 Chinese Traditional, Croatian, Czech, Danish, Dutch, English,
@@ -60,8 +59,8 @@ when the translator was updated.
   </tr>
   <tr bgcolor="#ffffff">
     <td>Arabic</td>
-    <td>Moaz Reyad<br/><span style="color: red; background-color: yellow">-- searching for the maintainer --</span></td>
-    <td><span style="color: brown">[resigned]</span><br/><span style="color: brown">[Please, try to help to find someone.]</span></td>
+    <td>Moaz Reyad<br/>Muhammad Bashir Al-Noimi</td>
+    <td><span style="color: brown">[resigned]</span><br/>mbnoimi at gmail dot com</td>
     <td>1.4.6</td>
   </tr>
   <tr bgcolor="#ffffff">
@@ -92,7 +91,7 @@ when the translator was updated.
     <td>Chinese Traditional</td>
     <td>Daniel YC Lin<br/>Gary Lee</td>
     <td>dlin dot tw at gmail dot com<br/>garywlee at gmail dot com</td>
-    <td>1.8.0</td>
+    <td>up-to-date</td>
   </tr>
   <tr bgcolor="#ffffff">
     <td>Croatian</td>
@@ -104,7 +103,7 @@ when the translator was updated.
     <td>Czech</td>
     <td>Petr Přikryl</td>
     <td>prikryl at atlas dot cz</td>
-    <td>1.8.04</td>
+    <td>up-to-date</td>
   </tr>
   <tr bgcolor="#ffffff">
     <td>Danish</td>
@@ -116,7 +115,7 @@ when the translator was updated.
     <td>Dutch</td>
     <td>Dimitri van Heesch</td>
     <td>dimitri at stack dot nl</td>
-    <td>1.8.04</td>
+    <td>up-to-date</td>
   </tr>
   <tr bgcolor="#ffffff">
     <td>English</td>
@@ -128,7 +127,7 @@ when the translator was updated.
     <td>Esperanto</td>
     <td>Ander Martínez</td>
     <td>ander dot basaundi at gmail dot com</td>
-    <td>1.8.04</td>
+    <td>1.8.4</td>
   </tr>
   <tr bgcolor="#ffffff">
     <td>Finnish</td>
@@ -138,21 +137,21 @@ when the translator was updated.
   </tr>
   <tr bgcolor="#ffffff">
     <td>French</td>
-    <td>David Martinet<br/>Xavier Outhier</td>
-    <td>contact at e-concept-applications dot fr<br/>xouthier at yahoo dot fr</td>
-    <td>1.8.0</td>
+    <td>David Martinet<br/>Xavier Outhier<br/>Benoît BROSSE</td>
+    <td>contact at e-concept-applications dot fr<br/>xouthier at yahoo dot fr<br/>Benoit dot BROSSE at ingenico dot com</td>
+    <td>up-to-date</td>
   </tr>
   <tr bgcolor="#ffffff">
     <td>German</td>
     <td>Peter Grotrian<br/>Jens Seidel</td>
     <td>Peter dot Grotrian at pdv-FS dot de<br/>jensseidel at users dot sf dot net</td>
-    <td>1.8.04</td>
+    <td>1.8.4</td>
   </tr>
   <tr bgcolor="#ffffff">
     <td>Greek</td>
     <td>Paul Gessos</td>
     <td>gessos dot paul at yahoo dot gr</td>
-    <td>1.8.04</td>
+    <td>1.8.4</td>
   </tr>
   <tr bgcolor="#ffffff">
     <td>Hungarian</td>
@@ -278,7 +277,7 @@ when the translator was updated.
     <td>Spanish</td>
     <td>Bartomeu<br/>Francisco Oltra Thennet<br/>David Vaquero</td>
     <td>bartomeu at loteria3cornella dot com<br/><span style="color: brown">[unreachable]</span><br/>david at grupoikusnet dot com</td>
-    <td>1.8.04</td>
+    <td>up-to-date</td>
   </tr>
   <tr bgcolor="#ffffff">
     <td>Swedish</td>
@@ -296,7 +295,7 @@ when the translator was updated.
     <td>Ukrainian</td>
     <td>Olexij Tkatchenko<br/>Petro  Yermolenko</td>
     <td><span style="color: brown">[resigned]</span><br/>python at i dot ua</td>
-    <td>1.8.04</td>
+    <td>1.8.4</td>
   </tr>
   <tr bgcolor="#ffffff">
     <td>Vietnamese</td>
@@ -323,7 +322,7 @@ when the translator was updated.
   Afrikaans & Johan Prinsloo & {\tt\tiny johan at zippysnoek dot com} & 1.6.0 \\
   \hline
   Arabic & Moaz Reyad & {\tt\tiny [resigned] moazreyad at yahoo dot com} & 1.4.6 \\
-  ~ & -- searching for the maintainer -- & {\tt\tiny [Please, try to help to find someone.]} & ~ \\
+  ~ & Muhammad Bashir Al-Noimi & {\tt\tiny mbnoimi at gmail dot com} & ~ \\
   \hline
   Armenian & Armen Tangamyan & {\tt\tiny armen dot tangamyan at anu dot edu dot au} & 1.8.0 \\
   \hline
@@ -336,31 +335,32 @@ when the translator was updated.
   ~ & Li Daobing & {\tt\tiny lidaobing at gmail dot com} & ~ \\
   ~ & Wei Liu & {\tt\tiny liuwei at asiainfo dot com} & ~ \\
   \hline
-  Chinese Traditional & Daniel YC Lin & {\tt\tiny dlin dot tw at gmail dot com} & 1.8.0 \\
+  Chinese Traditional & Daniel YC Lin & {\tt\tiny dlin dot tw at gmail dot com} & up-to-date \\
   ~ & Gary Lee & {\tt\tiny garywlee at gmail dot com} & ~ \\
   \hline
   Croatian & Boris Bralo & {\tt\tiny boris dot bralo at gmail dot com} & 1.8.2 \\
   \hline
-  Czech & Petr Přikryl & {\tt\tiny prikryl at atlas dot cz} & 1.8.04 \\
+  Czech & Petr Přikryl & {\tt\tiny prikryl at atlas dot cz} & up-to-date \\
   \hline
   Danish & Poul-Erik Hansen & {\tt\tiny pouhan at gnotometrics dot dk} & 1.8.0 \\
   ~ & Erik Søe Sørensen & {\tt\tiny eriksoe+doxygen at daimi dot au dot dk} & ~ \\
   \hline
-  Dutch & Dimitri van Heesch & {\tt\tiny dimitri at stack dot nl} & 1.8.04 \\
+  Dutch & Dimitri van Heesch & {\tt\tiny dimitri at stack dot nl} & up-to-date \\
   \hline
   English & Dimitri van Heesch & {\tt\tiny dimitri at stack dot nl} & up-to-date \\
   \hline
-  Esperanto & Ander Martínez & {\tt\tiny ander dot basaundi at gmail dot com} & 1.8.04 \\
+  Esperanto & Ander Martínez & {\tt\tiny ander dot basaundi at gmail dot com} & 1.8.4 \\
   \hline
   Finnish & Antti Laine & {\tt\tiny antti dot a dot laine at tut dot fi} & 1.6.0 \\
   \hline
-  French & David Martinet & {\tt\tiny contact at e-concept-applications dot fr} & 1.8.0 \\
+  French & David Martinet & {\tt\tiny contact at e-concept-applications dot fr} & up-to-date \\
   ~ & Xavier Outhier & {\tt\tiny xouthier at yahoo dot fr} & ~ \\
+  ~ & Benoît BROSSE & {\tt\tiny Benoit dot BROSSE at ingenico dot com} & ~ \\
   \hline
-  German & Peter Grotrian & {\tt\tiny Peter dot Grotrian at pdv-FS dot de} & 1.8.04 \\
+  German & Peter Grotrian & {\tt\tiny Peter dot Grotrian at pdv-FS dot de} & 1.8.4 \\
   ~ & Jens Seidel & {\tt\tiny jensseidel at users dot sf dot net} & ~ \\
   \hline
-  Greek & Paul Gessos & {\tt\tiny gessos dot paul at yahoo dot gr} & 1.8.04 \\
+  Greek & Paul Gessos & {\tt\tiny gessos dot paul at yahoo dot gr} & 1.8.4 \\
   \hline
   Hungarian & Ákos Kiss & {\tt\tiny akiss at users dot sourceforge dot net} & 1.4.6 \\
   ~ & Földvári György & {\tt\tiny [unreachable] foldvari lost at cyberspace} & ~ \\
@@ -417,7 +417,7 @@ when the translator was updated.
   \hline
   Slovene & Matjaž Ostroveršnik & {\tt\tiny matjaz dot ostroversnik at ostri dot org} & 1.4.6 \\
   \hline
-  Spanish & Bartomeu & {\tt\tiny bartomeu at loteria3cornella dot com} & 1.8.04 \\
+  Spanish & Bartomeu & {\tt\tiny bartomeu at loteria3cornella dot com} & up-to-date \\
   ~ & Francisco Oltra Thennet & {\tt\tiny [unreachable] foltra at puc dot cl} & ~ \\
   ~ & David Vaquero & {\tt\tiny david at grupoikusnet dot com} & ~ \\
   \hline
@@ -425,7 +425,7 @@ when the translator was updated.
   \hline
   Turkish & Emin Ilker Cetinbas & {\tt\tiny niw3 at yahoo dot com} & 1.7.5 \\
   \hline
-  Ukrainian & Olexij Tkatchenko & {\tt\tiny [resigned] olexij at tkatchenko dot com} & 1.8.04 \\
+  Ukrainian & Olexij Tkatchenko & {\tt\tiny [resigned] olexij at tkatchenko dot com} & 1.8.4 \\
   ~ & Petro  Yermolenko & {\tt\tiny python at i dot ua} & ~ \\
   \hline
   Vietnamese & Dang Minh Tuan & {\tt\tiny tuanvietkey at gmail dot com} & 1.6.0 \\
index 661e67b..80b81da 100644 (file)
@@ -16,7 +16,6 @@ change the language.doc, make the changes here and inside maintainers.txt.
  * Documents produced by Doxygen are derivative works derived from the
  * input used in their production; they are not affected by this license.
  *
- * $Id$
  */
 /*! \page langhowto Internationalization
 
index 306b123..e09218e 100644 (file)
@@ -1,5 +1,3 @@
-% $Id$
-%
 % The text is in UTF-8. Comments start with % sign at the beginning.
 % There is one record for each language. The records are separated
 % by the empty line and they do not contain empty lines.
@@ -20,7 +18,7 @@ Johan Prinsloo: johan at zippysnoek dot com
 
 TranslatorArabic
 Moaz Reyad: [resigned] moazreyad at yahoo dot com
--- searching for the maintainer --: [Please, try to help to find someone.]
+Muhammad Bashir Al-Noimi: mbnoimi at gmail dot com
 
 TranslatorArmenian
 Armen Tangamyan: armen dot tangamyan at anu dot edu dot au
@@ -66,6 +64,7 @@ Antti Laine: antti dot a dot laine at tut dot fi
 TranslatorFrench
 David Martinet: contact at e-concept-applications dot fr
 Xavier Outhier: xouthier at yahoo dot fr
+Benoît BROSSE: Benoit dot BROSSE at ingenico dot com
 
 TranslatorGerman
 Peter Grotrian: Peter dot Grotrian at pdv-FS dot de
index b32cca4..afd1add 100644 (file)
@@ -283,6 +283,9 @@ To create a link to an URL or e-mail address Markdown supports the following
 syntax:
 
     <http://www.example.com>
+    <https://www.example.com>
+    <ftp://www.example.com>
+    <mailto:address@example.com>
     <address@example.com>
 
 Note that doxygen will also produce the links without the angle brackets.
index f480780..6ad07ed 100644 (file)
@@ -20,7 +20,7 @@ Source files that are used as input to doxygen can be parsed by doxygen's
 built-in C-preprocessor.
 
 By default doxygen does only partial preprocessing. That is, it 
-evaluates conditional compilation statements (like \#if) and 
+evaluates conditional compilation statements (like \c \#if) and 
 evaluates macro definitions, but it does not perform macro expansion.
 
 So if you have the following code fragment
@@ -75,14 +75,14 @@ the \ref cfg_predefined "PREDEFINED" or
 \ref cfg_expand_as_defined "EXPAND_AS_DEFINED" tag.  
 
 A typically example where some help from the preprocessor is needed is
-when dealing with Microsoft's __declspec language extension. The same goes
-for GNU's __attribute__ extension. Here is an example function.
+when dealing with the language extension from Microsoft: \c __declspec. The same goes
+for GNU's \c \__attribute__ extension. Here is an example function.
 
 \verbatim
 extern "C" void __declspec(dllexport) ErrorMsg( String aMessage,...);
 \endverbatim
 
-When nothing is done, doxygen will be confused and see __declspec as
+When nothing is done, doxygen will be confused and see \c __declspec as
 some sort of function. To help doxygen one typically uses the following
 preprocessor settings:
 
@@ -93,10 +93,10 @@ EXPAND_ONLY_PREDEF     = YES
 PREDEFINED             = __declspec(x)=
 \endverbatim
 
-This will make sure the __declspec(dllexport) is removed before doxygen
+This will make sure the \c __declspec(dllexport) is removed before doxygen
 parses the source code.
 
-Similar settings can be used for removing __attribute__ expressions from the input:
+Similar settings can be used for removing \c \__attribute__ expressions from the input:
 
 \verbatim  
 ENABLE_PREPROCESSING   = YES
@@ -127,7 +127,7 @@ DECLARE_INTERFACE(IUnknown)
 \endverbatim
 
 without macro expansion doxygen will get confused, but we may not want to 
-expand the REFIID macro, because it is documented and the user that reads 
+expand the \c REFIID macro, because it is documented and the user that reads 
 the documentation should use it when implementing the interface.
 
 By setting the following in the config file:
@@ -183,7 +183,7 @@ class QListT
 \endverbatim
 
 Then the only way to get doxygen interpret this as a class definition
-for class QList is to define:
+for class \c QList is to define:
 \verbatim
 PREDEFINED = QListT:=QList
 \endverbatim
index 3550fc7..2abce71 100644 (file)
@@ -16,9 +16,7 @@
   Originally, the script was written in Perl and was known as translator.pl.
   The last Perl version was dated 2002/05/21 (plus some later corrections)
 
-  $Id$
-
-                                         Petr Prikryl (prikrylp@skil.cz)
+                                         Petr Prikryl (prikryl at atlas dot cz)
 
   History:
   --------
@@ -63,6 +61,7 @@
   2010/09/27 - The underscore in \latexonly part of the generated language.doc
                was prefixed by backslash (was LaTeX related error).
   2013/02/19 - Better diagnostics when translator_xx.h is too crippled.
+  2013/06/25 - TranslatorDecoder checks removed after removing the class.
   """
 
 from __future__ import generators
@@ -187,7 +186,6 @@ class Transl:
         self.missingMethods = None   # list of prototypes to be implemented
         self.implementedMethods = None  # list of implemented required methods
         self.adaptMinClass = None    # The newest adapter class that can be used
-        self.isDecodedTranslator = None  # Flag related to internal usage of UTF-8
 
     def __tokenGenerator(self):
         """Generator that reads the file and yields tokens as 4-tuples.
@@ -1119,13 +1117,6 @@ class Transl:
             else:
                 self.missingMethods.append(p)
 
-        # Set the least important note first if the translator is decoded.
-        # If yes, then it means that the implementation should be switched
-        # to UTF-8 later (suggestion).
-        self.isDecodedTranslator = self.classId in self.manager.decodedTranslators
-        if self.isDecodedTranslator:
-            self.note = 'Reimplementation using UTF-8 suggested.'
-
         # Check whether adapter must be used or suggest the newest one.
         # Change the status and set the note accordingly.
         if self.baseClassId != 'Translator':
@@ -1309,44 +1300,10 @@ class TrManager:
         self.numLang = None                   # excluding coupled En-based
         self.doxVersion = None                # Doxygen version
 
-        # Capture the knowledge about translators that are not implemented
-        # to use UTF-8 internally.
-        self.decodedTranslators = self.getDecodedTranslators()
-
         # Build objects where each one is responsible for one translator.
         self.__build()
 
 
-    def getDecodedTranslators(self):
-        """Parses language.cpp to find what translators do not use UTF-8 yet"""
-        decodedTranslators = []
-
-        # Regular expression to detect the lines like
-        #     theTranslator=new TranslatorDecoder(new TranslatorSwedish);
-        rex = re.compile(r'^\s*theTranslator\s*=\s*new\s+.*$')
-
-        # Regular expression to get the (optional) TranslatorDecoder and TranslatorXXX
-        rex2 = re.compile(r'\bTranslator\w+')
-
-        # Parse the lines in the specific source code.
-        f = open(os.path.join(self.src_path, 'language.cpp'), 'rU')
-        for line in f:
-            if rex.match(line):
-                lst = rex2.findall(line)
-                if lst[0] == 'TranslatorDecoder':
-                    decodedTranslators.append(lst[1])
-        f.close()
-
-        # Display warning when all translator implementations were converted
-        # to UTF-8.
-        if len(decodedTranslators) == 0:
-            print 'This script should be updated. All translators do use UTF-8'
-            print 'internally.  The TranslatorDecoder adapter should be removed'
-            print 'from the code and its usage should not be checked any more.'
-
-        return decodedTranslators
-
-
     def __build(self):
         """Find the translator files and build the objects for translators."""
 
diff --git a/doc/translator_report.txt b/doc/translator_report.txt
deleted file mode 100644 (file)
index 0fffb30..0000000
+++ /dev/null
@@ -1,1477 +0,0 @@
-(1.8.3.1)
-
-Doxygen supports the following 40 languages (sorted alphabetically):
-
-Afrikaans, Arabic, Armenian, Brazilian Portuguese, Catalan, Chinese,
-Chinese Traditional, Croatian, Czech, Danish, Dutch, English,
-Esperanto, Finnish, French, German, Greek, Hungarian, Indonesian,
-Italian, Japanese (+En), Korean (+En), Latvian, Lithuanian,
-Macedonian, Norwegian, Persian, Polish, Portuguese, Romanian, Russian,
-Serbian, SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish,
-Ukrainian, and Vietnamese.
-
-Of them, 5 translators are up-to-date, 35 translators are based on
-some adapter class, and 2 are English based.
-
-----------------------------------------------------------------------
-The following translator classes are up-to-date (sorted
-alphabetically). This means that they derive from the Translator class
-and they implement all 250 of the required methods. Anyway, there
-still may be some details listed even for them:
-
-  TranslatorEnglish
-  TranslatorKorean -- Change the base class to Translator.
-  TranslatorLatvian -- Reimplementation using UTF-8 suggested.
-  TranslatorRomanian -- Reimplementation using UTF-8 suggested.
-  TranslatorSlovak
-
-----------------------------------------------------------------------
-The following translator classes need some maintenance (the most
-obsolete at the end). The other info shows the estimation of Doxygen
-version when the class was last updated and number of methods that
-must be implemented to become up-to-date:
-
-  TranslatorUkrainian             1.8.04        8 methods to implement (3 %)
-       Note: Change the base class to TranslatorAdapter_1_8_4.
-
-  TranslatorSpanish               1.8.04        8 methods to implement (3 %)
-       Note: Change the base class to TranslatorAdapter_1_8_4.
-
-  TranslatorGreek                 1.8.04        8 methods to implement (3 %)
-       Note: Change the base class to TranslatorAdapter_1_8_4.
-
-  TranslatorGerman                1.8.04        8 methods to implement (3 %)
-       Note: Change the base class to TranslatorAdapter_1_8_4.
-
-  TranslatorEsperanto             1.8.04        8 methods to implement (3 %)
-       Note: Change the base class to TranslatorAdapter_1_8_4.
-
-  TranslatorDutch                 1.8.04        8 methods to implement (3 %)
-       Note: Change the base class to TranslatorAdapter_1_8_4.
-
-  TranslatorCzech                 1.8.04        8 methods to implement (3 %)
-       Note: Change the base class to TranslatorAdapter_1_8_4.
-
-  TranslatorPolish                1.8.2        14 methods to implement (5 %)
-  TranslatorItalian               1.8.2        15 methods to implement (6 %)
-  TranslatorCroatian              1.8.2        15 methods to implement (6 %)
-  TranslatorChinese               1.8.2        15 methods to implement (6 %)
-  TranslatorPortuguese            1.8.0        22 methods to implement (8 %)
-  TranslatorIndonesian            1.8.0        22 methods to implement (8 %)
-       Note: Reimplementation using UTF-8 suggested.
-
-  TranslatorFrench                1.8.0        22 methods to implement (8 %)
-       Note: Reimplementation using UTF-8 suggested.
-
-  TranslatorDanish                1.8.0        22 methods to implement (8 %)
-       Note: Reimplementation using UTF-8 suggested.
-
-  TranslatorChinesetraditional    1.8.0        22 methods to implement (8 %)
-       Note: Reimplementation using UTF-8 suggested.
-
-  TranslatorCatalan               1.8.0        22 methods to implement (8 %)
-  TranslatorBrazilian             1.8.0        22 methods to implement (8 %)
-  TranslatorArmenian              1.8.0        22 methods to implement (8 %)
-  TranslatorTurkish               1.7.5        25 methods to implement (10 %)
-  TranslatorRussian               1.7.5        25 methods to implement (10 %)
-       Note: Reimplementation using UTF-8 suggested.
-
-  TranslatorPersian               1.7.5        25 methods to implement (10 %)
-  TranslatorVietnamese            1.6.0        34 methods to implement (13 %)
-  TranslatorSwedish               1.6.0        34 methods to implement (13 %)
-       Note: Reimplementation using UTF-8 suggested.
-
-  TranslatorSerbian               1.6.0        34 methods to implement (13 %)
-       Note: Reimplementation using UTF-8 suggested.
-
-  TranslatorSerbianCyrilic        1.6.0        34 methods to implement (13 %)
-  TranslatorMacedonian            1.6.0        34 methods to implement (13 %)
-  TranslatorJapanese              1.6.0        33 methods to implement (13 %)
-       Note: Reimplementation using UTF-8 suggested.
-
-  TranslatorFinnish               1.6.0        34 methods to implement (13 %)
-  TranslatorAfrikaans             1.6.0        34 methods to implement (13 %)
-       Note: Reimplementation using UTF-8 suggested.
-
-  TranslatorSlovene               1.4.6        58 methods to implement (23 %)
-       Note: Reimplementation using UTF-8 suggested.
-
-  TranslatorNorwegian             1.4.6        56 methods to implement (22 %)
-       Note: Reimplementation using UTF-8 suggested.
-
-  TranslatorLithuanian            1.4.6        58 methods to implement (23 %)
-       Note: Reimplementation using UTF-8 suggested.
-
-  TranslatorHungarian             1.4.6        58 methods to implement (23 %)
-       Note: Reimplementation using UTF-8 suggested.
-
-  TranslatorArabic                1.4.6        56 methods to implement (22 %)
-
-----------------------------------------------------------------------
-The following translator classes derive directly from the
-TranslatorEnglish. The class identifier has the suffix 'En' that says
-that this is intentional. Usually, there is also a non-English based
-version of the translator for the language:
-
-  TranslatorJapaneseEn implements 5 methods -- Reimplementation using UTF-8 suggested.
-  TranslatorKoreanEn   implements 5 methods -- Reimplementation using UTF-8 suggested.
-
-======================================================================
-WARNING: The following translator methods are declared in the
-Translator class but their identifiers do not appear in source files.
-The situation should be checked. The .cpp files and .h files excluding
-the '*translator*' files in doxygen/src directory were simply searched
-for occurrence of the method identifiers:
-
-  QCString idLanguageCharset()
-  QCString trAlphabeticalList()
-  QCString trDCOPMethods()
-  QCString trDirDependency(const char *)
-  QCString trFuncProtos()
-  QCString trFunctionPrototypeDocumentation()
-  QCString trSearchForIndex()
-  QCString trWrittenBy()
-
-
-======================================================================
-Details for translators (classes sorted alphabetically):
-
-
-
-TranslatorAfrikaans   (TranslatorAdapter_1_6_0)  34 methods to implement (13 %)
--------------------
-
-  Implements 216 of the required methods (86 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trSearching()
-    virtual QCString trTemplateParameters()
-    virtual QCString trNoMatches()
-    virtual QCString trLoading()
-    virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
-    virtual QCString trServices()
-    virtual QCString trFileIn(const char * name)
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trGlobalNamespace()
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trDirDepGraph(const char * name)
-    virtual QCString trDirRelation(const char * name)
-    virtual QCString trMethodDocumentation()
-    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 trInterfaces()
-    virtual QCString trCopyright()
-    virtual QCString trIncludesFileIn(const char * name)
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorArabic   (TranslatorAdapter_1_4_6)  56 methods to implement (22 %)
-----------------
-
-  Implements 194 of the required methods (77 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
-    virtual QCString trSearching()
-    virtual QCString trTemplateParameters()
-    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 trServices()
-    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 trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trGlobalNamespace()
-    virtual QCString trMemberFunctionDocumentationFortran()
-    virtual QCString trCompoundListDescriptionFortran()
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trTypeDocumentation()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    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 trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trCompoundIndexFortran()
-    virtual QCString trSubprogram(bool first_capital, bool singular)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    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 trSingletonReference(const char * sName)
-    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 trHeaderFiles()
-    virtual QCString trBugsAndLimitations()
-    virtual QCString trNoDescriptionAvailable()
-
-
-TranslatorArmenian   (TranslatorAdapter_1_8_0)  22 methods to implement (8 %)
-------------------
-
-  Implements 228 of the required methods (91 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trTemplateParameters()
-    virtual QCString trServices()
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trMethodDocumentation()
-    virtual QCString trEnumReference(const char * name)
-    virtual QCString trInheritedFrom(const char * members, const char * what)
-    virtual QCString trAdditionalInheritedMembers()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorBrazilian   (TranslatorAdapter_1_8_0)  22 methods to implement (8 %)
--------------------
-
-  Implements 228 of the required methods (91 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trTemplateParameters()
-    virtual QCString trServices()
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trMethodDocumentation()
-    virtual QCString trEnumReference(const char * name)
-    virtual QCString trInheritedFrom(const char * members, const char * what)
-    virtual QCString trAdditionalInheritedMembers()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorCatalan   (TranslatorAdapter_1_8_0)  22 methods to implement (8 %)
------------------
-
-  Implements 228 of the required methods (91 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trTemplateParameters()
-    virtual QCString trServices()
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trMethodDocumentation()
-    virtual QCString trEnumReference(const char * name)
-    virtual QCString trInheritedFrom(const char * members, const char * what)
-    virtual QCString trAdditionalInheritedMembers()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorChinese   (TranslatorAdapter_1_8_2)  15 methods to implement (6 %)
------------------
-
-  Implements 235 of the required methods (94 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trServices()
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trConstantGroups()
-    virtual QCString trMethodDocumentation()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorChinesetraditional   (TranslatorAdapter_1_8_0)  22 methods to implement (8 %)
-----------------------------
-
-  Implements 228 of the required methods (91 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trTemplateParameters()
-    virtual QCString trServices()
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trMethodDocumentation()
-    virtual QCString trEnumReference(const char * name)
-    virtual QCString trInheritedFrom(const char * members, const char * what)
-    virtual QCString trAdditionalInheritedMembers()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorCroatian   (TranslatorAdapter_1_8_2)  15 methods to implement (6 %)
-------------------
-
-  Implements 235 of the required methods (94 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trServices()
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trConstantGroups()
-    virtual QCString trMethodDocumentation()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorCzech   (TranslatorAdapter_1_8_2)  8 methods to implement (3 %)
----------------
-
-  Implements 242 of the required methods (96 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trServices()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trConstantGroups()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trSingletonReference(const char * sName)
-
-
-TranslatorDanish   (TranslatorAdapter_1_8_0)  22 methods to implement (8 %)
-----------------
-
-  Implements 228 of the required methods (91 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trTemplateParameters()
-    virtual QCString trServices()
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trMethodDocumentation()
-    virtual QCString trEnumReference(const char * name)
-    virtual QCString trInheritedFrom(const char * members, const char * what)
-    virtual QCString trAdditionalInheritedMembers()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorDutch   (TranslatorAdapter_1_8_2)  8 methods to implement (3 %)
----------------
-
-  Implements 242 of the required methods (96 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trServices()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trConstantGroups()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trSingletonReference(const char * sName)
-
-
-TranslatorEsperanto   (TranslatorAdapter_1_8_2)  8 methods to implement (3 %)
--------------------
-
-  Implements 242 of the required methods (96 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trServices()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trConstantGroups()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trSingletonReference(const char * sName)
-
-
-TranslatorFinnish   (TranslatorAdapter_1_6_0)  34 methods to implement (13 %)
------------------
-
-  Implements 216 of the required methods (86 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trSearching()
-    virtual QCString trTemplateParameters()
-    virtual QCString trNoMatches()
-    virtual QCString trLoading()
-    virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
-    virtual QCString trServices()
-    virtual QCString trFileIn(const char * name)
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trGlobalNamespace()
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trDirDepGraph(const char * name)
-    virtual QCString trDirRelation(const char * name)
-    virtual QCString trMethodDocumentation()
-    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 trInterfaces()
-    virtual QCString trCopyright()
-    virtual QCString trIncludesFileIn(const char * name)
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorFrench   (TranslatorAdapter_1_8_0)  22 methods to implement (8 %)
-----------------
-
-  Implements 228 of the required methods (91 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trTemplateParameters()
-    virtual QCString trServices()
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trMethodDocumentation()
-    virtual QCString trEnumReference(const char * name)
-    virtual QCString trInheritedFrom(const char * members, const char * what)
-    virtual QCString trAdditionalInheritedMembers()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorGerman   (TranslatorAdapter_1_8_2)  8 methods to implement (3 %)
-----------------
-
-  Implements 242 of the required methods (96 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trServices()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trConstantGroups()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trSingletonReference(const char * sName)
-
-
-TranslatorGreek   (TranslatorAdapter_1_8_2)  8 methods to implement (3 %)
----------------
-
-  Implements 242 of the required methods (96 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trServices()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trConstantGroups()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trSingletonReference(const char * sName)
-
-
-TranslatorHungarian   (TranslatorAdapter_1_4_6)  58 methods to implement (23 %)
--------------------
-
-  Implements 192 of the required methods (76 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
-    virtual QCString trSearching()
-    virtual QCString trTemplateParameters()
-    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 trServices()
-    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 trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trGlobalNamespace()
-    virtual QCString trMemberFunctionDocumentationFortran()
-    virtual QCString trCompoundListDescriptionFortran()
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trTypeDocumentation()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    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 trInterfaces()
-    virtual QCString trCopyright()
-    virtual QCString trIncludesFileIn(const char * name)
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trCompoundIndexFortran()
-    virtual QCString trSubprogram(bool first_capital, bool singular)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trCallerGraph()
-    virtual QCString trExtendsClass()
-    virtual QCString trEnumerationValueDocumentation()
-    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 trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorIndonesian   (TranslatorAdapter_1_8_0)  22 methods to implement (8 %)
---------------------
-
-  Implements 228 of the required methods (91 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trTemplateParameters()
-    virtual QCString trServices()
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trMethodDocumentation()
-    virtual QCString trEnumReference(const char * name)
-    virtual QCString trInheritedFrom(const char * members, const char * what)
-    virtual QCString trAdditionalInheritedMembers()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorItalian   (TranslatorAdapter_1_8_2)  15 methods to implement (6 %)
------------------
-
-  Implements 235 of the required methods (94 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trServices()
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trConstantGroups()
-    virtual QCString trMethodDocumentation()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorJapanese   (TranslatorAdapter_1_6_0)  33 methods to implement (13 %)
-------------------
-
-  Implements 217 of the required methods (86 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trSearching()
-    virtual QCString trTemplateParameters()
-    virtual QCString trNoMatches()
-    virtual QCString trLoading()
-    virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
-    virtual QCString trServices()
-    virtual QCString trFileIn(const char * name)
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trGlobalNamespace()
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trDirDepGraph(const char * name)
-    virtual QCString trDirRelation(const char * name)
-    virtual QCString trMethodDocumentation()
-    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 trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    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 trHeaderFiles()
-    virtual QCString trBugsAndLimitations()
-    virtual QCString trNoDescriptionAvailable()
-
-
-TranslatorJapaneseEn   (TranslatorEnglish)  245 methods to implement (98 %)
---------------------
-
-  Implements 5 of the required methods (2 %).
-
-  This English-based translator implements the following methods:
-
-    virtual QCString trRTFansicp()
-    virtual QCString idLanguage()
-    virtual QCString trRTFCharSet()
-    virtual QCString idLanguageCharset()
-    virtual QCString latexLanguageSupportCommand()
-
-
-TranslatorKorean   (TranslatorAdapter_1_7_5)
-----------------
-
-  Implements 250 of the required methods (100 %).
-
-
-TranslatorKoreanEn   (TranslatorEnglish)  245 methods to implement (98 %)
-------------------
-
-  Implements 5 of the required methods (2 %).
-
-  This English-based translator implements the following methods:
-
-    virtual QCString trRTFansicp()
-    virtual QCString idLanguage()
-    virtual QCString trRTFCharSet()
-    virtual QCString idLanguageCharset()
-    virtual QCString latexLanguageSupportCommand()
-
-
-TranslatorLatvian   (Translator)  8 methods to implement (3 %)
------------------
-
-  Implements 242 of the required methods (96 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trServices()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trConstantGroups()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trSingletonReference(const char * sName)
-
-
-TranslatorLithuanian   (TranslatorAdapter_1_4_6)  58 methods to implement (23 %)
---------------------
-
-  Implements 192 of the required methods (76 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
-    virtual QCString trSearching()
-    virtual QCString trTemplateParameters()
-    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 trServices()
-    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 trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trGlobalNamespace()
-    virtual QCString trMemberFunctionDocumentationFortran()
-    virtual QCString trCompoundListDescriptionFortran()
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trTypeDocumentation()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    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 trInterfaces()
-    virtual QCString trCopyright()
-    virtual QCString trIncludesFileIn(const char * name)
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trCompoundIndexFortran()
-    virtual QCString trSubprogram(bool first_capital, bool singular)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trCallerGraph()
-    virtual QCString trExtendsClass()
-    virtual QCString trEnumerationValueDocumentation()
-    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 trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorMacedonian   (TranslatorAdapter_1_6_0)  34 methods to implement (13 %)
---------------------
-
-  Implements 216 of the required methods (86 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trSearching()
-    virtual QCString trTemplateParameters()
-    virtual QCString trNoMatches()
-    virtual QCString trLoading()
-    virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
-    virtual QCString trServices()
-    virtual QCString trFileIn(const char * name)
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trGlobalNamespace()
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trDirDepGraph(const char * name)
-    virtual QCString trDirRelation(const char * name)
-    virtual QCString trMethodDocumentation()
-    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 trInterfaces()
-    virtual QCString trCopyright()
-    virtual QCString trIncludesFileIn(const char * name)
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorNorwegian   (TranslatorAdapter_1_4_6)  56 methods to implement (22 %)
--------------------
-
-  Implements 194 of the required methods (77 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
-    virtual QCString trSearching()
-    virtual QCString trTemplateParameters()
-    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 trServices()
-    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 trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trGlobalNamespace()
-    virtual QCString trMemberFunctionDocumentationFortran()
-    virtual QCString trCompoundListDescriptionFortran()
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trTypeDocumentation()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    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 trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trCompoundIndexFortran()
-    virtual QCString trSubprogram(bool first_capital, bool singular)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    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 trSingletonReference(const char * sName)
-    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 trHeaderFiles()
-    virtual QCString trBugsAndLimitations()
-    virtual QCString trNoDescriptionAvailable()
-
-
-TranslatorPersian   (TranslatorAdapter_1_7_5)  25 methods to implement (10 %)
------------------
-
-  Implements 225 of the required methods (90 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trTemplateParameters()
-    virtual QCString trServices()
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trDirDepGraph(const char * name)
-    virtual QCString trMethodDocumentation()
-    virtual QCString trEnumReference(const char * name)
-    virtual QCString trInheritedFrom(const char * members, const char * what)
-    virtual QCString trCiteReferences()
-    virtual QCString trAdditionalInheritedMembers()
-    virtual QCString trInterfaces()
-    virtual QCString trCopyright()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorPolish   (TranslatorAdapter_1_8_2)  14 methods to implement (5 %)
-----------------
-
-  Implements 236 of the required methods (94 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trServices()
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trConstantGroups()
-    virtual QCString trMethodDocumentation()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-  Obsolete methods (should be removed, never used):
-
-    QCString trHeaderFilesDescription()
-    virtual QCString trField(bool first_capital, bool singular)
-    virtual QCString trPackageDocumentation()
-    QCString trSources()
-    QCString trReimplementedForInternalReasons()
-    QCString trHeaderFiles()
-    QCString trBugsAndLimitations()
-    QCString trNoDescriptionAvailable()
-
-
-TranslatorPortuguese   (TranslatorAdapter_1_8_0)  22 methods to implement (8 %)
---------------------
-
-  Implements 228 of the required methods (91 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trTemplateParameters()
-    virtual QCString trServices()
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trMethodDocumentation()
-    virtual QCString trEnumReference(const char * name)
-    virtual QCString trInheritedFrom(const char * members, const char * what)
-    virtual QCString trAdditionalInheritedMembers()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorRomanian   (Translator)
-------------------
-
-  Implements 250 of the required methods (100 %).
-
-
-TranslatorRussian   (TranslatorAdapter_1_7_5)  25 methods to implement (10 %)
------------------
-
-  Implements 225 of the required methods (90 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trTemplateParameters()
-    virtual QCString trServices()
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trDirDepGraph(const char * name)
-    virtual QCString trMethodDocumentation()
-    virtual QCString trEnumReference(const char * name)
-    virtual QCString trInheritedFrom(const char * members, const char * what)
-    virtual QCString trCiteReferences()
-    virtual QCString trAdditionalInheritedMembers()
-    virtual QCString trInterfaces()
-    virtual QCString trCopyright()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorSerbian   (TranslatorAdapter_1_6_0)  34 methods to implement (13 %)
------------------
-
-  Implements 216 of the required methods (86 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trSearching()
-    virtual QCString trTemplateParameters()
-    virtual QCString trNoMatches()
-    virtual QCString trLoading()
-    virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
-    virtual QCString trServices()
-    virtual QCString trFileIn(const char * name)
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trGlobalNamespace()
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trDirDepGraph(const char * name)
-    virtual QCString trDirRelation(const char * name)
-    virtual QCString trMethodDocumentation()
-    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 trInterfaces()
-    virtual QCString trCopyright()
-    virtual QCString trIncludesFileIn(const char * name)
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorSerbianCyrilic   (TranslatorAdapter_1_6_0)  34 methods to implement (13 %)
-------------------------
-
-  Implements 216 of the required methods (86 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trSearching()
-    virtual QCString trTemplateParameters()
-    virtual QCString trNoMatches()
-    virtual QCString trLoading()
-    virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
-    virtual QCString trServices()
-    virtual QCString trFileIn(const char * name)
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trGlobalNamespace()
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trDirDepGraph(const char * name)
-    virtual QCString trDirRelation(const char * name)
-    virtual QCString trMethodDocumentation()
-    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 trInterfaces()
-    virtual QCString trCopyright()
-    virtual QCString trIncludesFileIn(const char * name)
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorSlovene   (TranslatorAdapter_1_4_6)  58 methods to implement (23 %)
------------------
-
-  Implements 192 of the required methods (76 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
-    virtual QCString trSearching()
-    virtual QCString trTemplateParameters()
-    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 trServices()
-    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 trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trGlobalNamespace()
-    virtual QCString trMemberFunctionDocumentationFortran()
-    virtual QCString trCompoundListDescriptionFortran()
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trTypeDocumentation()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    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 trInterfaces()
-    virtual QCString trCopyright()
-    virtual QCString trIncludesFileIn(const char * name)
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trCompoundIndexFortran()
-    virtual QCString trSubprogram(bool first_capital, bool singular)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trCallerGraph()
-    virtual QCString trExtendsClass()
-    virtual QCString trEnumerationValueDocumentation()
-    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 trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorSpanish   (TranslatorAdapter_1_8_2)  8 methods to implement (3 %)
------------------
-
-  Implements 242 of the required methods (96 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trServices()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trConstantGroups()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trSingletonReference(const char * sName)
-
-
-TranslatorSwedish   (TranslatorAdapter_1_6_0)  34 methods to implement (13 %)
------------------
-
-  Implements 216 of the required methods (86 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trSearching()
-    virtual QCString trTemplateParameters()
-    virtual QCString trNoMatches()
-    virtual QCString trLoading()
-    virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
-    virtual QCString trServices()
-    virtual QCString trFileIn(const char * name)
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trGlobalNamespace()
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trDirDepGraph(const char * name)
-    virtual QCString trDirRelation(const char * name)
-    virtual QCString trMethodDocumentation()
-    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 trInterfaces()
-    virtual QCString trCopyright()
-    virtual QCString trIncludesFileIn(const char * name)
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorTurkish   (TranslatorAdapter_1_7_5)  25 methods to implement (10 %)
------------------
-
-  Implements 225 of the required methods (90 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trTemplateParameters()
-    virtual QCString trServices()
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trDirDepGraph(const char * name)
-    virtual QCString trMethodDocumentation()
-    virtual QCString trEnumReference(const char * name)
-    virtual QCString trInheritedFrom(const char * members, const char * what)
-    virtual QCString trCiteReferences()
-    virtual QCString trAdditionalInheritedMembers()
-    virtual QCString trInterfaces()
-    virtual QCString trCopyright()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
-
-
-TranslatorUkrainian   (TranslatorAdapter_1_8_2)  8 methods to implement (3 %)
--------------------
-
-  Implements 242 of the required methods (96 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trServices()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trConstantGroups()
-    virtual QCString trInterfaces()
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trSingletonReference(const char * sName)
-
-
-TranslatorVietnamese   (TranslatorAdapter_1_6_0)  34 methods to implement (13 %)
---------------------
-
-  Implements 216 of the required methods (86 %).
-
-  Missing methods (should be implemented):
-
-    virtual QCString trDetailLevel()
-    virtual QCString trSearching()
-    virtual QCString trTemplateParameters()
-    virtual QCString trNoMatches()
-    virtual QCString trLoading()
-    virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
-    virtual QCString trServices()
-    virtual QCString trFileIn(const char * name)
-    virtual QCString trClassMethods()
-    virtual QCString trProvidedByCategory()
-    virtual QCString trSingletonGeneratedFromFiles(bool single)
-    virtual QCString trGlobalNamespace()
-    virtual QCString trServiceReference(const char * sName)
-    virtual QCString trDesignOverview()
-    virtual QCString trAndMore(const QCString & number)
-    virtual QCString trConstantGroups()
-    virtual QCString trDirDepGraph(const char * name)
-    virtual QCString trDirRelation(const char * name)
-    virtual QCString trMethodDocumentation()
-    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 trInterfaces()
-    virtual QCString trCopyright()
-    virtual QCString trIncludesFileIn(const char * name)
-    virtual QCString trServiceGeneratedFromFiles(bool single)
-    virtual QCString trEnumGeneratedFromFiles(bool single)
-    virtual QCString trConstantGroupReference(const char * namespaceName)
-    virtual QCString trPanelSynchronisationTooltip(bool enable)
-    virtual QCString trExtendsClass()
-    virtual QCString trSingletonReference(const char * sName)
-    virtual QCString trInstanceMethods()
\ No newline at end of file
index 83a302b..2290ef9 100644 (file)
@@ -2,15 +2,18 @@ JQUERY_VERSION = 1.7.1
 JQUERY_UI_VERSION = 1.8.18
 HASHCHANGE_VERSION = 1.3
 SCROLL_VERSION = 1.4.2
-MINIFIER = /usr/local/bin/yuicompressor-2.4.7
+POWERTIP_VERSION = 1.2.0
+MINIFIER ?= /usr/local/bin/yuicompressor-2.4.7
 SCRIPTS = jquery-$(JQUERY_VERSION).js \
           jquery.ui-$(JQUERY_UI_VERSION).core.js \
           jquery.ui-$(JQUERY_UI_VERSION).widget.js \
           jquery.ui-$(JQUERY_UI_VERSION).mouse.js \
           jquery.ui-$(JQUERY_UI_VERSION).resizable.js \
           jquery.ba-$(HASHCHANGE_VERSION)-hashchange.js \
-          jquery.scrollTo-$(SCROLL_VERSION).js
-RESULTS = jquery_p1.js jquery_p2.js jquery_p3.js jquery_ui.js jquery_fx.js
+          jquery.scrollTo-$(SCROLL_VERSION).js \
+         jquery.powertip-$(POWERTIP_VERSION).js
+RESULTS = jquery_p1.js jquery_p2.js jquery_p3.js \
+          jquery_ui.js jquery_fx.js jquery_pt.js
 
 SCRIPTS_MIN = $(SCRIPTS:%.js=%-min.js)
 
@@ -26,6 +29,9 @@ jquery_ui.js: scripts
             jquery.ui-$(JQUERY_UI_VERSION).resizable-min.js \
             jquery.ba-$(HASHCHANGE_VERSION)-hashchange-min.js > jquery_ui.js
 
+jquery_pt.js: scripts
+       cat jquery.powertip-$(POWERTIP_VERSION)-min.js > jquery_pt.js
+
 jquery_fx.js: scripts
        cat jquery.scrollTo-$(SCROLL_VERSION)-min.js > jquery_fx.js
 
index 314c838..7fd4dcd 100644 (file)
@@ -9,6 +9,7 @@ packages:
     - jquery.ui.resizable
 - jquery.hashchange: 1.3: http://benalman.com/projects/jquery-hashchange-plugin/
 - jquery.scrollTo: 1.4.2: https://github.com/flesler/jquery.scrollTo
+- jquery.powertip: 1.2.0: http://stevenbenner.github.io/jquery-powertip/
 
 The Makefile will built the jquery_*.js files used by doxygen.
 Some files are split into smaller parts to make sure Visual Studio can compile them 
diff --git a/jquery/jquery.powertip-1.2.0.js b/jquery/jquery.powertip-1.2.0.js
new file mode 100644 (file)
index 0000000..07e87fe
--- /dev/null
@@ -0,0 +1,1166 @@
+/*!
+ PowerTip - v1.2.0 - 2013-04-03
+ http://stevenbenner.github.com/jquery-powertip/
+ Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).
+ Released under MIT license.
+ https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
+*/
+(function(factory) {
+       if (typeof define === 'function' && define.amd) {
+               // AMD. Register as an anonymous module.
+               define(['jquery'], factory);
+       } else {
+               // Browser globals
+               factory(jQuery);
+       }
+}(function($) {
+
+       // useful private variables
+       var $document = $(document),
+               $window = $(window),
+               $body = $('body');
+
+       // constants
+       var DATA_DISPLAYCONTROLLER = 'displayController',
+               DATA_HASACTIVEHOVER = 'hasActiveHover',
+               DATA_FORCEDOPEN = 'forcedOpen',
+               DATA_HASMOUSEMOVE = 'hasMouseMove',
+               DATA_MOUSEONTOTIP = 'mouseOnToPopup',
+               DATA_ORIGINALTITLE = 'originalTitle',
+               DATA_POWERTIP = 'powertip',
+               DATA_POWERTIPJQ = 'powertipjq',
+               DATA_POWERTIPTARGET = 'powertiptarget',
+               RAD2DEG = 180 / Math.PI;
+
+       /**
+        * Session data
+        * Private properties global to all powerTip instances
+        */
+       var session = {
+               isTipOpen: false,
+               isFixedTipOpen: false,
+               isClosing: false,
+               tipOpenImminent: false,
+               activeHover: null,
+               currentX: 0,
+               currentY: 0,
+               previousX: 0,
+               previousY: 0,
+               desyncTimeout: null,
+               mouseTrackingActive: false,
+               delayInProgress: false,
+               windowWidth: 0,
+               windowHeight: 0,
+               scrollTop: 0,
+               scrollLeft: 0
+       };
+
+       /**
+        * Collision enumeration
+        * @enum {number}
+        */
+       var Collision = {
+               none: 0,
+               top: 1,
+               bottom: 2,
+               left: 4,
+               right: 8
+       };
+
+       /**
+        * Display hover tooltips on the matched elements.
+        * @param {(Object|string)} opts The options object to use for the plugin, or
+        *     the name of a method to invoke on the first matched element.
+        * @param {*=} [arg] Argument for an invoked method (optional).
+        * @return {jQuery} jQuery object for the matched selectors.
+        */
+       $.fn.powerTip = function(opts, arg) {
+               // don't do any work if there were no matched elements
+               if (!this.length) {
+                       return this;
+               }
+
+               // handle api method calls on the plugin, e.g. powerTip('hide')
+               if ($.type(opts) === 'string' && $.powerTip[opts]) {
+                       return $.powerTip[opts].call(this, this, arg);
+               }
+
+               // extend options and instantiate TooltipController
+               var options = $.extend({}, $.fn.powerTip.defaults, opts),
+                       tipController = new TooltipController(options);
+
+               // hook mouse and viewport dimension tracking
+               initTracking();
+
+               // setup the elements
+               this.each(function elementSetup() {
+                       var $this = $(this),
+                               dataPowertip = $this.data(DATA_POWERTIP),
+                               dataElem = $this.data(DATA_POWERTIPJQ),
+                               dataTarget = $this.data(DATA_POWERTIPTARGET),
+                               title;
+
+                       // handle repeated powerTip calls on the same element by destroying the
+                       // original instance hooked to it and replacing it with this call
+                       if ($this.data(DATA_DISPLAYCONTROLLER)) {
+                               $.powerTip.destroy($this);
+                       }
+
+                       // attempt to use title attribute text if there is no data-powertip,
+                       // data-powertipjq or data-powertiptarget. If we do use the title
+                       // attribute, delete the attribute so the browser will not show it
+                       title = $this.attr('title');
+                       if (!dataPowertip && !dataTarget && !dataElem && title) {
+                               $this.data(DATA_POWERTIP, title);
+                               $this.data(DATA_ORIGINALTITLE, title);
+                               $this.removeAttr('title');
+                       }
+
+                       // create hover controllers for each element
+                       $this.data(
+                               DATA_DISPLAYCONTROLLER,
+                               new DisplayController($this, options, tipController)
+                       );
+               });
+
+               // attach events to matched elements if the manual options is not enabled
+               if (!options.manual) {
+                       this.on({
+                               // mouse events
+                               'mouseenter.powertip': function elementMouseEnter(event) {
+                                       $.powerTip.show(this, event);
+                               },
+                               'mouseleave.powertip': function elementMouseLeave() {
+                                       $.powerTip.hide(this);
+                               },
+                               // keyboard events
+                               'focus.powertip': function elementFocus() {
+                                       $.powerTip.show(this);
+                               },
+                               'blur.powertip': function elementBlur() {
+                                       $.powerTip.hide(this, true);
+                               },
+                               'keydown.powertip': function elementKeyDown(event) {
+                                       // close tooltip when the escape key is pressed
+                                       if (event.keyCode === 27) {
+                                               $.powerTip.hide(this, true);
+                                       }
+                               }
+                       });
+               }
+
+               return this;
+       };
+
+       /**
+        * Default options for the powerTip plugin.
+        */
+       $.fn.powerTip.defaults = {
+               fadeInTime: 200,
+               fadeOutTime: 100,
+               followMouse: false,
+               popupId: 'powerTip',
+               intentSensitivity: 7,
+               intentPollInterval: 100,
+               closeDelay: 100,
+               placement: 'n',
+               smartPlacement: false,
+               offset: 10,
+               mouseOnToPopup: false,
+               manual: false
+       };
+
+       /**
+        * Default smart placement priority lists.
+        * The first item in the array is the highest priority, the last is the lowest.
+        * The last item is also the default, which will be used if all previous options
+        * do not fit.
+        */
+       $.fn.powerTip.smartPlacementLists = {
+               n: ['n', 'ne', 'nw', 's'],
+               e: ['e', 'ne', 'se', 'w', 'nw', 'sw', 'n', 's', 'e'],
+               s: ['s', 'se', 'sw', 'n'],
+               w: ['w', 'nw', 'sw', 'e', 'ne', 'se', 'n', 's', 'w'],
+               nw: ['nw', 'w', 'sw', 'n', 's', 'se', 'nw'],
+               ne: ['ne', 'e', 'se', 'n', 's', 'sw', 'ne'],
+               sw: ['sw', 'w', 'nw', 's', 'n', 'ne', 'sw'],
+               se: ['se', 'e', 'ne', 's', 'n', 'nw', 'se'],
+               'nw-alt': ['nw-alt', 'n', 'ne-alt', 'sw-alt', 's', 'se-alt', 'w', 'e'],
+               'ne-alt': ['ne-alt', 'n', 'nw-alt', 'se-alt', 's', 'sw-alt', 'e', 'w'],
+               'sw-alt': ['sw-alt', 's', 'se-alt', 'nw-alt', 'n', 'ne-alt', 'w', 'e'],
+               'se-alt': ['se-alt', 's', 'sw-alt', 'ne-alt', 'n', 'nw-alt', 'e', 'w']
+       };
+
+       /**
+        * Public API
+        */
+       $.powerTip = {
+               /**
+                * Attempts to show the tooltip for the specified element.
+                * @param {jQuery|Element} element The element to open the tooltip for.
+                * @param {jQuery.Event=} event jQuery event for hover intent and mouse
+                *     tracking (optional).
+                */
+               show: function apiShowTip(element, event) {
+                       if (event) {
+                               trackMouse(event);
+                               session.previousX = event.pageX;
+                               session.previousY = event.pageY;
+                               $(element).data(DATA_DISPLAYCONTROLLER).show();
+                       } else {
+                               $(element).first().data(DATA_DISPLAYCONTROLLER).show(true, true);
+                       }
+                       return element;
+               },
+
+               /**
+                * Repositions the tooltip on the element.
+                * @param {jQuery|Element} element The element the tooltip is shown for.
+                */
+               reposition: function apiResetPosition(element) {
+                       $(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();
+                       return element;
+               },
+
+               /**
+                * Attempts to close any open tooltips.
+                * @param {(jQuery|Element)=} element The element with the tooltip that
+                *     should be closed (optional).
+                * @param {boolean=} immediate Disable close delay (optional).
+                */
+               hide: function apiCloseTip(element, immediate) {
+                       if (element) {
+                               $(element).first().data(DATA_DISPLAYCONTROLLER).hide(immediate);
+                       } else {
+                               if (session.activeHover) {
+                                       session.activeHover.data(DATA_DISPLAYCONTROLLER).hide(true);
+                               }
+                       }
+                       return element;
+               },
+
+               /**
+                * Destroy and roll back any powerTip() instance on the specified element.
+                * @param {jQuery|Element} element The element with the powerTip instance.
+                */
+               destroy: function apiDestroy(element) {
+                       $(element).off('.powertip').each(function destroy() {
+                               var $this = $(this),
+                                       dataAttributes = [
+                                               DATA_ORIGINALTITLE,
+                                               DATA_DISPLAYCONTROLLER,
+                                               DATA_HASACTIVEHOVER,
+                                               DATA_FORCEDOPEN
+                                       ];
+
+                               if ($this.data(DATA_ORIGINALTITLE)) {
+                                       $this.attr('title', $this.data(DATA_ORIGINALTITLE));
+                                       dataAttributes.push(DATA_POWERTIP);
+                               }
+
+                               $this.removeData(dataAttributes);
+                       });
+                       return element;
+               }
+       };
+
+       // API aliasing
+       $.powerTip.showTip = $.powerTip.show;
+       $.powerTip.closeTip = $.powerTip.hide;
+
+       /**
+        * Creates a new CSSCoordinates object.
+        * @private
+        * @constructor
+        */
+       function CSSCoordinates() {
+               var me = this;
+
+               // initialize object properties
+               me.top = 'auto';
+               me.left = 'auto';
+               me.right = 'auto';
+               me.bottom = 'auto';
+
+               /**
+                * Set a property to a value.
+                * @private
+                * @param {string} property The name of the property.
+                * @param {number} value The value of the property.
+                */
+               me.set = function(property, value) {
+                       if ($.isNumeric(value)) {
+                               me[property] = Math.round(value);
+                       }
+               };
+       }
+
+       /**
+        * Creates a new tooltip display controller.
+        * @private
+        * @constructor
+        * @param {jQuery} element The element that this controller will handle.
+        * @param {Object} options Options object containing settings.
+        * @param {TooltipController} tipController The TooltipController object for
+        *     this instance.
+        */
+       function DisplayController(element, options, tipController) {
+               var hoverTimer = null;
+
+               /**
+                * Begins the process of showing a tooltip.
+                * @private
+                * @param {boolean=} immediate Skip intent testing (optional).
+                * @param {boolean=} forceOpen Ignore cursor position and force tooltip to
+                *     open (optional).
+                */
+               function openTooltip(immediate, forceOpen) {
+                       cancelTimer();
+                       if (!element.data(DATA_HASACTIVEHOVER)) {
+                               if (!immediate) {
+                                       session.tipOpenImminent = true;
+                                       hoverTimer = setTimeout(
+                                               function intentDelay() {
+                                                       hoverTimer = null;
+                                                       checkForIntent();
+                                               },
+                                               options.intentPollInterval
+                                       );
+                               } else {
+                                       if (forceOpen) {
+                                               element.data(DATA_FORCEDOPEN, true);
+                                       }
+                                       tipController.showTip(element);
+                               }
+                       }
+               }
+
+               /**
+                * Begins the process of closing a tooltip.
+                * @private
+                * @param {boolean=} disableDelay Disable close delay (optional).
+                */
+               function closeTooltip(disableDelay) {
+                       cancelTimer();
+                       session.tipOpenImminent = false;
+                       if (element.data(DATA_HASACTIVEHOVER)) {
+                               element.data(DATA_FORCEDOPEN, false);
+                               if (!disableDelay) {
+                                       session.delayInProgress = true;
+                                       hoverTimer = setTimeout(
+                                               function closeDelay() {
+                                                       hoverTimer = null;
+                                                       tipController.hideTip(element);
+                                                       session.delayInProgress = false;
+                                               },
+                                               options.closeDelay
+                                       );
+                               } else {
+                                       tipController.hideTip(element);
+                               }
+                       }
+               }
+
+               /**
+                * Checks mouse position to make sure that the user intended to hover on the
+                * specified element before showing the tooltip.
+                * @private
+                */
+               function checkForIntent() {
+                       // calculate mouse position difference
+                       var xDifference = Math.abs(session.previousX - session.currentX),
+                               yDifference = Math.abs(session.previousY - session.currentY),
+                               totalDifference = xDifference + yDifference;
+
+                       // check if difference has passed the sensitivity threshold
+                       if (totalDifference < options.intentSensitivity) {
+                               tipController.showTip(element);
+                       } else {
+                               // try again
+                               session.previousX = session.currentX;
+                               session.previousY = session.currentY;
+                               openTooltip();
+                       }
+               }
+
+               /**
+                * Cancels active hover timer.
+                * @private
+                */
+               function cancelTimer() {
+                       hoverTimer = clearTimeout(hoverTimer);
+                       session.delayInProgress = false;
+               }
+
+               /**
+                * Repositions the tooltip on this element.
+                * @private
+                */
+               function repositionTooltip() {
+                       tipController.resetPosition(element);
+               }
+
+               // expose the methods
+               this.show = openTooltip;
+               this.hide = closeTooltip;
+               this.cancel = cancelTimer;
+               this.resetPosition = repositionTooltip;
+       }
+
+       /**
+        * Creates a new Placement Calculator.
+        * @private
+        * @constructor
+        */
+       function PlacementCalculator() {
+               /**
+                * Compute the CSS position to display a tooltip at the specified placement
+                * relative to the specified element.
+                * @private
+                * @param {jQuery} element The element that the tooltip should target.
+                * @param {string} placement The placement for the tooltip.
+                * @param {number} tipWidth Width of the tooltip element in pixels.
+                * @param {number} tipHeight Height of the tooltip element in pixels.
+                * @param {number} offset Distance to offset tooltips in pixels.
+                * @return {CSSCoordinates} A CSSCoordinates object with the position.
+                */
+               function computePlacementCoords(element, placement, tipWidth, tipHeight, offset) {
+                       var placementBase = placement.split('-')[0], // ignore 'alt' for corners
+                               coords = new CSSCoordinates(),
+                               position;
+
+                       if (isSvgElement(element)) {
+                               position = getSvgPlacement(element, placementBase);
+                       } else {
+                               position = getHtmlPlacement(element, placementBase);
+                       }
+
+                       // calculate the appropriate x and y position in the document
+                       switch (placement) {
+                       case 'n':
+                               coords.set('left', position.left - (tipWidth / 2));
+                               coords.set('bottom', session.windowHeight - position.top + offset);
+                               break;
+                       case 'e':
+                               coords.set('left', position.left + offset);
+                               coords.set('top', position.top - (tipHeight / 2));
+                               break;
+                       case 's':
+                               coords.set('left', position.left - (tipWidth / 2));
+                               coords.set('top', position.top + offset);
+                               break;
+                       case 'w':
+                               coords.set('top', position.top - (tipHeight / 2));
+                               coords.set('right', session.windowWidth - position.left + offset);
+                               break;
+                       case 'nw':
+                               coords.set('bottom', session.windowHeight - position.top + offset);
+                               coords.set('right', session.windowWidth - position.left - 20);
+                               break;
+                       case 'nw-alt':
+                               coords.set('left', position.left);
+                               coords.set('bottom', session.windowHeight - position.top + offset);
+                               break;
+                       case 'ne':
+                               coords.set('left', position.left - 20);
+                               coords.set('bottom', session.windowHeight - position.top + offset);
+                               break;
+                       case 'ne-alt':
+                               coords.set('bottom', session.windowHeight - position.top + offset);
+                               coords.set('right', session.windowWidth - position.left);
+                               break;
+                       case 'sw':
+                               coords.set('top', position.top + offset);
+                               coords.set('right', session.windowWidth - position.left - 20);
+                               break;
+                       case 'sw-alt':
+                               coords.set('left', position.left);
+                               coords.set('top', position.top + offset);
+                               break;
+                       case 'se':
+                               coords.set('left', position.left - 20);
+                               coords.set('top', position.top + offset);
+                               break;
+                       case 'se-alt':
+                               coords.set('top', position.top + offset);
+                               coords.set('right', session.windowWidth - position.left);
+                               break;
+                       }
+
+                       return coords;
+               }
+
+               /**
+                * Finds the tooltip attachment point in the document for a HTML DOM element
+                * for the specified placement.
+                * @private
+                * @param {jQuery} element The element that the tooltip should target.
+                * @param {string} placement The placement for the tooltip.
+                * @return {Object} An object with the top,left position values.
+                */
+               function getHtmlPlacement(element, placement) {
+                       var objectOffset = element.offset(),
+                               objectWidth = element.outerWidth(),
+                               objectHeight = element.outerHeight(),
+                               left,
+                               top;
+
+                       // calculate the appropriate x and y position in the document
+                       switch (placement) {
+                       case 'n':
+                               left = objectOffset.left + objectWidth / 2;
+                               top = objectOffset.top;
+                               break;
+                       case 'e':
+                               left = objectOffset.left + objectWidth;
+                               top = objectOffset.top + objectHeight / 2;
+                               break;
+                       case 's':
+                               left = objectOffset.left + objectWidth / 2;
+                               top = objectOffset.top + objectHeight;
+                               break;
+                       case 'w':
+                               left = objectOffset.left;
+                               top = objectOffset.top + objectHeight / 2;
+                               break;
+                       case 'nw':
+                               left = objectOffset.left;
+                               top = objectOffset.top;
+                               break;
+                       case 'ne':
+                               left = objectOffset.left + objectWidth;
+                               top = objectOffset.top;
+                               break;
+                       case 'sw':
+                               left = objectOffset.left;
+                               top = objectOffset.top + objectHeight;
+                               break;
+                       case 'se':
+                               left = objectOffset.left + objectWidth;
+                               top = objectOffset.top + objectHeight;
+                               break;
+                       }
+
+                       return {
+                               top: top,
+                               left: left
+                       };
+               }
+
+               /**
+                * Finds the tooltip attachment point in the document for a SVG element for
+                * the specified placement.
+                * @private
+                * @param {jQuery} element The element that the tooltip should target.
+                * @param {string} placement The placement for the tooltip.
+                * @return {Object} An object with the top,left position values.
+                */
+               function getSvgPlacement(element, placement) {
+                       var svgElement = element.closest('svg')[0],
+                               domElement = element[0],
+                               point = svgElement.createSVGPoint(),
+                               boundingBox = domElement.getBBox(),
+                               matrix = domElement.getScreenCTM(),
+                               halfWidth = boundingBox.width / 2,
+                               halfHeight = boundingBox.height / 2,
+                               placements = [],
+                               placementKeys = ['nw', 'n', 'ne', 'e', 'se', 's', 'sw', 'w'],
+                               coords,
+                               rotation,
+                               steps,
+                               x;
+
+                       function pushPlacement() {
+                               placements.push(point.matrixTransform(matrix));
+                       }
+
+                       // get bounding box corners and midpoints
+                       point.x = boundingBox.x;
+                       point.y = boundingBox.y;
+                       pushPlacement();
+                       point.x += halfWidth;
+                       pushPlacement();
+                       point.x += halfWidth;
+                       pushPlacement();
+                       point.y += halfHeight;
+                       pushPlacement();
+                       point.y += halfHeight;
+                       pushPlacement();
+                       point.x -= halfWidth;
+                       pushPlacement();
+                       point.x -= halfWidth;
+                       pushPlacement();
+                       point.y -= halfHeight;
+                       pushPlacement();
+
+                       // determine rotation
+                       if (placements[0].y !== placements[1].y || placements[0].x !== placements[7].x) {
+                               rotation = Math.atan2(matrix.b, matrix.a) * RAD2DEG;
+                               steps = Math.ceil(((rotation % 360) - 22.5) / 45);
+                               if (steps < 1) {
+                                       steps += 8;
+                               }
+                               while (steps--) {
+                                       placementKeys.push(placementKeys.shift());
+                               }
+                       }
+
+                       // find placement
+                       for (x = 0; x < placements.length; x++) {
+                               if (placementKeys[x] === placement) {
+                                       coords = placements[x];
+                                       break;
+                               }
+                       }
+
+                       return {
+                               top: coords.y + session.scrollTop,
+                               left: coords.x + session.scrollLeft
+                       };
+               }
+
+               // expose methods
+               this.compute = computePlacementCoords;
+       }
+
+       /**
+        * Creates a new tooltip controller.
+        * @private
+        * @constructor
+        * @param {Object} options Options object containing settings.
+        */
+       function TooltipController(options) {
+               var placementCalculator = new PlacementCalculator(),
+                       tipElement = $('#' + options.popupId);
+
+               // build and append tooltip div if it does not already exist
+               if (tipElement.length === 0) {
+                       tipElement = $('<div/>', { id: options.popupId });
+                       // grab body element if it was not populated when the script loaded
+                       // note: this hack exists solely for jsfiddle support
+                       if ($body.length === 0) {
+                               $body = $('body');
+                       }
+                       $body.append(tipElement);
+               }
+
+               // hook mousemove for cursor follow tooltips
+               if (options.followMouse) {
+                       // only one positionTipOnCursor hook per tooltip element, please
+                       if (!tipElement.data(DATA_HASMOUSEMOVE)) {
+                               $document.on('mousemove', positionTipOnCursor);
+                               $window.on('scroll', positionTipOnCursor);
+                               tipElement.data(DATA_HASMOUSEMOVE, true);
+                       }
+               }
+
+               // if we want to be able to mouse onto the tooltip then we need to attach
+               // hover events to the tooltip that will cancel a close request on hover and
+               // start a new close request on mouseleave
+               if (options.mouseOnToPopup) {
+                       tipElement.on({
+                               mouseenter: function tipMouseEnter() {
+                                       // we only let the mouse stay on the tooltip if it is set to let
+                                       // users interact with it
+                                       if (tipElement.data(DATA_MOUSEONTOTIP)) {
+                                               // check activeHover in case the mouse cursor entered the
+                                               // tooltip during the fadeOut and close cycle
+                                               if (session.activeHover) {
+                                                       session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel();
+                                               }
+                                       }
+                               },
+                               mouseleave: function tipMouseLeave() {
+                                       // check activeHover in case the mouse cursor entered the
+                                       // tooltip during the fadeOut and close cycle
+                                       if (session.activeHover) {
+                                               session.activeHover.data(DATA_DISPLAYCONTROLLER).hide();
+                                       }
+                               }
+                       });
+               }
+
+               /**
+                * Gives the specified element the active-hover state and queues up the
+                * showTip function.
+                * @private
+                * @param {jQuery} element The element that the tooltip should target.
+                */
+               function beginShowTip(element) {
+                       element.data(DATA_HASACTIVEHOVER, true);
+                       // show tooltip, asap
+                       tipElement.queue(function queueTipInit(next) {
+                               showTip(element);
+                               next();
+                       });
+               }
+
+               /**
+                * Shows the tooltip, as soon as possible.
+                * @private
+                * @param {jQuery} element The element that the tooltip should target.
+                */
+               function showTip(element) {
+                       var tipContent;
+
+                       // it is possible, especially with keyboard navigation, to move on to
+                       // another element with a tooltip during the queue to get to this point
+                       // in the code. if that happens then we need to not proceed or we may
+                       // have the fadeout callback for the last tooltip execute immediately
+                       // after this code runs, causing bugs.
+                       if (!element.data(DATA_HASACTIVEHOVER)) {
+                               return;
+                       }
+
+                       // if the tooltip is open and we got asked to open another one then the
+                       // old one is still in its fadeOut cycle, so wait and try again
+                       if (session.isTipOpen) {
+                               if (!session.isClosing) {
+                                       hideTip(session.activeHover);
+                               }
+                               tipElement.delay(100).queue(function queueTipAgain(next) {
+                                       showTip(element);
+                                       next();
+                               });
+                               return;
+                       }
+
+                       // trigger powerTipPreRender event
+                       element.trigger('powerTipPreRender');
+
+                       // set tooltip content
+                       tipContent = getTooltipContent(element);
+                       if (tipContent) {
+                               tipElement.empty().append(tipContent);
+                       } else {
+                               // we have no content to display, give up
+                               return;
+                       }
+
+                       // trigger powerTipRender event
+                       element.trigger('powerTipRender');
+
+                       session.activeHover = element;
+                       session.isTipOpen = true;
+
+                       tipElement.data(DATA_MOUSEONTOTIP, options.mouseOnToPopup);
+
+                       // set tooltip position
+                       if (!options.followMouse) {
+                               positionTipOnElement(element);
+                               session.isFixedTipOpen = true;
+                       } else {
+                               positionTipOnCursor();
+                       }
+
+                       // fadein
+                       tipElement.fadeIn(options.fadeInTime, function fadeInCallback() {
+                               // start desync polling
+                               if (!session.desyncTimeout) {
+                                       session.desyncTimeout = setInterval(closeDesyncedTip, 500);
+                               }
+
+                               // trigger powerTipOpen event
+                               element.trigger('powerTipOpen');
+                       });
+               }
+
+               /**
+                * Hides the tooltip.
+                * @private
+                * @param {jQuery} element The element that the tooltip should target.
+                */
+               function hideTip(element) {
+                       // reset session
+                       session.isClosing = true;
+                       session.activeHover = null;
+                       session.isTipOpen = false;
+
+                       // stop desync polling
+                       session.desyncTimeout = clearInterval(session.desyncTimeout);
+
+                       // reset element state
+                       element.data(DATA_HASACTIVEHOVER, false);
+                       element.data(DATA_FORCEDOPEN, false);
+
+                       // fade out
+                       tipElement.fadeOut(options.fadeOutTime, function fadeOutCallback() {
+                               var coords = new CSSCoordinates();
+
+                               // reset session and tooltip element
+                               session.isClosing = false;
+                               session.isFixedTipOpen = false;
+                               tipElement.removeClass();
+
+                               // support mouse-follow and fixed position tips at the same time by
+                               // moving the tooltip to the last cursor location after it is hidden
+                               coords.set('top', session.currentY + options.offset);
+                               coords.set('left', session.currentX + options.offset);
+                               tipElement.css(coords);
+
+                               // trigger powerTipClose event
+                               element.trigger('powerTipClose');
+                       });
+               }
+
+               /**
+                * Moves the tooltip to the users mouse cursor.
+                * @private
+                */
+               function positionTipOnCursor() {
+                       // to support having fixed tooltips on the same page as cursor tooltips,
+                       // where both instances are referencing the same tooltip element, we
+                       // need to keep track of the mouse position constantly, but we should
+                       // only set the tip location if a fixed tip is not currently open, a tip
+                       // open is imminent or active, and the tooltip element in question does
+                       // have a mouse-follow using it.
+                       if (!session.isFixedTipOpen && (session.isTipOpen || (session.tipOpenImminent && tipElement.data(DATA_HASMOUSEMOVE)))) {
+                               // grab measurements
+                               var tipWidth = tipElement.outerWidth(),
+                                       tipHeight = tipElement.outerHeight(),
+                                       coords = new CSSCoordinates(),
+                                       collisions,
+                                       collisionCount;
+
+                               // grab collisions
+                               coords.set('top', session.currentY + options.offset);
+                               coords.set('left', session.currentX + options.offset);
+                               collisions = getViewportCollisions(
+                                       coords,
+                                       tipWidth,
+                                       tipHeight
+                               );
+
+                               // handle tooltip view port collisions
+                               if (collisions !== Collision.none) {
+                                       collisionCount = countFlags(collisions);
+                                       if (collisionCount === 1) {
+                                               // if there is only one collision (bottom or right) then
+                                               // simply constrain the tooltip to the view port
+                                               if (collisions === Collision.right) {
+                                                       coords.set('left', session.windowWidth - tipWidth);
+                                               } else if (collisions === Collision.bottom) {
+                                                       coords.set('top', session.scrollTop + session.windowHeight - tipHeight);
+                                               }
+                                       } else {
+                                               // if the tooltip has more than one collision then it is
+                                               // trapped in the corner and should be flipped to get it out
+                                               // of the users way
+                                               coords.set('left', session.currentX - tipWidth - options.offset);
+                                               coords.set('top', session.currentY - tipHeight - options.offset);
+                                       }
+                               }
+
+                               // position the tooltip
+                               tipElement.css(coords);
+                       }
+               }
+
+               /**
+                * Sets the tooltip to the correct position relative to the specified target
+                * element. Based on options settings.
+                * @private
+                * @param {jQuery} element The element that the tooltip should target.
+                */
+               function positionTipOnElement(element) {
+                       var priorityList,
+                               finalPlacement;
+
+                       if (options.smartPlacement) {
+                               priorityList = $.fn.powerTip.smartPlacementLists[options.placement];
+
+                               // iterate over the priority list and use the first placement option
+                               // that does not collide with the view port. if they all collide
+                               // then the last placement in the list will be used.
+                               $.each(priorityList, function(idx, pos) {
+                                       // place tooltip and find collisions
+                                       var collisions = getViewportCollisions(
+                                               placeTooltip(element, pos),
+                                               tipElement.outerWidth(),
+                                               tipElement.outerHeight()
+                                       );
+
+                                       // update the final placement variable
+                                       finalPlacement = pos;
+
+                                       // break if there were no collisions
+                                       if (collisions === Collision.none) {
+                                               return false;
+                                       }
+                               });
+                       } else {
+                               // if we're not going to use the smart placement feature then just
+                               // compute the coordinates and do it
+                               placeTooltip(element, options.placement);
+                               finalPlacement = options.placement;
+                       }
+
+                       // add placement as class for CSS arrows
+                       tipElement.addClass(finalPlacement);
+               }
+
+               /**
+                * Sets the tooltip position to the appropriate values to show the tip at
+                * the specified placement. This function will iterate and test the tooltip
+                * to support elastic tooltips.
+                * @private
+                * @param {jQuery} element The element that the tooltip should target.
+                * @param {string} placement The placement for the tooltip.
+                * @return {CSSCoordinates} A CSSCoordinates object with the top, left, and
+                *     right position values.
+                */
+               function placeTooltip(element, placement) {
+                       var iterationCount = 0,
+                               tipWidth,
+                               tipHeight,
+                               coords = new CSSCoordinates();
+
+                       // set the tip to 0,0 to get the full expanded width
+                       coords.set('top', 0);
+                       coords.set('left', 0);
+                       tipElement.css(coords);
+
+                       // to support elastic tooltips we need to check for a change in the
+                       // rendered dimensions after the tooltip has been positioned
+                       do {
+                               // grab the current tip dimensions
+                               tipWidth = tipElement.outerWidth();
+                               tipHeight = tipElement.outerHeight();
+
+                               // get placement coordinates
+                               coords = placementCalculator.compute(
+                                       element,
+                                       placement,
+                                       tipWidth,
+                                       tipHeight,
+                                       options.offset
+                               );
+
+                               // place the tooltip
+                               tipElement.css(coords);
+                       } while (
+                               // sanity check: limit to 5 iterations, and...
+                               ++iterationCount <= 5 &&
+                               // try again if the dimensions changed after placement
+                               (tipWidth !== tipElement.outerWidth() || tipHeight !== tipElement.outerHeight())
+                       );
+
+                       return coords;
+               }
+
+               /**
+                * Checks for a tooltip desync and closes the tooltip if one occurs.
+                * @private
+                */
+               function closeDesyncedTip() {
+                       var isDesynced = false;
+                       // It is possible for the mouse cursor to leave an element without
+                       // firing the mouseleave or blur event. This most commonly happens when
+                       // the element is disabled under mouse cursor. If this happens it will
+                       // result in a desynced tooltip because the tooltip was never asked to
+                       // close. So we should periodically check for a desync situation and
+                       // close the tip if such a situation arises.
+                       if (session.isTipOpen && !session.isClosing && !session.delayInProgress) {
+                               // user moused onto another tip or active hover is disabled
+                               if (session.activeHover.data(DATA_HASACTIVEHOVER) === false || session.activeHover.is(':disabled')) {
+                                       isDesynced = true;
+                               } else {
+                                       // hanging tip - have to test if mouse position is not over the
+                                       // active hover and not over a tooltip set to let the user
+                                       // interact with it.
+                                       // for keyboard navigation: this only counts if the element does
+                                       // not have focus.
+                                       // for tooltips opened via the api: we need to check if it has
+                                       // the forcedOpen flag.
+                                       if (!isMouseOver(session.activeHover) && !session.activeHover.is(':focus') && !session.activeHover.data(DATA_FORCEDOPEN)) {
+                                               if (tipElement.data(DATA_MOUSEONTOTIP)) {
+                                                       if (!isMouseOver(tipElement)) {
+                                                               isDesynced = true;
+                                                       }
+                                               } else {
+                                                       isDesynced = true;
+                                               }
+                                       }
+                               }
+
+                               if (isDesynced) {
+                                       // close the desynced tip
+                                       hideTip(session.activeHover);
+                               }
+                       }
+               }
+
+               // expose methods
+               this.showTip = beginShowTip;
+               this.hideTip = hideTip;
+               this.resetPosition = positionTipOnElement;
+       }
+
+       /**
+        * Determine whether a jQuery object is an SVG element
+        * @private
+        * @param {jQuery} element The element to check
+        * @return {boolean} Whether this is an SVG element
+        */
+       function isSvgElement(element) {
+               return window.SVGElement && element[0] instanceof SVGElement;
+       }
+
+       /**
+        * Initializes the viewport dimension cache and hooks up the mouse position
+        * tracking and viewport dimension tracking events.
+        * Prevents attaching the events more than once.
+        * @private
+        */
+       function initTracking() {
+               if (!session.mouseTrackingActive) {
+                       session.mouseTrackingActive = true;
+
+                       // grab the current viewport dimensions on load
+                       $(function getViewportDimensions() {
+                               session.scrollLeft = $window.scrollLeft();
+                               session.scrollTop = $window.scrollTop();
+                               session.windowWidth = $window.width();
+                               session.windowHeight = $window.height();
+                       });
+
+                       // hook mouse move tracking
+                       $document.on('mousemove', trackMouse);
+
+                       // hook viewport dimensions tracking
+                       $window.on({
+                               resize: function trackResize() {
+                                       session.windowWidth = $window.width();
+                                       session.windowHeight = $window.height();
+                               },
+                               scroll: function trackScroll() {
+                                       var x = $window.scrollLeft(),
+                                               y = $window.scrollTop();
+                                       if (x !== session.scrollLeft) {
+                                               session.currentX += x - session.scrollLeft;
+                                               session.scrollLeft = x;
+                                       }
+                                       if (y !== session.scrollTop) {
+                                               session.currentY += y - session.scrollTop;
+                                               session.scrollTop = y;
+                                       }
+                               }
+                       });
+               }
+       }
+
+       /**
+        * Saves the current mouse coordinates to the session object.
+        * @private
+        * @param {jQuery.Event} event The mousemove event for the document.
+        */
+       function trackMouse(event) {
+               session.currentX = event.pageX;
+               session.currentY = event.pageY;
+       }
+
+       /**
+        * Tests if the mouse is currently over the specified element.
+        * @private
+        * @param {jQuery} element The element to check for hover.
+        * @return {boolean}
+        */
+       function isMouseOver(element) {
+               // use getBoundingClientRect() because jQuery's width() and height()
+               // methods do not work with SVG elements
+               // compute width/height because those properties do not exist on the object
+               // returned by getBoundingClientRect() in older versions of IE
+               var elementPosition = element.offset(),
+                       elementBox = element[0].getBoundingClientRect(),
+                       elementWidth = elementBox.right - elementBox.left,
+                       elementHeight = elementBox.bottom - elementBox.top;
+
+               return session.currentX >= elementPosition.left &&
+                       session.currentX <= elementPosition.left + elementWidth &&
+                       session.currentY >= elementPosition.top &&
+                       session.currentY <= elementPosition.top + elementHeight;
+       }
+
+       /**
+        * Fetches the tooltip content from the specified element's data attributes.
+        * @private
+        * @param {jQuery} element The element to get the tooltip content for.
+        * @return {(string|jQuery|undefined)} The text/HTML string, jQuery object, or
+        *     undefined if there was no tooltip content for the element.
+        */
+       function getTooltipContent(element) {
+               var tipText = element.data(DATA_POWERTIP),
+                       tipObject = element.data(DATA_POWERTIPJQ),
+                       tipTarget = element.data(DATA_POWERTIPTARGET),
+                       targetElement,
+                       content;
+
+               if (tipText) {
+                       if ($.isFunction(tipText)) {
+                               tipText = tipText.call(element[0]);
+                       }
+                       content = tipText;
+               } else if (tipObject) {
+                       if ($.isFunction(tipObject)) {
+                               tipObject = tipObject.call(element[0]);
+                       }
+                       if (tipObject.length > 0) {
+                               content = tipObject.clone(true, true);
+                       }
+               } else if (tipTarget) {
+                       targetElement = $('#' + tipTarget);
+                       if (targetElement.length > 0) {
+                               content = targetElement.html();
+                       }
+               }
+
+               return content;
+       }
+
+       /**
+        * Finds any viewport collisions that an element (the tooltip) would have if it
+        * were absolutely positioned at the specified coordinates.
+        * @private
+        * @param {CSSCoordinates} coords Coordinates for the element.
+        * @param {number} elementWidth Width of the element in pixels.
+        * @param {number} elementHeight Height of the element in pixels.
+        * @return {number} Value with the collision flags.
+        */
+       function getViewportCollisions(coords, elementWidth, elementHeight) {
+               var viewportTop = session.scrollTop,
+                       viewportLeft =  session.scrollLeft,
+                       viewportBottom = viewportTop + session.windowHeight,
+                       viewportRight = viewportLeft + session.windowWidth,
+                       collisions = Collision.none;
+
+               if (coords.top < viewportTop || Math.abs(coords.bottom - session.windowHeight) - elementHeight < viewportTop) {
+                       collisions |= Collision.top;
+               }
+               if (coords.top + elementHeight > viewportBottom || Math.abs(coords.bottom - session.windowHeight) > viewportBottom) {
+                       collisions |= Collision.bottom;
+               }
+               if (coords.left < viewportLeft || coords.right + elementWidth > viewportRight) {
+                       collisions |= Collision.left;
+               }
+               if (coords.left + elementWidth > viewportRight || coords.right < viewportLeft) {
+                       collisions |= Collision.right;
+               }
+
+               return collisions;
+       }
+
+       /**
+        * Counts the number of bits set on a flags value.
+        * @param {number} value The flags value.
+        * @return {number} The number of bits that have been set.
+        */
+       function countFlags(value) {
+               var count = 0;
+               while (value) {
+                       value &= value - 1;
+                       count++;
+               }
+               return count;
+       }
+
+}));
index aa8de17..9b5af64 100644 (file)
@@ -1,4 +1,4 @@
-# Doxyfile 1.8.3.1
+# Doxyfile 1.8.4
 
 #---------------------------------------------------------------------------
 # Project related configuration options
@@ -124,6 +124,7 @@ STRIP_CODE_COMMENTS    = YES
 REFERENCED_BY_RELATION = YES
 REFERENCES_RELATION    = YES
 REFERENCES_LINK_SOURCE = YES
+SOURCE_TOOLTIPS        = YES
 USE_HTAGS              = NO
 VERBATIM_HEADERS       = YES
 CLANG_ASSISTED_PARSING = YES
index 8b652b4..f7d2c95 100644 (file)
@@ -46,7 +46,7 @@
 #include <stdlib.h>
 #include <string.h>
 
-#if !defined(_OS_WIN32_)
+#if !defined(_OS_WIN32_) || defined(__MINGW32__)
 #include <stdint.h>
 #endif
 
index 8f83107..1061fae 100644 (file)
@@ -266,6 +266,7 @@ void QFileInfo::doStat() const
     }
 #else
     QString file = fn;
+    file = QDir::cleanDirPath(file);
     reslashify(file);
 #ifdef QT_LARGEFILE_SUPPORT
     if ( _wstati64( (wchar_t*) file.ucs2(), b ) == -1 ) {
index fcc8f11..d958f0a 100644 (file)
@@ -372,7 +372,7 @@ static bool matchcharclass( uint *rxd, char c )
     if ( clcode != CCL && clcode != CCN)
        qWarning("QRegExp: Internal error, please report to qt-bugs@trolltech.com");
     uint numFields = *d & MVL;
-    uint cval = (uint)c; //(((uint)(c.row())) << 8) | ((uint)c.cell());
+    uint cval = (unsigned char)c; //(((uint)(c.row())) << 8) | ((uint)c.cell());
     bool found = FALSE;
     for ( int i = 0; i < (int)numFields; i++ ) {
        d++;
index 459fd26..9913b12 100644 (file)
@@ -17,6 +17,7 @@
 #include "growbuf.h"
 #include "membername.h"
 #include "filename.h"
+#include "tooltip.h"
 
 static Definition *g_currentDefinition=0;
 static MemberDef  *g_currentMemberDef=0;
@@ -611,10 +612,19 @@ static void codifyLines(CodeOutputInterface &ol,FileDef *fd,const char *text,
 
 static void writeMultiLineCodeLink(CodeOutputInterface &ol,
                   FileDef *fd,uint &line,uint &column,
-                  const char *ref,const char *file,
-                  const char *anchor,const char *text,
-                 const char *tooltip)
+                  Definition *d,
+                  const char *text)
 {
+  static bool sourceTooltips = Config_getBool("SOURCE_TOOLTIPS");
+  TooltipManager::instance()->addTooltip(d);
+  QCString ref  = d->getReference();
+  QCString file = d->getOutputFileBase();
+  QCString anchor = d->anchor();
+  QCString tooltip;
+  if (!sourceTooltips) // fall back to simple "title" tooltips
+  {
+   tooltip = d->briefDescriptionAsTooltip();
+  }
   bool done=FALSE;
   char *p=(char *)text;
   while (!done)
@@ -685,14 +695,7 @@ void ClangParser::linkMacro(CodeOutputInterface &ol,FileDef *fd,
     {
       if (md->isDefine())
       {
-        writeMultiLineCodeLink(ol,
-            fd,line,column,
-            md->getReference(),
-            md->getOutputFileBase(),
-            md->anchor(),
-            text,
-            md->briefDescriptionAsTooltip()
-            );
+        writeMultiLineCodeLink(ol,fd,line,column,md,text);
         return;
       }
     }
@@ -738,14 +741,7 @@ void ClangParser::linkIdentifier(CodeOutputInterface &ol,FileDef *fd,
     {
       addDocCrossReference(g_currentMemberDef,(MemberDef*)d);
     }
-    writeMultiLineCodeLink(ol,
-        fd,line,column,
-        d->getReference(),
-        d->getOutputFileBase(),
-        d->anchor(),
-        text,
-        d->briefDescriptionAsTooltip()
-        );
+    writeMultiLineCodeLink(ol,fd,line,column,d,text);
   }
   else
   {
@@ -786,6 +782,7 @@ static void detectFunctionBody(const char *s)
 
 void ClangParser::writeSources(CodeOutputInterface &ol,FileDef *fd)
 {
+  TooltipManager::instance()->clearTooltips();
   // (re)set global parser state
   g_currentDefinition=0;
   g_currentMemberDef=0;
@@ -894,6 +891,7 @@ void ClangParser::writeSources(CodeOutputInterface &ol,FileDef *fd)
     clang_disposeString(tokenString);
   }
   ol.endCodeLine();
+  TooltipManager::instance()->writeTooltips(ol);
 }
 
 ClangParser::ClangParser()
index 1429fdd..07a275c 100644 (file)
@@ -1521,7 +1521,7 @@ void ClassDef::writeSummaryLinks(OutputList &ol)
         MemberList * ml = getMemberList(lmd->type);
         if (ml && ml->declVisible())
         {
-          ol.writeSummaryLink(0,ml->listTypeAsString(),lmd->title(lang),first);
+          ol.writeSummaryLink(0,ml->listTypeAsString(ml->listType()),lmd->title(lang),first);
           first=FALSE;
         }
       }
@@ -3457,7 +3457,7 @@ QCString ClassDef::getSourceFileBase() const
   }
   else
   {
-    return convertNameToFile(m_impl->fileName)+"_source"; 
+    return Definition::getSourceFileBase();
   }
 }
 
@@ -3901,6 +3901,20 @@ void ClassDef::sortMemberLists()
   }
 }
 
+
+/** Computes for a given list type \a inListType, which are the
+ *  the corresponding list type(s) in the base class that are to be
+ *  added to this list.
+ *
+ *  So for public inheritance, the mapping is 1-1, so outListType1=inListType
+ *  Private members are to be hidden completely.
+ *
+ *  For protected inheritance, both protected and public members of the
+ *  base class should be joined in the protected member section.
+ *
+ *  For private inheritance, both protected and public members of the 
+ *  base class should be joined in the private member section.
+ */
 static void convertProtectionLevel(
                    MemberListType inListType,
                    Protection inProt,
@@ -3908,7 +3922,8 @@ static void convertProtectionLevel(
                    int *outListType2
                   )
 {
-  // default representing Public inheritance
+  static bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
+  // default representing 1-1 mapping
   *outListType1=inListType;
   *outListType2=-1;
   if (inProt==Public)
@@ -3953,28 +3968,22 @@ static void convertProtectionLevel(
         break;
 
       case MemberListType_proMethods:       
-        *outListType1=MemberListType_pubMethods;
-        *outListType2=MemberListType_proMethods;
+        *outListType2=MemberListType_pubMethods;
         break;
       case MemberListType_proStaticMethods: 
-        *outListType1=MemberListType_pubStaticMethods;
-        *outListType2=MemberListType_proStaticMethods;
+        *outListType2=MemberListType_pubStaticMethods;
         break;
       case MemberListType_proSlots:         
-        *outListType1=MemberListType_pubSlots;
-        *outListType1=MemberListType_proSlots;
+        *outListType2=MemberListType_pubSlots;
         break;
       case MemberListType_proAttribs:       
-        *outListType1=MemberListType_pubAttribs;
-        *outListType2=MemberListType_proAttribs;
+        *outListType2=MemberListType_pubAttribs;
         break;
       case MemberListType_proStaticAttribs: 
-        *outListType1=MemberListType_pubStaticAttribs;
-        *outListType2=MemberListType_proStaticAttribs;
+        *outListType2=MemberListType_pubStaticAttribs;
         break;
       case MemberListType_proTypes:         
-        *outListType1=MemberListType_pubTypes;
-        *outListType2=MemberListType_proTypes;
+        *outListType2=MemberListType_pubTypes;
         break;
       default: 
         break;
@@ -4003,28 +4012,76 @@ static void convertProtectionLevel(
         break;
 
       case MemberListType_priMethods:       
-        *outListType1=MemberListType_pubMethods;
-        *outListType2=MemberListType_proMethods;
+        if (extractPrivate)
+        {
+          *outListType1=MemberListType_pubMethods;
+          *outListType2=MemberListType_proMethods;
+        }
+        else
+        {
+          *outListType1=-1;
+          *outListType2=-1;
+        }
         break;
       case MemberListType_priStaticMethods: 
-        *outListType1=MemberListType_pubStaticMethods;
-        *outListType2=MemberListType_proStaticMethods;
+        if (extractPrivate)
+        {
+          *outListType1=MemberListType_pubStaticMethods;
+          *outListType2=MemberListType_proStaticMethods;
+        }
+        else
+        {
+          *outListType1=-1;
+          *outListType2=-1;
+        }
         break;
       case MemberListType_priSlots:         
-        *outListType1=MemberListType_pubSlots;
-        *outListType1=MemberListType_proSlots;
+        if (extractPrivate)
+        {
+          *outListType1=MemberListType_pubSlots;
+          *outListType1=MemberListType_proSlots;
+        }
+        else
+        {
+          *outListType1=-1;
+          *outListType2=-1;
+        }
         break;
       case MemberListType_priAttribs:
-        *outListType1=MemberListType_pubAttribs;
-        *outListType2=MemberListType_proAttribs;
+        if (extractPrivate)
+        {
+          *outListType1=MemberListType_pubAttribs;
+          *outListType2=MemberListType_proAttribs;
+        }
+        else
+        {
+          *outListType1=-1;
+          *outListType2=-1;
+        }
         break;
       case MemberListType_priStaticAttribs:
-        *outListType1=MemberListType_pubStaticAttribs;
-        *outListType2=MemberListType_proStaticAttribs;
+        if (extractPrivate)
+        {
+          *outListType1=MemberListType_pubStaticAttribs;
+          *outListType2=MemberListType_proStaticAttribs;
+        }
+        else
+        {
+          *outListType1=-1;
+          *outListType2=-1;
+        }
         break;
       case MemberListType_priTypes:
-        *outListType1=MemberListType_pubTypes;
-        *outListType2=MemberListType_proTypes;
+        if (extractPrivate)
+        {
+          *outListType1=MemberListType_pubTypes;
+          *outListType2=MemberListType_proTypes;
+        }
+        else
+        {
+          *outListType1=-1;
+          *outListType2=-1;
+        }
         break;
       default: 
         break;
@@ -4034,67 +4091,97 @@ static void convertProtectionLevel(
   //    inListType,inProt,*outListType1,*outListType2);
 }
 
-int ClassDef::countInheritedDecMembersRec(MemberListType lt,
-                                          ClassDef *inheritedFrom)
+int ClassDef::countMemberDeclarations(MemberListType lt,ClassDef *inheritedFrom,
+                                      int lt2,bool invert,bool showAlways,QPtrDict<void> *visitedClasses)
 {
-  //printf("> %s::countedInheritedDecMembersRec(%d)\n",name().data(),lt);
+  //printf("%s: countMemberDeclarations for %d and %d\n",name().data(),lt,lt2);
   int count=0;
-  if (m_impl->inherits)
+  MemberList * ml  = getMemberList(lt);
+  MemberList * ml2 = getMemberList((MemberListType)lt2);
+  if (getLanguage()!=SrcLangExt_VHDL) // use specific declarations function
   {
-    BaseClassListIterator it(*m_impl->inherits);
-    BaseClassDef *ibcd;
-    for (it.toFirst();(ibcd=it.current());++it)
+    if (ml) 
     {
-      ClassDef *icd=ibcd->classDef;
-      int lt1,lt2;
-      // an inherited member with protection level lt 
-      // could have come from a section with protection levels lt1 or lt2
-      // in the bass class (e.g. for protected inheritance, the protected
-      // member comes from protected and public methods in the base class)
-      convertProtectionLevel(lt,ibcd->prot,&lt1,&lt2);
-      MemberList *ml1 = icd->getMemberList((MemberListType)lt1);
-      MemberList *ml2 = icd->getMemberList((MemberListType)lt2);
-      if (ml1)
-      {
-        count+=icd->countMembersIncludingGrouped((MemberListType)lt1,inheritedFrom,TRUE);
-      }
-      if (ml2) 
-      {
-        count+=icd->countMembersIncludingGrouped((MemberListType)lt2,inheritedFrom,TRUE);
-      }
-      if (lt1!=-1)
-      {
-        count+=icd->countInheritedDecMembersRec((MemberListType)lt1,inheritedFrom);
-      }
-      if (lt2!=-1)
-      {
-        count+=icd->countInheritedDecMembersRec((MemberListType)lt2,inheritedFrom);
-      }
+      ml->countDecMembers();
+      count+=ml->numDecMembers();
+      //printf("-> ml=%d\n",ml->numDecMembers());
+    }
+    if (ml2)
+    {
+      ml2->countDecMembers();
+      count+=ml2->numDecMembers();
+      //printf("-> ml2=%d\n",ml2->numDecMembers());
+    }
+    static bool inlineInheritedMembers = Config_getBool("INLINE_INHERITED_MEMB");
+    if (!inlineInheritedMembers) // show inherited members as separate lists
+    {
+      QPtrDict<void> visited(17);
+      count+=countInheritedDecMembers(lt,inheritedFrom,invert,showAlways,visitedClasses);
     }
   }
-  //printf("< %s::countedInheritedDecMembersRec(%d) count=%d\n",name().data(),lt,count);
+  //printf("-> %d\n",count);
   return count;
 }
 
-int ClassDef::countInheritedDecMembers(MemberListType lt)
+
+int ClassDef::countInheritedDecMembers(MemberListType lt,
+                                       ClassDef *inheritedFrom,bool invert,bool showAlways,
+                                       QPtrDict<void> *visitedClasses)
 {
-  int count=0;
-  MemberList *ml = getMemberList(lt);
-  if (ml)
-  {
-    count = ml->countInheritableMembers(this);
-  }
-  if (count==0) // for this class the (non-private) member list is empty
-                // see if we need to create a section for it under
-                // Additional Inherited Members
+  int inhCount = 0;
+  int count = countMembersIncludingGrouped(lt,inheritedFrom,FALSE)>0;
+  bool process = count>0;
+  //printf("%s: countInheritedDecMembers: lt=%d process=%d count=%d invert=%d\n",
+  //    name().data(),lt,process,count,invert);
+  if ((process^invert) || showAlways)
   {
-    count = countInheritedDecMembersRec(lt,this);
+    if (m_impl->inherits)
+    {
+      BaseClassListIterator it(*m_impl->inherits);
+      BaseClassDef *ibcd;
+      for (it.toFirst();(ibcd=it.current());++it)
+      {
+        ClassDef *icd=ibcd->classDef;
+        int lt1,lt2;
+        convertProtectionLevel(lt,ibcd->prot,&lt1,&lt2);
+        //printf("%s: convert %d->(%d,%d) prot=%d\n",
+        //    icd->name().data(),lt,lt1,lt2,ibcd->prot);
+        if (visitedClasses->find(icd)==0) 
+        {
+          visitedClasses->insert(icd,icd); // guard for multiple virtual inheritance
+          if (lt1!=-1)
+          {
+            inhCount+=icd->countMemberDeclarations((MemberListType)lt1,inheritedFrom,lt2,FALSE,TRUE,visitedClasses);
+          }
+        }
+      }
+    }
   }
-  else // member list is not empty, so we will add the inherited members there
+  return inhCount;
+}
+
+void ClassDef::getTitleForMemberListType(MemberListType type,
+               QCString &title,QCString &subtitle)
+{
+  SrcLangExt lang = getLanguage();
+  QListIterator<LayoutDocEntry> eli(
+      LayoutDocManager::instance().docEntries(LayoutDocManager::Class));
+  LayoutDocEntry *lde;
+  for (eli.toFirst();(lde=eli.current());++eli)
   {
-    count = 0;
+    if (lde->kind()==LayoutDocEntry::MemberDecl)
+    {
+      LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde;
+      if (lmd->type==type) 
+      {
+        title = lmd->title(lang);
+        subtitle = lmd->subtitle(lang);
+        return;
+      }
+    }
   }
-  return count;
+  title="";
+  subtitle="";
 }
 
 int ClassDef::countAdditionalInheritedMembers()
@@ -4110,7 +4197,12 @@ int ClassDef::countAdditionalInheritedMembers()
       LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde;
       if (lmd->type!=MemberListType_friends) // friendship is not inherited
       {
-        totalCount+=countInheritedDecMembers(lmd->type);
+        //MemberList *ml = getMemberList(lmd->type);
+        //if (ml==0 || ml->numDecMembers()==0)
+        //{
+          QPtrDict<void> visited(17);
+          totalCount+=countInheritedDecMembers(lmd->type,this,TRUE,FALSE,&visited);
+        //}
       }
     }
   }
@@ -4129,11 +4221,10 @@ void ClassDef::writeAdditionalInheritedMembers(OutputList &ol)
     if (lde->kind()==LayoutDocEntry::MemberDecl)
     {
       LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde;
-      MemberList *ml = getMemberList(lmd->type);
-      if (ml==0 || ml->numDecMembers()==0)
+      if (lmd->type!=MemberListType_friends)
       {
         QPtrDict<void> visited(17);
-        writeInheritedMemberDeclarations(ol,lmd->type,lmd->title(getLanguage()),this,TRUE,&visited);
+        writeInheritedMemberDeclarations(ol,lmd->type,-1,lmd->title(getLanguage()),this,TRUE,FALSE,&visited);
       }
     }
   }
@@ -4164,21 +4255,22 @@ int ClassDef::countMembersIncludingGrouped(MemberListType lt,
     }
   }
   //printf("%s:countMembersIncludingGrouped(lt=%d,%s)=%d\n",
-  //    name().data(),lt,ml?ml->listTypeAsString().data():"<none>",count);
+  //    name().data(),lt,ml?ml->listTypeAsString(ml->listType()).data():"<none>",count);
   return count;
 }
 
 void ClassDef::writeInheritedMemberDeclarations(OutputList &ol,
-               MemberListType lt,const QCString &title,
-               ClassDef *inheritedFrom,bool invert,
+               MemberListType lt,int lt2,const QCString &title,
+               ClassDef *inheritedFrom,bool invert,bool showAlways,
                QPtrDict<void> *visitedClasses)
 {
   ol.pushGeneratorState();
   ol.disableAllBut(OutputGenerator::Html);
-  bool process = countMembersIncludingGrouped(lt,inheritedFrom,FALSE)>0;
-  //printf("%s: writeInheritedMemberDec: lt=%d process=%d invert=%d\n",
-  //    name().data(),lt,process,invert);
-  if (process^invert)
+  int count = countMembersIncludingGrouped(lt,inheritedFrom,FALSE)>0;
+  bool process = count>0;
+  //printf("%s: writeInheritedMemberDec: lt=%d process=%d invert=%d always=%d\n",
+  //    name().data(),lt,process,invert,showAlways);
+  if ((process^invert) || showAlways)
   {
     if (m_impl->inherits)
     {
@@ -4187,18 +4279,26 @@ void ClassDef::writeInheritedMemberDeclarations(OutputList &ol,
       for (it.toFirst();(ibcd=it.current());++it)
       {
         ClassDef *icd=ibcd->classDef;
-        int lt1,lt2;
-        convertProtectionLevel(lt,ibcd->prot,&lt1,&lt2);
-        //printf("%s:convert %d->(%d,%d)\n",icd->name().data(),lt,lt1,lt2);
+        int lt1,lt3;
+        convertProtectionLevel(lt,ibcd->prot,&lt1,&lt3);
+        if (lt2==-1 && lt3!=-1)
+        {
+          lt2=lt3;
+        }
+        //printf("%s:convert %d->(%d,%d) prot=%d\n",icd->name().data(),lt,lt1,lt2,ibcd->prot);
         if (visitedClasses->find(icd)==0) 
         {
           visitedClasses->insert(icd,icd); // guard for multiple virtual inheritance
           if (lt1!=-1)
           {
             icd->writeMemberDeclarations(ol,(MemberListType)lt1,
-                title,QCString(),FALSE,inheritedFrom,lt2,invert,visitedClasses);
+                title,QCString(),FALSE,inheritedFrom,lt2,FALSE /*invert*/,TRUE,visitedClasses);
           }
         }
+        else
+        {
+          //printf("%s: class already visited!\n",icd->name().data());
+        }
       }
     }
   }
@@ -4206,10 +4306,12 @@ void ClassDef::writeInheritedMemberDeclarations(OutputList &ol,
 }
 
 void ClassDef::writeMemberDeclarations(OutputList &ol,MemberListType lt,const QCString &title,
-               const char *subTitle,bool showInline,ClassDef *inheritedFrom,int lt2,bool invert,QPtrDict<void> *visitedClasses)
+               const char *subTitle,bool showInline,ClassDef *inheritedFrom,int lt2,
+               bool invert,bool showAlways,QPtrDict<void> *visitedClasses)
 {
-  //printf("%s: ClassDef::writeMemberDeclarations for %s\n",name().data(),ml->listTypeAsString().data());
+  //printf("%s: ClassDef::writeMemberDeclarations lt=%d lt2=%d\n",name().data(),lt,lt2);
   MemberList * ml = getMemberList(lt);
+  MemberList * ml2 = getMemberList((MemberListType)lt2);
   if (getLanguage()==SrcLangExt_VHDL) // use specific declarations function
   {
     if (ml)
@@ -4219,27 +4321,31 @@ void ClassDef::writeMemberDeclarations(OutputList &ol,MemberListType lt,const QC
   }
   else
   {
-    //printf("%s::writeMemberDeclarations(%s)\n",name().data(),title.data());
-    //static bool optimizeVhdl = Config_getBool("OPTIMIZE_OUTPUT_VHDL");
+    //printf("%s::writeMemberDeclarations(%s) ml=%p ml2=%p\n",name().data(),title.data(),ml,ml2);
+    QCString tt = title, st = subTitle;
     if (ml) 
     {
-      ml->writeDeclarations(ol,this,0,0,0,title,subTitle,definitionType(),FALSE,showInline,inheritedFrom); 
-      if (lt2!=-1)
-      {
-        MemberList * ml2 = getMemberList((MemberListType)lt2);
-        if (ml2)
-        {
-          ml2->writeDeclarations(ol,this,0,0,0,0,0,definitionType(),FALSE,showInline,inheritedFrom); 
-        }
-      }
+      //printf("  writeDeclaration type=%d count=%d\n",lt,ml->numDecMembers());
+      ml->writeDeclarations(ol,this,0,0,0,tt,st,definitionType(),FALSE,showInline,inheritedFrom,lt); 
+      tt.resize(0);
+      st.resize(0);
+    }
+    if (ml2)
+    {
+      //printf("  writeDeclaration type=%d count=%d\n",lt2,ml2->numDecMembers());
+      ml2->writeDeclarations(ol,this,0,0,0,tt,st,definitionType(),FALSE,showInline,inheritedFrom,lt); 
     }
     static bool inlineInheritedMembers = Config_getBool("INLINE_INHERITED_MEMB");
     if (!inlineInheritedMembers) // show inherited members as separate lists
     {
-      QPtrDict<void> visited(17);
-      writeInheritedMemberDeclarations(ol,lt,title,
-                                       inheritedFrom ? inheritedFrom : this,
-                                       invert,visitedClasses==0 ? &visited: visitedClasses);
+      if (lt!=-1)
+      {
+        QPtrDict<void> visited(17);
+        writeInheritedMemberDeclarations(ol,lt,lt2,title,
+            inheritedFrom ? inheritedFrom : this,
+            invert,showAlways,
+            visitedClasses==0 ? &visited: visitedClasses);
+      }
     }
   }
 }
index f4d5962..494b8f2 100644 (file)
@@ -383,9 +383,9 @@ class ClassDef : public Definition
     QCString getMemberListFileName() const;
     void addMemberToList(MemberListType lt,MemberDef *md,bool isBrief);
     MemberList *createMemberList(MemberListType lt);
-    void writeInheritedMemberDeclarations(OutputList &ol,MemberListType lt,const QCString &title,ClassDef *inheritedFrom,bool invert,QPtrDict<void> *visitedClasses);
+    void writeInheritedMemberDeclarations(OutputList &ol,MemberListType lt,int lt2,const QCString &title,ClassDef *inheritedFrom,bool invert,bool showAlways,QPtrDict<void> *visitedClasses);
     void writeMemberDeclarations(OutputList &ol,MemberListType lt,const QCString &title,
-                                 const char *subTitle=0,bool showInline=FALSE,ClassDef *inheritedFrom=0,int lt2=-1,bool invert=FALSE,QPtrDict<void> *visitedClasses=0);
+                                 const char *subTitle=0,bool showInline=FALSE,ClassDef *inheritedFrom=0,int lt2=-1,bool invert=FALSE,bool showAlways=FALSE,QPtrDict<void> *visitedClasses=0);
     void writeMemberDocumentation(OutputList &ol,MemberListType lt,const QCString &title,bool showInline=FALSE);
     void writeSimpleMemberDocumentation(OutputList &ol,MemberListType lt);
     void writePlainMemberDeclaration(OutputList &ol,MemberListType lt,bool inGroup,ClassDef *inheritedFrom,const char *inheritId);
@@ -407,11 +407,16 @@ class ClassDef : public Definition
     void writeMoreLink(OutputList &ol,const QCString &anchor);
     void writeDetailedDocumentationBody(OutputList &ol);
     
-    int countInheritedDecMembersRec(MemberListType lt,ClassDef *inheritedFrom);
-    int countInheritedDecMembers(MemberListType lt);
     int countAdditionalInheritedMembers();
     void writeAdditionalInheritedMembers(OutputList &ol);
     void addClassAttributes(OutputList &ol);
+    int countMemberDeclarations(MemberListType lt,ClassDef *inheritedFrom,
+                                int lt2,bool invert,bool showAlways,QPtrDict<void> *visitedClasses);
+    int countInheritedDecMembers(MemberListType lt,
+                                 ClassDef *inheritedFrom,bool invert,bool showAlways,
+                                 QPtrDict<void> *visitedClasses);
+    void getTitleForMemberListType(MemberListType type,
+               QCString &title,QCString &subtitle);
     
     ClassDefImpl *m_impl;
 
index f88f91e..f148085 100644 (file)
@@ -131,6 +131,7 @@ CommandMap cmdMap[] =
   { "vhdlflow",      CMD_VHDLFLOW },
   { "docbookonly",   CMD_DBONLY },
   { "enddocbookonly",CMD_ENDDBONLY },
+  { "endinternal",   CMD_ENDINTERNAL },
   { 0,               0 },
 };
 
index c7b7c37..88028f1 100644 (file)
@@ -120,7 +120,8 @@ enum CommandType
   CMD_PIPE         = 90,
   CMD_VHDLFLOW     = 91,
   CMD_DBONLY       = 92,
-  CMD_ENDDBONLY    = 93
+  CMD_ENDDBONLY    = 93,
+  CMD_ENDINTERNAL  = 94
 };
 
 enum HtmlTagType
index 3825ac1..490a847 100644 (file)
@@ -18,6 +18,8 @@
 #ifndef CODE_H
 #define CODE_H
 
+#include "types.h"
+
 class CodeOutputInterface;
 class FileDef;
 class MemberDef;
@@ -25,7 +27,7 @@ class QCString;
 class Definition;
 
 void parseCCode(CodeOutputInterface &,const char *,const QCString &, 
-            bool ,const char *,FileDef *fd,
+            SrcLangExt lang, bool isExample, const char *exName,FileDef *fd,
             int startLine,int endLine,bool inlineFragment,
             MemberDef *memberDef,bool showLineNumbers,Definition *searchCtx);
 void resetCCodeParserState();
index 01636fa..3aa9837 100644 (file)
@@ -40,6 +40,7 @@
 #include "filedef.h"
 #include "filename.h"
 #include "namespacedef.h"
+#include "tooltip.h"
 
 // Toggle for some debugging info
 //#define DBG_CTX(x) fprintf x
@@ -112,6 +113,9 @@ static int           g_memCallContext;
 static int          g_lastCContext;
 
 static bool          g_insideObjC;
+static bool          g_insideJava;
+static bool          g_insideCS;
+static bool          g_insidePHP;
 static bool          g_insideProtocolList;
 
 static bool          g_lexInit = FALSE;
@@ -594,10 +598,19 @@ static void codifyLines(const char *text)
  * split into multiple links with the same destination, one for each line.
  */
 static void writeMultiLineCodeLink(CodeOutputInterface &ol,
-                  const char *ref,const char *file,
-                  const char *anchor,const char *text,
-                 const char *tooltip)
+                                   Definition *d,
+                                   const char *text)
 {
+  static bool sourceTooltips = Config_getBool("SOURCE_TOOLTIPS");
+  TooltipManager::instance()->addTooltip(d);
+  QCString ref  = d->getReference();
+  QCString file = d->getOutputFileBase();
+  QCString anchor = d->anchor();
+  QCString tooltip; 
+  if (!sourceTooltips) // fall back to simple "title" tooltips
+  {
+    tooltip = d->briefDescriptionAsTooltip();
+  }
   bool done=FALSE;
   char *p=(char *)text;
   while (!done)
@@ -863,7 +876,7 @@ static bool getLinkInScope(const QCString &c,  // scope
     }
 
     Definition *d = md->getOuterScope()==Doxygen::globalScope ?
-                   md->getBodyDef() : md->getOuterScope();
+                   md->getFileDef() : md->getOuterScope();
     if (md->getGroupDef()) d = md->getGroupDef();
     if (d && d->isLinkable())
     {
@@ -878,11 +891,7 @@ static bool getLinkInScope(const QCString &c,  // scope
       }
       //printf("d->getReference()=`%s' d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getReference().data(),d->getOutputFileBase().data(),d->name().data(),md->name().data());
      
-      writeMultiLineCodeLink(ol,md->getReference(),
-                               md->getOutputFileBase(),
-                               md->anchor(),
-                               text ? text : memberText,
-                               md->briefDescriptionAsTooltip());
+      writeMultiLineCodeLink(ol,md, text ? text : memberText);
       addToSearchIndex(text ? text : memberText);
       return TRUE;
     } 
@@ -927,7 +936,14 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,const char *clName
   {
     className+="-p";
   }
-  className = substitute(className,"\\","::"); // for PHP namespaces
+  if (g_insidePHP)
+  {
+    className = substitute(className,"\\","::"); // for PHP namespaces
+  }
+  else if (g_insideCS || g_insideJava)
+  {
+    className = substitute(className,".","::"); // for PHP namespaces
+  }
   ClassDef *cd=0,*lcd=0;
   MemberDef *md=0;
   bool isLocal=FALSE;
@@ -994,13 +1010,13 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,const char *clName
        g_anchorCount++;
       }
     }
-    writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),cd->anchor(),clName,cd->briefDescriptionAsTooltip());
+    writeMultiLineCodeLink(ol,cd,clName);
     addToSearchIndex(className);
     g_theCallContext.setClass(cd);
     if (md)
     {
       Definition *d = md->getOuterScope()==Doxygen::globalScope ?
-                      md->getBodyDef() : md->getOuterScope();
+                      md->getFileDef() : md->getOuterScope();
       if (md->getGroupDef()) d = md->getGroupDef();
       if (d && d->isLinkable() && md->isLinkable() && g_currentMemberDef)
       {
@@ -1053,7 +1069,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,const char *clName
          {
            text=clName;
          }
-         writeMultiLineCodeLink(ol,md->getReference(),md->getOutputFileBase(),md->anchor(),text,md->briefDescriptionAsTooltip());
+         writeMultiLineCodeLink(ol,md,text);
           addToSearchIndex(clName);
          if (g_currentMemberDef)
          {
@@ -1098,7 +1114,7 @@ static bool generateClassMemberLink(CodeOutputInterface &ol,MemberDef *xmd,const
   g_theCallContext.setClass(typeClass);
 
   Definition *xd = xmd->getOuterScope()==Doxygen::globalScope ?
-    xmd->getBodyDef() : xmd->getOuterScope();
+                   xmd->getFileDef() : xmd->getOuterScope();
   if (xmd->getGroupDef()) xd = xmd->getGroupDef();
   if (xd && xd->isLinkable())
   {
@@ -1117,8 +1133,7 @@ static bool generateClassMemberLink(CodeOutputInterface &ol,MemberDef *xmd,const
       }
 
       // write the actual link
-      writeMultiLineCodeLink(ol,xmd->getReference(),
-         xmd->getOutputFileBase(),xmd->anchor(),memName,xmd->briefDescriptionAsTooltip());
+      writeMultiLineCodeLink(ol,xmd,memName);
       addToSearchIndex(memName);
       return TRUE;
     }
@@ -1488,12 +1503,7 @@ static void writeObjCMethodCall(ObjCCallCtx *ctx)
          {
            if (ctx->method && ctx->method->isLinkable())
            {
-              writeMultiLineCodeLink(*g_code,
-                                    ctx->method->getReference(),
-                                    ctx->method->getOutputFileBase(),
-                                    ctx->method->anchor(),
-                                    pName->data(),
-                                    ctx->method->briefDescriptionAsTooltip());
+              writeMultiLineCodeLink(*g_code,ctx->method,pName->data());
              if (g_currentMemberDef)
              {
                addDocCrossReference(g_currentMemberDef,ctx->method);
@@ -1572,12 +1582,7 @@ static void writeObjCMethodCall(ObjCCallCtx *ctx)
            }
            else if (ctx->objectVar && ctx->objectVar->isLinkable()) // object is class variable
            {
-             writeMultiLineCodeLink(*g_code,
-                   ctx->objectVar->getReference(),
-                   ctx->objectVar->getOutputFileBase(),
-                   ctx->objectVar->anchor(),
-                   pObject->data(),
-                   ctx->objectVar->briefDescriptionAsTooltip());
+             writeMultiLineCodeLink(*g_code,ctx->objectVar,pObject->data());
              if (g_currentMemberDef)
              {
                addDocCrossReference(g_currentMemberDef,ctx->objectVar);
@@ -1589,12 +1594,7 @@ static void writeObjCMethodCall(ObjCCallCtx *ctx)
                    ) // object is class name
            {
              ClassDef *cd = ctx->objectType;
-             writeMultiLineCodeLink(*g_code,
-                   cd->getReference(),
-                   cd->getOutputFileBase(),
-                   cd->anchor(),
-                   pObject->data(),
-                   cd->briefDescriptionAsTooltip());
+             writeMultiLineCodeLink(*g_code,cd,pObject->data());
            }
            else // object still needs to be resolved
            {
@@ -1603,12 +1603,7 @@ static void writeObjCMethodCall(ObjCCallCtx *ctx)
              if (cd && cd->isLinkable())
              {
                if (ctx->objectType==0) ctx->objectType=cd;
-               writeMultiLineCodeLink(*g_code,
-                   cd->getReference(),
-                   cd->getOutputFileBase(),
-                   cd->anchor(),
-                   pObject->data(),
-                   cd->briefDescriptionAsTooltip());
+               writeMultiLineCodeLink(*g_code,cd,pObject->data());
              }
              else
              {
@@ -1747,8 +1742,10 @@ static int yyread(char *buf,int max_size)
 B       [ \t]
 BN      [ \t\n\r]
 ID     "$"?[a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF]*
-SEP      ("::"|"\\")
+SEP     ("::"|"\\")
+SEPCS   (".")
 SCOPENAME ({SEP}{BN}*)?({ID}{BN}*{SEP}{BN}*)*("~"{BN}*)?{ID}
+SCOPENAMECS ({SEPCS}{BN}*)?({ID}{BN}*{SEPCS}{BN}*)*("~"{BN}*)?{ID}
 TEMPLIST "<"[^\"\}\{\(\)\/\n\>]*">"
 SCOPETNAME (((({ID}{TEMPLIST}?){BN}*)?{SEP}{BN}*)*)((~{BN}*)?{ID})
 SCOPEPREFIX ({ID}{TEMPLIST}?{BN}*{SEP}{BN}*)+
@@ -1966,7 +1963,7 @@ RAWEND    ")"[^ \t\(\)\\]{0,16}\"
                                          //printf("      include file %s found=%d\n",fd ? fd->absFilePath().data() : "<none>",found);
                                          if (found)
                                          {
-                                           g_code->writeCodeLink(fd->getReference(),fd->getOutputFileBase(),0,yytext,fd->briefDescriptionAsTooltip());
+                                           writeMultiLineCodeLink(*g_code,fd,yytext);
                                          }
                                          else
                                          {
@@ -2492,6 +2489,20 @@ RAWEND    ")"[^ \t\(\)\\]{0,16}\"
                                          generateClassOrGlobalLink(*g_code,yytext);
                                          g_name+=yytext; 
                                        }
+<Body>{SCOPENAMECS}/{BN}*[;,)\]]       { // "int var;" or "var, var2" or "debug(f) macro" 
+                                          if (!g_insideCS && !g_insideJava)
+                                          {
+                                            REJECT;
+                                          }
+                                          else
+                                          {
+                                           addType();
+                                           // changed this to generateFunctionLink, see bug 624514
+                                           //generateClassOrGlobalLink(*g_code,yytext,FALSE,TRUE);
+                                           generateFunctionLink(*g_code,yytext);
+                                           g_name+=yytext; 
+                                          }
+                                        }
 <Body>{SCOPENAME}/{BN}*[;,)\]]         { // "int var;" or "var, var2" or "debug(f) macro" 
                                          addType();
                                          // changed this to generateFunctionLink, see bug 624514
@@ -2499,6 +2510,18 @@ RAWEND    ")"[^ \t\(\)\\]{0,16}\"
                                          generateFunctionLink(*g_code,yytext);
                                          g_name+=yytext; 
                                        }
+<Body>{SCOPENAMECS}/{B}*               { // p->func()
+                                          if (!g_insideCS && !g_insideJava)
+                                          {
+                                            REJECT;
+                                          }
+                                          else
+                                          {
+                                           addType();
+                                           generateClassOrGlobalLink(*g_code,yytext);
+                                           g_name+=yytext; 
+                                          }
+                                       }
 <Body>{SCOPENAME}/{B}*                         { // p->func()
                                          addType();
                                          generateClassOrGlobalLink(*g_code,yytext);
@@ -3514,13 +3537,14 @@ void resetCCodeParserState()
 }
 
 void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s, 
-                  bool exBlock, const char *exName,FileDef *fd,
+                  SrcLangExt lang,bool exBlock, const char *exName,FileDef *fd,
                  int startLine,int endLine,bool inlineFragment,
                  MemberDef *memberDef,bool showLineNumbers,Definition *searchCtx)
 {
   //printf("***parseCode() exBlock=%d exName=%s fd=%p className=%s searchCtx=%s\n",
   //      exBlock,exName,fd,className,searchCtx?searchCtx->name().data():"<none>");
   if (s.isEmpty()) return;
+  TooltipManager::instance()->clearTooltips();
   if (g_codeClassSDict==0)
   {
     resetCCodeParserState();
@@ -3562,11 +3586,13 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
     g_sourceFileDef = new FileDef("",(exName?exName:"generated"));
     cleanupSourceDef = TRUE;
   }
+  g_insideObjC = lang==SrcLangExt_ObjC;
+  g_insideJava = lang==SrcLangExt_Java;
+  g_insideCS   = lang==SrcLangExt_CSharp;
+  g_insidePHP  = lang==SrcLangExt_PHP;
   if (g_sourceFileDef) 
   {
     setCurrentDoc("l00001");
-    g_insideObjC = g_sourceFileDef->name().lower().right(2)==".m" || 
-                   g_sourceFileDef->name().lower().right(3)==".mm"; 
   }
   g_currentDefinition = 0;
   g_currentMemberDef = 0;
@@ -3597,6 +3623,10 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
     DBG_CTX((stderr,"endCodeLine(%d)\n",g_yyLineNr));
     g_code->endCodeLine();
   }
+  if (fd)
+  {
+    TooltipManager::instance()->writeTooltips(*g_code);
+  }
   if (cleanupSourceDef)
   {
     // delete the temporary file definition used for this example
index 6e7fa30..09230eb 100644 (file)
@@ -320,7 +320,10 @@ void replaceComment(int offset);
 <Scan>'                                   {
                                      copyToOutput(yytext,(int)yyleng); 
                                     g_charContext = YY_START;
-                                    BEGIN(SkipChar);
+                                     if (g_lang!=SrcLangExt_VHDL)
+                                     {
+                                      BEGIN(SkipChar);
+                                     }
                                   }
 <Scan>\n                           { /* new line */ 
                                      copyToOutput(yytext,(int)yyleng); 
index 45f5425..886c2dd 100644 (file)
@@ -116,6 +116,8 @@ static bool handleToc(const QCString &s);
 static bool handleInherit(const QCString &);
 static bool handleExtends(const QCString &);
 static bool handleCopyDoc(const QCString &);
+static bool handleCopyBrief(const QCString &);
+static bool handleCopyDetails(const QCString &);
 
 typedef bool (*DocCmdFunc)(const QCString &name);
 
@@ -169,7 +171,7 @@ static DocCmdMap docCmdMap[] =
   { "relatedalso",     &handleRelatedAlso,      TRUE  },
   { "relatesalso",     &handleRelatedAlso,      TRUE  },
   { "refitem",         &handleRefItem,          TRUE  },
-  { "cite",            &handleCite,             TRUE  },
+  { "cite",            &handleCite,             FALSE },
   { "subpage",         &handleSubpage,          TRUE  },
   { "section",         &handleSection,          TRUE  },
   { "subsection",      &handleSection,          TRUE  },
@@ -218,8 +220,8 @@ static DocCmdMap docCmdMap[] =
   { "author",          0,                       TRUE  },
   { "authors",         0,                       TRUE  },
   { "copydoc",         &handleCopyDoc,          TRUE  },
-  { "copybrief",       0,                       FALSE },
-  { "copydetails",     0,                       TRUE  },
+  { "copybrief",       &handleCopyBrief,        FALSE },
+  { "copydetails",     &handleCopyDetails,      TRUE  },
   { "copyright",       0,                       TRUE  },
   { "date",            0,                       TRUE  },
   { "dotfile",         0,                       TRUE  },
@@ -412,8 +414,8 @@ static bool             parseMore;
 static int              g_condCount;
 
 static int              g_commentCount;
-static bool             g_spaceBeforeCmd;
-static bool             g_spaceBeforeIf;
+static QCString         g_spaceBeforeCmd;
+static QCString         g_spaceBeforeIf;
 static QCString         g_copyDocArg;
 
 static QCString         g_guardExpr;
@@ -878,6 +880,7 @@ LABELID   [a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF\-]*
 CITEID    [a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF\-:/]*
 SCOPEID   {ID}({ID}*{BN}*"::"{BN}*)*({ID}?)
 SCOPENAME "$"?(({ID}?{BN}*("::"|"."){BN}*)*)((~{BN}*)?{ID})
+TMPLSPEC  "<"{BN}*[^>]+{BN}*">"
 MAILADDR   [a-z_A-Z0-9.+\-]+"@"[a-z_A-Z0-9\-]+("."[a-z_A-Z0-9\-]+)+[a-z_A-Z0-9\-]+ 
 RCSTAG    "$"{ID}":"[^\n$]+"$"
 
@@ -1021,6 +1024,7 @@ RCSTAG    "$"{ID}":"[^\n$]+"$"
                                          BEGIN(HtmlComment);
                                        }
 <Comment>{B}*{CMD}"endinternal"{B}*    {
+                                          addOutput("\\endinternal "); 
                                           if (!inInternalDocs)
                                            warn(yyFileName,yyLineNr,
                                                "found \\endinternal without matching \\internal"
@@ -1031,17 +1035,17 @@ RCSTAG    "$"{ID}":"[^\n$]+"$"
                                           // the {B}* in the front was added for bug620924
                                          QCString cmdName = QCString(yytext).stripWhiteSpace().data()+1;
                                          DocCmdMapper::Cmd *cmdPtr = DocCmdMapper::map(cmdName);
-                                         g_spaceBeforeCmd = yytext[0]==' ' || yytext[0]=='\t';
                                          if (cmdPtr) // special action is required
                                          {
+                                            int i=0;
+                                            while (yytext[i]==' ' || yytext[i]=='\t') i++;
+                                           g_spaceBeforeCmd = QCString(yytext).left(i);
                                            if (cmdPtr->endsBrief)
                                            { 
                                              briefEndsAtDot=FALSE;
                                              // this command forces the end of brief description
                                              setOutput(OutputDoc);
                                            }
-                                            int i=0;
-                                            while (yytext[i]==' ' || yytext[i]=='\t') i++;
                                             //if (i>0) addOutput(QCString(yytext).left(i)); // removed for bug 689341
                                            if (cmdPtr->func && cmdPtr->func(cmdName))
                                            {
@@ -1065,7 +1069,7 @@ RCSTAG    "$"{ID}":"[^\n$]+"$"
                                            {
                                              // command without handler, to be processed
                                              // later by parsedoc.cpp
-                                             addOutput(yytext+i);
+                                             addOutput(yytext);
                                            }
                                          }
                                          else // command not relevant
@@ -1340,6 +1344,10 @@ RCSTAG    "$"{ID}":"[^\n$]+"$"
 
   /* ------ handle argument of class/struct/union command --------------- */
 
+<ClassDocArg1>{SCOPENAME}{TMPLSPEC}     { 
+                                         current->name = substitute(removeRedundantWhiteSpace(yytext),".","::");
+                                         BEGIN( ClassDocArg2 );
+                                        }
 <ClassDocArg1>{SCOPENAME}              { // first argument
                                          current->name = substitute(yytext,".","::");
                                          if (current->section==Entry::PROTOCOLDOC_SEC)
@@ -1793,15 +1801,15 @@ RCSTAG    "$"{ID}":"[^\n$]+"$"
                                          addOutput(*yytext);
                                        }
 <GuardParamEnd>{B}*{DOCNL}             {
-                                         g_spaceBeforeIf=FALSE;
+                                         g_spaceBeforeIf.resize(0);
                                          BEGIN(Comment);
                                        }
 <GuardParamEnd>{B}*                    {
-                                         if (g_spaceBeforeIf) // needed for 665313 in combation with bug620924
+                                         if (!g_spaceBeforeIf.isEmpty()) // needed for 665313 in combation with bug620924
                                          {
-                                           addOutput(" ");
+                                           addOutput(g_spaceBeforeIf);
                                          }
-                                         g_spaceBeforeIf=FALSE;
+                                         g_spaceBeforeIf.resize(0);
                                          BEGIN(Comment);
                                        }
 <GuardParamEnd>.                       {
@@ -1858,6 +1866,7 @@ RCSTAG    "$"{ID}":"[^\n$]+"$"
                                          {
                                            if (!enabledSectionFound && guards.top()->parentVisible())
                                            {
+                                              guardType=Guard_If;
                                              delete guards.pop();
                                              BEGIN( GuardParam );
                                            }
@@ -1922,6 +1931,7 @@ RCSTAG    "$"{ID}":"[^\n$]+"$"
                                          }
                                        }
 <SkipInternal>[@\\]"endinternal"[ \t]*  {
+                                          addOutput("\\endinternal "); 
                                          BEGIN(Comment);
                                        }
 <SkipInternal>[^ \\@\n]+               { // skip non-special characters
@@ -2010,10 +2020,10 @@ RCSTAG    "$"{ID}":"[^\n$]+"$"
 
 <OverloadParam>{DOCNL}                 { // end of argument
                                          if (*yytext=='\n') yyLineNr++;
-                                         addOutput('\n');
                                          if (functionProto.stripWhiteSpace().isEmpty())
                                          { // plain overload command
                                            addOutput(getOverloadDocs());
+                                           addOutput('\n');
                                          }
                                          else // overload declaration
                                          {
@@ -2428,10 +2438,10 @@ static bool handleSubpage(const QCString &s)
     warn(yyFileName,yyLineNr,
        "found \\subpage command in a comment block that is not marked as a page!");
   }
-  if (g_spaceBeforeCmd
+  if (!g_spaceBeforeCmd.isEmpty()
   {
-    addOutput(' ');
-    g_spaceBeforeCmd=FALSE;
+    addOutput(g_spaceBeforeCmd);
+    g_spaceBeforeCmd.resize(0);
   }
   addOutput("@"+s+" ");
   BEGIN(SubpageLabel);
@@ -2447,6 +2457,11 @@ static bool handleAnchor(const QCString &s)
 
 static bool handleCite(const QCString &s)
 {
+  if (!g_spaceBeforeCmd.isEmpty()) 
+  {
+    addOutput(g_spaceBeforeCmd);
+    g_spaceBeforeCmd.resize(0);
+  }
   addOutput("@"+s+" ");
   BEGIN(CiteLabel);
   return FALSE;
@@ -2528,10 +2543,10 @@ static bool handleEndIf(const QCString &)
     delete guards.pop();
   }
   enabledSectionFound=FALSE;
-  if (g_spaceBeforeCmd
+  if (!g_spaceBeforeCmd.isEmpty()
   {
-    addOutput(' ');
-    g_spaceBeforeCmd=FALSE;
+    addOutput(g_spaceBeforeCmd);
+    g_spaceBeforeCmd.resize(0);
   }
   BEGIN( GuardParamEnd );
   return FALSE;
@@ -2674,9 +2689,43 @@ static bool handleExtends(const QCString &)
   return FALSE;
 }
 
+static bool handleCopyBrief(const QCString &)
+{
+  if (current->brief.isEmpty() && current->doc.isEmpty())
+  { // if we don't have a brief or detailed description yet,
+    // then the @copybrief should end up in the brief description.
+    // otherwise it will be copied inline (see bug691315 & bug700788)
+    setOutput(OutputBrief);
+  }
+  if (!g_spaceBeforeCmd.isEmpty()) 
+  {
+    addOutput(g_spaceBeforeCmd);
+    g_spaceBeforeCmd.resize(0);
+  }
+  addOutput("\\copybrief ");
+  return FALSE;
+}
+
+static bool handleCopyDetails(const QCString &)
+{
+  setOutput(OutputDoc);
+  if (!g_spaceBeforeCmd.isEmpty()) 
+  {
+    addOutput(g_spaceBeforeCmd);
+    g_spaceBeforeCmd.resize(0);
+  }
+  addOutput("\\copydetails ");
+  return FALSE;
+}
+
 static bool handleCopyDoc(const QCString &)
 {
   setOutput(OutputBrief);
+  if (!g_spaceBeforeCmd.isEmpty()) 
+  {
+    addOutput(g_spaceBeforeCmd);
+    g_spaceBeforeCmd.resize(0);
+  }
   addOutput("\\copybrief ");
   g_copyDocArg.resize(0);
   BEGIN(CopyDoc);
@@ -2734,8 +2783,8 @@ bool parseCommentBlock(/* in */     ParserInterface *parser,
   briefEndsAtDot = isAutoBriefOn;
   g_condCount    = 0;
   g_sectionLevel = 0;
-  g_spaceBeforeCmd = FALSE;
-  g_spaceBeforeIf  = FALSE;
+  g_spaceBeforeCmd.resize(0);
+  g_spaceBeforeIf.resize(0);
 
   if (!current->inbodyDocs.isEmpty() && isInbody) // separate in body fragments
   {
@@ -2804,7 +2853,8 @@ bool parseCommentBlock(/* in */     ParserInterface *parser,
   if (parseMore) position=inputPosition; else position=0;
 
   lineNr = yyLineNr;
-  //printf("position=%d parseMore=%d\n",position,parseMore);
+  //printf("position=%d parseMore=%d newEntryNeeded=%d\n",
+  //  position,parseMore,newEntryNeeded);
 
   return parseMore;
 }
index 7d37516..7d72f52 100644 (file)
@@ -74,10 +74,8 @@ class ConfigOption
     virtual void writeTemplate(FTextStream &t,bool sl,bool upd) = 0;
     virtual void convertStrToVal() {}
     virtual void substEnvVars() = 0;
-    virtual void writeXML(FTextStream&) {}
     virtual void init() {}
 
-    QCString convertToComment(const QCString &s, const QCString &u);
     void writeBoolValue(FTextStream &t,bool v);
     void writeIntValue(FTextStream &t,int i);
     void writeStringValue(FTextStream &t,QCString &s);
@@ -103,16 +101,7 @@ class ConfigInfo : public ConfigOption
       m_name = name;
       m_doc = doc;
     }
-    void writeTemplate(FTextStream &t, bool sl,bool)
-    {
-      if (!sl)
-      {
-        t << "\n";
-      }
-      t << "#---------------------------------------------------------------------------\n";
-      t << "# " << m_doc << endl;
-      t << "#---------------------------------------------------------------------------\n";
-    }
+    void writeTemplate(FTextStream &t, bool sl,bool);
     void substEnvVars() {}
 };
 
@@ -133,24 +122,8 @@ class ConfigList : public ConfigOption
     void setWidgetType(WidgetType w) { m_widgetType = w; }
     WidgetType widgetType() const { return m_widgetType; }
     QStrList *valueRef() { return &m_value; }
-    void writeTemplate(FTextStream &t,bool sl,bool)
-    {
-      if (!sl)
-      {
-        t << endl;
-        t << convertToComment(m_doc, m_userComment);
-        t << endl;
-      }
-      else if (!m_userComment.isEmpty())
-      {
-        t << convertToComment("", m_userComment);
-      }
-      t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "=";
-      writeStringList(t,m_value);
-      t << "\n";
-    }
+    void writeTemplate(FTextStream &t,bool sl,bool);
     void substEnvVars();
-    void writeXML(FTextStream&);
     void init() { m_value.clear(); }
   private:
     QStrList m_value;
@@ -177,23 +150,7 @@ class ConfigEnum : public ConfigOption
     }
     QCString *valueRef() { return &m_value; }
     void substEnvVars();
-    void writeTemplate(FTextStream &t,bool sl,bool)
-    {
-      if (!sl)
-      {
-        t << endl;
-        t << convertToComment(m_doc, m_userComment);
-        t << endl;
-      }
-      else if (!m_userComment.isEmpty())
-      {
-        t << convertToComment("", m_userComment);
-      }
-      t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "=";
-      writeStringValue(t,m_value);
-      t << "\n";
-    }
-    void writeXML(FTextStream&);
+    void writeTemplate(FTextStream &t,bool sl,bool);
     void init() { m_value = m_defValue.copy(); }
 
   private:
@@ -222,24 +179,8 @@ class ConfigString : public ConfigOption
     WidgetType widgetType() const { return m_widgetType; }
     void setDefaultValue(const char *v) { m_defValue = v; }
     QCString *valueRef() { return &m_value; }
-    void writeTemplate(FTextStream &t,bool sl,bool)
-    {
-      if (!sl)
-      {
-        t << endl;
-        t << convertToComment(m_doc, m_userComment);
-        t << endl;
-      }
-      else if (!m_userComment.isEmpty())
-      {
-        t << convertToComment("", m_userComment);
-      }
-      t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "=";
-      writeStringValue(t,m_value);
-      t << "\n";
-    }
+    void writeTemplate(FTextStream &t,bool sl,bool);
     void substEnvVars();
-    void writeXML(FTextStream&);
     void init() { m_value = m_defValue.copy(); }
   
   private:
@@ -269,30 +210,7 @@ class ConfigInt : public ConfigOption
     int maxVal() const { return m_maxVal; }
     void convertStrToVal();
     void substEnvVars();
-    void writeTemplate(FTextStream &t,bool sl,bool upd)
-    {
-      if (!sl)
-      {
-        t << endl;
-        t << convertToComment(m_doc, m_userComment);
-        t << endl;
-      }
-      else if (!m_userComment.isEmpty())
-      {
-        t << convertToComment("", m_userComment);
-      }
-      t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "=";
-      if (upd && !m_valueString.isEmpty())
-      {
-        writeStringValue(t,m_valueString);
-      }
-      else
-      {
-        writeIntValue(t,m_value);
-      }
-      t << "\n";
-    }
-    void writeXML(FTextStream&);
+    void writeTemplate(FTextStream &t,bool sl,bool upd);
     void init() { m_value = m_defValue; }
   private:
     int m_value;
@@ -320,30 +238,7 @@ class ConfigBool : public ConfigOption
     void convertStrToVal();
     void substEnvVars();
     void setValueString(const QCString &v) { m_valueString = v; }
-    void writeTemplate(FTextStream &t,bool sl,bool upd)
-    {
-      if (!sl)
-      {
-        t << endl;
-        t << convertToComment(m_doc, m_userComment);
-        t << endl;
-      }
-      else if (!m_userComment.isEmpty())
-      {
-        t << convertToComment("", m_userComment);
-      }
-      t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "=";
-      if (upd && !m_valueString.isEmpty())
-      {
-        writeStringValue(t,m_valueString);
-      }
-      else
-      {
-        writeBoolValue(t,m_value);
-      }
-      t << "\n";
-    }
-    void writeXML(FTextStream&);
+    void writeTemplate(FTextStream &t,bool sl,bool upd);
     void init() { m_value = m_defValue; }
   private:
     bool m_value;
@@ -358,9 +253,8 @@ class ConfigObsolete : public ConfigOption
   public:
     ConfigObsolete(const char *name) : ConfigOption(O_Obsolete)  
     { m_name = name; }
-    void writeTemplate(FTextStream &,bool,bool) {}
+    void writeTemplate(FTextStream &,bool,bool);
     void substEnvVars() {}
-    void writeXML(FTextStream&);
 };
 
 /** Section marker for compile time optional options
@@ -370,13 +264,12 @@ class ConfigDisabled : public ConfigOption
   public:
     ConfigDisabled(const char *name) : ConfigOption(O_Disabled)  
     { m_name = name; }
-    void writeTemplate(FTextStream &,bool,bool) {}
+    void writeTemplate(FTextStream &,bool,bool);
     void substEnvVars() {}
-    void writeXML(FTextStream&);
 };
 
 
-// some convenience macros
+// some convenience macros for access the config options
 #define Config_getString(val)  Config::instance()->getString(__FILE__,__LINE__,val)
 #define Config_getInt(val)     Config::instance()->getInt(__FILE__,__LINE__,val)
 #define Config_getList(val)    Config::instance()->getList(__FILE__,__LINE__,val)
@@ -571,8 +464,7 @@ class Config
      */
     void writeTemplate(FTextStream &t,bool shortIndex,bool updateOnly);
 
-    /** Write XML representation of the config file */
-    void writeXML(FTextStream &t);
+    void setHeader(const char *header) { m_header = header; }
 
     /////////////////////////////
     // internal API
@@ -651,6 +543,7 @@ class Config
     }
 
   private:
+    void checkFileName(const char *);
     QList<ConfigOption> *m_options;
     QList<ConfigOption> *m_obsolete;
     QList<ConfigOption> *m_disabled;
@@ -658,6 +551,7 @@ class Config
     static Config *m_instance;
     QCString m_userComment;
     bool m_initialized;
+    QCString m_header;
 };
 
 #endif
index 58717ab..f3b0962 100644 (file)
@@ -77,7 +77,7 @@ static QCString configStringRecode(
 
 /* -----------------------------------------------------------------
  */
-QCString ConfigOption::convertToComment(const QCString &s, const QCString &u)
+static QCString convertToComment(const QCString &s, const QCString &u)
 {
   //printf("convertToComment(%s)=%s\n",s.data(),u.data());
   QCString result;
@@ -183,7 +183,10 @@ void ConfigInt::convertStrToVal()
       config_warn("Warning: argument `%s' for option %s is not a valid number in the range [%d..%d]!\n"
                 "Using the default: %d!\n",m_valueString.data(),m_name.data(),m_minVal,m_maxVal,m_value);
     }
-    m_value=val;
+    else
+    {
+      m_value=val;
+    }
   }
 }
 
@@ -282,112 +285,126 @@ bool &Config::getBool(const char *fileName,int num,const char *name) const
   }
   else if (opt->kind()!=ConfigOption::O_Bool)
   {
-    config_err("%s<%d>: Internal error: Requested option %s not of integer type!\n",fileName,num,name);
+    config_err("%s<%d>: Internal error: Requested option %s not of boolean type!\n",fileName,num,name);
     exit(1);
   }
   return *((ConfigBool *)opt)->valueRef();
 }
 
-/* -----------------------------------------------------------------
- */
-
-void ConfigInt::writeXML(FTextStream& t)
-{
-  t << "    <option type='int' "
-       "id='" << convertToXML(name()) << "' "
-       "docs='\n" << convertToXML(docs()) << "' "
-       "minval='" << m_minVal << "' "
-       "maxval='" << m_maxVal << "' "
-       "defval='" << m_defValue << "'";
-  if (!m_dependency.isEmpty()) t << " depends='" << m_dependency << "'";
-  t << "/>" << endl;
-}
+/* ------------------------------------------ */
 
-void ConfigBool::writeXML(FTextStream& t)
+void ConfigInfo::writeTemplate(FTextStream &t, bool sl,bool)
 {
-  t << "    <option type='bool' "
-       "id='" << convertToXML(name()) << "' "
-       "docs='\n" << convertToXML(docs()) << "' "
-       "defval='" << m_defValue << "'";
-  if (!m_dependency.isEmpty()) t << " depends='" << m_dependency << "'";
-  t << "/>" << endl;
+  if (!sl)
+  {
+    t << "\n";
+  }
+  t << "#---------------------------------------------------------------------------\n";
+  t << "# " << m_doc << endl;
+  t << "#---------------------------------------------------------------------------\n";
 }
 
-void ConfigString::writeXML(FTextStream& t)
+void ConfigList::writeTemplate(FTextStream &t,bool sl,bool)
 {
-  QString format;
-  switch (m_widgetType)
-  {
-    case String: format="string"; break;
-    case File:   format="file";   break;
-    case Dir:    format="dir";    break;
-  }
-  t << "    <option type='string' "
-       "id='" << convertToXML(name()) << "' "
-       "format='" << format << "' "
-       "docs='\n" << convertToXML(docs()) << "' "
-       "defval='" << convertToXML(m_defValue) << "'";
-  if (!m_dependency.isEmpty()) t << " depends='" << m_dependency << "'";
-  t << "/>" << endl;
+  if (!sl)
+  {
+    t << endl;
+    t << convertToComment(m_doc, m_userComment);
+    t << endl;
+  }
+  else if (!m_userComment.isEmpty())
+  {
+    t << convertToComment("", m_userComment);
+  }
+  t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "=";
+  writeStringList(t,m_value);
+  t << "\n";
 }
 
-void ConfigEnum::writeXML(FTextStream &t)
+void ConfigEnum::writeTemplate(FTextStream &t,bool sl,bool)
 {
-  t << "    <option type='enum' "
-       "id='" << convertToXML(name()) << "' "
-       "defval='" << convertToXML(m_defValue) << "' "
-       "docs='\n" << convertToXML(docs()) << "'";
-  if (!m_dependency.isEmpty()) t << " depends='" << m_dependency << "'";
-  t << ">" << endl;
-
-  char *enumVal = m_valueRange.first();
-  while (enumVal)
+  if (!sl)
   {
-    t << "      <value name='" << convertToXML(enumVal) << "'/>" << endl;
-    enumVal = m_valueRange.next();
+    t << endl;
+    t << convertToComment(m_doc, m_userComment);
+    t << endl;
   }
-
-  t << "    </option>" << endl;
+  else if (!m_userComment.isEmpty())
+  {
+    t << convertToComment("", m_userComment);
+  }
+  t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "=";
+  writeStringValue(t,m_value);
+  t << "\n";
 }
 
-void ConfigList::writeXML(FTextStream &t)
+void ConfigString::writeTemplate(FTextStream &t,bool sl,bool)
 {
-  QString format;
-  switch (m_widgetType)
+  if (!sl)
   {
-    case String:     format="string";  break;
-    case File:       format="file";    break;
-    case Dir:        format="dir";     break;
-    case FileAndDir: format="filedir"; break;
+    t << endl;
+    t << convertToComment(m_doc, m_userComment);
+    t << endl;
   }
-  t << "    <option type='list' "
-       "id='" << convertToXML(name()) << "' "
-       "format='" << format << "' "
-       "docs='\n" << convertToXML(docs()) << "'";
-  if (!m_dependency.isEmpty()) t << " depends='" << m_dependency << "'";
-  t << ">" << endl;
-  char *enumVal = m_value.first();
-  while (enumVal)
+  else if (!m_userComment.isEmpty())
   {
-    t << "      <value name='" << convertToXML(enumVal) << "'/>" << endl;
-    enumVal = m_value.next();
+    t << convertToComment("", m_userComment);
   }
-
-  t << "    </option>" << endl;
+  t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "=";
+  writeStringValue(t,m_value);
+  t << "\n";
 }
 
-void ConfigObsolete::writeXML(FTextStream &t)
+void ConfigInt::writeTemplate(FTextStream &t,bool sl,bool upd)
 {
-  t << "    <option type='obsolete' "
-       "id='" << convertToXML(name()) << "'/>" << endl;
+  if (!sl)
+  {
+    t << endl;
+    t << convertToComment(m_doc, m_userComment);
+    t << endl;
+  }
+  else if (!m_userComment.isEmpty())
+  {
+    t << convertToComment("", m_userComment);
+  }
+  t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "=";
+  if (upd && !m_valueString.isEmpty())
+  {
+    writeStringValue(t,m_valueString);
+  }
+  else
+  {
+    writeIntValue(t,m_value);
+  }
+  t << "\n";
 }
 
-void ConfigDisabled::writeXML(FTextStream &t)
+void ConfigBool::writeTemplate(FTextStream &t,bool sl,bool upd)
 {
-  t << "    <option type='disabled' "
-       "id='" << convertToXML(name()) << "'/>" << endl;
+  if (!sl)
+  {
+    t << endl;
+    t << convertToComment(m_doc, m_userComment);
+    t << endl;
+  }
+  else if (!m_userComment.isEmpty())
+  {
+    t << convertToComment("", m_userComment);
+  }
+  t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "=";
+  if (upd && !m_valueString.isEmpty())
+  {
+    writeStringValue(t,m_valueString);
+  }
+  else
+  {
+    writeBoolValue(t,m_value);
+  }
+  t << "\n";
 }
 
+void ConfigObsolete::writeTemplate(FTextStream &,bool,bool) {}
+void ConfigDisabled::writeTemplate(FTextStream &,bool,bool) {}
 
 /* -----------------------------------------------------------------
  *
@@ -827,17 +844,7 @@ void Config::writeTemplate(FTextStream &t,bool sl,bool upd)
   t << "# Doxyfile " << versionString << endl << endl;
   if (!sl)
   {
-    t << "# This file describes the settings to be used by the documentation system\n";
-    t << "# doxygen (www.doxygen.org) for a project.\n";
-    t << "#\n";
-    t << "# All text after a double hash (##) is considered a comment and is placed\n";
-    t << "# in front of the TAG it is preceding .\n";
-    t << "# All text after a hash (#) is considered a comment and will be ignored.\n";
-    t << "# The format is:\n";
-    t << "#       TAG = value [value, ...]\n";
-    t << "# For lists items can also be appended using:\n";
-    t << "#       TAG += value [value, ...]\n";
-    t << "# Values that contain spaces should be placed between quotes (\" \").\n";
+    t << convertToComment(m_header,"");
   }
   ConfigOption *option = m_options->first();
   while (option)
@@ -853,36 +860,6 @@ void Config::writeTemplate(FTextStream &t,bool sl,bool upd)
   }
 }
 
-void Config::writeXML(FTextStream &t)
-{
-  t << "<doxygenconfig>" << endl;
-  bool first=TRUE;
-  ConfigOption *option = m_options->first();
-  while (option)
-  {
-    if (option->kind()==ConfigOption::O_Info)
-    {
-      if (!first) t << "  </group>" << endl;
-      t << "  <group name='" << option->name() << "' "
-          "docs='"        << option->docs() << "'>" << endl;
-      first=FALSE;
-    }
-    else
-    {
-      option->writeXML(t);
-    }
-    option = m_options->next();
-  }
-  option = m_obsolete->first();
-  while (option)
-  {
-    option->writeXML(t);
-    option = m_obsolete->next();
-  }
-  if (!first) t << "  </group>" << endl;
-  t << "</doxygenconfig>" << endl;
-}
-
 void Config::convertStrToVal()
 {
   ConfigOption *option = m_options->first();
@@ -1068,6 +1045,18 @@ static void cleanUpPaths(QStrList &str)
   }
 }
 
+void Config::checkFileName(const char *optionName)
+{
+  QCString &s = Config_getString(optionName);
+  QCString val = s.stripWhiteSpace().lower();
+  if ((val=="yes" || val=="true"  || val=="1" || val=="all") ||
+      (val=="no"  || val=="false" || val=="0" || val=="none")) 
+  {
+    config_err("Error: file name expected for option %s, got %s instead. Ignoring...\n",optionName,s.data());
+    s=""; // note tihe use of &s above: this will change the option value!
+  }
+}
+
 void Config::check()
 {
   //if (!projectName.isEmpty())
@@ -1261,7 +1250,7 @@ void Config::check()
   if (dotFontName=="FreeSans" || dotFontName=="FreeSans.ttf")
   {
     config_err("Warning: doxygen no longer ships with the FreeSans font.\n"
-               "You may want to clear or change DOT_FONTPATH.\n"
+               "You may want to clear or change DOT_FONTNAME.\n"
                "Otherwise you run the risk that the wrong font is being used for dot generated graphs.\n");
   }
   
@@ -1559,6 +1548,7 @@ void Config::check()
     Config_getBool("EXTRACT_PACKAGE")       = TRUE;
   }                               
 
+  checkFileName("GENERATE_TAGFILE");
 }
 
 void Config::init()
index 0b67283..d7ace9f 100644 (file)
 <doxygenconfig>
+  <header>
+    <docs doxywizard='0' doxyfile='0'>
+      <![CDATA[
+/*
+ *
+ * 
+ *
+ * Copyright (C) 1997-2013 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby 
+ * granted. No representations are made about the suitability of this software 
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ * Documents produced by Doxygen are derivative works derived from the
+ * input used in their production; they are not affected by this license.
+ *
+ */
+/*! \page config Configuration
+
+\tableofcontents
+\section config_format Format
+
+A configuration file is a free-form ASCII text file with a structure
+that is similar to that of a \c Makefile, with the default name \c Doxyfile. It is
+parsed by \c doxygen. The file may contain tabs and newlines for
+formatting purposes. The statements in the file are case-sensitive.
+Comments may be placed anywhere within the file (except within quotes).
+Comments beginning with two hash characters (\c \#\#) are kept when updating
+the configuration file and are placed in front of the TAG are in front of.
+Comments beginning with two hash characters (\c \#\#) at the end of the
+configuration file are also kept and placed at the end of the file.
+Comments begin with the hash character (\c \#) and ends at the end of the line.
+
+The file essentially consists of a list of assignment statements.
+Each statement consists of a \c TAG_NAME written in capitals,
+followed by the equal sign (<code>=</code>) and one or more values. If the same tag
+is assigned more than once, the last assignment overwrites any earlier
+assignment. For tags that take a list as their argument,
+the <code>+=</code> operator can be used instead of <code>=</code> to append 
+new values to the list. Values are sequences of non-blanks. If the value should 
+contain one or more blanks it must be surrounded by quotes (<code>&quot;...&quot;</code>).
+Multiple lines can be concatenated by inserting a backslash (\c \\)
+as the last character of a line. Environment variables can be expanded 
+using the pattern <code>\$(ENV_VARIABLE_NAME)</code>.
+
+You can also include part of a configuration file from another configuration
+file using a <code>\@INCLUDE</code> tag as follows:
+\verbatim
+@INCLUDE = config_file_name
+\endverbatim 
+The include file is searched in the current working directory. You can 
+also specify a list of directories that should be searched before looking
+in the current working directory. Do this by putting a <code>\@INCLUDE_PATH</code> tag 
+with these paths before the <code>\@INCLUDE</code> tag, e.g.:
+\verbatim
+@INCLUDE_PATH = my_config_dir
+\endverbatim
+
+The configuration options can be divided into several categories.
+Below is an alphabetical index of the tags that are recognized 
+followed by the descriptions of the tags grouped by category.
+]]>
+    </docs>
+    <docs doxywizard='0' documentation='0'>
+      <![CDATA[
+This file describes the settings to be used by the documentation system
+doxygen (www.doxygen.org) for a project.
+<br>
+All text after a double hash (##) is considered a comment and is placed
+in front of the TAG it is preceding.<br>
+All text after a single hash (#) is considered a comment and will be ignored.
+The format is:
+\verbatim
+      TAG = value [value, ...]
+\endverbatim
+For lists, items can also be appended using:
+\verbatim
+      TAG += value [value, ...]
+\endverbatim
+Values that contain spaces should be placed between quotes (\" \").
+]]>
+    </docs>
+  </header>
+  <footer>
+    <docs doxywizard='0' doxyfile='0'>
+      <![CDATA[
+\section config_examples Examples
+
+Suppose you have a simple project consisting of two files: a source file 
+\c example.cc and a header file \c example.h.
+Then a minimal configuration file is as simple as:
+\verbatim
+INPUT            = example.cc example.h
+\endverbatim
+
+Assuming the example makes use of Qt classes and \c perl is located 
+in <code>/usr/bin</code>, a more realistic configuration file would be:
+\verbatim
+PROJECT_NAME     = Example
+INPUT            = example.cc example.h
+WARNINGS         = YES
+TAGFILES         = qt.tag
+PERL_PATH        = /usr/local/bin/perl
+SEARCHENGINE     = NO
+\endverbatim
+
+To generate the documentation for the 
+<a href="http://www.stack.nl/~dimitri/qdbttabular/index.html">QdbtTabular</a> package
+I have used the following configuration file:
+\verbatim
+PROJECT_NAME     = QdbtTabular
+OUTPUT_DIRECTORY = html
+WARNINGS         = YES
+INPUT            = examples/examples.doc src
+FILE_PATTERNS    = *.cc *.h
+INCLUDE_PATH     = examples
+TAGFILES         = qt.tag
+PERL_PATH        = /usr/bin/perl
+SEARCHENGINE     = YES
+\endverbatim
+
+To regenerate the Qt-1.44 documentation from the sources, you could use the
+following config file:
+\verbatim
+PROJECT_NAME         = Qt
+OUTPUT_DIRECTORY     = qt_docs
+HIDE_UNDOC_MEMBERS   = YES
+HIDE_UNDOC_CLASSES   = YES
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION      = YES
+EXPAND_ONLY_PREDEF   = YES
+SEARCH_INCLUDES      = YES
+FULL_PATH_NAMES      = YES
+STRIP_FROM_PATH      = $(QTDIR)/
+PREDEFINED           = USE_TEMPLATECLASS Q_EXPORT= \
+                       QArrayT:=QArray \
+                       QListT:=QList \
+                       QDictT:=QDict \
+                       QQueueT:=QQueue \
+                       QVectorT:=QVector \
+                       QPtrDictT:=QPtrDict \
+                       QIntDictT:=QIntDict \
+                       QStackT:=QStack \
+                       QDictIteratorT:=QDictIterator \
+                       QListIteratorT:=QListIterator \
+                       QCacheT:=QCache \
+                       QCacheIteratorT:=QCacheIterator \
+                       QIntCacheT:=QIntCache \
+                       QIntCacheIteratorT:=QIntCacheIterator \
+                       QIntDictIteratorT:=QIntDictIterator \
+                       QPtrDictIteratorT:=QPtrDictIterator
+INPUT                = $(QTDIR)/doc \
+                       $(QTDIR)/src/widgets \
+                       $(QTDIR)/src/kernel \
+                       $(QTDIR)/src/dialogs \
+                       $(QTDIR)/src/tools
+FILE_PATTERNS        = *.cpp *.h q*.doc
+INCLUDE_PATH         = $(QTDIR)/include 
+RECURSIVE            = YES
+\endverbatim
+
+For the Qt-2.1 sources I recommend to use the following settings:
+\verbatim
+PROJECT_NAME          = Qt
+PROJECT_NUMBER        = 2.1
+HIDE_UNDOC_MEMBERS    = YES
+HIDE_UNDOC_CLASSES    = YES
+SOURCE_BROWSER        = YES
+INPUT                 = $(QTDIR)/src
+FILE_PATTERNS         = *.cpp *.h q*.doc
+RECURSIVE             = YES
+EXCLUDE_PATTERNS      = *codec.cpp moc_* */compat/* */3rdparty/*
+ALPHABETICAL_INDEX    = YES
+COLS_IN_ALPHA_INDEX   = 3
+IGNORE_PREFIX         = Q
+ENABLE_PREPROCESSING  = YES
+MACRO_EXPANSION       = YES
+INCLUDE_PATH          = $(QTDIR)/include
+PREDEFINED            = Q_PROPERTY(x)= \
+                        Q_OVERRIDE(x)= \
+                        Q_EXPORT= \
+                        Q_ENUMS(x)= \
+                        "QT_STATIC_CONST=static const " \
+                        _WS_X11_ \
+                        INCLUDE_MENUITEM_DEF
+EXPAND_ONLY_PREDEF    = YES
+EXPAND_AS_DEFINED     = Q_OBJECT_FAKE Q_OBJECT ACTIVATE_SIGNAL_WITH_PARAM \
+                        Q_VARIANT_AS
+\endverbatim
+
+Here doxygen's preprocessor is used to substitute some
+macro names that are normally substituted by the C preprocessor,
+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
+
+*/
+]]>
+    </docs>
+  </footer>
+
   <group name='Project' docs='Project related configuration options'>
-    <option type='string' id='DOXYFILE_ENCODING' format='string' docs='
-This tag specifies the encoding used for all characters in the config file 
-that follow. The default is UTF-8 which is also the encoding used for all 
-text before the first occurrence of this tag. Doxygen uses libiconv (or the 
-iconv built into libc) for the transcoding. See 
-http://www.gnu.org/software/libiconv for the list of possible encodings. 
-' defval='UTF-8'/>
-    <option type='string' id='PROJECT_NAME' format='string' docs='
-The PROJECT_NAME tag is a single word (or sequence of words) that should 
-identify the project. Note that if you do not use Doxywizard you need 
-to put quotes around the project name if it contains spaces.' defval='My Project'/>
-    <option type='string' id='PROJECT_NUMBER' format='string' docs='
-The PROJECT_NUMBER tag can be used to enter a project or revision number. 
-This could be handy for archiving the generated documentation or 
-if some version control system is used. 
-' defval=''/>
-    <option type='string' id='PROJECT_BRIEF' format='string' docs='
-Using the PROJECT_BRIEF tag one can provide an optional one line description 
-for a project that appears at the top of each page and should give viewer 
-a quick idea about the purpose of the project. Keep the description short. 
-' defval=''/>
-    <option type='string' id='PROJECT_LOGO' format='file' docs='
-With the PROJECT_LOGO tag one can specify an logo or icon that is 
-included in the documentation. The maximum height of the logo should not 
-exceed 55 pixels and the maximum width should not exceed 200 pixels. 
-Doxygen will copy the logo to the output directory.
-' defval=''/>
-    <option type='string' id='OUTPUT_DIRECTORY' format='dir' docs='
-The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
-base path where the generated documentation will be put. 
-If a relative path is entered, it will be relative to the location 
-where doxygen was started. If left blank the current directory will be used. 
-' defval=''/>
-    <option type='bool' id='CREATE_SUBDIRS' docs='
-If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
-4096 sub-directories (in 2 levels) under the output directory of each output 
-format and will distribute the generated files over these directories. 
-Enabling this option can be useful when feeding doxygen a huge amount of 
-source files, where putting all generated files in the same directory would 
-otherwise cause performance problems for the file system. 
-' defval='0'/>
-    <option type='enum' id='OUTPUT_LANGUAGE' defval='English' docs='
-The OUTPUT_LANGUAGE tag is used to specify the language in which all 
-documentation generated by doxygen is written. Doxygen will use this 
-information to generate all constant output in the proper language. 
-The default language is English, other supported languages are: 
-Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
-Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, 
-Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English 
-messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian, 
-Persian, Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, 
-Slovak, Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. 
-'>
+    <option type='string' id='DOXYFILE_ENCODING' format='string' defval='UTF-8'>
+      <docs>
+<![CDATA[
+ This tag specifies the encoding used for all characters in the config file that 
+ follow. The default is UTF-8 which is also the encoding used for all text before
+ the first occurrence of this tag. Doxygen uses \c libiconv (or the iconv built into
+ \c libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of
+ possible encodings.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='PROJECT_NAME' format='string' defval='My Project'>
+      <docs>
+<![CDATA[
+ The \c PROJECT_NAME tag is a single word (or a sequence of words
+ surrounded by double-quotes, unless you are using Doxywizard) that should identify the project for which the 
+ documentation is generated. This name is used in the title of most 
+ generated pages and in a few other places.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='PROJECT_NUMBER' format='string' defval=''>
+      <docs>
+<![CDATA[
+ The \c PROJECT_NUMBER tag can be used to enter a project or revision number.
+ This could be handy for archiving the generated documentation or
+ if some version control system is used.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='PROJECT_BRIEF' format='string' defval=''>
+      <docs>
+<![CDATA[
+ Using the \c PROJECT_BRIEF tag one can provide an optional one line description 
+ for a project that appears at the top of each page and should give viewer 
+ a quick idea about the purpose of the project. Keep the description short. 
+]]>
+      </docs>
+    </option>
+
+    <option type='string' id='PROJECT_LOGO' format='file' defval=''>
+      <docs>
+<![CDATA[
+ With the \c PROJECT_LOGO tag one can specify an logo or icon that is 
+ included in the documentation. The maximum height of the logo should not 
+ exceed 55 pixels and the maximum width should not exceed 200 pixels. 
+ Doxygen will copy the logo to the output directory.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='OUTPUT_DIRECTORY' format='dir' defval=''>
+      <docs>
+<![CDATA[
+ The \c OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+ path into which the generated documentation will be written. 
+ If a relative path is entered, it will be relative to the location 
+ where doxygen was started. If left blank the current directory will be used.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='CREATE_SUBDIRS' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c CREATE_SUBDIRS tag is set to \c YES, then doxygen will create
+ 4096 sub-directories (in 2 levels) under the output directory of each output 
+ format and will distribute the generated files over these directories. 
+ Enabling this option can be useful when feeding doxygen a huge amount of source
+ files, where putting all generated files in the same directory would otherwise
+ causes performance problems for the file system. 
+]]>
+      </docs>
+    </option>
+    <option type='enum' id='OUTPUT_LANGUAGE' defval='English'>
+      <docs>
+<![CDATA[
+ The \c OUTPUT_LANGUAGE tag is used to specify the language in which all
+ documentation generated by doxygen is written. Doxygen will use this
+ information to generate all constant output in the proper language.
+]]>
+      </docs>
       <value name='Afrikaans'/>
       <value name='Arabic'/>
       <value name='Brazilian'/>
@@ -93,29 +327,41 @@ Slovak, Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
       <value name='Ukrainian'/>
       <value name='Vietnamese'/>
     </option>
-    <option type='bool' id='BRIEF_MEMBER_DESC' docs='
-If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
-include brief member descriptions after the members that are listed in 
-the file and class documentation (similar to JavaDoc). 
-Set to NO to disable this. 
-' defval='1'/>
-    <option type='bool' id='REPEAT_BRIEF' docs='
-If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
-the brief description of a member or function before the detailed description. 
-Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
-brief descriptions will be completely suppressed. 
-' defval='1'/>
-    <option type='list' id='ABBREVIATE_BRIEF' format='string' docs='
-This tag implements a quasi-intelligent brief description abbreviator 
-that is used to form the text in various listings. Each string 
-in this list, if found as the leading text of the brief description, will be 
-stripped from the text and the result after processing the whole list, is 
-used as the annotated text. Otherwise, the brief description is used as-is. 
-If left blank, the following values are used (&quot;$name&quot; is automatically 
-replaced with the name of the entity): &quot;The $name class&quot; &quot;The $name widget&quot; 
-&quot;The $name file&quot; &quot;is&quot; &quot;provides&quot; &quot;specifies&quot; &quot;contains&quot; 
-&quot;represents&quot; &quot;a&quot; &quot;an&quot; &quot;the&quot; 
-'>
+    <option type='bool' id='BRIEF_MEMBER_DESC' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c BRIEF_MEMBER_DESC tag is set to \c YES doxygen will
+ include brief member descriptions after the members that are listed in
+ the file and class documentation (similar to \c Javadoc).
+ Set to \c NO to disable this.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='REPEAT_BRIEF' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c REPEAT_BRIEF tag is set to \c YES doxygen will 
+ prepend the brief description of a member or function before the detailed 
+ description 
+ <br>Note: 
+ If both \ref cfg_hide_undoc_members "HIDE_UNDOC_MEMBERS" and
+ \ref cfg_brief_member_desc "BRIEF_MEMBER_DESC" are set to \c NO, the 
+ brief descriptions will be completely suppressed.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='ABBREVIATE_BRIEF' format='string'>
+      <docs>
+<![CDATA[
+ This tag implements a quasi-intelligent brief description abbreviator
+ that is used to form the text in various listings. Each string
+ in this list, if found as the leading text of the brief description, will be
+ stripped from the text and the result, after processing the whole list, is used
+ as the annotated text. Otherwise, the brief description is used as-is. If left
+ blank, the following values are used (`$name` is automatically replaced with the
+ name of the entity): 
+]]>
+      </docs>
       <value name='The $name class'/>
       <value name='The $name widget'/>
       <value name='The $name file'/>
@@ -128,520 +374,891 @@ replaced with the name of the entity): &quot;The $name class&quot; &quot;The $na
       <value name='an'/>
       <value name='the'/>
     </option>
-    <option type='bool' id='ALWAYS_DETAILED_SEC' docs='
-If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
-Doxygen will generate a detailed section even if there is only a brief 
-description. 
-' defval='0'/>
-    <option type='bool' id='INLINE_INHERITED_MEMB' docs='
-If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
-inherited members of a class in the documentation of that class as if those 
-members were ordinary class members. Constructors, destructors and assignment 
-operators of the base classes will not be shown. 
-' defval='0'/>
-    <option type='bool' id='FULL_PATH_NAMES' docs='
-If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
-path before files name in the file list and in the header files. If set 
-to NO the shortest path that makes the file name unique will be used. 
-' defval='1'/>
-    <option type='list' id='STRIP_FROM_PATH' format='string' docs='
-If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
-can be used to strip a user-defined part of the path. Stripping is 
-only done if one of the specified strings matches the left-hand part of 
-the path. The tag can be used to show relative paths in the file list. 
-If left blank the directory from which doxygen is run is used as the 
-path to strip. Note that you specify absolute paths here, but also 
-relative paths, which will be relative from the directory where doxygen is 
-started.' depends='FULL_PATH_NAMES'>
+    <option type='bool' id='ALWAYS_DETAILED_SEC' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c ALWAYS_DETAILED_SEC and \ref cfg_repeat_brief "REPEAT_BRIEF" tags 
+ are both set to \c YES then
+ doxygen will generate a detailed section even if there is only a brief
+ description.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='INLINE_INHERITED_MEMB' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c INLINE_INHERITED_MEMB tag is set to \c YES, doxygen will show all inherited
+ members of a class in the documentation of that class as if those members were
+ ordinary class members. Constructors, destructors and assignment operators of
+ the base classes will not be shown.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='FULL_PATH_NAMES' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c FULL_PATH_NAMES tag is set to \c YES doxygen will prepend the full
+ path before files name in the file list and in the header files. If set
+ to \c NO the shortest path that makes the file name unique will be used
+]]>
+      </docs>
+    </option>
+    <option type='list' id='STRIP_FROM_PATH' format='string' depends='FULL_PATH_NAMES'>
+      <docs>
+<![CDATA[
+ The \c STRIP_FROM_PATH tag
+ can be used to strip a user-defined part of the path. Stripping is
+ only done if one of the specified strings matches the left-hand part of the 
+ path. The tag can be used to show relative paths in the file list.
+ If left blank the directory from which doxygen is run is used as the
+ path to strip.
+ <br>Note that you can specify absolute paths here, but also 
+ relative paths, which will be relative from the directory where doxygen is 
+ started.
+]]>
+      </docs>
       <value name=''/>
     </option>
-    <option type='list' id='STRIP_FROM_INC_PATH' format='string' docs='
-The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
-the path mentioned in the documentation of a class, which tells 
-the reader which header file to include in order to use a class. 
-If left blank only the name of the header file containing the class 
-definition is used. Otherwise one should specify the include paths that 
-are normally passed to the compiler using the -I flag. 
-'>
-    </option>
-    <option type='bool' id='SHORT_NAMES' docs='
-If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
-(but less readable) file names. This can be useful if your file system 
-doesn&apos;t support long names like on DOS, Mac, or CD-ROM. 
-' defval='0'/>
-    <option type='bool' id='JAVADOC_AUTOBRIEF' docs='
-If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
-will interpret the first line (until the first dot) of a JavaDoc-style 
-comment as the brief description. If set to NO, the JavaDoc 
-comments will behave just like regular Qt-style comments 
-(thus requiring an explicit @brief command for a brief description.) 
-' defval='0'/>
-    <option type='bool' id='QT_AUTOBRIEF' docs='
-If the QT_AUTOBRIEF tag is set to YES then Doxygen will 
-interpret the first line (until the first dot) of a Qt-style 
-comment as the brief description. If set to NO, the comments 
-will behave just like regular Qt-style comments (thus requiring 
-an explicit \brief command for a brief description.) 
-' defval='0'/>
-    <option type='bool' id='MULTILINE_CPP_IS_BRIEF' docs='
-The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
-treat a multi-line C++ special comment block (i.e. a block of //! or /// 
-comments) as a brief description. This used to be the default behaviour. 
-The new default is to treat a multi-line C++ comment block as a detailed 
-description. Set this tag to YES if you prefer the old behaviour instead. 
-' defval='0'/>
-    <option type='bool' id='INHERIT_DOCS' docs='
-If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
-member inherits the documentation from any documented member that it 
-re-implements. 
-' defval='1'/>
-    <option type='bool' id='SEPARATE_MEMBER_PAGES' docs='
-If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
-a new page for each member. If set to NO, the documentation of a member will 
-be part of the file/class/namespace that contains it. 
-' defval='0'/>
-    <option type='int' id='TAB_SIZE' docs='
-The TAB_SIZE tag can be used to set the number of spaces in a tab. 
-Doxygen uses this value to replace tabs by spaces in code fragments. 
-' minval='1' maxval='16' defval='4'/>
-    <option type='list' id='ALIASES' format='string' docs='
-This tag can be used to specify a number of aliases that acts 
-as commands in the documentation. An alias has the form &quot;name=value&quot;. 
-For example adding &quot;sideeffect=\par Side Effects:\n&quot; will allow you to 
-put the command \sideeffect (or @sideeffect) in the documentation, which 
-will result in a user-defined paragraph with heading &quot;Side Effects:&quot;. 
-You can put \n&apos;s in the value part of an alias to insert newlines. 
-'/>
-    <option type='list' id='TCL_SUBST' format='string' docs='
-This tag can be used to specify a number of word-keyword mappings (TCL only). 
-A mapping has the form &quot;name=value&quot;. For example adding 
-&quot;class=itcl::class&quot; will allow you to use the command class in the 
-itcl::class meaning.
-'/>
-    <option type='bool' id='OPTIMIZE_OUTPUT_FOR_C' docs='
-Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
-sources only. Doxygen will then generate output that is more tailored for C. 
-For instance, some of the names that are used will be different. The list 
-of all members will be omitted, etc. 
-' defval='0'/>
-    <option type='bool' id='OPTIMIZE_OUTPUT_JAVA' docs='
-Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
-sources only. Doxygen will then generate output that is more tailored for 
-Java. For instance, namespaces will be presented as packages, qualified 
-scopes will look different, etc. 
-' defval='0'/>
-    <option type='bool' id='OPTIMIZE_FOR_FORTRAN' docs='
-Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran 
-sources only. Doxygen will then generate output that is more tailored for 
-Fortran. 
-' defval='0'/>
-    <option type='bool' id='OPTIMIZE_OUTPUT_VHDL' docs='
-Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL 
-sources. Doxygen will then generate output that is tailored for 
-VHDL. 
-' defval='0'/>
-    <option type='list' id='EXTENSION_MAPPING' format='string' docs='
-Doxygen selects the parser to use depending on the extension of the files it 
-parses. With this tag you can assign which parser to use for a given 
-extension. Doxygen has a built-in mapping, but you can override or extend it 
-using this tag. The format is ext=language, where ext is a file extension, 
-and language is one of the parsers supported by doxygen: IDL, Java, 
-Javascript, CSharp, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, 
-C++. For instance to make doxygen treat .inc files as Fortran files (default 
-is PHP), and .f files as C (default is Fortran), use: inc=Fortran f=C. Note 
-that for custom extensions you also need to set FILE_PATTERNS otherwise the 
-files are not read by doxygen.
-'>
-    </option>
-    <option type='bool' id='MARKDOWN_SUPPORT' docs='
-If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all 
-comments according to the Markdown format, which allows for more readable 
-documentation. See http://daringfireball.net/projects/markdown/ for details. 
-The output of markdown processing is further processed by doxygen, so you 
-can mix doxygen, HTML, and XML commands with Markdown formatting. 
-Disable only in case of backward compatibilities issues. 
-' defval='1'/>
-    <option type='bool' id='AUTOLINK_SUPPORT' docs='
-When enabled doxygen tries to link words that correspond to documented 
-classes, or namespaces to their corresponding documentation. Such a link can 
-be prevented in individual cases by by putting a % sign in front of the word 
-or globally by setting AUTOLINK_SUPPORT to NO.
-' defval='1'/>
-    <option type='bool' id='BUILTIN_STL_SUPPORT' docs='
-If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 
-to include (a tag file for) the STL sources as input, then you should 
-set this tag to YES in order to let doxygen match functions declarations and 
-definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
-func(std::string) {}). This also makes the inheritance and collaboration 
-diagrams that involve STL classes more complete and accurate. 
-' defval='0'/>
-    <option type='bool' id='CPP_CLI_SUPPORT' docs='
-If you use Microsoft&apos;s C++/CLI language, you should set this option to YES to 
-enable parsing support. 
-' defval='0'/>
-    <option type='bool' id='SIP_SUPPORT' docs='
-Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. 
-Doxygen will parse them like normal C++ but will assume all classes use public 
-instead of private inheritance when no explicit protection keyword is present. 
-' defval='0'/>
-    <option type='bool' id='IDL_PROPERTY_SUPPORT' docs='
-For Microsoft&apos;s IDL there are propget and propput attributes to indicate 
-getter and setter methods for a property. Setting this option to YES (the 
-default) will make doxygen replace the get and set methods by a property in 
-the documentation. This will only work if the methods are indeed getting or 
-setting a simple type. If this is not the case, or you want to show the 
-methods anyway, you should set this option to NO.
-' defval='1'/>
-    <option type='bool' id='DISTRIBUTE_GROUP_DOC' docs='
-If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
-tag is set to YES, then doxygen will reuse the documentation of the first 
-member in the group (if any) for the other members of the group. By default 
-all members of a group must be documented explicitly. 
-' defval='0'/>
-    <option type='bool' id='SUBGROUPING' docs='
-Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
-the same type (for instance a group of public functions) to be put as a 
-subgroup of that type (e.g. under the Public Functions section). Set it to 
-NO to prevent subgrouping. Alternatively, this can be done per class using 
-the \nosubgrouping command. 
-' defval='1'/>
-    <option type='bool' id='INLINE_GROUPED_CLASSES' docs='
-When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and 
-unions are shown inside the group in which they are included (e.g. using 
-@ingroup) instead of on a separate page (for HTML and Man pages) or 
-section (for LaTeX and RTF).
-' defval='0'/>
-    <option type='bool' id='INLINE_SIMPLE_STRUCTS' docs='
-When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and 
-unions with only public data fields or simple typedef fields will be shown 
-inline in the documentation of the scope in which they are defined (i.e. file, 
-namespace, or group documentation), provided this scope is documented. If set 
-to NO (the default), structs, classes, and unions are shown on a separate 
-page (for HTML and Man pages) or section (for LaTeX and RTF).
-' defval='0'/>
-    <option type='bool' id='TYPEDEF_HIDES_STRUCT' docs='
-When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum 
-is documented as struct, union, or enum with the name of the typedef. So 
-typedef struct TypeS {} TypeT, will appear in the documentation as a struct 
-with name TypeT. When disabled the typedef will appear as a member of a file, 
-namespace, or class. And the struct will be named TypeS. This can typically 
-be useful for C code in case the coding convention dictates that all compound 
-types are typedef&apos;ed and only the typedef is referenced, never the tag name. 
-' defval='0'/>
-    <option type='int' id='LOOKUP_CACHE_SIZE' docs='
-The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This 
-cache is used to resolve symbols given their name and scope. Since this can 
-be an expensive process and often the same symbol appear multiple times in 
-the code, doxygen keeps a cache of pre-resolved symbols. If the cache is too 
-small doxygen will become slower. If the cache is too large, memory is wasted. 
-The cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid 
-range is 0..9, the default is 0, corresponding to a cache size of 2^16 = 65536 
-symbols. 
-' minval='0' maxval='9' defval='0'/>
+    <option type='list' id='STRIP_FROM_INC_PATH' format='string'>
+      <docs>
+<![CDATA[
+ The \c STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
+ the path mentioned in the documentation of a class, which tells
+ the reader which header file to include in order to use a class. 
+ If left blank only the name of the header file containing the class
+ definition is used. Otherwise one should specify the list of include paths that 
+ are normally passed to the compiler using the `-I` flag.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SHORT_NAMES' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c SHORT_NAMES tag is set to \c YES, doxygen will generate much shorter
+ (but less readable) file names. This can be useful is your file systems
+ doesn't support long names like on DOS, Mac, or CD-ROM.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='JAVADOC_AUTOBRIEF' defval='0'>
+      <docs>
+<![CDATA[
+  If the \c JAVADOC_AUTOBRIEF tag is set to \c YES then doxygen
+  will interpret the first line (until the first dot) of a Javadoc-style
+  comment as the brief description. If set to \c NO, the 
+  Javadoc-style will behave just like regular Qt-style comments
+  (thus requiring an explicit \ref cmdbrief "\@brief" command for a brief description.)
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='QT_AUTOBRIEF' defval='0'>
+      <docs>
+<![CDATA[
+  If the \c QT_AUTOBRIEF tag is set to \c YES then doxygen
+  will interpret the first line (until the first dot) of a Qt-style
+  comment as the brief description. If set to \c NO, the
+  Qt-style will behave just like regular Qt-style comments (thus
+  requiring an explicit \ref cmdbrief "\\brief" command for a brief description.)
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='MULTILINE_CPP_IS_BRIEF' defval='0'>
+      <docs>
+<![CDATA[
+  The \c MULTILINE_CPP_IS_BRIEF tag can be set to \c YES to make doxygen
+  treat a multi-line C++ special comment block (i.e. a block of \c //! or \c ///
+  comments) as a brief description. This used to be the default behavior.
+  The new default is to treat a multi-line C++ comment block as a detailed
+  description. Set this tag to \c YES if you prefer the old behavior instead.
+  <br>Note that setting this tag to \c YES also means that rational rose comments
+  are not recognized any more.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='INHERIT_DOCS' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c INHERIT_DOCS tag is set to \c YES then an undocumented
+ member inherits the documentation from any documented member that it
+ re-implements.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SEPARATE_MEMBER_PAGES' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c SEPARATE_MEMBER_PAGES tag is set to \c YES, then doxygen will produce
+ a new page for each member. If set to \c NO, the documentation of a member will
+ be part of the file/class/namespace that contains it.
+]]>
+      </docs>
+    </option>
+    <option type='int' id='TAB_SIZE' minval='1' maxval='16' defval='4'>
+      <docs>
+<![CDATA[
+ The \c TAB_SIZE tag can be used to set the number of spaces in a tab.
+ Doxygen uses this value to replace tabs by spaces in code fragments.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='ALIASES' format='string'>
+      <docs>
+<![CDATA[
+ This tag can be used to specify a number of aliases that act
+ as commands in the documentation. An alias has the form: 
+\verbatim
+ name=value
+\endverbatim
+ For example adding 
+\verbatim
+ "sideeffect=@par Side Effects:\n" 
+\endverbatim
+ will allow you to
+ put the command \c \\sideeffect (or \c \@sideeffect) in the documentation, which 
+ will result in a user-defined paragraph with heading "Side Effects:".
+ You can put \ref cmdn "\\n"'s in the value part of an alias to insert newlines.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='TCL_SUBST' format='string'>
+      <docs>
+<![CDATA[
+ This tag can be used to specify a number of word-keyword mappings (TCL only). 
+ A mapping has the form <code>"name=value"</code>. For example adding 
+ <code>"class=itcl::class"</code> will allow you to use the command class in the 
+ <code>itcl::class</code> meaning.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='OPTIMIZE_OUTPUT_FOR_C' defval='0'>
+      <docs>
+<![CDATA[
+ Set the \c OPTIMIZE_OUTPUT_FOR_C tag to \c YES if your project consists 
+ of C sources only. Doxygen will then generate output that is more tailored 
+ for C. For instance, some of the names that are used will be different. 
+ The list of all members will be omitted, etc. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='OPTIMIZE_OUTPUT_JAVA' defval='0'>
+      <docs>
+<![CDATA[
+ Set the \c OPTIMIZE_OUTPUT_JAVA tag to \c YES if your project consists of Java or
+ Python sources only. Doxygen will then generate output that is more tailored 
+ for that language. For instance, namespaces will be presented as packages, 
+ qualified scopes will look different, etc. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='OPTIMIZE_FOR_FORTRAN' defval='0'>
+      <docs>
+<![CDATA[
+ Set the \c OPTIMIZE_FOR_FORTRAN tag to \c YES if your project consists of Fortran 
+ sources. Doxygen will then generate output that is tailored for Fortran.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='OPTIMIZE_OUTPUT_VHDL' defval='0'>
+      <docs>
+<![CDATA[
+ Set the \c OPTIMIZE_OUTPUT_VHDL tag to \c YES if your project consists of VHDL 
+ sources. Doxygen will then generate output that is tailored for VHDL.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='EXTENSION_MAPPING' format='string'>
+      <docs>
+<![CDATA[
+ Doxygen selects the parser to use depending on the extension of the files it parses.
+ With this tag you can assign which parser to use for a given extension.
+ Doxygen has a built-in mapping, but you can override or extend it using this tag.
+ The format is <code>ext=language</code>, where \c ext is a file extension, and language is one of
+ the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
+ Objective-C, Python, Fortran, VHDL. 
+
+ For instance to make doxygen treat
+ <code>.inc</code> files as Fortran files (default is PHP), and <code>.f</code> files as C (default is Fortran),
+ use: `inc=Fortran f=C`.
+
+ <br>Note For files without extension you can use `no_extension` as a placeholder.
+ <br>Note that for custom extensions you also need to set \ref cfg_file_patterns "FILE_PATTERNS" otherwise the 
+ files are not read by doxygen.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='MARKDOWN_SUPPORT' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all 
+ comments according to the Markdown format, which allows for more readable 
+ documentation. See http://daringfireball.net/projects/markdown/ for details. 
+ The output of markdown processing is further processed by doxygen, so you 
+ can mix doxygen, HTML, and XML commands with Markdown formatting. 
+ Disable only in case of backward compatibilities issues. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='AUTOLINK_SUPPORT' defval='1'>
+      <docs>
+<![CDATA[
+ When enabled doxygen tries to link words that correspond to documented classes, 
+ or namespaces to their corresponding documentation. Such a link can be 
+ prevented in individual cases by by putting a \c % sign in front of the word or 
+ globally by setting \c AUTOLINK_SUPPORT to \c NO.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='BUILTIN_STL_SUPPORT' defval='0'>
+      <docs>
+<![CDATA[
+ If you use STL classes (i.e. `std::string`, `std::vector`, etc.) but do not want to
+ include (a tag file for) the STL sources as input, then you should
+ set this tag to \c YES in order to let doxygen match functions declarations and
+ definitions whose arguments contain STL classes (e.g. `func(std::string`); versus
+ `func(std::string) {}`). This also make the inheritance and collaboration
+ diagrams that involve STL classes more complete and accurate.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='CPP_CLI_SUPPORT' defval='0'>
+      <docs>
+<![CDATA[
+ If you use Microsoft's C++/CLI language, you should set this option to \c YES to
+ enable parsing support.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SIP_SUPPORT' defval='0'>
+      <docs>
+<![CDATA[
+ Set the \c SIP_SUPPORT tag to \c YES if your project consists 
+ of <a href="http://www.riverbankcomputing.co.uk/software/sip/intro">sip</a> sources only. 
+ Doxygen will parse them like normal C++ but will assume all classes use public 
+ instead of private inheritance when no explicit protection keyword is present. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='IDL_PROPERTY_SUPPORT' defval='1'>
+      <docs>
+<![CDATA[
+ For Microsoft's IDL there are \c propget and \c propput attributes to indicate getter
+ and setter methods for a property. Setting this option to \c YES
+ will make doxygen to replace the get and set methods by a property in the
+ documentation. This will only work if the methods are indeed getting or 
+ setting a simple type. If this is not the case, or you want to show the 
+ methods anyway, you should set this option to \c NO.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='DISTRIBUTE_GROUP_DOC' defval='0'>
+      <docs>
+<![CDATA[
+ If member grouping is used in the documentation and the \c DISTRIBUTE_GROUP_DOC
+ tag is set to \c YES, then doxygen will reuse the documentation of the first
+ member in the group (if any) for the other members of the group. By default
+ all members of a group must be documented explicitly.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SUBGROUPING' defval='1'>
+      <docs>
+<![CDATA[
+ Set the \c SUBGROUPING tag to \c YES to allow class member groups of
+ the same type (for instance a group of public functions) to be put as a
+ subgroup of that type (e.g. under the Public Functions section). Set it to
+ \c NO to prevent subgrouping. Alternatively, this can be done per class using
+ the \ref cmdnosubgrouping "\\nosubgrouping" command. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='INLINE_GROUPED_CLASSES' defval='0'>
+      <docs>
+<![CDATA[
+ When the \c INLINE_GROUPED_CLASSES tag is set to \c YES, classes, structs and 
+ unions are shown inside the group in which they are included 
+ (e.g. using \ref cmdingroup "\\ingroup") instead of on a separate page (for HTML and Man pages) 
+ or section (for \f$\mbox{\LaTeX}\f$ and RTF).
+ <br>Note that this feature does not work in
+ combination with \ref cfg_separate_member_pages "SEPARATE_MEMBER_PAGES".
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='INLINE_SIMPLE_STRUCTS' defval='0'>
+      <docs>
+<![CDATA[
+ When the \c INLINE_SIMPLE_STRUCTS tag is set to \c YES, structs, classes, and 
+ unions with only public data fields or simple typedef fields will be shown 
+ inline in the documentation of the scope in which they are defined (i.e. file, 
+ namespace, or group documentation), provided this scope is documented. If set 
+ to \c NO, structs, classes, and unions are shown on a separate 
+ page (for HTML and Man pages) or section (for \f$\mbox{\LaTeX}\f$ and RTF).
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='TYPEDEF_HIDES_STRUCT' defval='0'>
+      <docs>
+<![CDATA[
+ When \c TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or enum
+ is documented as struct, union, or enum with the name of the typedef. So 
+ <code>typedef struct TypeS {} TypeT</code>, will appear in the documentation as a struct 
+ with name \c TypeT. When disabled the typedef will appear as a member of a file, 
+ namespace, or class. And the struct will be named \c TypeS. This can typically 
+ be useful for C code in case the coding convention dictates that all compound 
+ types are typedef'ed and only the typedef is referenced, never the tag name.
+]]>
+      </docs>
+    </option>
+    <option type='int' id='LOOKUP_CACHE_SIZE' minval='0' maxval='9' defval='0'>
+      <!-- be carefull when changing these formulas as they are hard coded in the conversion script -->
+      <docs>
+<![CDATA[
+ The size of the symbol lookup cache can be 
+ set using \c LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given 
+ their name and scope. Since this can be an expensive process and often the 
+ same symbol appears multiple times in the code, doxygen keeps a cache of 
+ pre-resolved symbols. If the cache is too small doxygen will become slower. 
+ If the cache is too large, memory is wasted. The cache size is given by this 
+ formula: \f$2^{(16+\mbox{LOOKUP\_CACHE\_SIZE})}\f$. The valid range is 0..9, the default is 0, 
+ corresponding to a cache size of \f$2^{16} = 65536\f$ symbols. 
+ At the end of a run doxygen will report the cache usage and suggest the
+ optimal cache size from a speed point of view.
+]]>
+      </docs>
+    </option>
   </group>
   <group name='Build' docs='Build related configuration options'>
-    <option type='bool' id='EXTRACT_ALL' docs='
-If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
-documentation are documented, even if no documentation was available. 
-Private class members and static file members will be hidden unless 
-the EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES 
-' defval='0'/>
-    <option type='bool' id='EXTRACT_PRIVATE' docs='
-If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
-will be included in the documentation. 
-' defval='0'/>
-    <option type='bool' id='EXTRACT_PACKAGE' docs='
-If the EXTRACT_PACKAGE tag is set to YES all members with package or internal 
-scope will be included in the documentation. 
-' defval='0'/>
-    <option type='bool' id='EXTRACT_STATIC' docs='
-If the EXTRACT_STATIC tag is set to YES all static members of a file 
-will be included in the documentation. 
-' defval='0'/>
-    <option type='bool' id='EXTRACT_LOCAL_CLASSES' docs='
-If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
-defined locally in source files will be included in the documentation. 
-If set to NO only classes defined in header files are included. 
-' defval='1'/>
-    <option type='bool' id='EXTRACT_LOCAL_METHODS' docs='
-This flag is only useful for Objective-C code. When set to YES local 
-methods, which are defined in the implementation section but not in 
-the interface are included in the documentation. 
-If set to NO (the default) only methods in the interface are included. 
-' defval='0'/>
-    <option type='bool' id='EXTRACT_ANON_NSPACES' docs='
-If this flag is set to YES, the members of anonymous namespaces will be 
-extracted and appear in the documentation as a namespace called 
-&apos;anonymous_namespace{file}&apos;, where file will be replaced with the base 
-name of the file that contains the anonymous namespace. By default 
-anonymous namespaces are hidden. 
-' defval='0'/>
-    <option type='bool' id='HIDE_UNDOC_MEMBERS' docs='
-If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
-undocumented members of documented classes, files or namespaces. 
-If set to NO (the default) these members will be included in the 
-various overviews, but no documentation section is generated. 
-This option has no effect if EXTRACT_ALL is enabled. 
-' defval='0'/>
-    <option type='bool' id='HIDE_UNDOC_CLASSES' docs='
-If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
-undocumented classes that are normally visible in the class hierarchy. 
-If set to NO (the default) these classes will be included in the various 
-overviews. This option has no effect if EXTRACT_ALL is enabled. 
-' defval='0'/>
-    <option type='bool' id='HIDE_FRIEND_COMPOUNDS' docs='
-If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
-friend (class|struct|union) declarations. 
-If set to NO (the default) these declarations will be included in the 
-documentation. 
-' defval='0'/>
-    <option type='bool' id='HIDE_IN_BODY_DOCS' docs='
-If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
-documentation blocks found inside the body of a function. 
-If set to NO (the default) these blocks will be appended to the 
-function&apos;s detailed documentation block. 
-' defval='0'/>
-    <option type='bool' id='INTERNAL_DOCS' docs='
-The INTERNAL_DOCS tag determines if documentation 
-that is typed after a \internal command is included. If the tag is set 
-to NO (the default) then the documentation will be excluded. 
-Set it to YES to include the internal documentation. 
-' defval='0'/>
-    <option type='bool' id='CASE_SENSE_NAMES' docs='
-If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
-file names in lower-case letters. If set to YES upper-case letters are also 
-allowed. This is useful if you have classes or files whose names only differ 
-in case and if your file system supports case sensitive file names. Windows 
-and Mac users are advised to set this option to NO. 
-' defval='0' altdefval='portable_fileSystemIsCaseSensitive()'/>
-    <option type='bool' id='HIDE_SCOPE_NAMES' docs='
-If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
-will show members with their full class and namespace scopes in the 
-documentation. If set to YES the scope will be hidden. 
-' defval='0'/>
-    <option type='bool' id='SHOW_INCLUDE_FILES' docs='
-If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
-will put a list of the files that are included by a file in the documentation 
-of that file. 
-' defval='1'/>
-    <option type='bool' id='FORCE_LOCAL_INCLUDES' docs='
-If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen 
-will list include files with double quotes in the documentation 
-rather than with sharp brackets.
-' defval='0'/>
-    <option type='bool' id='INLINE_INFO' docs='
-If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
-is inserted in the documentation for inline members. 
-' defval='1'/>
-    <option type='bool' id='SORT_MEMBER_DOCS' docs='
-If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
-will sort the (detailed) documentation of file and class members 
-alphabetically by member name. If set to NO the members will appear in 
-declaration order. 
-' defval='1'/>
-    <option type='bool' id='SORT_BRIEF_DOCS' docs='
-If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
-brief documentation of file, namespace and class members alphabetically 
-by member name. If set to NO (the default) the members will appear in 
-declaration order. 
-' defval='0'/>
-    <option type='bool' id='SORT_MEMBERS_CTORS_1ST' docs='
-If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen 
-will sort the (brief and detailed) documentation of class members so that 
-constructors and destructors are listed first. If set to NO (the default) 
-the constructors will appear in the respective orders defined by 
-SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. 
-This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO 
-and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.' defval='0'/>
-    <option type='bool' id='SORT_GROUP_NAMES' docs='
-If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the 
-hierarchy of group names into alphabetical order. If set to NO (the default) 
-the group names will appear in their defined order. 
-' defval='0'/>
-    <option type='bool' id='SORT_BY_SCOPE_NAME' docs='
-If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
-sorted by fully-qualified names, including namespaces. If set to 
-NO (the default), the class list will be sorted only by class name, 
-not including the namespace part. 
-Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. 
-Note: This option applies only to the class list, not to the 
-alphabetical list. 
-' defval='0'/>
-    <option type='bool' id='STRICT_PROTO_MATCHING' docs='
-If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to 
-do proper type resolution of all parameters of a function it will reject a 
-match between the prototype and the implementation of a member function even 
-if there is only one candidate or it is obvious which candidate to choose 
-by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen 
-will still accept a match between prototype and implementation in such cases.
-' defval='0'/>
-    <option type='bool' id='GENERATE_TODOLIST' docs='
-The GENERATE_TODOLIST tag can be used to enable (YES) or 
-disable (NO) the todo list. This list is created by putting \todo 
-commands in the documentation. 
-' defval='1'/>
-    <option type='bool' id='GENERATE_TESTLIST' docs='
-The GENERATE_TESTLIST tag can be used to enable (YES) or 
-disable (NO) the test list. This list is created by putting \test 
-commands in the documentation. 
-' defval='1'/>
-    <option type='bool' id='GENERATE_BUGLIST' docs='
-The GENERATE_BUGLIST tag can be used to enable (YES) or 
-disable (NO) the bug list. This list is created by putting \bug 
-commands in the documentation. 
-' defval='1'/>
-    <option type='bool' id='GENERATE_DEPRECATEDLIST' docs='
-The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
-disable (NO) the deprecated list. This list is created by putting 
-\deprecated commands in the documentation. 
-' defval='1'/>
-    <option type='list' id='ENABLED_SECTIONS' format='string' docs='
-The ENABLED_SECTIONS tag can be used to enable conditional 
-documentation sections, marked by \if section-label ... \endif 
-and \cond section-label ... \endcond blocks. 
-'>
-    </option>
-    <option type='int' id='MAX_INITIALIZER_LINES' docs='
-The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
-the initial value of a variable or macro consists of for it to appear in 
-the documentation. If the initializer consists of more lines than specified 
-here it will be hidden. Use a value of 0 to hide initializers completely. 
-The appearance of the initializer of individual variables and macros in the 
-documentation can be controlled using \showinitializer or \hideinitializer 
-command in the documentation regardless of this setting. 
-' minval='0' maxval='10000' defval='30'/>
-    <option type='bool' id='SHOW_USED_FILES' docs='
-Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
-at the bottom of the documentation of classes and structs. If set to YES the 
-list will mention the files that were used to generate the documentation.
-' defval='1'/>
-    <option type='bool' id='SHOW_FILES' docs='
-Set the SHOW_FILES tag to NO to disable the generation of the Files page. 
-This will remove the Files entry from the Quick Index and from the 
-Folder Tree View (if specified). The default is YES. 
-' defval='1'/>
-    <option type='bool' id='SHOW_NAMESPACES' docs='
-Set the SHOW_NAMESPACES tag to NO to disable the generation of the 
-Namespaces page.  This will remove the Namespaces entry from the Quick Index 
-and from the Folder Tree View (if specified). The default is YES. 
-' defval='1'/>
-    <option type='string' id='FILE_VERSION_FILTER' format='file' docs='
-The FILE_VERSION_FILTER tag can be used to specify a program or script that 
-doxygen should invoke to get the current version for each file (typically from 
-the version control system). Doxygen will invoke the program by executing (via 
-popen()) the command &lt;command&gt; &lt;input-file&gt;, where &lt;command&gt; is the value of 
-the FILE_VERSION_FILTER tag, and &lt;input-file&gt; is the name of an input file 
-provided by doxygen. Whatever the program writes to standard output 
-is used as the file version. See the manual for examples. 
-' defval=''/>
-    <option type='string' id='LAYOUT_FILE' format='file' docs='
-The LAYOUT_FILE tag can be used to specify a layout file which will be parsed 
-by doxygen. The layout file controls the global structure of the generated 
-output files in an output format independent way. To create the layout file 
-that represents doxygen&apos;s defaults, run doxygen with the -l option. 
-You can optionally specify a file name after the option, if omitted 
-DoxygenLayout.xml will be used as the name of the layout file. 
-' defval=''/>
-    <option type='list' id='CITE_BIB_FILES' format='file' docs='
-The CITE_BIB_FILES tag can be used to specify one or more bib files 
-containing the references data. This must be a list of .bib files. The 
-.bib extension is automatically appended if omitted. Using this command 
-requires the bibtex tool to be installed. See also 
-http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style 
-of the bibliography can be controlled using LATEX_BIB_STYLE. To use this 
-feature you need bibtex and perl available in the search path. Do not use 
-file names with spaces, bibtex cannot handle them.
-' defval=''/>
+    <option type='bool' id='EXTRACT_ALL' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c EXTRACT_ALL tag is set to \c YES doxygen will assume all 
+ entities in documentation are documented, even if no documentation was 
+ available. Private class members and static file members will be hidden 
+ unless the \ref cfg_extract_private "EXTRACT_PRIVATE" respectively 
+ \ref cfg_extract_static "EXTRACT_STATIC" tags are set to \c YES.
+
+ \note This will also disable the warnings about undocumented members 
+ that are normally produced when \ref cfg_warnings "WARNINGS" is 
+ set to \c YES.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='EXTRACT_PRIVATE' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c EXTRACT_PRIVATE tag is set to \c YES all private members of a 
+ class will be included in the documentation.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='EXTRACT_PACKAGE' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c EXTRACT_PACKAGE tag is set to \c YES all members with package 
+ or internal scope will be included in the documentation. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='EXTRACT_STATIC' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c EXTRACT_STATIC tag is set to \c YES all static members of a file
+ will be included in the documentation.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='EXTRACT_LOCAL_CLASSES' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c EXTRACT_LOCAL_CLASSES tag is set to \c YES classes (and structs) 
+ defined locally in source files will be included in the documentation. 
+ If set to \c NO only classes defined in header files are included. Does not
+ have any effect for Java sources.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='EXTRACT_LOCAL_METHODS' defval='0'>
+      <docs>
+<![CDATA[
+ This flag is only useful for Objective-C code. When set to \c YES local 
+ methods, which are defined in the implementation section but not in
+ the interface are included in the documentation.
+ If set to \c NO only methods in the interface are included.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='EXTRACT_ANON_NSPACES' defval='0'>
+      <docs>
+<![CDATA[
+ If this flag is set to \c YES, the members of anonymous namespaces will be extracted
+ and appear in the documentation as a namespace called 'anonymous_namespace{file}',
+ where file will be replaced with the base name of the file that contains the anonymous
+ namespace. By default anonymous namespace are hidden.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='HIDE_UNDOC_MEMBERS' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c HIDE_UNDOC_MEMBERS tag is set to \c YES, doxygen will hide all
+ undocumented members inside documented classes or files. 
+ If set to \c NO these members will be included in the
+ various overviews, but no documentation section is generated.
+ This option has no effect if \ref cfg_extract_all "EXTRACT_ALL" is enabled.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='HIDE_UNDOC_CLASSES' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c HIDE_UNDOC_CLASSES tag is set to \c YES, doxygen will hide all
+ undocumented classes that are normally visible in the class hierarchy. 
+ If set to \c NO these classes will be included in the
+ various overviews.
+ This option has no effect if \ref cfg_extract_all "EXTRACT_ALL" is enabled.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='HIDE_FRIEND_COMPOUNDS' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c HIDE_FRIEND_COMPOUNDS tag is set to \c YES, doxygen will hide all
+ friend (class|struct|union) declarations.
+ If set to \c NO these declarations will be included in the
+ documentation.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='HIDE_IN_BODY_DOCS' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c HIDE_IN_BODY_DOCS tag is set to \c YES, doxygen will hide any 
+ documentation blocks found inside the body of a function.
+ If set to \c NO these blocks will be appended to the 
+ function's detailed documentation block.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='INTERNAL_DOCS' defval='0'>
+      <docs>
+<![CDATA[
+ The \c INTERNAL_DOCS tag determines if documentation
+ that is typed after a \ref cmdinternal "\\internal" command is included. If the tag is set
+ to \c NO then the documentation will be excluded.
+ Set it to \c YES to include the internal documentation.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='CASE_SENSE_NAMES' defval='0' altdefval='portable_fileSystemIsCaseSensitive()'>
+      <docs>
+<![CDATA[
+ If the \c CASE_SENSE_NAMES tag is set to \c NO then doxygen
+ will only generate file names in lower-case letters. If set to
+ \c YES upper-case letters are also allowed. This is useful if you have
+ classes or files whose names only differ in case and if your file system
+ supports case sensitive file names. Windows and Mac users are advised to set this
+ option to \c NO.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='HIDE_SCOPE_NAMES' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c HIDE_SCOPE_NAMES tag is set to \c NO then doxygen 
+ will show members with their full class and namespace scopes in the
+ documentation. If set to \c YES the scope will be hidden. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SHOW_INCLUDE_FILES' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c SHOW_INCLUDE_FILES tag is set to \c YES then doxygen
+ will put a list of the files that are included by a file in the documentation 
+ of that file.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='FORCE_LOCAL_INCLUDES' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c FORCE_LOCAL_INCLUDES tag is set to \c YES then doxygen 
+ will list include files with double quotes in the documentation 
+ rather than with sharp brackets.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='INLINE_INFO' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c INLINE_INFO tag is set to \c YES then a tag [inline]
+ is inserted in the documentation for inline members.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SORT_MEMBER_DOCS' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c SORT_MEMBER_DOCS tag is set to \c YES then doxygen
+ will sort the (detailed) documentation of file and class members
+ alphabetically by member name. If set to \c NO the members will appear in
+ declaration order.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SORT_BRIEF_DOCS' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c SORT_BRIEF_DOCS tag is set to \c YES then doxygen will sort the
+ brief descriptions of file, namespace and class members alphabetically
+ by member name. If set to \c NO the members will appear in
+ declaration order.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SORT_MEMBERS_CTORS_1ST' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c SORT_MEMBERS_CTORS_1ST tag is set to \c YES then doxygen
+ will sort the (brief and detailed) documentation of class members so that
+ constructors and destructors are listed first. If set to \c NO
+ the constructors will appear in the respective orders defined by
+ \ref cfg_sort_brief_docs "SORT_BRIEF_DOCS" and \ref cfg_sort_member_docs "SORT_MEMBER_DOCS".
+ \note If \ref cfg_sort_brief_docs "SORT_BRIEF_DOCS" is set to \c NO this option is ignored for
+       sorting brief member documentation.
+ \note If \ref cfg_sort_member_docs "SORT_MEMBER_DOCS" is set to \c NO this option is ignored for
+       sorting detailed member documentation.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SORT_GROUP_NAMES' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c SORT_GROUP_NAMES tag is set to \c YES then doxygen will sort the 
+ hierarchy of group names into alphabetical order. If set to \c NO
+ the group names will appear in their defined order. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SORT_BY_SCOPE_NAME' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c SORT_BY_SCOPE_NAME tag is set to \c YES, the class list will be
+ sorted by fully-qualified names, including namespaces. If set to
+ \c NO, the class list will be sorted only by class name,
+ not including the namespace part.
+ \note This option is not very useful if \ref cfg_hide_scope_names "HIDE_SCOPE_NAMES" is set to \c YES.
+ \note This option applies only to the class list, not to the 
+       alphabetical list.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='STRICT_PROTO_MATCHING' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c STRICT_PROTO_MATCHING option is enabled and doxygen fails to
+ do proper type resolution of all parameters of a function it will reject a  
+ match between the prototype and the implementation of a member function even
+ if there is only one candidate or it is obvious which candidate to choose
+ by doing a simple string match. By disabling \c STRICT_PROTO_MATCHING doxygen 
+ will still accept a match between prototype and implementation in such cases.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='GENERATE_TODOLIST' defval='1'>
+      <docs>
+<![CDATA[
+ The \c GENERATE_TODOLIST tag can be used to enable (\c YES) or
+ disable (\c NO) the todo list. This list is created by 
+ putting \ref cmdtodo "\\todo" commands in the documentation.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='GENERATE_TESTLIST' defval='1'>
+      <docs>
+<![CDATA[
+ The \c GENERATE_TESTLIST tag can be used to enable (\c YES) or
+ disable (\c NO) the test list. This list is created by 
+ putting \ref cmdtest "\\test" commands in the documentation.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='GENERATE_BUGLIST' defval='1'>
+      <docs>
+<![CDATA[
+ The \c GENERATE_BUGLIST tag can be used to enable (\c YES) or
+ disable (\c NO) the bug list. This list is created by 
+ putting \ref cmdbug "\\bug" commands in the documentation.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='GENERATE_DEPRECATEDLIST' defval='1'>
+      <docs>
+<![CDATA[
+ The \c GENERATE_DEPRECATEDLIST tag can be used to enable (\c YES) or
+ disable (\c NO) the deprecated list. This list is created by 
+ putting \ref cmddeprecated "\\deprecated"
+ commands in the documentation.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='ENABLED_SECTIONS' format='string'>
+      <docs>
+<![CDATA[
+ The \c ENABLED_SECTIONS tag can be used to enable conditional
+ documentation sections, marked by \ref cmdif "\\if" \<section_label\> ... 
+ \ref cmdendif "\\endif" and \ref cmdcond "\\cond" \<section_label\> ...
+ \ref cmdendcond "\\endcond" blocks.
+]]>
+      </docs>
+    </option>
+    <option type='int' id='MAX_INITIALIZER_LINES' minval='0' maxval='10000' defval='30'>
+      <docs>
+<![CDATA[
+ The \c MAX_INITIALIZER_LINES tag determines the maximum number of lines
+ that the initial value of a variable or macro / define can have for it to appear in
+ the documentation. If the initializer
+ consists of more lines than specified here it will be hidden. Use a value
+ of 0 to hide initializers completely. The appearance of the value of
+ individual variables and macros / defines can be controlled using \ref cmdshowinitializer "\\showinitializer"
+ or \ref cmdhideinitializer "\\hideinitializer" command in the documentation regardless of this setting.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SHOW_USED_FILES' defval='1'>
+      <docs>
+<![CDATA[
+ Set the \c SHOW_USED_FILES tag to \c NO to disable the list of files generated
+ at the bottom of the documentation of classes and structs. If set to \c YES the
+ list will mention the files that were used to generate the documentation.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SHOW_FILES' defval='1'>
+      <docs>
+<![CDATA[
+ Set the \c SHOW_FILES tag to \c NO to disable the generation of the Files page.
+ This will remove the Files entry from the Quick Index and from the
+ Folder Tree View (if specified).
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SHOW_NAMESPACES' defval='1'>
+      <docs>
+<![CDATA[
+ Set the \c SHOW_NAMESPACES tag to \c NO to disable the generation of the
+ Namespaces page. This will remove the Namespaces entry from the Quick Index
+ and from the Folder Tree View (if specified).
+]]>
+      </docs>
+    </option>
+    <option type='string' id='FILE_VERSION_FILTER' format='file' defval=''>
+      <docs>
+<![CDATA[
+ The \c FILE_VERSION_FILTER tag can be used to specify a program or script that
+ doxygen should invoke to get the current version for each file (typically from the
+ version control system). Doxygen will invoke the program by executing (via
+ <code>popen()</code>) the command <code>command input-file</code>, where \c command is 
+ the value of the \c FILE_VERSION_FILTER tag, and \c input-file is the name 
+ of an input file provided by doxygen. 
+ Whatever the program writes to standard output is used as the file version.
+]]>
+      </docs>
+      <docs doxywizard='0' doxyfile='0'>
+<![CDATA[
+Example of using a shell script as a filter for Unix:
+\verbatim
+ FILE_VERSION_FILTER = "/bin/sh versionfilter.sh"
+\endverbatim
+<br>
+Example shell script for CVS:
+\verbatim
+#!/bin/sh
+cvs status $1 | sed -n 's/^[ \]*Working revision:[ \t]*\([0-9][0-9\.]*\).*/\1/p'
+\endverbatim 
+<br> 
+Example shell script for Subversion:
+\verbatim
+#!/bin/sh
+svn stat -v $1 | sed -n 's/^[ A-Z?\*|!]\{1,15\}/r/;s/ \{1,15\}/\/r/;s/ .*//p'
+\endverbatim
+<br>
+Example filter for ClearCase:
+\verbatim
+FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
+\endverbatim
+]]>
+      </docs>
+      <docs documentation='0'>
+<![CDATA[
+ For an example see the documentation.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='LAYOUT_FILE' format='file' defval=''>
+      <docs>
+<![CDATA[
+ The \c LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
+ doxygen. The layout file controls the global structure of the generated output files
+ in an output format independent way. To create the layout file that represents
+ doxygen's defaults, run doxygen with the `-l` option. You can optionally specify a
+ file name after the option, if omitted \c DoxygenLayout.xml will be used as the name
+ of the layout file.
+ <br>Note that if you run doxygen from a directory containing 
+ a file called \c DoxygenLayout.xml, doxygen will parse it automatically even if 
+ the \c LAYOUT_FILE tag is left empty.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='CITE_BIB_FILES' format='file'>
+      <docs>
+<![CDATA[
+ The \c CITE_BIB_FILES tag can be used to specify one or more \c bib files 
+ containing the reference definitions. This must be a list of <code>.bib</code> files. The 
+ <code>.bib</code> extension is automatically appended if omitted. This requires the 
+ \c bibtex tool to be installed. See also http://en.wikipedia.org/wiki/BibTeX for
+ more info. For \f$\mbox{\LaTeX}\f$ the style of the bibliography can be controlled 
+ using \ref cfg_latex_bib_style "LATEX_BIB_STYLE".
+ To use this 
+ feature you need \c bibtex and \c perl available in the search path. Do not use 
+ file names with spaces, \c bibtex cannot handle them.
+ See also \ref cmdcite "\\cite" for info how to create references.
+]]>
+      </docs>
+    </option>
   </group>
-  <group name='Messages' docs='configuration options related to warning and progress messages'>
-    <option type='bool' id='QUIET' docs='
-The QUIET tag can be used to turn on/off the messages that are generated 
-by doxygen. Possible values are YES and NO. If left blank NO is used. 
-' defval='0'/>
-    <option type='bool' id='WARNINGS' docs='
-The WARNINGS tag can be used to turn on/off the warning messages that are 
-generated by doxygen. Possible values are YES and NO. If left blank 
-NO is used. 
-' defval='1'/>
-    <option type='bool' id='WARN_IF_UNDOCUMENTED' docs='
-If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
-for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
-automatically be disabled. 
-' defval='1'/>
-    <option type='bool' id='WARN_IF_DOC_ERROR' docs='
-If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
-potential errors in the documentation, such as not documenting some 
-parameters in a documented function, or documenting parameters that 
-don&apos;t exist or using markup commands wrongly. 
-' defval='1'/>
-    <option type='bool' id='WARN_NO_PARAMDOC' docs='
-The WARN_NO_PARAMDOC option can be enabled to get warnings for 
-functions that are documented, but have no documentation for their parameters 
-or return value. If set to NO (the default) doxygen will only warn about 
-wrong or incomplete parameter documentation, but not about the absence of 
-documentation. 
-' defval='0'/>
-    <option type='string' id='WARN_FORMAT' format='string' docs='
-The WARN_FORMAT tag determines the format of the warning messages that 
-doxygen can produce. The string should contain the $file, $line, and $text 
-tags, which will be replaced by the file and line number from which the 
-warning originated and the warning text. Optionally the format may contain 
-$version, which will be replaced by the version of the file (if it could 
-be obtained via FILE_VERSION_FILTER) 
-' defval='$file:$line: $text'/>
-    <option type='string' id='WARN_LOGFILE' format='file' docs='
-The WARN_LOGFILE tag can be used to specify a file to which warning 
-and error messages should be written. If left blank the output is written 
-to stderr. 
-' defval=''/>
+  <group name='Messages' docs='Configuration options related to warning and progress messages'>
+    <option type='bool' id='QUIET' defval='0'>
+      <docs>
+<![CDATA[
+ The \c QUIET tag can be used to turn on/off the messages that are generated
+ to standard output by doxygen. If \c QUIET is set to \c YES this implies that the messages are off.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='WARNINGS' defval='1'>
+      <docs>
+<![CDATA[
+ The \c WARNINGS tag can be used to turn on/off the warning messages that are
+ generated to standard error (\c stderr) by doxygen. If \c WARNINGS is set to 
+ \c YES this implies that the warnings are on.
+<br>
+ \b Tip: Turn warnings on while writing the documentation.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='WARN_IF_UNDOCUMENTED' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c WARN_IF_UNDOCUMENTED tag is set to \c YES, then doxygen will generate warnings
+ for undocumented members. If \ref cfg_extract_all "EXTRACT_ALL" is set to \c YES then this flag will
+ automatically be disabled.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='WARN_IF_DOC_ERROR' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c WARN_IF_DOC_ERROR tag is set to \c YES, doxygen will generate warnings for
+ potential errors in the documentation, such as not documenting some
+ parameters in a documented function, or documenting parameters that
+ don't exist or using markup commands wrongly. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='WARN_NO_PARAMDOC' defval='0'>
+      <docs>
+<![CDATA[
+ This \c WARN_NO_PARAMDOC option can be enabled to get warnings for 
+ functions that are documented, but have no documentation for their parameters
+ or return value. If set to \c NO doxygen will only warn about
+ wrong or incomplete parameter documentation, but not about the absence of
+ documentation.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='WARN_FORMAT' format='string' defval='$file:$line: $text'>
+      <docs>
+<![CDATA[
+ The \c WARN_FORMAT tag determines the format of the warning messages that
+ doxygen can produce. The string should contain the <code>\$file</code>, 
+ <code>\$line</code>, and <code>\$text</code> 
+ tags, which will be replaced by the file and line number from which the
+ warning originated and the warning text.
+ Optionally the format may contain 
+ <code>$version</code>, which will be replaced by the version of the file (if it could 
+ be obtained via \ref cfg_file_version_filter "FILE_VERSION_FILTER") 
+]]>
+      </docs>
+    </option>
+    <option type='string' id='WARN_LOGFILE' format='file' defval=''>
+      <docs>
+<![CDATA[
+ The \c WARN_LOGFILE tag can be used to specify a file to which warning
+ and error messages should be written. If left blank the output is written 
+ to standard error (`stderr`).
+]]>
+      </docs>
+    </option>
   </group>
-  <group name='Input' docs='configuration options related to the input files'>
-    <option type='list' id='INPUT' format='filedir' docs='
-The INPUT tag can be used to specify the files and/or directories that contain 
-documented source files. You may enter file names like &quot;myfile.cpp&quot; or 
-directories like &quot;/usr/src/myproject&quot;. Separate the files or directories 
-with spaces. 
-'>
+  <group name='Input' docs='Configuration options related to the input files'>
+    <option type='list' id='INPUT' format='filedir'>
+      <docs>
+<![CDATA[
+ The \c INPUT tag is used to specify the files and/or directories that contain 
+ documented source files. You may enter file names like 
+ \c myfile.cpp or directories like \c /usr/src/myproject. 
+ Separate the files or directories with spaces.
+
+ \note If this tag is empty the current directory is searched.
+]]>
+      </docs>
       <value name=''/>
     </option>
-    <option type='string' id='INPUT_ENCODING' format='string' docs='
-This tag can be used to specify the character encoding of the source files 
-that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 
-also the default input encoding. Doxygen uses libiconv (or the iconv built 
-into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 
-the list of possible encodings. 
-' defval='UTF-8'/>
-    <option type='list' id='FILE_PATTERNS' format='string' docs='
-If the value of the INPUT tag contains directories, you can use the 
-FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-and *.h) to filter out the source-files in the directories. If left 
-blank the following patterns are tested: 
-*.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh 
-*.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py 
-*.f90 *.f *.for *.vhd *.vhdl
-'>
+    <option type='string' id='INPUT_ENCODING' format='string' defval='UTF-8'>
+      <docs>
+<![CDATA[
+ This tag can be used to specify the character encoding of the source files that 
+ doxygen parses. Internally doxygen uses the UTF-8 encoding.
+ Doxygen uses `libiconv` (or the `iconv` built into `libc`) for the transcoding. 
+ See <a href="http://www.gnu.org/software/libiconv">the libiconv documentation</a> for 
+ the list of possible encodings.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='FILE_PATTERNS' format='string'>
+      <docs>
+<![CDATA[
+ If the value of the \ref cfg_input "INPUT" tag contains directories, you can use the 
+ \c FILE_PATTERNS tag to specify one or more wildcard patterns 
+ (like `*.cpp` and `*.h`) to filter out the source-files 
+ in the directories. If left blank the following patterns are tested:
+]]>
+      </docs>
       <value name='*.c'/>
       <value name='*.cc'/>
       <value name='*.cxx'/>
       <value name='*.cpp'/>
       <value name='*.c++'/>
-      <value name='*.d'/>
       <value name='*.java'/>
       <value name='*.ii'/>
       <value name='*.ixx'/>
       <value name='*.ipp'/>
       <value name='*.i++'/>
       <value name='*.inl'/>
+      <value name='*.idl'/>
+      <value name='*.ddl'/>
+      <value name='*.odl'/>
       <value name='*.h'/>
       <value name='*.hh'/>
       <value name='*.hxx'/>
       <value name='*.hpp'/>
       <value name='*.h++'/>
-      <value name='*.idl'/>
-      <value name='*.odl'/>
       <value name='*.cs'/>
+      <value name='*.d'/>
       <value name='*.php'/>
-      <value name='*.php3'/>
+      <value name='*.php4'/>
+      <value name='*.php5'/>
+      <value name='*.phtml'/>
       <value name='*.inc'/>
       <value name='*.m'/>
       <value name='*.markdown'/>
@@ -652,1082 +1269,2049 @@ blank the following patterns are tested:
       <value name='*.f90'/>
       <value name='*.f'/>
       <value name='*.for'/>
+      <value name='*.tcl'/>
       <value name='*.vhd'/>
       <value name='*.vhdl'/>
+      <value name='*.ucf'/>
+      <value name='*.qsf'/>
+      <value name='*.as'/>
+      <value name='*.js'/>
+    </option>
+    <option type='bool' id='RECURSIVE' defval='0'>
+      <docs>
+<![CDATA[
+ The \c RECURSIVE tag can be used to specify whether or not subdirectories
+ should be searched for input files as well.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='EXCLUDE' format='filedir'>
+      <docs>
+<![CDATA[
+ The \c EXCLUDE tag can be used to specify files and/or directories that should be
+ excluded from the \ref cfg_input "INPUT" source files. This way you can easily exclude a
+ subdirectory from a directory tree whose root is specified with the \ref cfg_input "INPUT" tag.
+ <br>Note that relative paths are relative to the directory from which doxygen is run.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='EXCLUDE_SYMLINKS' defval='0'>
+      <docs>
+<![CDATA[
+ The \c EXCLUDE_SYMLINKS tag can be used to select whether or not files or directories 
+ that are symbolic links (a Unix file system feature) are excluded from the input.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='EXCLUDE_PATTERNS' format='string'>
+      <docs>
+<![CDATA[
+ If the value of the \ref cfg_input "INPUT" tag contains directories, you can use the
+ \c EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+ certain files from those directories.
+ <br>Note that the wildcards are matched 
+ against the file with absolute path, so to exclude all test directories 
+ for example use the pattern `*``/test/``*`
+]]>
+      </docs>
+    </option>
+    <option type='list' id='EXCLUDE_SYMBOLS' format='string'>
+      <docs>
+<![CDATA[
+ The \c EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 
+ (namespaces, classes, functions, etc.) that should be excluded from the 
+ output. The symbol name can be a fully qualified name, a word, or if the 
+ wildcard `*` is used, a substring. Examples: `ANamespace`, `AClass`, 
+ `AClass::ANamespace`, `ANamespace::*Test` 
+ <br>Note that the wildcards are matched against the file with absolute path, 
+ so to exclude all test directories use the pattern 
+ `*``/test/``*`
+]]>
+      </docs>
+    </option>
+    <option type='list' id='EXAMPLE_PATH' format='filedir'>
+      <docs>
+<![CDATA[
+ The \c EXAMPLE_PATH tag can be used to specify one or more files or
+ directories that contain example code fragments that are included (see
+ the \ref cmdinclude "\\include" command).
+]]>
+      </docs>
+    </option>
+    <option type='list' id='EXAMPLE_PATTERNS' format='string'>
+      <docs>
+<![CDATA[
+ If the value of the \ref cfg_example_path "EXAMPLE_PATH" tag contains directories, 
+ you can use the
+ \c EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like `*.cpp`
+ and `*.h`) to filter out the source-files in the directories. If left
+ blank all files are included.
+]]>
+      </docs>
+      <value name='*' show_docu='NO'/>
+    </option>
+    <option type='bool' id='EXAMPLE_RECURSIVE' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c EXAMPLE_RECURSIVE tag is set to \c YES then subdirectories will be
+ searched for input files to be used with the \ref cmdinclude "\\include" or
+ \ref cmddontinclude "\\dontinclude" 
+ commands irrespective of the value of the \ref cfg_recursive "RECURSIVE" tag. 
+]]>
+      </docs>
+    </option>
+    <option type='list' id='IMAGE_PATH' format='filedir'>
+      <docs>
+<![CDATA[
+ The \c IMAGE_PATH tag can be used to specify one or more files or
+ directories that contain images that are to be included in the 
+ documentation (see the \ref cmdimage "\\image" command).
+]]>
+      </docs>
+    </option>
+    <option type='string' id='INPUT_FILTER' format='file' defval=''>
+      <docs>
+<![CDATA[
+ The \c INPUT_FILTER tag can be used to specify a program that doxygen should
+ invoke to filter for each input file. Doxygen will invoke the filter program
+ by executing (via <code>popen()</code>) the command:
+ <br>
+   <code>\<filter\> \<input-file\></code>
+ <br>
+ where <code>\<filter\></code>
+ is the value of the \c INPUT_FILTER tag, and <code>\<input-file\></code> is the name of an
+ input file. Doxygen will then use the output that the filter program writes
+ to standard output.  If \ref cfg_filter_patterns "FILTER_PATTERNS" is specified, this tag will be ignored. 
+ <br>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.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='FILTER_PATTERNS' format='string'>
+      <docs>
+<![CDATA[
+ The \c FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+ basis. Doxygen will compare the file name with each pattern and apply the
+ filter if there is a match. The filters are a list of the form:
+ pattern=filter (like `*.cpp=my_cpp_filter`). See \ref cfg_input_filter "INPUT_FILTER" for further
+ information on how filters are used. If the \c FILTER_PATTERNS tag is empty or if
+ none of the patterns match the file name, \ref cfg_input_filter "INPUT_FILTER" is 
+ applied.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='FILTER_SOURCE_FILES' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c FILTER_SOURCE_FILES tag is set to \c YES, the input filter (if set using
+ \ref cfg_input_filter "INPUT_FILTER" ) will also be used to filter the input
+ files that are used for producing the source files to browse 
+ (i.e. when \ref cfg_source_browser "SOURCE_BROWSER" is set to \c YES).
+]]>
+      </docs>
+    </option>
+    <option type='list' id='FILTER_SOURCE_PATTERNS' format='string' depends='FILTER_SOURCE_FILES'>
+      <docs>
+<![CDATA[
+ The \c FILTER_SOURCE_PATTERNS tag can be used to specify source filters per 
+ file pattern. A pattern will override the setting 
+ for \ref cfg_filter_patterns "FILTER_PATTERN" (if any) 
+ and it is also possible to disable source filtering for a specific pattern 
+ using `*.ext=` (so without naming a filter).
+]]>
+      </docs>
+    </option>
+    <option type='string' id='USE_MDFILE_AS_MAINPAGE' format='string' defval=''>
+      <docs>
+<![CDATA[
+ If the \c USE_MDFILE_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`). 
+ This can be useful if you have a project on for instance GitHub and want to reuse 
+ the introduction page also for the doxygen output.
+]]>
+      </docs>
     </option>
-    <option type='bool' id='RECURSIVE' docs='
-The RECURSIVE tag can be used to turn specify whether or not subdirectories 
-should be searched for input files as well. Possible values are YES and NO. 
-If left blank NO is used. 
-' defval='0'/>
-    <option type='list' id='EXCLUDE' format='filedir' docs='
-The EXCLUDE tag can be used to specify files and/or directories that should be 
-excluded from the INPUT source files. This way you can easily exclude a 
-subdirectory from a directory tree whose root is specified with the INPUT tag. 
-Note that relative paths are relative to the directory from which doxygen is 
-run.
-'>
-    </option>
-    <option type='bool' id='EXCLUDE_SYMLINKS' docs='
-The EXCLUDE_SYMLINKS tag can be used to select whether or not files or 
-directories that are symbolic links (a Unix file system feature) are excluded 
-from the input. 
-' defval='0'/>
-    <option type='list' id='EXCLUDE_PATTERNS' format='string' docs='
-If the value of the INPUT tag contains directories, you can use the 
-EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
-certain files from those directories. Note that the wildcards are matched 
-against the file with absolute path, so to exclude all test directories 
-for example use the pattern */test/* 
-'>
-    </option>
-    <option type='list' id='EXCLUDE_SYMBOLS' format='string' docs='
-The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 
-(namespaces, classes, functions, etc.) that should be excluded from the 
-output. The symbol name can be a fully qualified name, a word, or if the 
-wildcard * is used, a substring. Examples: ANamespace, AClass, 
-AClass::ANamespace, ANamespace::*Test 
-'>
-    </option>
-    <option type='list' id='EXAMPLE_PATH' format='dir' docs='
-The EXAMPLE_PATH tag can be used to specify one or more files or 
-directories that contain example code fragments that are included (see 
-the \include command). 
-'>
-    </option>
-    <option type='list' id='EXAMPLE_PATTERNS' format='string' docs='
-If the value of the EXAMPLE_PATH tag contains directories, you can use the 
-EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-and *.h) to filter out the source-files in the directories. If left 
-blank all files are included. 
-'>
-      <value name='*'/>
-    </option>
-    <option type='bool' id='EXAMPLE_RECURSIVE' docs='
-If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
-searched for input files to be used with the \include or \dontinclude 
-commands irrespective of the value of the RECURSIVE tag. 
-Possible values are YES and NO. If left blank NO is used. 
-' defval='0'/>
-    <option type='list' id='IMAGE_PATH' format='dir' docs='
-The IMAGE_PATH tag can be used to specify one or more files or 
-directories that contain image that are included in the documentation (see 
-the \image command). 
-'>
-    </option>
-    <option type='string' id='INPUT_FILTER' format='file' docs='
-The INPUT_FILTER tag can be used to specify a program that doxygen should 
-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; 
-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 
-to standard output.  If FILTER_PATTERNS is specified, this tag will be 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=''/>
-    <option type='list' id='FILTER_PATTERNS' format='string' docs='
-The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
-basis.  Doxygen will compare the file name with each pattern and apply the 
-filter if there is a match.  The filters are a list of the form: 
-pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
-info on how filters are used. If FILTER_PATTERNS is empty or if 
-non of the patterns match the file name, INPUT_FILTER is applied. 
-'>
-    </option>
-    <option type='bool' id='FILTER_SOURCE_FILES' docs='
-If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
-INPUT_FILTER) will be used to filter the input files when producing source 
-files to browse (i.e. when SOURCE_BROWSER is set to YES). 
-' defval='0'/>
-    <option type='list' id='FILTER_SOURCE_PATTERNS' format='string' docs='
-The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file 
-pattern. A pattern will override the setting for FILTER_PATTERN (if any) 
-and it is also possible to disable source filtering for a specific pattern 
-using *.ext= (so without naming a filter). This option only has effect when 
-FILTER_SOURCE_FILES is enabled.
-' depends='FILTER_SOURCE_FILES'/>
-    <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 
-is part of the input, its contents will be placed on the main page 
-(index.html). This can be useful if you have a project on for instance GitHub 
-and want reuse the introduction page also for the doxygen output.
-' defval=''/>
   </group>
-  <group name='Source Browser' docs='configuration options related to source browsing'>
-    <option type='bool' id='SOURCE_BROWSER' docs='
-If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-be generated. Documented entities will be cross-referenced with these sources. 
-Note: To get rid of all source code in the generated output, make sure also 
-VERBATIM_HEADERS is set to NO. 
-' defval='0'/>
-    <option type='bool' id='INLINE_SOURCES' docs='
-Setting the INLINE_SOURCES tag to YES will include the body 
-of functions and classes directly in the documentation. 
-' defval='0'/>
-    <option type='bool' id='STRIP_CODE_COMMENTS' docs='
-Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
-doxygen to hide any special comment blocks from generated source code 
-fragments. Normal C, C++ and Fortran comments will always remain visible. 
-' defval='1'/>
-    <option type='bool' id='REFERENCED_BY_RELATION' docs='
-If the REFERENCED_BY_RELATION tag is set to YES 
-then for each documented function all documented 
-functions referencing it will be listed. 
-' defval='0'/>
-    <option type='bool' id='REFERENCES_RELATION' docs='
-If the REFERENCES_RELATION tag is set to YES 
-then for each documented function all documented entities 
-called/used by that function will be listed. 
-' defval='0'/>
-    <option type='bool' id='REFERENCES_LINK_SOURCE' docs='
-If the REFERENCES_LINK_SOURCE tag is set to YES (the default) 
-and SOURCE_BROWSER tag is set to YES, then the hyperlinks from 
-functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will 
-link to the source code.  Otherwise they will link to the documentation. 
-' defval='1'/>
-    <option type='bool' id='USE_HTAGS' docs='
-If the USE_HTAGS tag is set to YES then the references to source code 
-will point to the HTML generated by the htags(1) tool instead of doxygen 
-built-in source browser. The htags tool is part of GNU&apos;s global source 
-tagging system (see http://www.gnu.org/software/global/global.html). You 
-will need version 4.8.6 or higher. 
-' defval='0' depends='SOURCE_BROWSER'/>
-    <option type='bool' id='VERBATIM_HEADERS' docs='
-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 
-which an include is specified. Set to NO to disable this. 
-' 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 more acurate 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='list' id='CLANG_OPTIONS' setting='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 already be set by doxygen for the files and directories 
-specified at INPUT and INCLUDE_PATH.
-' defval='' depends='CLANG_ASSISTED_PARSING'/>
+  <group name='Source_Browser' docs='Configuration options related to source browsing'>
+    <option type='bool' id='SOURCE_BROWSER' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c SOURCE_BROWSER tag is set to \c YES then a list of source files will
+ be generated. Documented entities will be cross-referenced with these sources.
+ <br>Note: To get rid of all source code in the generated output, make sure that also
+ \ref cfg_verbatim_headers "VERBATIM_HEADERS" is set to \c NO.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='INLINE_SOURCES' defval='0'>
+      <docs>
+<![CDATA[
+ Setting the \c INLINE_SOURCES tag to \c YES will include the body
+ of functions, classes and enums directly into the documentation.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='STRIP_CODE_COMMENTS' defval='1'>
+      <docs>
+<![CDATA[
+ Setting the \c STRIP_CODE_COMMENTS tag to \c YES will instruct
+ doxygen to hide any special comment blocks from generated source code
+ fragments. Normal C, C++ and Fortran comments will always remain visible.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='REFERENCED_BY_RELATION' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c REFERENCED_BY_RELATION tag is set to \c YES
+ then for each documented function all documented
+ functions referencing it will be listed. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='REFERENCES_RELATION' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c REFERENCES_RELATION tag is set to \c YES
+ then for each documented function all documented entities
+ called/used by that function will be listed. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='REFERENCES_LINK_SOURCE' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c REFERENCES_LINK_SOURCE tag is set to \c YES
+ and \ref cfg_source_browser "SOURCE_BROWSER" tag is set to \c YES, then the hyperlinks from 
+ functions in \ref cfg_references_relation "REFERENCES_RELATION" and
+ \ref cfg_referenced_by_relation "REFERENCED_BY_RELATION" lists will 
+ link to the source code.  Otherwise they will link to the documentation.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SOURCE_TOOLTIPS' defval='1' depends='SOURCE_BROWSER'>
+      <docs>
+<![CDATA[
+If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the 
+source code will show a tooltip with additional information such as prototype, 
+brief description and links to the definition and documentation. Since this will 
+make the HTML file larger and loading of large files a bit slower, you can opt 
+to disable this feature. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='USE_HTAGS' defval='0' depends='SOURCE_BROWSER'>
+      <docs>
+<![CDATA[
+ If the \c USE_HTAGS tag is set to \c YES then the references to source code
+ will point to the HTML generated by the \c htags(1) tool instead of doxygen
+ built-in source browser. The \c htags tool is part of GNU's global source
+ tagging system (see http://www.gnu.org/software/global/global.html). You 
+ will need version 4.8.6 or higher. 
+<br>
+ To use it do the following:
+ -# Install the latest version of \c global
+ -# Enable \ref cfg_source_browser "SOURCE_BROWSER" and \c USE_HTAGS in the config file
+ -# Make sure the \ref cfg_input "INPUT" points to the root of the source tree
+ -# Run \c doxygen as normal
+<br>
+ Doxygen will invoke \c htags (and that will in turn invoke \c gtags), so these tools
+ must be available from the command line (i.e. in the search path).
+<br>
+ The result: instead of the source browser generated by doxygen, the links to
+ source code will now point to the output of \c htags.
+]]>
+      </docs>
+    </option>
+
+    <option type='bool' id='VERBATIM_HEADERS' defval='1'>
+      <docs>
+<![CDATA[
+  If the \c VERBATIM_HEADERS tag is set the \c YES then doxygen
+  will generate a verbatim copy of the header file for each class for
+  which an include is specified. Set to \c NO to disable this.
+  \sa Section \ref cmdclass "\\class".
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='CLANG_ASSISTED_PARSING' setting='USE_LIBCLANG' defval='0'>
+      <docs>
+<![CDATA[
+  If the \c CLANG_ASSISTED_PARSING tag is set to \c YES, then doxygen will use the 
+  <a href="http://clang.llvm.org/">clang parser</a> for more acurate parsing 
+  at the cost of reduced performance. This can be particularly helpful with 
+  template rich C++ code for which doxygen's built-in parser lacks the 
+  necessary type information.
+
+  @note The availability of this option depends on whether or not doxygen
+  was compiled with the `--with-libclang` option.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='CLANG_OPTIONS' format='string' setting='USE_LIBCLANG' depends='CLANG_ASSISTED_PARSING'>
+      <docs>
+<![CDATA[
+ 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 already be set by doxygen for the files and directories 
+ specified with \ref cfg_input "INPUT" and \ref cfg_include_path "INCLUDE_PATH".
+]]>
+      </docs>
+    </option>
   </group>
-  <group name='Index' docs='configuration options related to the alphabetical class index'>
-    <option type='bool' id='ALPHABETICAL_INDEX' docs='
-If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
-of all compounds will be generated. Enable this if the project 
-contains a lot of classes, structs, unions or interfaces. 
-' defval='1'/>
-    <option type='int' id='COLS_IN_ALPHA_INDEX' docs='
-If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
-the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
-in which this list will be split (can be a number in the range [1..20]) 
-' minval='1' maxval='20' defval='5' depends='ALPHABETICAL_INDEX'/>
-    <option type='list' id='IGNORE_PREFIX' format='string' docs='
-In case all classes in a project start with a common prefix, all 
-classes will be put under the same header in the alphabetical index. 
-The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
-should be ignored while generating the index headers. 
-' depends='ALPHABETICAL_INDEX'>
+  <group name='Index' docs='Configuration options related to the alphabetical class index'>
+    <option type='bool' id='ALPHABETICAL_INDEX' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c ALPHABETICAL_INDEX tag is set to \c YES, an alphabetical index
+ of all compounds will be generated. Enable this if the project contains 
+ a lot of classes, structs, unions or interfaces.
+]]>
+      </docs>
+    </option>
+    <option type='int' id='COLS_IN_ALPHA_INDEX' minval='1' maxval='20' defval='5' depends='ALPHABETICAL_INDEX'>
+      <docs>
+<![CDATA[
+ The \c COLS_IN_ALPHA_INDEX tag can be 
+ used to specify the number of columns in which the alphabetical index list will be split.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='IGNORE_PREFIX' format='string' depends='ALPHABETICAL_INDEX'>
+      <docs>
+<![CDATA[
+ In case all classes in a project start with a common prefix, all classes will 
+ be put under the same header in the alphabetical index.
+ The \c IGNORE_PREFIX tag can be used to specify a prefix 
+ (or a list of prefixes) that should be ignored while generating the index headers.
+]]>
+      </docs>
     </option>
   </group>
-  <group name='HTML' docs='configuration options related to the HTML output'>
-    <option type='bool' id='GENERATE_HTML' docs='
-If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
-generate HTML output. 
-' defval='1'/>
-    <option type='string' id='HTML_OUTPUT' format='dir' docs='
-The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
-If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-put in front of it. If left blank `html&apos; will be used as the default path. 
-' defval='html' depends='GENERATE_HTML'/>
-    <option type='string' id='HTML_FILE_EXTENSION' format='string' docs='
-The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
-each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
-doxygen will generate files with .html extension. 
-' defval='.html' depends='GENERATE_HTML'/>
-    <option type='string' id='HTML_HEADER' format='file' docs='
-The HTML_HEADER tag can be used to specify a personal HTML header for 
-each generated HTML page. If it is left blank doxygen will generate a 
-standard header. Note that when using a custom header you are responsible  
-for the proper inclusion of any scripts and style sheets that doxygen 
-needs, which is dependent on the configuration options used. 
-It is advised to generate a default header using "doxygen -w html 
-header.html footer.html stylesheet.css YourConfigFile" and then modify 
-that header. Note that the header is subject to change so you typically 
-have to redo this when upgrading to a newer version of doxygen or when 
-changing the value of configuration settings such as GENERATE_TREEVIEW!
-' defval='' depends='GENERATE_HTML'/>
-    <option type='string' id='HTML_FOOTER' format='file' docs='
-The HTML_FOOTER tag can be used to specify a personal HTML footer for 
-each generated HTML page. If it is left blank doxygen will generate a 
-standard footer. 
-' defval='' depends='GENERATE_HTML'/>
-    <option type='string' id='HTML_STYLESHEET' format='file' docs='
-The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
-style sheet that is used by each HTML page. It can be used to 
-fine-tune the look of the HTML output. If left blank doxygen will 
-generate a default style sheet. Note that it is recommended to use 
-HTML_EXTRA_STYLESHEET instead of this one, as it is more robust and this 
-tag will in the future become obsolete.
-' defval='' depends='GENERATE_HTML'/>
-    <option type='string' id='HTML_EXTRA_STYLESHEET' format='file' docs='
-The HTML_EXTRA_STYLESHEET tag can be used to specify an additional 
-user-defined cascading style sheet that is included after the standard 
-style sheets created by doxygen. Using this option one can overrule 
-certain style aspects. This is preferred over using HTML_STYLESHEET 
-since it does not replace the standard style sheet and is therefor more 
-robust against future updates. Doxygen will copy the style sheet file to 
-the output directory.
-' defval='' depends='GENERATE_HTML'/>
-    <option type='list' id='HTML_EXTRA_FILES' format='file' docs='
-The HTML_EXTRA_FILES tag can be used to specify one or more extra images or 
-other source files which should be copied to the HTML output directory. Note 
-that these files will be copied to the base HTML output directory. Use the 
-$relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these 
-files. In the HTML_STYLESHEET file, use the file name only. Also note that 
-the files will be copied as-is; there are no commands or markers available.
-' depends='GENERATE_HTML'/>
-    <option type='int' id='HTML_COLORSTYLE_HUE' docs='
-The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. 
-Doxygen will adjust the colors in the style sheet and background images 
-according to this color. Hue is specified as an angle on a colorwheel, 
-see http://en.wikipedia.org/wiki/Hue for more information. 
-For instance the value 0 represents red, 60 is yellow, 120 is green, 
-180 is cyan, 240 is blue, 300 purple, and 360 is red again. 
-The allowed range is 0 to 359. 
-' minval='0' maxval='359' defval='220' depends='GENERATE_HTML'/>
-    <option type='int' id='HTML_COLORSTYLE_SAT' docs='
-The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of 
-the colors in the HTML output. For a value of 0 the output will use 
-grayscales only. A value of 255 will produce the most vivid colors. 
-' minval='0' maxval='255' defval='100' depends='GENERATE_HTML'/>
-    <option type='int' id='HTML_COLORSTYLE_GAMMA' docs='
-The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to 
-the luminance component of the colors in the HTML output. Values below 
-100 gradually make the output lighter, whereas values above 100 make 
-the output darker. The value divided by 100 is the actual gamma applied, 
-so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, 
-and 100 does not change the gamma.
-' minval='40' maxval='240' defval='80' depends='GENERATE_HTML'/>
-    <option type='bool' id='HTML_TIMESTAMP' docs='
-If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML 
-page will contain the date and time when the page was generated. Setting 
-this to NO can help when comparing the output of multiple runs.
-' defval='1' depends='GENERATE_HTML'/>
-    <option type='bool' id='HTML_DYNAMIC_SECTIONS' docs='
-If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 
-documentation will contain sections that can be hidden and shown after the 
-page has loaded. 
-' defval='0' depends='GENERATE_HTML'/>
-    <option type='int' id='HTML_INDEX_NUM_ENTRIES' docs='
-With HTML_INDEX_NUM_ENTRIES one can control the preferred number of 
-entries shown in the various tree structured indices initially; the user 
-can expand and collapse entries dynamically later on. Doxygen will expand 
-the tree to such a level that at most the specified number of entries are 
-visible (unless a fully collapsed tree already exceeds this amount). 
-So setting the number of entries 1 will produce a full collapsed tree by 
-default. 0 is a special value representing an infinite number of entries 
-and will result in a full expanded tree by default.
-' minval='0' maxval='9999' defval='100' depends='GENERATE_HTML'/>
-    <option type='bool' id='GENERATE_DOCSET' docs='
-If the GENERATE_DOCSET tag is set to YES, additional index files 
-will be generated that can be used as input for Apple&apos;s Xcode 3 
-integrated development environment, introduced with OSX 10.5 (Leopard). 
-To create a documentation set, doxygen will generate a Makefile in the 
-HTML output directory. Running make will produce the docset in that 
-directory and running &quot;make install&quot; will install the docset in 
-~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find 
-it at startup. 
-See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html 
-for more information. 
-' defval='0' depends='GENERATE_HTML'/>
-    <option type='string' id='DOCSET_FEEDNAME' format='string' docs='
-When GENERATE_DOCSET tag is set to YES, this tag determines the name of the 
-feed. A documentation feed provides an umbrella under which multiple 
-documentation sets from a single provider (such as a company or product suite) 
-can be grouped. 
-' defval='Doxygen generated docs' depends='GENERATE_DOCSET'/>
-    <option type='string' id='DOCSET_BUNDLE_ID' format='string' docs='
-When GENERATE_DOCSET tag is set to YES, this tag specifies a string that 
-should uniquely identify the documentation set bundle. This should be a 
-reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen 
-will append .docset to the name. 
-' defval='org.doxygen.Project' depends='GENERATE_DOCSET'/>
-    <option type='string' id='DOCSET_PUBLISHER_ID' format='string' docs='
-When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely 
-identify the documentation publisher. This should be a reverse domain-name 
-style string, e.g. com.mycompany.MyDocSet.documentation. 
-' defval='org.doxygen.Publisher' depends='GENERATE_DOCSET'/>
-    <option type='string' id='DOCSET_PUBLISHER_NAME' format='string' docs='
-The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
-' defval='Publisher' depends='GENERATE_DOCSET'/>
-    <option type='bool' id='GENERATE_HTMLHELP' docs='
-If the GENERATE_HTMLHELP tag is set to YES, additional index files 
-will be generated that can be used as input for tools like the 
-Microsoft HTML help workshop to generate a compiled HTML help file (.chm) 
-of the generated HTML documentation. 
-' defval='0' depends='GENERATE_HTML'/>
-    <option type='string' id='CHM_FILE' format='file' docs='
-If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
-be used to specify the file name of the resulting .chm file. You 
-can add a path in front of the file if the result should not be 
-written to the html output directory. 
-' defval='' depends='GENERATE_HTMLHELP'/>
-    <option type='string' id='HHC_LOCATION' format='file' docs='
-If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
-be used to specify the location (absolute path including file name) of 
-the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
-the HTML help compiler on the generated index.hhp. 
-' defval='' depends='GENERATE_HTMLHELP' abspath='1'/>
-    <option type='bool' id='GENERATE_CHI' docs='
-If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
-controls if a separate .chi index file is generated (YES) or that 
-it should be included in the master .chm file (NO). 
-' defval='0' depends='GENERATE_HTMLHELP'/>
-    <option type='string' id='CHM_INDEX_ENCODING' format='string' docs='
-If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING 
-is used to encode HtmlHelp index (hhk), content (hhc) and project file 
-content. 
-' defval='' depends='GENERATE_HTMLHELP'/>
-    <option type='bool' id='BINARY_TOC' docs='
-If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
-controls whether a binary table of contents is generated (YES) or a 
-normal table of contents (NO) in the .chm file. 
-' defval='0' depends='GENERATE_HTMLHELP'/>
-    <option type='bool' id='TOC_EXPAND' docs='
-The TOC_EXPAND flag can be set to YES to add extra items for group members 
-to the contents of the HTML help documentation and to the tree view. 
-' defval='0' depends='GENERATE_HTMLHELP'/>
-    <option type='bool' id='GENERATE_QHP' docs='
-If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and 
-QHP_VIRTUAL_FOLDER are set, an additional index file will be generated 
-that can be used as input for Qt&apos;s qhelpgenerator to generate a 
-Qt Compressed Help (.qch) of the generated HTML documentation. 
-' defval='0' depends='GENERATE_HTML'/>
-    <option type='string' id='QCH_FILE' format='file' docs='
-If the QHG_LOCATION tag is specified, the QCH_FILE tag can 
-be used to specify the file name of the resulting .qch file. 
-The path specified is relative to the HTML output folder. 
-' defval='' depends='GENERATE_QHP'/>
-    <option type='string' id='QHP_NAMESPACE' format='string' docs='
-The QHP_NAMESPACE tag specifies the namespace to use when generating 
-Qt Help Project output. For more information please see 
-http://doc.trolltech.com/qthelpproject.html#namespace 
-' defval='org.doxygen.Project' depends='GENERATE_QHP'/>
-    <option type='string' id='QHP_VIRTUAL_FOLDER' format='string' docs='
-The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating 
-Qt Help Project output. For more information please see 
-http://doc.trolltech.com/qthelpproject.html#virtual-folders 
-' defval='doc' depends='GENERATE_QHP'/>
-    <option type='string' id='QHP_CUST_FILTER_NAME' format='string' docs='
-If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to 
-add. For more information please see 
-http://doc.trolltech.com/qthelpproject.html#custom-filters 
-' defval='' depends='GENERATE_QHP'/>
-    <option type='string' id='QHP_CUST_FILTER_ATTRS' format='string' docs='
-The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the 
-custom filter to add. For more information please see 
-&lt;a href=&quot;http://doc.trolltech.com/qthelpproject.html#custom-filters&quot;&gt; 
-Qt Help Project / Custom Filters&lt;/a&gt;. 
-' defval='' depends='GENERATE_QHP'/>
-    <option type='string' id='QHP_SECT_FILTER_ATTRS' format='string' docs='
-The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this 
-project&apos;s 
-filter section matches. 
-&lt;a href=&quot;http://doc.trolltech.com/qthelpproject.html#filter-attributes&quot;&gt; 
-Qt Help Project / Filter Attributes&lt;/a&gt;. 
-' defval='' depends='GENERATE_QHP'/>
-    <option type='string' id='QHG_LOCATION' format='file' docs='
-If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can 
-be used to specify the location of Qt&apos;s qhelpgenerator. 
-If non-empty doxygen will try to run qhelpgenerator on the generated 
-.qhp file. 
-' defval='' depends='GENERATE_QHP'/>
-    <option type='bool' id='GENERATE_ECLIPSEHELP' docs='
-If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files  
-will be generated, which together with the HTML files, form an Eclipse help 
-plugin. To install this plugin and make it available under the help contents 
-menu in Eclipse, the contents of the directory containing the HTML and XML 
-files needs to be copied into the plugins directory of eclipse. The name of 
-the directory within the plugins directory should be the same as 
-the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before 
-the help appears.
-' defval='0' depends='GENERATE_HTML'/>
-    <option type='string' id='ECLIPSE_DOC_ID' docs='
-A unique identifier for the eclipse help plugin. When installing the plugin 
-the directory name containing the HTML and XML files should also have 
-this name.
-' defval='org.doxygen.Project' depends='GENERATE_ECLIPSEHELP'/>
-    <option type='bool' id='DISABLE_INDEX' docs='
-The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) 
-at top of each HTML page. The value NO (the default) enables the index and 
-the value YES disables it. Since the tabs have the same information as the 
-navigation tree you can set this option to NO if you already set 
-GENERATE_TREEVIEW to YES.
-' defval='0' depends='GENERATE_HTML'/>
-    <option type='bool' id='GENERATE_TREEVIEW' defval='0' docs='
-The GENERATE_TREEVIEW tag is used to specify whether a tree-like index 
-structure should be generated to display hierarchical information. 
-If the tag value is set to YES, a side panel will be generated 
-containing a tree-like index structure (just like the one that 
-is generated for HTML Help). For this to work a browser that supports 
-JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). 
-Windows users are probably better off using the HTML help feature. 
-Since the tree basically has the same information as the tab index you 
-could consider to set DISABLE_INDEX to NO when enabling this option.
-' depends='GENERATE_HTML'/>
-    <option type='int' id='ENUM_VALUES_PER_LINE' docs='
-The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values 
-(range [0,1..20]) that doxygen will group on one line in the generated HTML 
-documentation. Note that a value of 0 will completely suppress the enum 
-values from appearing in the overview section.
-' minval='0' maxval='20' defval='4' depends='GENERATE_HTML'/>
-    <option type='int' id='TREEVIEW_WIDTH' docs='
-If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
-used to set the initial width (in pixels) of the frame in which the tree 
-is shown. 
-' minval='0' maxval='1500' defval='250' depends='GENERATE_HTML'/>
-    <option type='bool' id='EXT_LINKS_IN_WINDOW' defval='0' docs='
-When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open 
-links to external symbols imported via tag files in a separate window. 
-' depends='GENERATE_HTML'/>
-    <option type='int' id='FORMULA_FONTSIZE' docs='
-Use this tag to change the font size of Latex formulas included 
-as images in the HTML documentation. The default is 10. Note that 
-when you change the font size after a successful doxygen run you need 
-to manually remove any form_*.png images from the HTML output directory 
-to force them to be regenerated. 
-' minval='8' maxval='50' defval='10' depends='GENERATE_HTML'/>
-    <option type='bool' id='FORMULA_TRANSPARENT' docs='
-Use the FORMULA_TRANPARENT tag to determine whether or not the images 
-generated for formulas are transparent PNGs. Transparent PNGs are 
-not supported properly for IE 6.0, but are supported on all modern browsers. 
-Note that when changing this option you need to delete any form_*.png files 
-in the HTML output before the changes have effect. 
-' defval='1' depends='GENERATE_HTML'/>
-    <option type='bool' id='USE_MATHJAX' docs='
-Enable the USE_MATHJAX option to render LaTeX formulas using MathJax 
-(see http://www.mathjax.org) which uses client side Javascript for the 
-rendering instead of using prerendered bitmaps. Use this if you do not 
-have LaTeX installed or if you want to formulas look prettier in the HTML 
-output. When enabled you may also need to install MathJax separately and 
-configure the path to it using the MATHJAX_RELPATH option.
-' defval='0' depends='GENERATE_HTML'/> 
-    <option type='enum' id='MATHJAX_FORMAT' defval='HTML-CSS' docs='
-When MathJax is enabled you can set the default output format to be used for 
-the MathJax output. Supported types are HTML-CSS, NativeMML (i.e. MathML) and 
-SVG. The default value is HTML-CSS, which is slower, but has the best 
-compatibility. 
-' depends='USE_MATHJAX'>
-      <value name="HTML-CSS"/>
-      <value name="NativeMML"/>
+  <group name='HTML' docs='Configuration options related to the HTML output'>
+    <option type='bool' id='GENERATE_HTML' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c GENERATE_HTML tag is set to \c YES doxygen will
+ generate HTML output
+]]>
+      </docs>
+    </option>
+    <option type='string' id='HTML_OUTPUT' format='dir' defval='html' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ The \c HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+ If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
+ put in front of it.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='HTML_FILE_EXTENSION' format='string' defval='.html' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ The \c HTML_FILE_EXTENSION tag can be used to specify the file extension for 
+ each generated HTML page (for example: <code>.htm, .php, .asp</code>).
+]]>
+      </docs>
+    </option>
+    <option type='string' id='HTML_HEADER' format='file' defval='' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ The \c HTML_HEADER tag can be used to specify a user-defined HTML 
+ header file for each generated HTML page. 
+ If the tag is left blank doxygen will generate a 
+ standard header. 
+<br>
+ To get valid HTML the header file that
+ includes any scripts and style sheets that doxygen
+ needs, which is dependent on the configuration options used (e.g. the
+ setting \ref cfg_generate_treeview "GENERATE_TREEVIEW").
+ It is highly recommended to start with a default header using
+\verbatim
+doxygen -w html new_header.html new_footer.html new_stylesheet.css YourConfigFile
+\endverbatim
+ and then modify the file \c new_header.html.
+
+ See also section \ref doxygen_usage for information on how to generate
+ the default header that doxygen normally uses.
+
+ @note The header is subject to change so you typically
+ have to regenerate the default header when upgrading to a newer version of 
+ doxygen.
+]]>
+      </docs>
+      <docs doxywizard='0' doxyfile='0'>
+<![CDATA[
+ The following markers have a special meaning inside the header and footer:
+ <dl>
+ <dt><code>\$title</code><dd>will be replaced with the title of the page.
+ <dt><code>\$datetime</code><dd>will be replaced with current the date and time.
+ <dt><code>\$date</code><dd>will be replaced with the current date.
+ <dt><code>\$year</code><dd>will be replaces with the current year.
+ <dt><code>\$doxygenversion</code><dd>will be replaced with the version of doxygen
+ <dt><code>\$projectname</code><dd>will be replaced with the name of 
+            the project (see \ref cfg_project_name "PROJECT_NAME")
+ <dt><code>\$projectnumber</code><dd>will be replaced with the project number
+            (see \ref cfg_project_number "PROJECT_NUMBER")
+ <dt><code>\$projectbrief</code><dd>will be replaced with the project brief
+            description (see \ref cfg_project_brief "PROJECT_BRIEF")
+ <dt><code>\$projectlogo</code><dd>will be replaced with the project logo
+            (see \ref cfg_project_logo "PROJECT_LOGO")
+ <dt><code>\$treeview</code><dd>will be replaced with links to 
+            the javascript and style sheets needed for the navigation tree 
+            (or an empty string when \ref cfg_generate_treeview "GENERATE_TREEVIEW" 
+            is disabled).
+ <dt><code>\$search</code><dd>will be replaced with a links to 
+            the javascript and style sheets needed for the search engine 
+            (or an empty string when \ref cfg_searchengine "SEARCHENGINE" 
+            is disabled).
+ <dt><code>\$mathjax</code><dd>will be replaced with a links to 
+            the javascript and style sheets needed for the MathJax feature 
+            (or an empty string when \ref cfg_use_mathjax "USE_MATHJAX" is disabled).
+ <dt><code>\$relpath^</code><dd>
+ If \ref cfg_create_subdirs "CREATE_SUBDIRS" is enabled, the command <code>\$relpath^</code> can be 
+ used to produce a relative path to the root of the HTML output directory,
+ e.g. use <code>\$relpath^doxygen.css</code>, to refer to the standard style sheet.
+ </dl>
+
+ To cope with differences in the layout of the header and footer that depend on 
+ configuration settings, the header can also contain special blocks that 
+ will be copied to the output or skipped depending on the configuration.
+ Such blocks have the following form:
+\verbatim
+ <!--BEGIN BLOCKNAME-->
+ Some context copied when condition BLOCKNAME holds
+ <!--END BLOCKNAME-->
+ <!--BEGIN !BLOCKNAME-->
+ Some context copied when condition BLOCKNAME does not hold
+ <!--END !BLOCKNAME-->
+\endverbatim
+ The following block names are supported:
+ <dl>
+ <dt><code>DISABLE_INDEX</code><dd>Content within this block is copied to the output
+     when the \ref cfg_disable_index "DISABLE_INDEX" option is enabled (so when the index is disabled).
+ <dt><code>GENERATE_TREEVIEW</code><dd>Content within this block is copied to the output
+     when the \ref cfg_generate_treeview "GENERATE_TREEVIEW" option is enabled.
+ <dt><code>SEARCHENGINE</code><dd>Content within this block is copied to the output
+     when the \ref cfg_searchengine "SEARCHENGINE" option is enabled.
+ <dt><code>PROJECT_NAME</code><dd>Content within the block is copied to the output
+      when the \ref cfg_project_name "PROJECT_NAME" option is not empty.
+ <dt><code>PROJECT_NUMBER</code><dd>Content within the block is copied to the output
+      when the \ref cfg_project_number "PROJECT_NUMBER" option is not empty.
+ <dt><code>PROJECT_BRIEF</code><dd>Content within the block is copied to the output
+      when the \ref cfg_project_brief "PROJECT_BRIEF" option is not empty.
+ <dt><code>PROJECT_LOGO</code><dd>Content within the block is copied to the output
+      when the \ref cfg_project_logo "PROJECT_LOGO" option is not empty.
+ <dt><code>TITLEAREA</code><dd>Content within this block is copied to the output
+     when a title is visible at the top of each page. This is the case
+     if either \ref cfg_project_name "PROJECT_NAME", 
+     \ref cfg_project_brief "PROJECT_BRIEF", \ref cfg_project_logo "PROJECT_LOGO" 
+     is filled in or if both \ref cfg_disable_index "DISABLE_INDEX" and 
+     \ref cfg_searchengine "SEARCHENGINE" are enabled.
+ </dl>
+]]>
+      </docs>
+      <docs documentation='0'>
+<![CDATA[
+ For a description of the possible markers and block names see the documentation.
+]]>
+      </docs>
+    </option>
+
+    <option type='string' id='HTML_FOOTER' format='file' defval='' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ The \c HTML_FOOTER tag can be used to specify a user-defined HTML footer for 
+ each generated HTML page. 
+ If the tag is left blank doxygen will generate a standard footer.
+
+ See \ref cfg_html_header "HTML_HEADER" for more information on 
+ how to generate a default footer and what special commands can be 
+ used inside the footer.
+
+ See also section \ref doxygen_usage for information on how to generate
+ the default footer that doxygen normally uses.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='HTML_STYLESHEET' format='file' defval='' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ The \c HTML_STYLESHEET tag can be used to specify a user-defined cascading 
+ style sheet that is used by each HTML page. It can be used to 
+ fine-tune the look of the HTML output. If left blank doxygen 
+ will generate a default style sheet. 
+ See also section \ref doxygen_usage for information on how to generate
+ the style sheet that doxygen normally uses.
+
+ \note It is recommended to use 
+ \ref cfg_html_extra_stylesheet "HTML_EXTRA_STYLESHEET" instead of this tag,
+ as it is more robust and 
+ this tag (<code>HTML_STYLESHEET</code>) will in the future become obsolete.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='HTML_EXTRA_STYLESHEET' format='file' defval='' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ The \c HTML_EXTRA_STYLESHEET tag can be used to specify an additional 
+ user-defined cascading style sheet that is included after the standard 
+ style sheets created by doxygen. Using this option one can overrule 
+ certain style aspects. This is preferred over using \ref cfg_html_stylesheet "HTML_STYLESHEET" 
+ since it does not replace the standard style sheet and is therefor more 
+ robust against future updates. Doxygen will copy the style sheet file to 
+ the output directory.
+]]>
+      </docs>
+      <docs doxywizard='0' doxyfile='0'>
+<![CDATA[
+ Here is an example stylesheet that gives the contents area a fixed width:
+\verbatim
+body {
+        background-color: #CCC;
+        color: black;
+        margin: 0;
+}
+
+div.contents {
+        margin-bottom: 10px;
+        padding: 12px;
+        margin-left: auto;
+        margin-right: auto;
+        width: 960px;
+        background-color: white;
+        border-radius: 8px;
+}
+
+#titlearea {
+        background-color: white;
+}
+
+hr.footer {
+        display: none;
+}
+
+.footer {
+        background-color: #AAA;
+}
+\endverbatim
+]]>
+      </docs>
+      <docs documentation='0'>
+<![CDATA[
+ For an example see the documentation.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='HTML_EXTRA_FILES' format='file' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ The \c HTML_EXTRA_FILES tag can be used to specify one or more extra images or 
+ other source files which should be copied to the HTML output directory. Note 
+ that these files will be copied to the base HTML output directory. Use the 
+ <code>$relpath^</code> marker in the \ref cfg_html_header "HTML_HEADER" and/or
+ \ref cfg_html_footer "HTML_FOOTER" files to load these 
+ files. In the \ref cfg_html_stylesheet "HTML_STYLESHEET" file, use the file name only. Also note that 
+ the files will be copied as-is; there are no commands or markers available.
+]]>
+      </docs>
+    </option>
+    <option type='int' id='HTML_COLORSTYLE_HUE' minval='0' maxval='359' defval='220' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ The \c HTML_COLORSTYLE_HUE tag controls the color of the HTML output. 
+ Doxygen will adjust the colors in the stylesheet and background images 
+ according to this color. Hue is specified as an angle on a colorwheel, 
+ see http://en.wikipedia.org/wiki/Hue for more information. 
+ For instance the value 0 represents red, 60 is yellow, 120 is green, 
+ 180 is cyan, 240 is blue, 300 purple, and 360 is red again. 
+]]>
+      </docs>
+    </option>
+    <option type='int' id='HTML_COLORSTYLE_SAT' minval='0' maxval='255' defval='100' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ The \c HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of 
+ the colors in the HTML output. For a value of 0 the output will use 
+ grayscales only. A value of 255 will produce the most vivid colors. 
+]]>
+      </docs>
+    </option>
+    <option type='int' id='HTML_COLORSTYLE_GAMMA' minval='40' maxval='240' defval='80' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ The \c HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to 
+ the luminance component of the colors in the HTML output. Values below 
+ 100 gradually make the output lighter, whereas values above 100 make 
+ the output darker. The value divided by 100 is the actual gamma applied, 
+ so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, 
+ and 100 does not change the gamma.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='HTML_TIMESTAMP' defval='1' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ If the \c HTML_TIMESTAMP tag is set to \c YES then the footer of 
+ each generated HTML page will contain the date and time when the page 
+ was generated. Setting this to \c NO can help when comparing the output of 
+ multiple runs.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='HTML_DYNAMIC_SECTIONS' defval='0' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ If the \c HTML_DYNAMIC_SECTIONS tag is set to \c YES then the generated HTML
+ documentation will contain sections that can be hidden and shown after the
+ page has loaded. 
+]]>
+      </docs>
+    </option>
+    <option type='int' id='HTML_INDEX_NUM_ENTRIES' minval='0' maxval='9999' defval='100' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ With \c HTML_INDEX_NUM_ENTRIES one can control the preferred number of 
+ entries shown in the various tree structured indices initially; the user 
+ can expand and collapse entries dynamically later on. Doxygen will expand 
+ the tree to such a level that at most the specified number of entries are 
+ visible (unless a fully collapsed tree already exceeds this amount). 
+ So setting the number of entries 1 will produce a full collapsed tree by 
+ default. 0 is a special value representing an infinite number of entries 
+ and will result in a full expanded tree by default.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='GENERATE_DOCSET' defval='0' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ If the \c GENERATE_DOCSET tag is set to \c YES, additional index files
+ will be generated that can be used as input for 
+ <a href="http://developer.apple.com/tools/xcode/">Apple's Xcode 3
+ integrated development environment</a>, introduced with OSX 10.5 (Leopard).
+ To create a documentation set, doxygen will generate a Makefile in the
+ HTML output directory. Running \c make will produce the docset in that
+ directory and running <code>make install</code> will install the docset in 
+ <code>~/Library/Developer/Shared/Documentation/DocSets</code> 
+ so that Xcode will find it at startup. See
+ http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for
+ more information.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='DOCSET_FEEDNAME' format='string' defval='Doxygen generated docs' depends='GENERATE_DOCSET'>
+      <docs>
+<![CDATA[
+ This tag determines the name of the docset
+ feed. A documentation feed provides an umbrella under which multiple
+ documentation sets from a single provider (such as a company or product suite) 
+ can be grouped.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='DOCSET_BUNDLE_ID' format='string' defval='org.doxygen.Project' depends='GENERATE_DOCSET'>
+      <docs>
+<![CDATA[
+ This tag specifies a string that
+ should uniquely identify the documentation set bundle. This should be a
+ reverse domain-name style string, e.g. <code>com.mycompany.MyDocSet</code>. 
+ Doxygen will append <code>.docset</code> to the name.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='DOCSET_PUBLISHER_ID' format='string' defval='org.doxygen.Publisher' depends='GENERATE_DOCSET'>
+      <docs>
+<![CDATA[
+The \c DOCSET_PUBLISHER_ID
+tag specifies a string that should uniquely identify 
+the documentation publisher. This should be a reverse domain-name style 
+string, e.g. <code>com.mycompany.MyDocSet.documentation</code>.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='DOCSET_PUBLISHER_NAME' format='string' defval='Publisher' depends='GENERATE_DOCSET'>
+      <docs>
+<![CDATA[
+The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='GENERATE_HTMLHELP' defval='0' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ If the \c GENERATE_HTMLHELP tag is set to \c YES then
+ doxygen generates three additional HTML index files: 
+ \c index.hhp, \c index.hhc, and \c index.hhk. The \c index.hhp is a 
+ project file that can be read by 
+ <a href="http://www.microsoft.com/en-us/download/details.aspx?id=21138">
+ Microsoft's HTML Help Workshop</a>
+ on Windows.
+<br>
+ The HTML Help Workshop contains a compiler that can convert all HTML output 
+ generated by doxygen into a single compiled HTML file (`.chm`). Compiled
+ HTML files are now used as the Windows 98 help format, and will replace
+ the old Windows help format (`.hlp`) on all Windows platforms in the future.
+ Compressed HTML files also contain an index, a table of contents,
+ and you can search for words in the documentation.
+ The HTML workshop also contains a viewer for compressed HTML files.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='CHM_FILE' format='file' defval='' depends='GENERATE_HTMLHELP'>
+      <docs>
+<![CDATA[
+  The \c CHM_FILE tag can
+  be used to specify the file name of the resulting `.chm` file. You
+  can add a path in front of the file if the result should not be
+  written to the html output directory.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='HHC_LOCATION' format='file' defval='' depends='GENERATE_HTMLHELP' abspath='1'>
+      <docs>
+<![CDATA[
+  The \c HHC_LOCATION tag can
+  be used to specify the location (absolute path including file name) of 
+  the HTML help compiler (\c hhc.exe). If non-empty doxygen will try to run
+  the HTML help compiler on the generated \c index.hhp.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='GENERATE_CHI' defval='0' depends='GENERATE_HTMLHELP'>
+      <docs>
+<![CDATA[
+ The \c GENERATE_CHI flag
+ controls if a separate `.chi` index file is generated (\c YES) or that
+ it should be included in the master `.chm` file (\c NO).
+]]>
+      </docs>
+    </option>
+    <option type='string' id='CHM_INDEX_ENCODING' format='string' defval='' depends='GENERATE_HTMLHELP'>
+      <docs>
+<![CDATA[
+ The \c CHM_INDEX_ENCODING 
+ is used to encode HtmlHelp index (\c hhk), content (\c hhc) and project file 
+ content. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='BINARY_TOC' defval='0' depends='GENERATE_HTMLHELP'>
+      <docs>
+<![CDATA[
+ The \c BINARY_TOC flag
+ controls whether a binary table of contents is generated (\c YES) or a
+ normal table of contents (\c NO) in the `.chm` file.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='TOC_EXPAND' defval='0' depends='GENERATE_HTMLHELP'>
+      <docs>
+<![CDATA[
+ The \c TOC_EXPAND flag can be set to \c YES to add extra items for 
+ group members to the table of contents of the HTML help documentation 
+ and to the tree view.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='GENERATE_QHP' defval='0' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ If the \c GENERATE_QHP tag is set to \c YES and both \ref cfg_qhp_namespace "QHP_NAMESPACE"
+ and \ref cfg_qhp_virtual_folder "QHP_VIRTUAL_FOLDER" are set, an additional index file will
+ be generated that can be used as input for Qt's qhelpgenerator
+ to generate a Qt Compressed Help (`.qch`) of the generated HTML
+ documentation.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='QCH_FILE' format='file' defval='' depends='GENERATE_QHP'>
+      <docs>
+<![CDATA[
+ If the \ref cfg_qhg_location "QHG_LOCATION" tag is specified, the \c QCH_FILE tag can
+ be used to specify the file name of the resulting `.qch` file.
+ The path specified is relative to the HTML output folder.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='QHP_NAMESPACE' format='string' defval='org.doxygen.Project' depends='GENERATE_QHP'>
+      <docs>
+<![CDATA[
+ The \c QHP_NAMESPACE tag specifies the namespace to use when generating
+ Qt Help Project output. For more information please see
+ <a href="http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace">Qt Help Project / Namespace</a>.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='QHP_VIRTUAL_FOLDER' format='string' defval='doc' depends='GENERATE_QHP'>
+      <docs>
+<![CDATA[
+ The \c QHP_VIRTUAL_FOLDER tag specifies the namespace to use when
+ generating Qt Help Project output. For more information please see
+ <a href="http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-folders">Qt Help Project / Virtual Folders</a>.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='QHP_CUST_FILTER_NAME' format='string' defval='' depends='GENERATE_QHP'>
+      <docs>
+<![CDATA[
+  If the \c QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom filter to add. For more information please see
+  <a href="http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='QHP_CUST_FILTER_ATTRS' format='string' defval='' depends='GENERATE_QHP'>
+      <docs>
+<![CDATA[
+  The \c QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the custom filter to add.
+  For more information please see
+  <a href="http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='QHP_SECT_FILTER_ATTRS' format='string' defval='' depends='GENERATE_QHP'>
+      <docs>
+<![CDATA[
+  The \c QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's filter section matches.
+  <a href="http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='QHG_LOCATION' format='file' defval='' depends='GENERATE_QHP'>
+      <docs>
+<![CDATA[
+ The \c QHG_LOCATION tag can be used to specify the location of Qt's qhelpgenerator.
+ If non-empty doxygen will try to run qhelpgenerator on the generated `.qhp` file.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='GENERATE_ECLIPSEHELP' defval='0' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ If the \c GENERATE_ECLIPSEHELP tag is set to \c YES, additional index files  
+ will be generated, together with the HTML files, they form an `Eclipse` help 
+ plugin. 
+
+ To install this plugin and make it available under the help contents 
+ menu in `Eclipse`, the contents of the directory containing the HTML and XML 
+ files needs to be copied into the plugins directory of eclipse. The name of 
+ the directory within the plugins directory should be the same as 
+ the \ref cfg_eclipse_doc_id "ECLIPSE_DOC_ID" value. 
+
+ After copying `Eclipse` needs to be restarted before the help appears.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='ECLIPSE_DOC_ID' format='string' defval='org.doxygen.Project' depends='GENERATE_ECLIPSEHELP'>
+      <docs>
+<![CDATA[
+ A unique identifier for the `Eclipse` help plugin. When installing the plugin 
+ the directory name containing the HTML and XML files should also have 
+ this name. Each documentation set should have its own identifier.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='DISABLE_INDEX' defval='0' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ If you want full control over the layout of the generated HTML pages it
+ might be necessary to disable the index and replace it with your own.
+ The \c DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at
+ top of each HTML page. A value of \c NO enables the index and the
+ value \c YES disables it. Since the tabs in the index contain the same 
+ information as the navigation tree, you can set this option to \c YES if 
+ you also set \ref cfg_generate_treeview "GENERATE_TREEVIEW" to \c YES.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='GENERATE_TREEVIEW' defval='0' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ The \c GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+ structure should be generated to display hierarchical information.
+ If the tag value is set to \c YES, a side panel will be generated
+ containing a tree-like index structure (just like the one that
+ is generated for HTML Help). For this to work a browser that supports
+ JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+ Windows users are probably better off using the HTML help feature.
+
+ Via custom stylesheets (see \ref cfg_html_extra_stylesheet "HTML_EXTRA_STYLESHEET")
+ one can further \ref doxygen_finetune "fine-tune" the look of the index.
+ As an example, the default style sheet generated by doxygen has an
+ example that shows how to put an image at the root of the tree instead of
+ the \ref cfg_project_name "PROJECT_NAME".
+
+ Since the tree basically has the same information as the tab index, you could
+ consider setting \ref cfg_disable_index "DISABLE_INDEX" to \c YES when 
+ enabling this option.
+]]>
+      </docs>
+    </option>
+
+    <option type='int' id='ENUM_VALUES_PER_LINE' minval='0' maxval='20' defval='4' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ The \c ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
+ that doxygen will group on one line in the generated HTML documentation. 
+ <br>Note that a value of 0 will completely suppress the enum values from
+ appearing in the overview section.
+]]>
+      </docs>
+    </option>
+    <option type='int' id='TREEVIEW_WIDTH' minval='0' maxval='1500' defval='250' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ If the treeview is enabled (see \ref cfg_generate_treeview "GENERATE_TREEVIEW") then this tag can be
+ used to set the initial width (in pixels) of the frame in which the tree
+ is shown.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='EXT_LINKS_IN_WINDOW' defval='0' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ When the \c EXT_LINKS_IN_WINDOW option is set to \c YES doxygen will open 
+ links to external symbols imported via tag files in a separate window. 
+]]>
+      </docs>
+    </option>
+    <option type='int' id='FORMULA_FONTSIZE' minval='8' maxval='50' defval='10' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ Use this tag to change the font size of \f$\mbox{\LaTeX}\f$ formulas included
+ as images in the HTML documentation.
+ When you change the font size after a successful doxygen run you need
+ to manually remove any `form_*.png` images from the HTML 
+ output directory to force them to be regenerated.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='FORMULA_TRANSPARENT' defval='1' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ Use the \c FORMULA_TRANPARENT tag to determine whether or not the images 
+ generated for formulas are transparent PNGs. Transparent PNGs are 
+ not supported properly for IE 6.0, but are supported on all modern browsers. 
+ <br>Note that when changing this option you need to delete any `form_*.png` files 
+ in the HTML output directory before the changes have effect. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='USE_MATHJAX' defval='0' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ Enable the \c USE_MATHJAX option to render \f$\mbox{\LaTeX}\f$ formulas using MathJax 
+ (see http://www.mathjax.org) which uses client side Javascript for the 
+ rendering instead of using prerendered bitmaps. Use this if you do not 
+ have \f$\mbox{\LaTeX}\f$ installed or if you want to formulas look prettier in the HTML 
+ output. When enabled you may also need to install MathJax separately and 
+ configure the path to it using the \ref cfg_mathjax_relpath "MATHJAX_RELPATH" 
+ option.
+]]>
+      </docs>
+    </option>
+    <option type='enum' id='MATHJAX_FORMAT' defval='HTML-CSS' depends='USE_MATHJAX'>
+      <docs>
+<![CDATA[
+ When MathJax is enabled you can set the default output format to be used for 
+ the MathJax output.
+ See <a href="http://docs.mathjax.org/en/latest/output.html">the MathJax site</a>
+ for more details.
+]]>
+      </docs>
+      <value name="HTML-CSS" desc="(which is slower, but has the best compatibility)"/>
+      <value name="NativeMML" desc="(i.e. MathML)"/>
       <value name="SVG"/>
-    </option>   
-    <option type='string' id='MATHJAX_RELPATH' docs=' 
-When MathJax is enabled you need to specify the location relative to the 
-HTML output directory using the MATHJAX_RELPATH option. The destination 
-directory should contain the MathJax.js script. For instance, if the mathjax 
-directory is located at the same level as the HTML output directory, then 
-MATHJAX_RELPATH should be ../mathjax. The default value points to 
-the MathJax Content Delivery Network so you can quickly see the result without 
-installing MathJax.  However, it is strongly recommended to install a local 
-copy of MathJax from http://www.mathjax.org before deployment.
-' defval='http://cdn.mathjax.org/mathjax/latest' depends='USE_MATHJAX'/>
-    <option type='list' id='MATHJAX_EXTENSIONS' format='string' docs='
-The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension 
-names that should be enabled during MathJax rendering. 
-' depends='USE_MATHJAX'>
-    </option>
-    <option type='string' id='MATHJAX_CODEFILE' format='string' docs='
-The MATHJAX_CODEFILE tag can be used to specify a file with javascript 
-pieces of code that will be used on startup of the MathJax code. 
-' depends='USE_MATHJAX'>
-    </option>
-    <option type='bool' id='SEARCHENGINE' docs='
-When the SEARCHENGINE tag is enabled doxygen will generate a search box 
-for the HTML output. The underlying search engine uses javascript 
-and DHTML and should work on any modern browser. Note that when using 
-HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets 
-(GENERATE_DOCSET) there is already a search function so this one should 
-typically be disabled. For large projects the javascript based search engine 
-can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
-' defval='1' depends='GENERATE_HTML'/>
-    <option type='bool' id='SERVER_BASED_SEARCH' docs='
-When the SERVER_BASED_SEARCH tag is enabled the search engine will be 
+    </option>
+    <option type='string' id='MATHJAX_RELPATH' format='string' defval='http://cdn.mathjax.org/mathjax/latest' depends='USE_MATHJAX'>
+      <docs>
+<![CDATA[
+ When MathJax is enabled you need to specify the location relative to the 
+ HTML output directory using the \c MATHJAX_RELPATH option. The destination 
+ directory should contain the `MathJax.js` script. For instance, if the \c mathjax 
+ directory is located at the same level as the HTML output directory, then 
+ \c MATHJAX_RELPATH should be <code>../mathjax</code>. The default value points to 
+ the MathJax Content Delivery Network so you can quickly see the result without 
+ installing MathJax.  However, it is strongly recommended to install a local 
+ copy of MathJax from http://www.mathjax.org before deployment.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='MATHJAX_EXTENSIONS' format='string' depends='USE_MATHJAX'>
+      <docs>
+<![CDATA[
+ The \c MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax extension 
+ names that should be enabled during MathJax rendering. For example
+\verbatim
+MATHJAX_EXTENSIONS     = TeX/AMSmath TeX/AMSsymbols
+\endverbatim
+]]>
+      </docs>
+    </option>
+    <option type='string' id='MATHJAX_CODEFILE' format='string' depends='USE_MATHJAX'>
+      <docs>
+<![CDATA[
+ The \c MATHJAX_CODEFILE tag can be used to specify a file with javascript 
+ pieces of code that will be used on startup of the MathJax code. 
+ See 
+<a href="http://docs.mathjax.org/en/latest/output.html">the MathJax site</a>
+ for more details.
+]]>
+      </docs>
+      <docs doxywizard='0' doxyfile='0'>
+<![CDATA[
+ As an example to disable the "Math Renderer" menu item in the "Math
+ Settings" menu of MathJax:
+\verbatim
+MATHJAX_CODEFILE = disableRenderer.js
+\endverbatim
+  with in the file <code>disableRenderer.js</code>:
+\verbatim
+  MathJax.Hub.Config({
+   menuSettings: {
+    showRenderer: false,
+   } 
+  });
+\endverbatim
+]]>
+      </docs>
+      <docs documentation='0'>
+<![CDATA[
+ For an example see the documentation.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SEARCHENGINE' defval='1' depends='GENERATE_HTML'>
+      <docs>
+<![CDATA[
+ When the \c SEARCHENGINE tag is enabled doxygen will generate a search box
+ for the HTML output. The underlying search engine uses javascript 
+ and DHTML and should work on any modern browser. Note that when using
+ HTML help (\ref cfg_generate_htmlhelp "GENERATE_HTMLHELP"), 
+ Qt help (\ref cfg_generate_qhp "GENERATE_QHP"), or docsets
+ (\ref cfg_generate_docset "GENERATE_DOCSET") there is already a search 
+ function so this one should typically be disabled. For large projects 
+ the javascript based search engine can be slow, then enabling 
+ \ref cfg_server_based_search "SERVER_BASED_SEARCH" may provide a 
+ better solution. 
+
+ It is possible to search using the keyboard;
+ to jump to the search box use <code>\<access key\> + S</code> (what the <code>\<access key\></code> is
+ depends on the OS and browser, but it is typically <code>\<CTRL\></code>, <code>\<ALT\></code>/<code>\<option\></code>, or both).
+ Inside the search box use the <code>\<cursor down key\></code> to jump into the search 
+ results window, the results can be navigated using the <code>\<cursor keys\></code>.
+ Press <code>\<Enter\></code> to select an item or <code>\<escape\></code> to cancel the search. The
+ filter options can be selected when the cursor is inside the search box
+ by pressing <code>\<Shift\>+\<cursor down\></code>. Also here use the <code>\<cursor keys\></code> to 
+ select a filter and <code>\<Enter\></code> or <code>\<escape\></code> to activate or cancel the filter option.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SERVER_BASED_SEARCH' defval='0' depends='SEARCHENGINE'>
+      <docs>
+<![CDATA[
+When the \c SERVER_BASED_SEARCH tag is enabled the search engine will be 
 implemented using a web server instead of a web client using Javascript. 
-There are two flavours of web server based search depending on the 
-EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for 
-searching and an index file used by the script. When EXTERNAL_SEARCH is 
+
+There are two flavours of web server based searching depending on the 
+\ref cfg_external_search "EXTERNAL_SEARCH" setting. When disabled, 
+doxygen will generate a PHP script for searching and an index file used 
+by the script. When \ref cfg_external_search "EXTERNAL_SEARCH" is 
 enabled the indexing and searching needs to be provided by external tools. 
-See the manual for details. 
-' defval='0' depends='SEARCHENGINE'/>
-    <option type='bool' id='EXTERNAL_SEARCH' docs='
-When EXTERNAL_SEARCH is enabled doxygen will no longer generate the PHP 
-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 
-external search engine pointed to by the SEARCHENGINE_URL option to obtain 
-the search results. Doxygen ships with an example indexer (doxyindexer) and 
-search engine (doxysearch.cgi) which are based on the open source search 
-engine library Xapian. See the manual for configuration details. 
-' defval='0' depends='SEARCHENGINE'/>
-    <option type='string' id='SEARCHENGINE_URL' docs='
-The SEARCHENGINE_URL should point to a search engine hosted by a web server 
-which will returned the search results when EXTERNAL_SEARCH is enabled. 
-Doxygen ships with an example search engine (doxysearch) which is based on 
-the open source search engine library Xapian. See the manual for configuration 
-details. 
-' defval='' depends='SEARCHENGINE'/>
-    <option type='string' id='SEARCHDATA_FILE' format='file' docs='
-When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed 
+See the section \ref extsearch for details.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='EXTERNAL_SEARCH' defval='0' depends='SEARCHENGINE'>
+      <docs>
+<![CDATA[
+ When \c EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP 
+ 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 
+ external search engine pointed to by the 
+ \ref cfg_searchengine_url "SEARCHENGINE_URL" option to obtain 
+ the search results.
+ <br>Doxygen ships with an example indexer (\c doxyindexer) and 
+ search engine (<code>doxysearch.cgi</code>) which are based on the open source search 
+ engine library <a href="http://xapian.org/">Xapian</a>.
+ <br>See the section \ref extsearch for details.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='SEARCHENGINE_URL' format='string' defval='' depends='SEARCHENGINE'>
+      <docs>
+<![CDATA[
+ The \c SEARCHENGINE_URL should point to a search engine hosted by a web server 
+ which will return the search results when \ref cfg_external_search "EXTERNAL_SEARCH" 
+ is enabled.
+ <br>Doxygen ships with an example indexer (\c doxyindexer) and 
+ search engine (<code>doxysearch.cgi</code>) which are based on the open source search 
+ engine library <a href="http://xapian.org/">Xapian</a>.
+ See the section \ref extsearch for details.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='SEARCHDATA_FILE' format='file' defval='searchdata.xml' depends='SEARCHENGINE'>
+      <docs>
+<![CDATA[
+When \ref cfg_server_based_search "SERVER_BASED_SEARCH" and 
+\ref cfg_external_search "EXTERNAL_SEARCH" are both enabled the unindexed 
 search data is written to a file for indexing by an external tool. With the 
-SEARCHDATA_FILE tag the name of this file can be specified.
-' defval='searchdata.xml' depends='SEARCHENGINE'/>
-    <option type='string' id='EXTERNAL_SEARCH_ID' docs='
-When SERVER_BASED_SEARCH AND EXTERNAL_SEARCH are both enabled the 
-EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is 
-useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple 
-projects and redirect the results back to the right project.
-' defval='' depends='SEARCHENGINE'/>
-    <option type='list' id='EXTRA_SEARCH_MAPPINGS' docs='
-The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen 
-projects other than the one defined by this configuration file, but that are 
-all added to the same external search index. Each project needs to have a 
-unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id 
-of to a relative location where the documentation can be found. 
-The format is: EXTRA_SEARCH_MAPPINGS = id1=loc1 id2=loc2 ... 
-' defval='0' depends='SEARCHENGINE'/>
+\c SEARCHDATA_FILE tag the name of this file can be specified.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='EXTERNAL_SEARCH_ID' format='string' defval='' depends='SEARCHENGINE'>
+      <docs>
+<![CDATA[
+When \ref cfg_server_based_search "SERVER_BASED_SEARCH" and 
+\ref cfg_external_search "EXTERNAL_SEARCH" are both enabled the 
+\c EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is 
+useful in combination with \ref cfg_extra_search_mappings "EXTRA_SEARCH_MAPPINGS" 
+to search through multiple projects and redirect the results back to the right project.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='EXTRA_SEARCH_MAPPINGS' format='string' depends='SEARCHENGINE'>
+      <docs>
+<![CDATA[
+ The \c EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen 
+ projects other than the one defined by this configuration file, but that are 
+ all added to the same external search index. Each project needs to have a 
+ unique id set via \ref cfg_external_search_id "EXTERNAL_SEARCH_ID". 
+ The search mapping then maps the id of to a relative location where the 
+ documentation can be found. 
+
+ The format is: 
+\verbatim
+EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... 
+\endverbatim
+]]>
+      </docs>
+    </option>
   </group>
-  <group name='LaTeX' docs='configuration options related to the LaTeX output'>
-    <option type='bool' id='GENERATE_LATEX' docs='
-If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
-generate Latex output. 
-' defval='1'/>
-    <option type='string' id='LATEX_OUTPUT' format='dir' docs='
-The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
-If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-put in front of it. If left blank `latex&apos; will be used as the default path. 
-' defval='latex' depends='GENERATE_LATEX'/>
-    <option type='string' id='LATEX_CMD_NAME' format='file' docs='
-The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
-invoked. If left blank `latex&apos; will be used as the default command name. 
-Note that when enabling USE_PDFLATEX this option is only used for 
-generating bitmaps for formulas in the HTML output, but not in the 
-Makefile that is written to the output directory.
-' defval='latex' depends='GENERATE_LATEX'/>
-    <option type='string' id='MAKEINDEX_CMD_NAME' format='file' docs='
-The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
-generate index for LaTeX. If left blank `makeindex&apos; will be used as the 
-default command name. 
-' defval='makeindex' depends='GENERATE_LATEX'/>
-    <option type='bool' id='COMPACT_LATEX' docs='
-If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
-LaTeX documents. This may be useful for small projects and may help to 
-save some trees in general. 
-' defval='0' depends='GENERATE_LATEX'/>
-    <option type='enum' id='PAPER_TYPE' defval='a4' docs='
-The PAPER_TYPE tag can be used to set the paper type that is used 
-by the printer. Possible values are: a4, letter, legal and 
-executive. If left blank a4 will be used. 
-' depends='GENERATE_LATEX'>
-      <value name='a4'/>
-      <value name='letter'/>
-      <value name='legal'/>
-      <value name='executive'/>
-    </option>
-    <option type='list' id='EXTRA_PACKAGES' format='string' docs='
-The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
-packages that should be included in the LaTeX output. 
-' depends='GENERATE_LATEX'>
-    </option>
-    <option type='string' id='LATEX_HEADER' format='file' docs='
-The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
-the generated latex document. The header should contain everything until 
-the first chapter. If it is left blank doxygen will generate a 
-standard header. Notice: only use this tag if you know what you are doing! 
-' defval='' depends='GENERATE_LATEX'/>
-    <option type='string' id='LATEX_FOOTER' format='file' docs='
-The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for 
-the generated latex document. The footer should contain everything after 
-the last chapter. If it is left blank doxygen will generate a 
-standard footer. Notice: only use this tag if you know what you are doing! 
-' defval='' depends='GENERATE_LATEX'/>
-    <option type='list' id='LATEX_EXTRA_FILES' format='file' docs='
-The LATEX_EXTRA_FILES tag can be used to specify one or more extra images 
-or other source files which should be copied to the LaTeX output directory. 
-Note that the files will be copied as-is; there are no commands or markers 
-available. 
-' depends='GENERATE_LATEX'/>
-    <option type='bool' id='PDF_HYPERLINKS' docs='
-If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
-is prepared for conversion to pdf (using ps2pdf). The pdf file will 
-contain links (just like the HTML output) instead of page references 
-This makes the output suitable for online browsing using a pdf viewer. 
-' defval='1' depends='GENERATE_LATEX'/>
-    <option type='bool' id='USE_PDFLATEX' docs='
-If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
-plain latex in the generated Makefile. Set this option to YES to get a 
-higher quality PDF documentation. 
-' defval='1' depends='GENERATE_LATEX'/>
-    <option type='bool' id='LATEX_BATCHMODE' docs='
-If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
-command to the generated LaTeX files. This will instruct LaTeX to keep 
-running if errors occur, instead of asking the user for help. 
-This option is also used when generating formulas in HTML. 
-' defval='0' depends='GENERATE_LATEX'/>
-    <option type='bool' id='LATEX_HIDE_INDICES' docs='
-If LATEX_HIDE_INDICES is set to YES then doxygen will not 
-include the index chapters (such as File Index, Compound Index, etc.) 
-in the output. 
-' defval='0' depends='GENERATE_LATEX'/>
-    <option type='bool' id='LATEX_SOURCE_CODE' docs='
-If LATEX_SOURCE_CODE is set to YES then doxygen will include 
-source code with syntax highlighting in the LaTeX output. 
-Note that which sources are shown also depends on other settings 
-such as SOURCE_BROWSER.
-' defval='0' depends='GENERATE_LATEX'/>
-    <option type='string' id='LATEX_BIB_STYLE' format='string' docs='
-The LATEX_BIB_STYLE tag can be used to specify the style to use for the 
-bibliography, e.g. plainnat, or ieeetr. The default style is &quot;plain&quot;. See 
-http://en.wikipedia.org/wiki/BibTeX for more info.
-' defval='plain' depends='GENERATE_LATEX'/>
+  <group name='LaTeX' docs='Configuration options related to the LaTeX output'>
+    <option type='bool' id='GENERATE_LATEX' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c GENERATE_LATEX tag is set to \c YES doxygen will
+ generate \f$\mbox{\LaTeX}\f$ output.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='LATEX_OUTPUT' format='dir' defval='latex' depends='GENERATE_LATEX'>
+      <docs>
+<![CDATA[
+ The \c LATEX_OUTPUT tag is used to specify where the \f$\mbox{\LaTeX}\f$ 
+ docs will be put.
+ If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
+ put in front of it.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='LATEX_CMD_NAME' format='file' defval='latex' depends='GENERATE_LATEX'>
+      <docs>
+<![CDATA[
+ The \c LATEX_CMD_NAME tag can be used to specify the \f$\mbox{\LaTeX}\f$ command name to be invoked. 
+ <br>Note that when enabling \ref cfg_use_pdflatex "USE_PDFLATEX" this option is only used for
+ generating bitmaps for formulas in the HTML output, but not in the
+ \c Makefile that is written to the output directory.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='MAKEINDEX_CMD_NAME' format='file' defval='makeindex' depends='GENERATE_LATEX'>
+      <docs>
+<![CDATA[
+ The \c MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
+ generate index for \f$\mbox{\LaTeX}\f$.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='COMPACT_LATEX' defval='0' depends='GENERATE_LATEX'>
+      <docs>
+<![CDATA[
+ If the \c COMPACT_LATEX tag is set to \c YES doxygen generates more compact
+ \f$\mbox{\LaTeX}\f$ documents. This may be useful for small projects and may help to
+ save some trees in general.
+]]>
+      </docs>
+    </option>
+    <option type='enum' id='PAPER_TYPE' defval='a4' depends='GENERATE_LATEX'>
+      <docs>
+<![CDATA[
+ The \c PAPER_TYPE tag can be used to set the paper type that is used
+ by the printer.
+]]>
+      </docs>
+      <value name='a4' desc='(210 x 297 mm)'/>
+      <value name='letter' desc='(8.5 x 11 inches)'/>
+      <value name='legal' desc='(8.5 x 14 inches)'/>
+      <value name='executive' desc='(7.25 x 10.5 inches)'/>
+    </option>
+    <option type='list' id='EXTRA_PACKAGES' format='string' depends='GENERATE_LATEX'>
+      <docs>
+<![CDATA[
+ The \c EXTRA_PACKAGES tag can be used to specify one or more \f$\mbox{\LaTeX}\f$ 
+ package names that should be included in the \f$\mbox{\LaTeX}\f$ output.
+ To get the times font for instance you can specify 
+\verbatim
+EXTRA_PACKAGES=times
+\endverbatim
+ If left blank no extra packages will be included.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='LATEX_HEADER' format='file' defval='' depends='GENERATE_LATEX'>
+      <docs>
+<![CDATA[
+ The \c LATEX_HEADER tag can be used to specify a personal \f$\mbox{\LaTeX}\f$ 
+ header for the generated \f$\mbox{\LaTeX}\f$ document. 
+ The header should contain everything until the first chapter. 
+
+ If it is left blank doxygen will generate a 
+ standard header. See section \ref doxygen_usage for information on how to 
+ let doxygen write the default header to a separate file.
+ <br>Note: Only use a user-defined header if you know what you are doing!
+
+ The following commands have a special meaning inside the header:
+ <code>\$title</code>, <code>\$datetime</code>, <code>\$date</code>,
+ <code>\$doxygenversion</code>, <code>\$projectname</code>, 
+ <code>\$projectnumber</code>. 
+ Doxygen will replace them by respectively 
+ the title of the page, the current date and time, only the current date,
+ the version number of doxygen, the project name (see \ref cfg_project_name "PROJECT_NAME"), or the
+ project number (see \ref cfg_project_number "PROJECT_NUMBER").
+]]>
+      </docs>
+    </option>
+    <option type='string' id='LATEX_FOOTER' format='file' defval='' depends='GENERATE_LATEX'>
+      <docs>
+<![CDATA[
+ The \c LATEX_FOOTER tag can be used to specify a personal \f$\mbox{\LaTeX}\f$ footer for 
+ the generated \f$\mbox{\LaTeX}\f$ document. The footer should contain everything after 
+ the last chapter. If it is left blank doxygen will generate a 
+ standard footer.
+ <br>Note: Only use a user-defined footer if you know what you are doing!
+]]>
+      </docs>
+    </option>
+    <option type='list' id='LATEX_EXTRA_FILES' format='file' depends='GENERATE_LATEX'>
+      <docs>
+<![CDATA[
+ The \c LATEX_EXTRA_FILES tag can be used to specify one or more extra images
+ or other source files which should be copied to the \ref cfg_latex_output "LATEX_OUTPUT"
+ output directory.
+ Note that the files will be copied as-is; there are no commands or markers
+ available.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='PDF_HYPERLINKS' defval='1' depends='GENERATE_LATEX'>
+      <docs>
+<![CDATA[
+ If the \c PDF_HYPERLINKS tag is set to \c YES, the \f$\mbox{\LaTeX}\f$ that 
+ is generated is prepared for conversion to PDF (using \c ps2pdf or \c pdflatex). 
+ The PDF file will
+ contain links (just like the HTML output) instead of page references.
+ This makes the output suitable for online browsing using a PDF viewer.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='USE_PDFLATEX' defval='1' depends='GENERATE_LATEX'>
+      <docs>
+<![CDATA[
+ If the \c LATEX_PDFLATEX tag is set to \c YES, doxygen will use
+ \c pdflatex to generate the PDF file directly from the \f$\mbox{\LaTeX}\f$
+ files.  Set this option to \c YES to get a higher quality PDF documentation. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='LATEX_BATCHMODE' defval='0' depends='GENERATE_LATEX'>
+      <docs>
+<![CDATA[
+ If the \c LATEX_BATCHMODE tag is set to \c YES, doxygen will add the \c \\batchmode
+ command to the generated \f$\mbox{\LaTeX}\f$ files. This will 
+ instruct \f$\mbox{\LaTeX}\f$ to keep running if errors occur, instead of 
+ asking the user for help. This option is also used when generating formulas 
+ in HTML.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='LATEX_HIDE_INDICES' defval='0' depends='GENERATE_LATEX'>
+      <docs>
+<![CDATA[
+ If the \c LATEX_HIDE_INDICES tag is set to \c YES then doxygen will not
+ include the index chapters (such as File Index, Compound Index, etc.) 
+ in the output. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='LATEX_SOURCE_CODE' defval='0' depends='GENERATE_LATEX'>
+      <docs>
+<![CDATA[
+ If the \c LATEX_SOURCE_CODE tag is set to \c YES then doxygen will include 
+ source code with syntax highlighting in the \f$\mbox{\LaTeX}\f$ output. 
+ <br>Note that which sources are shown also depends on other settings 
+ such as \ref cfg_source_browser "SOURCE_BROWSER".
+]]>
+      </docs>
+    </option>
+    <option type='string' id='LATEX_BIB_STYLE' format='string' defval='plain' depends='GENERATE_LATEX'>
+      <docs>
+<![CDATA[
+ The \c LATEX_BIB_STYLE tag can be used to specify the style to use for the 
+ bibliography, e.g. \c plainnat, or \c ieeetr. 
+ See http://en.wikipedia.org/wiki/BibTeX and \ref cmdcite "\\cite"
+ for more info.
+]]>
+      </docs>
+    </option>
   </group>
-  <group name='RTF' docs='configuration options related to the RTF output'>
-    <option type='bool' id='GENERATE_RTF' docs='
-If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
-The RTF output is optimized for Word 97 and may not look very pretty with 
-other RTF readers or editors. 
-' defval='0'/>
-    <option type='string' id='RTF_OUTPUT' format='dir' docs='
-The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
-If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-put in front of it. If left blank `rtf&apos; will be used as the default path. 
-' defval='rtf' depends='GENERATE_RTF'/>
-    <option type='bool' id='COMPACT_RTF' docs='
-If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
-RTF documents. This may be useful for small projects and may help to 
-save some trees in general. 
-' defval='0' depends='GENERATE_RTF'/>
-    <option type='bool' id='RTF_HYPERLINKS' docs='
-If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
-will contain hyperlink fields. The RTF file will 
-contain links (just like the HTML output) instead of page references. 
-This makes the output suitable for online browsing using WORD or other 
-programs which support those fields. 
-Note: wordpad (write) and others do not support links. 
-' defval='0' depends='GENERATE_RTF'/>
-    <option type='string' id='RTF_STYLESHEET_FILE' format='file' docs='
-Load style sheet definitions from file. Syntax is similar to doxygen&apos;s 
-config file, i.e. a series of assignments. You only have to provide 
-replacements, missing definitions are set to their default value. 
-' defval='' depends='GENERATE_RTF'/>
-    <option type='string' id='RTF_EXTENSIONS_FILE' format='file' docs='
-Set optional variables used in the generation of an rtf document. 
-Syntax is similar to doxygen&apos;s config file. 
-' defval='' depends='GENERATE_RTF'/>
+  <group name='RTF' docs='Configuration options related to the RTF output'>
+    <option type='bool' id='GENERATE_RTF' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c GENERATE_RTF tag is set to \c YES doxygen will generate RTF output.
+ The RTF output is optimized for Word 97 and may not look too pretty with
+ other RTF readers/editors.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='RTF_OUTPUT' format='dir' defval='rtf' depends='GENERATE_RTF'>
+      <docs>
+<![CDATA[
+ The \c RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+ If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
+ put in front of it.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='COMPACT_RTF' defval='0' depends='GENERATE_RTF'>
+      <docs>
+<![CDATA[
+ If the \c COMPACT_RTF tag is set to \c YES doxygen generates more compact
+ RTF documents. This may be useful for small projects and may help to
+ save some trees in general.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='RTF_HYPERLINKS' defval='0' depends='GENERATE_RTF'>
+      <docs>
+<![CDATA[
+ If the \c RTF_HYPERLINKS tag is set to \c YES, the RTF that is generated
+ will contain hyperlink fields. The RTF file will
+ contain links (just like the HTML output) instead of page references.
+ This makes the output suitable for online browsing using Word or some other
+ Word compatible readers that support those fields.
+
+ <br>Note: WordPad (write) and others do not support links.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='RTF_STYLESHEET_FILE' format='file' defval='' depends='GENERATE_RTF'>
+      <docs>
+<![CDATA[
+ Load stylesheet definitions from file. Syntax is similar to doxygen's
+ config file, i.e. a series of assignments. You only have to provide
+ replacements, missing definitions are set to their default value.
+<br>
+ See also section \ref doxygen_usage for information on how to generate
+ the default style sheet that doxygen normally uses.
+
+]]>
+      </docs>
+    </option>
+    <option type='string' id='RTF_EXTENSIONS_FILE' format='file' defval='' depends='GENERATE_RTF'>
+      <docs>
+<![CDATA[
+ Set optional variables used in the generation of an RTF document.
+ Syntax is similar to doxygen's config file. 
+ A template extensions file can be generated using 
+ <code>doxygen -e rtf extensionFile</code>.
+]]>
+      </docs>
+    </option>
   </group>
-  <group name='Man' docs='configuration options related to the man page output'>
-    <option type='bool' id='GENERATE_MAN' docs='
-If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
-generate man pages 
-' defval='0'/>
-    <option type='string' id='MAN_OUTPUT' format='dir' docs='
-The MAN_OUTPUT tag is used to specify where the man pages will be put. 
-If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-put in front of it. If left blank `man&apos; will be used as the default path. 
-' defval='man' depends='GENERATE_MAN'/>
-    <option type='string' id='MAN_EXTENSION' format='string' docs='
-The MAN_EXTENSION tag determines the extension that is added to 
-the generated man pages (default is the subroutine&apos;s section .3) 
-' defval='.3' depends='GENERATE_MAN'/>
-    <option type='bool' id='MAN_LINKS' docs='
-If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
-then it will generate one additional man file for each entity 
-documented in the real man page(s). These additional files 
-only source the real man page, but without them the man command 
-would be unable to find the correct page. The default is NO. 
-' defval='0' depends='GENERATE_MAN'/>
+  <group name='Man' docs='Configuration options related to the man page output'>
+    <option type='bool' id='GENERATE_MAN' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c GENERATE_MAN tag is set to \c YES doxygen will
+ generate man pages for classes and files.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='MAN_OUTPUT' format='dir' defval='man' depends='GENERATE_MAN'>
+      <docs>
+<![CDATA[
+ The \c MAN_OUTPUT tag is used to specify where the man pages will be put.
+ If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
+ put in front of it. 
+ A directory \c man3 will be created inside the directory specified by 
+ \c MAN_OUTPUT.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='MAN_EXTENSION' format='string' defval='.3' depends='GENERATE_MAN'>
+      <docs>
+<![CDATA[
+ The \c MAN_EXTENSION tag determines the extension that is added to
+ the generated man pages. In case
+ the manual section does not start with a number, the number 3 is prepended.
+ The dot (.) at the beginning of the \c MAN_EXTENSION tag is optional.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='MAN_LINKS' defval='0' depends='GENERATE_MAN'>
+      <docs>
+<![CDATA[
+ If the \c MAN_LINKS tag is set to \c YES and doxygen generates man output, 
+ then it will generate one additional man file for each entity documented in 
+ the real man page(s). These additional files only source the real man page, 
+ but without them the \c man command would be unable to find the correct page. 
+]]>
+      </docs>
+    </option>
   </group>
-  <group name='XML' docs='configuration options related to the XML output'>
-    <option type='bool' id='GENERATE_XML' docs='
-If the GENERATE_XML tag is set to YES Doxygen will 
-generate an XML file that captures the structure of 
-the code including all documentation. 
-' defval='0'/>
-    <option type='string' id='XML_OUTPUT' format='dir' docs='
-The XML_OUTPUT tag is used to specify where the XML pages will be put. 
-If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-put in front of it. If left blank `xml&apos; will be used as the default path. 
-' defval='xml' depends='GENERATE_XML'/>
-    <option type='string' id='XML_SCHEMA' format='string' docs='
-The XML_SCHEMA tag can be used to specify an XML schema, 
-which can be used by a validating XML parser to check the 
-syntax of the XML files. 
-' defval='' depends='GENERATE_XML'/>
-    <option type='string' id='XML_DTD' format='string' docs='
-The XML_DTD tag can be used to specify an XML DTD, 
-which can be used by a validating XML parser to check the 
-syntax of the XML files. 
-' defval='' depends='GENERATE_XML'/>
-    <option type='bool' id='XML_PROGRAMLISTING' docs='
-If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
-dump the program listings (including syntax highlighting 
-and cross-referencing information) to the XML output. Note that 
-enabling this will significantly increase the size of the XML output. 
-' defval='1' depends='GENERATE_XML'/>
+  <group name='XML' docs='Configuration options related to the XML output'>
+    <option type='bool' id='GENERATE_XML' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c GENERATE_XML tag is set to \c YES doxygen will
+ generate an XML file that captures the structure of
+ the code including all documentation. 
+]]>
+      </docs>
+    </option>
+    <option type='string' id='XML_OUTPUT' format='dir' defval='xml' depends='GENERATE_XML'>
+      <docs>
+<![CDATA[
+ The \c XML_OUTPUT tag is used to specify where the XML pages will be put. 
+ If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be 
+ put in front of it.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='XML_SCHEMA' format='string' defval='' depends='GENERATE_XML'>
+      <docs>
+<![CDATA[
+ The \c XML_SCHEMA tag can be used to specify a XML schema,
+ which can be used by a validating XML parser to check the
+ syntax of the XML files.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='XML_DTD' format='string' defval='' depends='GENERATE_XML'>
+      <docs>
+<![CDATA[
+ The \c XML_DTD tag can be used to specify a XML DTD,
+ which can be used by a validating XML parser to check the
+ syntax of the XML files.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='XML_PROGRAMLISTING' defval='1' depends='GENERATE_XML'>
+      <docs>
+<![CDATA[
+ If the \c XML_PROGRAMLISTING tag is set to \c YES doxygen will
+ dump the program listings (including syntax highlighting
+ and cross-referencing information) to the XML output. Note that
+ enabling this will significantly increase the size of the XML output.
+]]>
+      </docs>
+    </option>
   </group>
-  <group name='Docbook' docs='configuration options related to the DOCBOOK output'>
-    <option type='bool' id='GENERATE_DOCBOOK' docs='
-If the GENERATE_DOCBOOK tag is set to YES Doxygen will generate DOCBOOK files 
+  <group name='Docbook' docs='Configuration options related to the DOCBOOK output'>
+    <option type='bool' id='GENERATE_DOCBOOK' defval='0'>
+      <docs>
+<![CDATA[
+If the \c GENERATE_DOCBOOK tag is set to \c YES doxygen will generate Docbook files 
 that can be used to generate PDF.
-' defval='0'/>
-    <option type='string' id='DOCBOOK_OUTPUT' format='dir' docs='
-The DOCBOOK_OUTPUT tag is used to specify where the DOCBOOK pages will be put. 
-If a relative path is entered the value of OUTPUT_DIRECTORY will be put in 
-front of it. If left blank docbook will be used as the default path.
-' defval='docbook' depends='GENERATE_DOCBOOK'/>
+]]>
+      </docs>
+    </option>
+    <option type='string' id='DOCBOOK_OUTPUT' format='dir' defval='docbook' depends='GENERATE_DOCBOOK'>
+      <docs>
+<![CDATA[
+The \c DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put. 
+If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be put in 
+front of it.
+]]>
+      </docs>
+    </option>
   </group>
-  <group name='DEF' docs='configuration options for the AutoGen Definitions output'>
-    <option type='bool' id='GENERATE_AUTOGEN_DEF' docs='
-If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
-generate an AutoGen Definitions (see autogen.sf.net) file 
-that captures the structure of the code including all 
-documentation. Note that this feature is still experimental 
-and incomplete at the moment. 
-' defval='0'/>
+  <group name='AutoGen' docs='Configuration options for the AutoGen Definitions output'>
+    <option type='bool' id='GENERATE_AUTOGEN_DEF' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c GENERATE_AUTOGEN_DEF tag is set to \c YES doxygen will
+ generate an AutoGen Definitions (see http://autogen.sf.net) file
+ that captures the structure of the code including all
+ documentation. Note that this feature is still experimental 
+ and incomplete at the moment. 
+]]>
+      </docs>
+    </option>
   </group>
 <!--
-  <group name='Sqlite3' docs='configuration options related to Sqlite3 output'>
-    <option type='bool' id='GENERATE_SQLITE3' docs='
-If the GENERATE_SQLITE3 tag is set to YES doxygen will generate an  
-sqlite database with symbols found by doxygen stored in tables.
-' defval='0'/>
-    <option type='string' id='SQLITE3_OUTPUT' format='dir' docs='
-The SQLITE3_OUTPUT tag is used to specify where the Sqlite3 database will be put. 
-If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-put in front of it. If left blank sqlite3 will be used as the default path. 
-' defval='' depends='GENERATE_SQLITE3'/>
+  <group name='Sqlite3' docs='Configuration options related to Sqlite3 output'>
+    <option type='bool' id='GENERATE_SQLITE3' defval='0'>
+      <docs>
+<![CDATA[
+If the \c GENERATE_SQLITE3 tag is set to \c YES doxygen will generate a
+\c Sqlite3 database with symbols found by doxygen stored in tables.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='SQLITE3_OUTPUT' format='dir' defval='sqlite3' depends='GENERATE_SQLITE3'>
+      <docs>
+<![CDATA[
+The \c SQLITE3_OUTPUT tag is used to specify where the \c Sqlite3 database will be put. 
+If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be 
+put in front of it.
+]]>
+      </docs>
+    </option>
+
   </group>
 -->
-  <group name='PerlMod' docs='configuration options related to the Perl module output'>
-    <option type='bool' id='GENERATE_PERLMOD' docs='
-If the GENERATE_PERLMOD tag is set to YES Doxygen will 
-generate a Perl module file that captures the structure of 
-the code including all documentation. Note that this 
-feature is still experimental and incomplete at the 
-moment. 
-' defval='0'/>
-    <option type='bool' id='PERLMOD_LATEX' docs='
-If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
-the necessary Makefile rules, Perl scripts and LaTeX code to be able 
-to generate PDF and DVI output from the Perl module output. 
-' defval='0' depends='GENERATE_PERLMOD'/>
-    <option type='bool' id='PERLMOD_PRETTY' docs='
-If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
-nicely formatted so it can be parsed by a human reader.  This is useful 
-if you want to understand what is going on.  On the other hand, if this 
-tag is set to NO the size of the Perl module output will be much smaller 
-and Perl will parse it just the same. 
-' defval='1' depends='GENERATE_PERLMOD'/>
-    <option type='string' id='PERLMOD_MAKEVAR_PREFIX' format='string' docs='
-The names of the make variables in the generated doxyrules.make file 
-are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
-This is useful so different doxyrules.make files included by the same 
-Makefile don&apos;t overwrite each other&apos;s variables.' defval='' depends='GENERATE_PERLMOD'/>
+  <group name='PerlMod' docs='Configuration options related to the Perl module output'>
+    <option type='bool' id='GENERATE_PERLMOD' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c GENERATE_PERLMOD tag is set to \c YES doxygen will
+ generate a Perl module file that captures the structure of
+ the code including all documentation.
+ <br>Note that this 
+ feature is still experimental and incomplete at the
+ moment.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='PERLMOD_LATEX' defval='0' depends='GENERATE_PERLMOD'>
+      <docs>
+<![CDATA[
+ If the \c PERLMOD_LATEX tag is set to \c YES doxygen will generate 
+ the necessary \c Makefile rules, \c Perl scripts and \f$\mbox{\LaTeX}\f$ code to be able 
+ to generate PDF and DVI output from the Perl module output. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='PERLMOD_PRETTY' defval='1' depends='GENERATE_PERLMOD'>
+      <docs>
+<![CDATA[
+ If the \c PERLMOD_PRETTY tag is set to \c YES the Perl module output will be 
+ nicely formatted so it can be parsed by a human reader.  This is useful 
+ if you want to understand what is going on. On the other hand, if this
+ tag is set to \c NO the size of the Perl module output will be much smaller
+ and Perl will parse it just the same. 
+]]>
+      </docs>
+    </option>
+    <option type='string' id='PERLMOD_MAKEVAR_PREFIX' format='string' defval='' depends='GENERATE_PERLMOD'>
+      <docs>
+<![CDATA[
+ The names of the make variables in the generated `doxyrules.make` file 
+ are prefixed with the string contained in \c PERLMOD_MAKEVAR_PREFIX. 
+ This is useful so different `doxyrules.make` files included by the same
+ `Makefile` don't overwrite each other's variables.
+]]>
+      </docs>
+    </option>
   </group>
   <group name='Preprocessor' docs='Configuration options related to the preprocessor'>
-    <option type='bool' id='ENABLE_PREPROCESSING' docs='
-If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
-evaluate all C-preprocessor directives found in the sources and include 
-files. 
-' defval='1'/>
-    <option type='bool' id='MACRO_EXPANSION' docs='
-If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
-names in the source code. If set to NO (the default) only conditional 
-compilation will be performed. Macro expansion can be done in a controlled 
-way by setting EXPAND_ONLY_PREDEF to YES. 
-' defval='0' depends='ENABLE_PREPROCESSING'/>
-    <option type='bool' id='EXPAND_ONLY_PREDEF' docs='
-If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
-then the macro expansion is limited to the macros specified with the 
-PREDEFINED and EXPAND_AS_DEFINED tags. 
-' defval='0' depends='ENABLE_PREPROCESSING'/>
-    <option type='bool' id='SEARCH_INCLUDES' docs='
-If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
-pointed to by INCLUDE_PATH will be searched when a #include is found. 
-' defval='1' depends='ENABLE_PREPROCESSING'/>
-    <option type='list' id='INCLUDE_PATH' format='dir' docs='
-The INCLUDE_PATH tag can be used to specify one or more directories that 
-contain include files that are not input files but should be processed by 
-the preprocessor. 
-' depends='SEARCH_INCLUDES'>
-    </option>
-    <option type='list' id='INCLUDE_FILE_PATTERNS' format='string' docs='
-You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
-patterns (like *.h and *.hpp) to filter out the header-files in the 
-directories. If left blank, the patterns specified with FILE_PATTERNS will 
-be used. 
-' depends='ENABLE_PREPROCESSING'>
-    </option>
-    <option type='list' id='PREDEFINED' format='string' docs='
-The PREDEFINED tag can be used to specify one or more macro names that 
-are defined before the preprocessor is started (similar to the -D option of 
-gcc). The argument of the tag is a list of macros of the form: name 
-or name=definition (no spaces). If the definition and the = are 
-omitted =1 is assumed. To prevent a macro definition from being 
-undefined via #undef or recursively expanded use the := operator 
-instead of the = operator. 
-' depends='ENABLE_PREPROCESSING'>
-    </option>
-    <option type='list' id='EXPAND_AS_DEFINED' format='string' docs='
-If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
-this tag can be used to specify a list of macro names that should be expanded. 
-The macro definition that is found in the sources will be used. 
-Use the PREDEFINED tag if you want to use a different macro definition that 
-overrules the definition found in the source code. 
-' depends='ENABLE_PREPROCESSING'>
-    </option>
-    <option type='bool' id='SKIP_FUNCTION_MACROS' docs='
-If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
-doxygen&apos;s preprocessor will remove all references to function-like macros 
-that are alone on a line, have an all uppercase name, and do not end with a 
-semicolon, because these will confuse the parser if not removed. 
-' defval='1' depends='ENABLE_PREPROCESSING'/>
+    <option type='bool' id='ENABLE_PREPROCESSING' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c ENABLE_PREPROCESSING tag is set to \c YES doxygen will
+ evaluate all C-preprocessor directives found in the sources and include
+ files. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='MACRO_EXPANSION' defval='0' depends='ENABLE_PREPROCESSING'>
+      <docs>
+<![CDATA[
+ If the \c MACRO_EXPANSION tag is set to \c YES doxygen will expand all macro
+ names in the source code. If set to \c NO only conditional 
+ compilation will be performed. Macro expansion can be done in a controlled
+ way by setting \ref cfg_expand_only_predef "EXPAND_ONLY_PREDEF" to \c YES.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='EXPAND_ONLY_PREDEF' defval='0' depends='ENABLE_PREPROCESSING'>
+      <docs>
+<![CDATA[
+ If the \c EXPAND_ONLY_PREDEF and \ref cfg_macro_expansion "MACRO_EXPANSION" tags are both set to \c YES
+ then the macro expansion is limited to the macros specified with the
+ \ref cfg_predefined "PREDEFINED" and \ref cfg_expand_as_defined "EXPAND_AS_DEFINED" tags.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SEARCH_INCLUDES' defval='1' depends='ENABLE_PREPROCESSING'>
+      <docs>
+<![CDATA[
+ If the \c SEARCH_INCLUDES tag is set to \c YES the includes files
+ in the \ref cfg_include_path "INCLUDE_PATH" will be searched if a \c \#include is found.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='INCLUDE_PATH' format='dir' depends='SEARCH_INCLUDES'>
+      <docs>
+<![CDATA[
+ The \c INCLUDE_PATH tag can be used to specify one or more directories that
+ contain include files that are not input files but should be processed by
+ the preprocessor.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='INCLUDE_FILE_PATTERNS' format='string' depends='ENABLE_PREPROCESSING'>
+      <docs>
+<![CDATA[
+ You can use the \c INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+ patterns (like `*.h` and `*.hpp`) to filter out the header-files in the 
+ directories. If left blank, the patterns specified with \ref cfg_file_patterns "FILE_PATTERNS" will 
+ be used. 
+]]>
+      </docs>
+    </option>
+    <option type='list' id='PREDEFINED' format='string' depends='ENABLE_PREPROCESSING'>
+      <docs>
+<![CDATA[
+ The \c PREDEFINED tag can be used to specify one or more macro names that
+ are defined before the preprocessor is started (similar to the `-D` option of
+ e.g. \c gcc). The argument of the tag is a list of macros of the form:
+ <code>name</code> or <code>name=definition</code> (no spaces). 
+ If the definition and the \c "=" are omitted,  \c "=1" is assumed. To prevent
+ a macro definition from being undefined via \c \#undef or recursively expanded
+ use the <code>:=</code> operator instead of the \c = operator.
+]]>
+      </docs>
+    </option>
+    <option type='list' id='EXPAND_AS_DEFINED' format='string' depends='ENABLE_PREPROCESSING'>
+      <docs>
+<![CDATA[
+ If the \ref cfg_macro_expansion "MACRO_EXPANSION" and
+ \ref cfg_expand_only_predef "EXPAND_ONLY_PREDEF" tags are set to \c YES then
+ this tag can be used to specify a list of macro names that should be expanded.
+ The macro definition that is found in the sources will be used.
+ Use the \ref cfg_predefined "PREDEFINED" tag if you want to use a different macro definition that
+ overrules the definition found in the source code. 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='SKIP_FUNCTION_MACROS' defval='1' depends='ENABLE_PREPROCESSING'>
+      <docs>
+<![CDATA[
+ If the \c SKIP_FUNCTION_MACROS tag is set to \c YES then 
+ doxygen's preprocessor will remove all refrences to function-like macros that are alone 
+ on a line, have an all uppercase name, and do not end with a semicolon. 
+ Such function macros are typically 
+ used for boiler-plate code, and will confuse the parser if not removed. 
+]]>
+      </docs>
+    </option>
   </group>
-  <group name='External' docs='Configuration::additions related to external references'>
-    <option type='list' id='TAGFILES' format='file' docs='
-The TAGFILES option can be used to specify one or more tagfiles. For each 
+  <group name='External' docs='Configuration options related to external references'>
+    <option type='list' id='TAGFILES' format='file'>
+      <docs>
+<![CDATA[
+ The \c TAGFILES tag can be used to specify one or more tag files. 
+
+For each 
 tag file the location of the external documentation should be added. The 
 format of a tag file without this location is as follows: 
+\verbatim
   TAGFILES = file1 file2 ... 
+\endverbatim
 Adding location for the tag files is done as follows: 
-  TAGFILES = file1=loc1 &quot;file2 = loc2&quot; ... 
-where &quot;loc1&quot; and &quot;loc2&quot; can be relative or absolute paths 
-or URLs. Note that each tag file must have a unique name (where the name does 
-NOT include the path). If a tag file is not located in the directory in which 
-doxygen is run, you must also specify the path to the tagfile here. 
-'>
-    </option>
-    <option type='string' id='GENERATE_TAGFILE' format='file' docs='
-When a file name is specified after GENERATE_TAGFILE, doxygen will create 
-a tag file that is based on the input files it reads. 
-' defval=''/>
-    <option type='bool' id='ALLEXTERNALS' docs='
-If the ALLEXTERNALS tag is set to YES all external classes will be listed 
-in the class index. If set to NO only the inherited external classes 
-will be listed. 
-' defval='0'/>
-    <option type='bool' id='EXTERNAL_GROUPS' docs='
-If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
-in the modules index. If set to NO, only the current project&apos;s groups will 
-be listed. 
-' defval='1'/>
-    <option type='bool' id='EXTERNAL_PAGES' docs='
-If the EXTERNAL_PAGES tag is set to YES all external pages will be listed 
-in the related pages index. If set to NO, only the current project&apos;s 
-pages will be listed. 
-' defval='1'/>
-    <option type='string' id='PERL_PATH' format='dir' docs='
-The PERL_PATH should be the absolute path and name of the perl script 
-interpreter (i.e. the result of `which perl&apos;). 
-' defval='/usr/bin/perl'/>
+\verbatim
+  TAGFILES = file1=loc1 "file2 = loc2" ... 
+\endverbatim
+where `loc1` and `loc2` can be relative or absolute paths or URLs.
+ See the section \ref external for more information about the use of tag files.
+
+ \note
+  Each tag file must have an unique name 
+  (where the name does \e NOT include the path).
+  If a tag file is not located in the directory in which doxygen 
+  is run, you must also specify the path to the tagfile here.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='GENERATE_TAGFILE' format='file' defval=''>
+      <docs>
+<![CDATA[
+ When a file name is specified after \c GENERATE_TAGFILE, doxygen will create
+ a tag file that is based on the input files it reads.
+ See section \ref external for more information about the usage of 
+ tag files.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='ALLEXTERNALS' defval='0'>
+      <docs>
+<![CDATA[
+ If the \c ALLEXTERNALS tag is set to \c YES all external class will be listed
+ in the class index. If set to \c NO only the inherited external classes
+ will be listed.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='EXTERNAL_GROUPS' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c EXTERNAL_GROUPS tag is set to \c YES all external groups will be listed
+ in the modules index. If set to \c NO, only the current project's groups will
+ be listed.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='EXTERNAL_PAGES' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c EXTERNAL_PAGES tag is set to \c YES all external pages will be listed 
+ in the related pages index. If set to \c NO, only the current project's 
+ pages will be listed. 
+]]>
+      </docs>
+    </option>
+    <option type='string' id='PERL_PATH' format='file' defval='/usr/bin/perl' abspath='1'>
+      <docs>
+<![CDATA[
+ The \c PERL_PATH should be the absolute path and name of the perl script
+ interpreter (i.e. the result of `'which perl'`).
+]]>
+      </docs>
+    </option>
   </group>
   <group name='Dot' docs='Configuration options related to the dot tool'>
-    <option type='bool' id='CLASS_DIAGRAMS' docs='
-If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
-or super classes. Setting the tag to NO turns the diagrams off. Note that 
-this option also works with HAVE_DOT disabled, but it is recommended to 
-install and use dot, since it yields more powerful graphs. 
-' defval='1'/>
-    <option type='string' id='MSCGEN_PATH' format='string' docs='
-You can define message sequence charts within doxygen comments using the \msc 
-command. Doxygen will then run the mscgen tool (see 
-http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the 
-documentation. The MSCGEN_PATH tag allows you to specify the directory where 
-the mscgen tool resides. If left empty the tool is assumed to be found in the 
-default search path. 
-' defval=''/>
-    <option type='bool' id='HIDE_UNDOC_RELATIONS' docs='
-If set to YES, the inheritance and collaboration graphs will hide 
-inheritance and usage relations if the target is undocumented 
-or is not a class. 
-' defval='1'/>
-    <option type='bool' id='HAVE_DOT' docs='
-If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
-available from the path. This tool is part of Graphviz, a graph visualization 
-toolkit from AT&amp;T and Lucent Bell Labs. The other options in this section 
-have no effect if this option is set to NO (the default) 
-' defval='0'/>
-    <option type='int' id='DOT_NUM_THREADS' docs='
-The DOT_NUM_THREADS specifies the number of dot invocations doxygen is 
-allowed to run in parallel. When set to 0 (the default) doxygen will 
-base this on the number of processors available in the system. You can set it 
-explicitly to a value larger than 0 to get control over the balance 
-between CPU load and processing speed.  
-' defval='0' minval='0' maxval='32' depends='HAVE_DOT'/>
-    <option type='string' id='DOT_FONTNAME' format='string' docs='
-By default doxygen will use the Helvetica font for all dot files that 
-doxygen generates. When you want a differently looking font you can specify 
-the font name using DOT_FONTNAME. You need to make sure dot is able to find 
-the font, which can be done by putting it in a standard location or by setting 
-the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the 
-directory containing the font. 
-' defval='Helvetica' depends='HAVE_DOT'/>
-    <option type='int' id='DOT_FONTSIZE' docs='
-The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. 
-The default size is 10pt. 
-' minval='4' maxval='24' defval='10' depends='HAVE_DOT'/>
-    <option type='string' id='DOT_FONTPATH' format='string' docs='
-By default doxygen will tell dot to use the Helvetica font. 
-If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to 
-set the path where dot can find it.
-' defval='' depends='HAVE_DOT'/>
-    <option type='bool' id='CLASS_GRAPH' docs='
-If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-will generate a graph for each documented class showing the direct and 
-indirect inheritance relations. Setting this tag to YES will force the 
-CLASS_DIAGRAMS tag to NO. 
-' defval='1' depends='HAVE_DOT'/>
-    <option type='bool' id='COLLABORATION_GRAPH' docs='
-If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-will generate a graph for each documented class showing the direct and 
-indirect implementation dependencies (inheritance, containment, and 
-class references variables) of the class with other documented classes. 
-' defval='1' depends='HAVE_DOT'/>
-    <option type='bool' id='GROUP_GRAPHS' docs='
-If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
-will generate a graph for groups, showing the direct groups dependencies 
-' defval='1' depends='HAVE_DOT'/>
-    <option type='bool' id='UML_LOOK' docs='
-If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
-collaboration diagrams in a style similar to the OMG&apos;s Unified Modeling 
-Language. 
-' defval='0' depends='HAVE_DOT'/>
-    <option type='int' id='UML_LIMIT_NUM_FIELDS' docs='
-If the UML_LOOK tag is enabled, the fields and methods are shown inside 
-the class node. If there are many fields or methods and many nodes the 
-graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS 
-threshold limits the number of items for each type to make the size more 
-manageable. Set this to 0 for no limit. Note that the threshold may be 
-exceeded by 50% before the limit is enforced.
-' defval='10' minval='0' maxval='100' depends='HAVE_DOT'/>
-    <option type='bool' id='TEMPLATE_RELATIONS' docs='
-If set to YES, the inheritance and collaboration graphs will show the 
-relations between templates and their instances. 
-' defval='0' depends='HAVE_DOT'/>
-    <option type='bool' id='INCLUDE_GRAPH' docs='
-If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
-tags are set to YES then doxygen will generate a graph for each documented 
-file showing the direct and indirect include dependencies of the file with 
-other documented files. 
-' defval='1' depends='HAVE_DOT'/>
-    <option type='bool' id='INCLUDED_BY_GRAPH' docs='
-If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
-HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
-documented header file showing the documented files that directly or 
-indirectly include this file. 
-' defval='1' depends='HAVE_DOT'/>
-    <option type='bool' id='CALL_GRAPH' docs='
-If the CALL_GRAPH and HAVE_DOT options are set to YES then 
-doxygen will generate a call dependency graph for every global function 
-or class method. Note that enabling this option will significantly increase 
-the time of a run. So in most cases it will be better to enable call graphs 
-for selected functions only using the \callgraph command. 
-' defval='0' depends='HAVE_DOT'/>
-    <option type='bool' id='CALLER_GRAPH' docs='
-If the CALLER_GRAPH and HAVE_DOT tags are set to YES then 
-doxygen will generate a caller dependency graph for every global function 
-or class method. Note that enabling this option will significantly increase 
-the time of a run. So in most cases it will be better to enable caller 
-graphs for selected functions only using the \callergraph command. 
-' defval='0' depends='HAVE_DOT'/>
-    <option type='bool' id='GRAPHICAL_HIERARCHY' docs='
-If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
-will generate a graphical hierarchy of all classes instead of a textual one. 
-' defval='1' depends='HAVE_DOT'/>
-    <option type='bool' id='DIRECTORY_GRAPH' docs='
-If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES 
-then doxygen will show the dependencies a directory has on other directories 
-in a graphical way. The dependency relations are determined by the #include 
-relations between the files in the directories. 
-' defval='1' depends='HAVE_DOT'/>
-    <option type='enum' id='DOT_IMAGE_FORMAT' defval='png' docs='
-The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
-generated by dot. Possible values are svg, png, jpg, or gif. 
-If left blank png will be used. If you choose svg you need to set 
-HTML_FILE_EXTENSION to xhtml in order to make the SVG files 
-visible in IE 9+ (other browsers do not have this requirement).
-' depends='HAVE_DOT'>
+    <option type='bool' id='CLASS_DIAGRAMS' defval='1'>
+      <docs>
+<![CDATA[
+ If the \c CLASS_DIAGRAMS tag is set to \c YES doxygen will
+ generate a class diagram (in HTML and \f$\mbox{\LaTeX}\f$) for classes with base or
+ super classes. Setting the tag to \c NO turns the diagrams off. Note that 
+ this option also works with \ref cfg_have_dot "HAVE_DOT" disabled, but it is recommended to 
+ install and use \c dot, since it yields more powerful graphs. 
+]]>
+      </docs>
+    </option>
+    <option type='string' id='MSCGEN_PATH' format='dir' defval=''>
+      <docs>
+<![CDATA[
+ You can define message sequence charts within doxygen comments using the \ref cmdmsc "\\msc" 
+ command. Doxygen will then run the <a href="http://www.mcternan.me.uk/mscgen/">mscgen tool</a>) to 
+ produce the chart and insert it in the documentation. The <code>MSCGEN_PATH</code> tag allows you to 
+ specify the directory where the \c mscgen tool resides. If left empty the tool is assumed to 
+ be found in the default search path.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='HIDE_UNDOC_RELATIONS' defval='1'>
+      <docs>
+<![CDATA[
+ If set to \c YES, the inheritance and collaboration graphs will hide
+ inheritance and usage relations if the target is undocumented
+ or is not a class.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='HAVE_DOT' defval='0'>
+      <docs>
+<![CDATA[
+ If you set the \c HAVE_DOT tag to \c YES then doxygen will assume the \c dot tool is
+ available from the \c path. This tool is part of 
+ <a href="http://www.graphviz.org/">Graphviz</a>, a graph 
+ visualization toolkit from AT\&T and Lucent Bell Labs. The other options in 
+ this section have no effect if this option is set to \c NO
+]]>
+      </docs>
+    </option>
+    <option type='int' id='DOT_NUM_THREADS' defval='0' minval='0' maxval='32' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ The \c DOT_NUM_THREADS specifies the number of \c dot invocations doxygen is 
+ allowed to run in parallel. When set to \c 0 doxygen will 
+ base this on the number of processors available in the system. You can set it 
+ explicitly to a value larger than 0 to get control over the balance 
+ between CPU load and processing speed.  
+]]>
+      </docs>
+    </option>
+    <option type='string' id='DOT_FONTNAME' format='string' defval='Helvetica' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ When you want a differently looking font n the dot files that doxygen generates
+ you can specify the font name 
+ using \c DOT_FONTNAME. You need to make sure dot is able to find the font, 
+ which can be done by putting it in a standard location or by setting the 
+ \c DOTFONTPATH environment variable or by setting \ref cfg_dot_fontpath "DOT_FONTPATH" to the 
+ directory containing the font. 
+]]>
+      </docs>
+    </option>
+    <option type='int' id='DOT_FONTSIZE' minval='4' maxval='24' defval='10' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ The \c DOT_FONTSIZE tag can be used to set the size (in points) of the font of dot graphs.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='DOT_FONTPATH' format='dir' defval='' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ By default doxygen will tell \c dot to use the default font as specified with \ref cfg_dot_fontname "DOT_FONTNAME".
+ If you specify a 
+ different font using \ref cfg_dot_fontname "DOT_FONTNAME" you can set the path where \c dot 
+ can find it using this tag.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='CLASS_GRAPH' defval='1' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ If the \c CLASS_GRAPH tag is set to \c YES then doxygen
+ will generate a graph for each documented class showing the direct and
+ indirect inheritance relations. Setting this tag to \c YES will force 
+ the \ref cfg_class_diagrams "CLASS_DIAGRAMS" tag to \c NO.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='COLLABORATION_GRAPH' defval='1' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ If the \c COLLABORATION_GRAPH tag is set to \c YES then doxygen
+ will generate a graph for each documented class showing the direct and
+ indirect implementation dependencies (inheritance, containment, and
+ class references variables) of the class with other documented classes.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='GROUP_GRAPHS' defval='1' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ If the \c GROUP_GRAPHS tag is set to \c YES then doxygen
+ will generate a graph for groups, showing the direct groups dependencies.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='UML_LOOK' defval='0' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ If the \c UML_LOOK tag is set to \c YES doxygen will generate inheritance and
+ collaboration diagrams in a style similar to the OMG's Unified Modeling
+ Language.
+]]>
+      </docs>
+    </option>
+    <option type='int' id='UML_LIMIT_NUM_FIELDS' defval='10' minval='0' maxval='100' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ If the \ref cfg_uml_look "UML_LOOK" tag is enabled, the fields and methods are shown inside 
+ the class node. If there are many fields or methods and many nodes the 
+ graph may become too big to be useful. The \c UML_LIMIT_NUM_FIELDS 
+ threshold limits the number of items for each type to make the size more 
+ manageable. Set this to 0 for no limit. Note that the threshold may be
+ exceeded by 50% before the limit is enforced. So when you set the threshold
+ to 10, up to 15 fields may appear, but if the number exceeds 15, the
+ total amount of fields shown is limited to 10.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='TEMPLATE_RELATIONS' defval='0' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ If the \c TEMPLATE_RELATIONS tag is set to \c YES then 
+ the inheritance and collaboration graphs will show the relations between templates and their instances.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='INCLUDE_GRAPH' defval='1' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ If the \c INCLUDE_GRAPH, \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" and
+ \ref cfg_search_includes "SEARCH_INCLUDES" 
+ tags are set to \c YES then doxygen will generate a graph for each documented file
+ showing the direct and indirect include dependencies of the file with other
+ documented files.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='INCLUDED_BY_GRAPH' defval='1' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ If the \c INCLUDED_BY_GRAPH, \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" and
+ \ref cfg_search_includes "SEARCH_INCLUDES"
+ tags are set to \c YES then doxygen will generate a graph for each documented file
+ showing the direct and indirect include dependencies of the file with other
+ documented files.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='CALL_GRAPH' defval='0' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ If the \c CALL_GRAPH tag is set to \c YES then doxygen will 
+ generate a call dependency graph for every global function or class method. 
+ <br>Note that enabling this option will significantly increase the time of a run.
+ So in most cases it will be better to enable call graphs for selected 
+ functions only using the \ref cmdcallgraph "\\callgraph" command.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='CALLER_GRAPH' defval='0' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ If the \c CALLER_GRAPH tag is set to \c YES then doxygen will 
+ generate a caller dependency graph for every global function or class method. 
+ <br>Note that enabling this option will significantly increase the time of a run.
+ So in most cases it will be better to enable caller graphs for selected 
+ functions only using the \ref cmdcallergraph "\\callergraph" command.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='GRAPHICAL_HIERARCHY' defval='1' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ If the \c GRAPHICAL_HIERARCHY tag is set to \c YES then 
+ doxygen will graphical hierarchy of all classes instead of a textual one.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='DIRECTORY_GRAPH' defval='1' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ If the \c DIRECTORY_GRAPH tag is set 
+ to \c YES then doxygen will show the dependencies a directory has on other directories
+ in a graphical way. The dependency relations are determined by the \c \#include
+ relations between the files in the directories.
+]]>
+      </docs>
+    </option>
+    <option type='enum' id='DOT_IMAGE_FORMAT' defval='png' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ The \c DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+ generated by \c dot.
+ \note If you choose \c svg you need to set 
+ \ref cfg_html_file_extension "HTML_FILE_EXTENSION" to \c xhtml in order to make the SVG files
+ visible in IE 9+ (other browsers do not have this requirement).
+]]>
+      </docs>
       <value name='png'/>
       <value name='jpg'/>
       <value name='gif'/>
       <value name='svg'/>
     </option>
-    <option type='bool' id='INTERACTIVE_SVG' docs='
-If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to 
-enable generation of interactive SVG images that allow zooming and panning. 
-Note that this requires a modern browser other than Internet Explorer. 
-Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you 
-need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files 
-visible. Older versions of IE do not have SVG support. 
-' defval='0' depends='HAVE_DOT'/>
-    <option type='string' id='DOT_PATH' format='dir' docs='
-The tag DOT_PATH can be used to specify the path where the dot tool can be 
-found. If left blank, it is assumed the dot tool can be found in the path. 
-' defval='' depends='HAVE_DOT'/>
-    <option type='list' id='DOTFILE_DIRS' format='dir' docs='
-The DOTFILE_DIRS tag can be used to specify one or more directories that 
-contain dot files that are included in the documentation (see the 
-\dotfile command). 
-' depends='HAVE_DOT'>
-    </option>
-    <option type='list' id='MSCFILE_DIRS' format='dir' docs='
-The MSCFILE_DIRS tag can be used to specify one or more directories that 
-contain msc files that are included in the documentation (see the 
-\mscfile command). 
-' >
-    </option>
-    <option type='int' id='DOT_GRAPH_MAX_NODES' docs='
-The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 
-nodes that will be shown in the graph. If the number of nodes in a graph 
-becomes larger than this value, doxygen will truncate the graph, which is 
-visualized by representing a node as a red box. Note that doxygen if the 
-number of direct children of the root node in a graph is already larger than 
-DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note 
-that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. 
-' minval='0' maxval='10000' defval='50' depends='HAVE_DOT'/>
-    <option type='int' id='MAX_DOT_GRAPH_DEPTH' docs='
-The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
-graphs generated by dot. A depth value of 3 means that only nodes reachable 
-from the root by following a path via at most 3 edges will be shown. Nodes 
-that lay further from the root node will be omitted. Note that setting this 
-option to 1 or 2 may greatly reduce the computation time needed for large 
-code bases. Also note that the size of a graph can be further restricted by 
-DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. 
-' minval='0' maxval='1000' defval='0' depends='HAVE_DOT'/>
-    <option type='bool' id='DOT_TRANSPARENT' docs='
-Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
-background. This is disabled by default, because dot on Windows does not 
-seem to support this out of the box. Warning: Depending on the platform used, 
-enabling this option may lead to badly anti-aliased labels on the edges of 
-a graph (i.e. they become hard to read). 
-' defval='0' depends='HAVE_DOT'/>
-    <option type='bool' id='DOT_MULTI_TARGETS' docs='
-Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
-files in one run (i.e. multiple -o and -T options on the command line). This 
-makes dot run faster, but since only newer versions of dot (&gt;1.8.10) 
-support this, this feature is disabled by default. 
-' defval='0' depends='HAVE_DOT'/>
-    <option type='bool' id='GENERATE_LEGEND' docs='
-If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
-generate a legend page explaining the meaning of the various boxes and 
-arrows in the dot generated graphs. 
-' defval='1' depends='HAVE_DOT'/>
-    <option type='bool' id='DOT_CLEANUP' docs='
-If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
-remove the intermediate dot files that are used to generate 
-the various graphs. 
-' defval='1' depends='HAVE_DOT'/>
+    <option type='bool' id='INTERACTIVE_SVG' defval='0' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ If \ref cfg_dot_image_format "DOT_IMAGE_FORMAT" is set to \c svg, then this option can be set to \c YES to
+ enable generation of interactive SVG images that allow zooming and panning. 
+ <br>Note that this requires a modern browser other than Internet Explorer. 
+ Tested and working are Firefox, Chrome, Safari, and Opera.
+ \note For IE 9+ you need to set \ref cfg_html_file_extension "HTML_FILE_EXTENSION" to \c xhtml in order 
+ to make the SVG files visible. Older versions of IE do not have SVG support.
+]]>
+      </docs>
+    </option>
+    <option type='string' id='DOT_PATH' format='dir' defval='' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ The \c DOT_PATH tag can be used to specify the path where the \c dot tool can be found. 
+ If left blank, it is assumed the \c dot tool can be found in the \c path. 
+]]>
+      </docs>
+    </option>
+    <option type='list' id='DOTFILE_DIRS' format='dir' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ The \c DOTFILE_DIRS tag can be used to specify one or more directories that 
+ contain dot files that are included in the documentation (see the
+ \ref cmddotfile "\\dotfile" command).
+]]>
+      </docs>
+    </option>
+    <option type='list' id='MSCFILE_DIRS' format='dir'>
+      <docs>
+<![CDATA[
+ The \c MSCFILE_DIRS tag can be used to specify one or more directories that 
+ contain msc files that are included in the documentation (see the
+ \ref cmdmscfile "\\mscfile" command).
+]]>
+      </docs>
+    </option>
+    <option type='int' id='DOT_GRAPH_MAX_NODES' minval='0' maxval='10000' defval='50' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ The \c DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 
+ nodes that will be shown in the graph. If the number of nodes in a graph
+ becomes larger than this value, doxygen will truncate the graph, which is 
+ visualized by representing a node as a red box. Note that doxygen if the number
+ of direct children of the root node in a graph is already larger than
+ \c DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+ that the size of a graph can be further restricted by \ref cfg_max_dot_graph_depth "MAX_DOT_GRAPH_DEPTH".
+]]>
+      </docs>
+    </option>
+    <option type='int' id='MAX_DOT_GRAPH_DEPTH' minval='0' maxval='1000' defval='0' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ The \c MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
+ graphs generated by \c dot. A depth value of 3 means that only nodes reachable
+ from the root by following a path via at most 3 edges will be shown. Nodes
+ that lay further from the root node will be omitted. Note that setting this
+ option to 1 or 2 may greatly reduce the computation time needed for large
+ code bases. Also note that the size of a graph can be further restricted by
+ \ref cfg_dot_graph_max_nodes "DOT_GRAPH_MAX_NODES". Using a depth of 0 means no depth restriction.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='DOT_TRANSPARENT' defval='0' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ Set the \c DOT_TRANSPARENT tag to \c YES to generate images with a transparent
+ background. This is disabled by default, because dot on Windows does not 
+ seem to support this out of the box.
+ <br>
+ Warning: Depending on the platform used, 
+ enabling this option may lead to badly anti-aliased labels on the edges of 
+ a graph (i.e. they become hard to read). 
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='DOT_MULTI_TARGETS' defval='0' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ Set the \c DOT_MULTI_TARGETS tag to \c YES allow dot to generate multiple output
+ files in one run (i.e. multiple -o and -T options on the command line). This
+ makes \c dot run faster, but since only newer versions of \c dot (>1.8.10)
+ support this, this feature is disabled by default.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='GENERATE_LEGEND' defval='1' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+ If the \c GENERATE_LEGEND tag is set to \c YES doxygen will
+ generate a legend page explaining the meaning of the various boxes and
+ arrows in the dot generated graphs.
+]]>
+      </docs>
+    </option>
+    <option type='bool' id='DOT_CLEANUP' defval='1' depends='HAVE_DOT'>
+      <docs>
+<![CDATA[
+If the \c DOT_CLEANUP tag is set to \c YES doxygen will
+remove the intermediate dot files that are used to generate the various graphs.
+]]>
+      </docs>
+    </option>
+
     <option type='obsolete' id='USE_WINDOWS_ENCODING'/>
     <option type='obsolete' id='DETAILS_AT_TOP'/>
     <option type='obsolete' id='QTHELP_FILE'/>
index 495f290..4aed8bf 100755 (executable)
@@ -1,10 +1,11 @@
-# python script to generate configoptions.cpp from config.xml
+#!/usr/bin/python
+# python script to generate configoptions.cpp and config.doc from config.xml
 #
 # Copyright (C) 1997-2013 by Dimitri van Heesch.
 #
 # Permission to use, copy, modify, and distribute this software and its
-# documentation under the terms of the GNU General Public License is hereby 
-# granted. No representations are made about the suitability of this software 
+# documentation under the terms of the GNU General Public License is hereby
+# granted. No representations are made about the suitability of this software
 # for any purpose. It is provided "as is" without express or implied warranty.
 # See the GNU General Public License for more details.
 #
 #
 import xml.dom.minidom
 import sys
+import re
+import textwrap
 from xml.dom import minidom, Node
 
-def addValues(var,node):
-        for n in node.childNodes:
+
+def transformDocs(doc):
+       # join lines, unless it is an empty line
+       # remove doxygen layout constructs
+       doc = doc.strip()
+       doc = doc.replace("\n", " ")
+       doc = doc.replace("\r", " ")
+       doc = doc.replace("\t", " ")
+       doc = doc.replace("\\&", "&")
+       doc = doc.replace("\\c ", " ")
+       doc = doc.replace("\\b ", " ")
+       doc = doc.replace("\\e ", " ")
+       doc = doc.replace("\\$", "$")
+       doc = doc.replace("\\#include ", "#include ")
+       doc = doc.replace("\\#undef ", "#undef ")
+       doc = doc.replace("-# ", "\n - ")
+       doc = doc.replace(" - ", "\n - ")
+       doc = doc.replace("\\sa", "\nSee also: ")
+       doc = doc.replace("\\par", "\n")
+       doc = doc.replace("@note", "\nNote:")
+       doc = doc.replace("\\note", "\nNote:")
+       doc = doc.replace("\\verbatim", "\n")
+       doc = doc.replace("\\endverbatim", "\n")
+       doc = doc.replace("<code>", "")
+       doc = doc.replace("</code>", "")
+       doc = doc.replace("`", "")
+       doc = doc.replace("\\<", "<")
+       doc = doc.replace("\\>", ">")
+       doc = doc.replace("\\@", "@")
+       doc = doc.replace("\\\\", "\\")
+       # \ref name "description" -> description
+       doc = re.sub('\\\\ref +[^ ]* +"([^"]*)"', '\\1', doc)
+       # \ref specials
+       # \ref <key> -> description
+       doc = re.sub('\\\\ref +doxygen_usage', '"Doxygen usage"', doc)
+       doc = re.sub('\\\\ref +extsearch', '"External Indexing and Searching"',
+                                doc)
+       doc = re.sub('\\\\ref +external', '"Linking to external documentation"',
+                                doc)
+       # fallback for not handled
+       doc = re.sub('\\\\ref', '', doc)
+       #<a href="address">description</a> -> description (see: address)
+       doc = re.sub('<a +href="([^"]*)" *>([^<]*)</a>', '\\2 (see: \\1)', doc)
+       # LaTeX name as formula -> LaTeX
+       doc = doc.replace("\\f$\\mbox{\\LaTeX}\\f$", "LaTeX")
+       # Other forula's (now just 2) so explicitely mentioned.
+       doc = doc.replace("\\f$2^{(16+\\mbox{LOOKUP\\_CACHE\\_SIZE})}\\f$",
+                                         "2^(16+LOOKUP_CACHE_SIZE)")
+       doc = doc.replace("\\f$2^{16} = 65536\\f$", "2^16=65536")
+       # remove consecutive spaces
+       doc = re.sub(" +", " ", doc)
+       # a dirty trick to get an extra empty line in Doxyfile documentation.
+       # <br> will be removed later on again, we need it here otherwise splitlines
+       # will filter the extra line.
+       doc = doc.replace("<br>", "\n<br>\n")
+       # a dirty trick to go to the next line in Doxyfile documentation.
+       # <br/> will be removed later on again, we need it here otherwise splitlines
+       # will filter the line break.
+       doc = doc.replace("<br/>", "\n<br/>\n")
+       #
+       doc = doc.splitlines()
+       split_doc = []
+       for line in doc:
+               split_doc += textwrap.wrap(line, 78)
+       # replace \ by \\, replace " by \", and '  ' by a newline with end string
+       # and start string at next line
+       docC = []
+       for line in split_doc:
+               if (line.strip() != "<br/>"):
+                       docC.append(line.strip().replace('\\', '\\\\').
+                                       replace('"', '\\"').replace("<br>", ""))
+       return docC
+
+
+def collectValues(node):
+       values = []
+       for n in node.childNodes:
+               if (n.nodeName == "value"):
+                       if n.nodeType == Node.ELEMENT_NODE:
+                               if n.getAttribute('name') != "":
+                                       if n.getAttribute('show_docu') != "NO":
+                                               name = "<code>" + n.getAttribute('name') + "</code>"
+                                               desc = n.getAttribute('desc')
+                                               if (desc != ""):
+                                                       name += " " + desc
+                                               values.append(name)
+       return values
+
+
+def addValues(var, node):
+       for n in node.childNodes:
+               if (n.nodeName == "value"):
+                       if n.nodeType == Node.ELEMENT_NODE:
+                               name = n.getAttribute('name')
+                               print "  %s->addValue(\"%s\");" % (var, name)
+
+
+def parseHeader(node,objName):
+       doc = ""
+       for n in node.childNodes:
                if n.nodeType == Node.ELEMENT_NODE:
-                       name = n.getAttribute('name');
-                       print "  %s->addValue(\"%s\");" % (var,name)
-       
+                       if (n.nodeName == "docs"):
+                               if (n.getAttribute('doxyfile') != "0"):
+                                       doc += parseDocs(n)
+       docC = transformDocs(doc)
+       print "  %s->setHeader(" % (objName)
+       rng = len(docC)
+       for i in range(rng):
+               line = docC[i]
+               if i != rng - 1:  # since we go from 0 to rng-1
+                       print "              \"%s\\n\"" % (line)
+               else:
+                       print "              \"%s\"" % (line)
+       print "             );"
+
+
+def prepCDocs(node):
+       type = node.getAttribute('type')
+       format = node.getAttribute('format')
+       defval = node.getAttribute('defval')
+       adefval = node.getAttribute('altdefval')
+       doc = "";
+       if (type != 'obsolete'):
+               for n in node.childNodes:
+                       if (n.nodeName == "docs"):
+                               if (n.getAttribute('doxyfile') != "0"):
+                                       if n.nodeType == Node.ELEMENT_NODE:
+                                               doc += parseDocs(n)
+               if (type == 'enum'):
+                       values = collectValues(node)
+                       doc += "<br/>Possible values are: "
+                       rng = len(values)
+                       for i in range(rng):
+                               val = values[i]
+                               if i == rng - 2:
+                                       doc += "%s and " % (val)
+                               elif i == rng - 1:
+                                       doc += "%s." % (val)
+                               else:
+                                       doc += "%s, " % (val)
+                       if (defval != ""):
+                               doc += "<br/>The default value is: <code>%s</code>." % (defval)
+               elif (type == 'int'):
+                       minval = node.getAttribute('minval')
+                       maxval = node.getAttribute('maxval')
+                       doc += "<br/>%s: %s, %s: %s, %s: %s." % (" Minimum value", minval, 
+                                        "maximum value", maxval,
+                                        "default value", defval)
+               elif (type == 'bool'):
+                       if (node.hasAttribute('altdefval')):
+                         doc += "<br/>%s: %s." % ("The default value is", "system dependent")
+                       else:
+                         doc += "<br/>%s: %s." % ("The default value is", "YES" if (defval == "1") else "NO")
+               elif (type == 'list'):
+                       if format == 'string':
+                               values = collectValues(node)
+                               rng = len(values)
+                               for i in range(rng):
+                                       val = values[i]
+                                       if i == rng - 2:
+                                               doc += "%s and " % (val)
+                                       elif i == rng - 1:
+                                               doc += "%s." % (val)
+                                       else:
+                                               doc += "%s, " % (val)
+               elif (type == 'string'):
+                       if format == 'dir':
+                               if defval != '':
+                                       doc += "<br/>The default directory is: <code>%s</code>." % (
+                                               defval)
+                       elif format == 'file':
+                               abspath = node.getAttribute('abspath')
+                               if defval != '':
+                                       if abspath != '1':
+                                               doc += "<br/>The default file is: <code>%s</code>." % (
+                                                       defval)
+                                       else:
+                                               doc += "<br/>%s: %s%s%s." % (
+                                                       "The default file (with absolute path) is",
+                                                       "<code>",defval,"</code>")
+                               else:
+                                       if abspath == '1':
+                                               doc += "<br/>The file has to be specified with full path."
+                       else: # format == 'string':
+                               if defval != '':
+                                       doc += "<br/>The default value is: <code>%s</code>." % (
+                                               defval)
+               # depends handling
+               if (node.hasAttribute('depends')):
+                       depends = node.getAttribute('depends')
+                       doc += "<br/>%s \\ref cfg_%s \"%s\" is set to \\c YES." % (
+                               "This tag requires that the tag", depends.lower(), depends.upper())
+
+       docC = transformDocs(doc)
+       return docC;
+
 def parseOption(node):
-       name    = node.getAttribute('id')
-       type    = node.getAttribute('type')
-       format  = node.getAttribute('format')
-       doc     = node.getAttribute('docs')
-       defval  = node.getAttribute('defval')
+       # Handling part for Doxyfile
+       name = node.getAttribute('id')
+       type = node.getAttribute('type')
+       format = node.getAttribute('format')
+       defval = node.getAttribute('defval')
        adefval = node.getAttribute('altdefval')
        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
-        docC    = doc.strip().replace('\\','\\\\').replace('"','\\"').replace('  ','\\n"\n                 "')
-       if len(setting)>0:
-               print "#if %s" % (setting)
+       docC = prepCDocs(node);
+       if len(setting) > 0:
+               print "#if %s" % (setting)
        print "  //----"
-        if type=='bool':
-               if len(adefval)>0:
+       if type == 'bool':
+               if len(adefval) > 0:
                        enabled = adefval
-               elif defval=='1':
+               elif defval == '1':
                        enabled = "TRUE"
                else:
                        enabled = "FALSE"
                print "  cb = cfg->addBool("
-               print "                 \"%s\"," % (name)
-               print "                 \"%s\"," % (docC)
-               print "                 %s"  % (enabled)
-                print "                );"
-               if depends!='':
+               print "             \"%s\"," % (name)
+               rng = len(docC)
+               for i in range(rng):
+                       line = docC[i]
+                       if i != rng - 1:  # since we go from 0 to rng-1
+                               print "              \"%s\\n\"" % (line)
+                       else:
+                               print "              \"%s\"," % (line)
+               print "              %s" % (enabled)
+               print "             );"
+               if depends != '':
                        print "  cb->addDependency(\"%s\");" % (depends)
-       elif type=='string':
+       elif type == 'string':
                print "  cs = cfg->addString("
-               print "                 \"%s\"," % (name)
-               print "                 \"%s\""  % (docC)
-                print "                );"
-               if defval!='':
+               print "              \"%s\"," % (name)
+               rng = len(docC)
+               for i in range(rng):
+                       line = docC[i]
+                       if i != rng - 1:  # since we go from 0 to rng-1
+                               print "              \"%s\\n\"" % (line)
+                       else:
+                               print "              \"%s\"" % (line)
+               print "             );"
+               if defval != '':
                        print "  cs->setDefaultValue(\"%s\");" % (defval)
-               if format=='file':
+               if format == 'file':
                        print "  cs->setWidgetType(ConfigString::File);"
-               elif format=='dir':
+               elif format == 'dir':
                        print "  cs->setWidgetType(ConfigString::Dir);"
-               if depends!='':
+               if depends != '':
                        print "  cs->addDependency(\"%s\");" % (depends)
-       elif type=='enum':
+       elif type == 'enum':
                print "  ce = cfg->addEnum("
-               print "                 \"%s\"," % (name)
-               print "                 \"%s\"," % (docC)
-               print "                 \"%s\""  % (defval)
-                print "                );"
-                addValues("ce",node)
-               if depends!='':
+               print "              \"%s\"," % (name)
+               rng = len(docC)
+               for i in range(rng):
+                       line = docC[i]
+                       if i != rng - 1:  # since we go from 0 to rng-1
+                               print "              \"%s\\n\"" % (line)
+                       else:
+                               print "              \"%s\"," % (line)
+               print "              \"%s\"" % (defval)
+               print "             );"
+               addValues("ce", node)
+               if depends != '':
                        print "  ce->addDependency(\"%s\");" % (depends)
-       elif type=='int':
+       elif type == 'int':
                minval = node.getAttribute('minval')
                maxval = node.getAttribute('maxval')
                print "  ci = cfg->addInt("
-               print "                 \"%s\"," % (name)
-               print "                 \"%s\"," % (docC)
-               print "                 %s,%s,%s" % (minval,maxval,defval)
-                print "                );"
-               if depends!='':
+               print "              \"%s\"," % (name)
+               rng = len(docC)
+               for i in range(rng):
+                       line = docC[i]
+                       if i != rng - 1:  # since we go from 0 to rng-1
+                               print "              \"%s\\n\"" % (line)
+                       else:
+                               print "              \"%s\"," % (line)
+               print "              %s,%s,%s" % (minval, maxval, defval)
+               print "             );"
+               if depends != '':
                        print "  ci->addDependency(\"%s\");" % (depends)
-       elif type=='list':
+       elif type == 'list':
                print "  cl = cfg->addList("
-               print "                 \"%s\"," % (name)
-               print "                 \"%s\""  % (docC)
-                print "                );"
-               addValues("cl",node)
-               if depends!='':
+               print "              \"%s\"," % (name)
+               rng = len(docC)
+               for i in range(rng):
+                       line = docC[i]
+                       if i != rng - 1:  # since we go from 0 to rng-1
+                               print "              \"%s\\n\"" % (line)
+                       else:
+                               print "              \"%s\"" % (line)
+               print "             );"
+               addValues("cl", node)
+               if depends != '':
                        print "  cl->addDependency(\"%s\");" % (depends)
-               if format=='file':
+               if format == 'file':
                        print "  cl->setWidgetType(ConfigList::File);"
-               elif format=='dir':
+               elif format == 'dir':
                        print "  cl->setWidgetType(ConfigList::Dir);"
-               elif format=='filedir':
+               elif format == 'filedir':
                        print "  cl->setWidgetType(ConfigList::FileAndDir);"
-       elif type=='obsolete':
+       elif type == 'obsolete':
                print "  cfg->addObsolete(\"%s\");" % (name)
-       if len(setting)>0:
-               print "#else"
+       if len(setting) > 0:
+               print "#else"
                print "  cfg->addDisabled(\"%s\");" % (name)
-               print "#endif"
-               
-
+               print "#endif"
 
 
 def parseGroups(node):
        name = node.getAttribute('name')
-       doc  = node.getAttribute('docs')
-        print "  //---------------------------------------------------------------------------";
-       print "  cfg->addInfo(\"%s\",\"%s\");" % (name,doc)
-        print "  //---------------------------------------------------------------------------";
-        print
-        for n in node.childNodes:
+       doc = node.getAttribute('docs')
+       print "%s%s" % ("  //-----------------------------------------",
+                                       "----------------------------------")
+       print "  cfg->addInfo(\"%s\",\"%s\");" % (name, doc)
+       print "%s%s" % ("  //-----------------------------------------",
+                                       "----------------------------------")
+       print
+       for n in node.childNodes:
                if n.nodeType == Node.ELEMENT_NODE:
                        parseOption(n)
-       
+
+def parseGroupCDocs(node):
+       for n in node.childNodes:
+               if n.nodeType == Node.ELEMENT_NODE:
+                       type = n.getAttribute('type')
+                       name = n.getAttribute('id')
+                       docC = prepCDocs(n);
+                       if type != 'obsolete':
+                               print "  doc->add("
+                               print "              \"%s\"," % (name)
+                               rng = len(docC)
+                               for i in range(rng):
+                                       line = docC[i]
+                                       if i != rng - 1:  # since we go from 0 to rng-1
+                                               print "              \"%s\\n\"" % (line)
+                                       else:
+                                               print "              \"%s\"" % (line)
+                               print "          );"
+
+def parseOptionDoc(node, first):
+       # Handling part for documentation
+       name = node.getAttribute('id')
+       type = node.getAttribute('type')
+       format = node.getAttribute('format')
+       defval = node.getAttribute('defval')
+       adefval = node.getAttribute('altdefval')
+       depends = node.getAttribute('depends')
+       setting = node.getAttribute('setting')
+       doc = ""
+       if (type != 'obsolete'):
+               for n in node.childNodes:
+                       if (n.nodeName == "docs"):
+                               if (n.getAttribute('documentation') != "0"):
+                                       if n.nodeType == Node.ELEMENT_NODE:
+                                               doc += parseDocs(n)
+               if (first):
+                       print " \\anchor cfg_%s" % (name.lower())
+                       print "<dl>"
+                       print ""
+                       print "<dt>\\c %s <dd>" % (name)
+               else:
+                       print " \\anchor cfg_%s" % (name.lower())
+                       print "<dt>\\c %s <dd>" % (name)
+               print " \\addindex %s" % (name)
+               print doc
+               if (type == 'enum'):
+                       values = collectValues(node)
+                       print ""
+                       print "Possible values are: "
+                       rng = len(values)
+                       for i in range(rng):
+                               val = values[i]
+                               if i == rng - 2:
+                                       print "%s and " % (val)
+                               elif i == rng - 1:
+                                       print "%s." % (val)
+                               else:
+                                       print "%s, " % (val)
+                       if (defval != ""):
+                               print ""
+                               print ""
+                               print "The default value is: <code>%s</code>." % (defval)
+                       print ""
+               elif (type == 'int'):
+                       minval = node.getAttribute('minval')
+                       maxval = node.getAttribute('maxval')
+                       print ""
+                       print ""
+                       print "%s: %s%s%s, %s: %s%s%s, %s: %s%s%s." % (
+                                        " Minimum value", "<code>", minval, "</code>", 
+                                        "maximum value", "<code>", maxval, "</code>",
+                                        "default value", "<code>", defval, "</code>")
+                       print ""
+               elif (type == 'bool'):
+                       print ""
+                       print ""
+                       if (node.hasAttribute('altdefval')):
+                               print "The default value is: system dependent."
+                       else:
+                               print "The default value is: <code>%s</code>." % (
+                                       "YES" if (defval == "1") else "NO")
+                       print ""
+               elif (type == 'list'):
+                       if format == 'string':
+                               values = collectValues(node)
+                               rng = len(values)
+                               for i in range(rng):
+                                       val = values[i]
+                                       if i == rng - 2:
+                                               print "%s and " % (val)
+                                       elif i == rng - 1:
+                                               print "%s." % (val)
+                                       else:
+                                               print "%s, " % (val)
+                       print ""
+               elif (type == 'string'):
+                       if format == 'dir':
+                               if defval != '':
+                                       print ""
+                                       print "The default directory is: <code>%s</code>." % (
+                                               defval)
+                       elif format == 'file':
+                               abspath = node.getAttribute('abspath')
+                               if defval != '':
+                                       print ""
+                                       if abspath != '1':
+                                               print "The default file is: <code>%s</code>." % (
+                                                       defval)
+                                       else:
+                                               print "%s: %s%s%s." % (
+                                                       "The default file (with absolute path) is",
+                                                       "<code>",defval,"</code>")
+                               else:
+                                       if abspath == '1':
+                                               print ""
+                                               print "The file has to be specified with full path."
+                       else: # format == 'string':
+                               if defval != '':
+                                       print ""
+                                       print "The default value is: <code>%s</code>." % (
+                                               defval)
+                       print ""
+               # depends handling
+               if (node.hasAttribute('depends')):
+                       depends = node.getAttribute('depends')
+                       print ""
+                       print "%s \\ref cfg_%s \"%s\" is set to \\c YES." % (
+                               "This tag requires that the tag", depends.lower(), depends.upper())
+               return False
+
+
+def parseGroupsDoc(node):
+       name = node.getAttribute('name')
+       doc = node.getAttribute('docs')
+       print "\section config_%s %s" % (name.lower(), doc)
+       # Start of list has been moved to the first option for better
+       # anchor placement
+       #  print "<dl>"
+       #  print ""
+       first = True
+       for n in node.childNodes:
+               if n.nodeType == Node.ELEMENT_NODE:
+                       first = parseOptionDoc(n, first)
+       if (not first):
+               print "</dl>"
+
+
+def parseGroupsList(node, commandsList):
+       list = ()
+       for n in node.childNodes:
+               if n.nodeType == Node.ELEMENT_NODE:
+                       type = n.getAttribute('type')
+                       if type != 'obsolete':
+                               commandsList = commandsList + (n.getAttribute('id'),)
+       return commandsList
+
+
+def parseDocs(node):
+       doc = ""
+       for n in node.childNodes:
+               if n.nodeType == Node.TEXT_NODE:
+                       doc += n.nodeValue.strip()
+               if n.nodeType == Node.CDATA_SECTION_NODE:
+                       doc += n.nodeValue.rstrip("\r\n ").lstrip("\r\n")
+       #doc += "<br>"
+       return doc
+
+
+def parseHeaderDoc(node):
+       doc = ""
+       for n in node.childNodes:
+               if n.nodeType == Node.ELEMENT_NODE:
+                       if (n.nodeName == "docs"):
+                               if (n.getAttribute('documentation') != "0"):
+                                       doc += parseDocs(n)
+       print doc
+
+
+def parseFooterDoc(node):
+       doc = ""
+       for n in node.childNodes:
+               if n.nodeType == Node.ELEMENT_NODE:
+                       if (n.nodeName == "docs"):
+                               if (n.getAttribute('documentation') != "0"):
+                                       doc += parseDocs(n)
+       print doc
+
 
 def main():
-       doc = xml.dom.minidom.parse(sys.argv[1])
+       if len(sys.argv)<3 or (not sys.argv[1] in ['-doc','-cpp','-wiz']):
+               sys.exit('Usage: %s -doc|-cpp|-wiz config.xml' % sys.argv[0])
+       try:
+               doc = xml.dom.minidom.parse(sys.argv[2])
+       except Exception as inst:
+               print >> sys.stderr
+               print >> sys.stderr, inst
+               print >> sys.stderr
+               sys.exit(1)
        elem = doc.documentElement
-        print "/* WARNING: This file is generated!"
-        print " * Do not edit this file, but edit config.xml instead and run"
-        print " * python configgen.py to regenerate this file!"
-        print " */"
-        print ""
-        print "#include \"configoptions.h\""
-        print "#include \"config.h\""
-        print "#include \"portable.h\""
-        print "#include \"settings.h\""
-        print ""
-        print "void addConfigOptions(Config *cfg)"
-        print "{"
-        print "  ConfigString *cs;"
-        print "  ConfigEnum   *ce;"
-        print "  ConfigList   *cl;"
-        print "  ConfigInt    *ci;"
-        print "  ConfigBool   *cb;"
-        print ""
-       for n in elem.childNodes:
-               if n.nodeType == Node.ELEMENT_NODE:
-                       parseGroups(n)
-        print "}"
+       if (sys.argv[1] == "-doc"):
+               print "/* WARNING: This file is generated!"
+               print " * Do not edit this file, but edit config.xml instead and run"
+               print " * python configgen.py -doc config.xml to regenerate this file!"
+               print " */"
+               # process header
+               for n in elem.childNodes:
+                       if n.nodeType == Node.ELEMENT_NODE:
+                               if (n.nodeName == "header"):
+                                       parseHeaderDoc(n)
+               # generate list with all commands
+               commandsList = ()
+               for n in elem.childNodes:
+                       if n.nodeType == Node.ELEMENT_NODE:
+                               if (n.nodeName == "group"):
+                                       commandsList = parseGroupsList(n, commandsList)
+               print "\\secreflist"
+               for x in sorted(commandsList):
+                       print "\\refitem cfg_%s %s" % (x.lower(), x)
+               print "\\endsecreflist"
+               # process groups and options
+               for n in elem.childNodes:
+                       if n.nodeType == Node.ELEMENT_NODE:
+                               if (n.nodeName == "group"):
+                                       parseGroupsDoc(n)
+               # process footers
+               for n in elem.childNodes:
+                       if n.nodeType == Node.ELEMENT_NODE:
+                               if (n.nodeName == "footer"):
+                                       parseFooterDoc(n)
+       elif (sys.argv[1] == "-cpp"):
+               print "/* WARNING: This file is generated!"
+               print " * Do not edit this file, but edit config.xml instead and run"
+               print " * python configgen.py -cpp config.xml to regenerate this file!"
+               print " */"
+               print ""
+               print "#include \"configoptions.h\""
+               print "#include \"config.h\""
+               print "#include \"portable.h\""
+               print "#include \"settings.h\""
+               print ""
+               print "void addConfigOptions(Config *cfg)"
+               print "{"
+               print "  ConfigString *cs;"
+               print "  ConfigEnum   *ce;"
+               print "  ConfigList   *cl;"
+               print "  ConfigInt    *ci;"
+               print "  ConfigBool   *cb;"
+               print ""
+               # process header
+               for n in elem.childNodes:
+                       if n.nodeType == Node.ELEMENT_NODE:
+                               if (n.nodeName == "header"):
+                                       parseHeader(n,'cfg')
+               for n in elem.childNodes:
+                       if n.nodeType == Node.ELEMENT_NODE:
+                               if (n.nodeName == "group"):
+                                       parseGroups(n)
+               print "}"
+       elif (sys.argv[1] == "-wiz"):
+               print "/* WARNING: This file is generated!"
+               print " * Do not edit this file, but edit config.xml instead and run"
+               print " * python configgen.py -wiz config.xml to regenerate this file!"
+               print " */"
+               print "#include \"configdoc.h\""
+               print "#include \"docintf.h\""
+               print ""
+               print "void addConfigDocs(DocIntf *doc)"
+               print "{"
+               for n in elem.childNodes:
+                       if n.nodeType == Node.ELEMENT_NODE:
+                               if (n.nodeName == "header"):
+                                       parseHeader(n,'doc')
+               for n in elem.childNodes:
+                       if n.nodeType == Node.ELEMENT_NODE:
+                               if (n.nodeName == "group"):
+                                       parseGroupCDocs(n)
+               print "}"
 
 if __name__ == '__main__':
        main()
-
index 11a7f43..7f7d454 100644 (file)
@@ -1,6 +1,6 @@
 /* WARNING: This file is generated!
  * Do not edit this file, but edit config.xml instead and run
- * python configgen.py to regenerate this file!
+ * python configgen.py -cpp config.xml to regenerate this file!
  */
 
 #include "configoptions.h"
@@ -16,86 +16,104 @@ void addConfigOptions(Config *cfg)
   ConfigInt    *ci;
   ConfigBool   *cb;
 
+  cfg->setHeader(
+              "This file describes the settings to be used by the documentation system\n"
+              "doxygen (www.doxygen.org) for a project.\n"
+              "\n"
+              "All text after a double hash (##) is considered a comment and is placed in\n"
+              "front of the TAG it is preceding.\n"
+              "\n"
+              "All text after a single hash (#) is considered a comment and will be ignored.\n"
+              "The format is:\n"
+              "TAG = value [value, ...]\n"
+              "For lists, items can also be appended using:\n"
+              "TAG += value [value, ...]\n"
+              "Values that contain spaces should be placed between quotes (\\\" \\\")."
+             );
   //---------------------------------------------------------------------------
   cfg->addInfo("Project","Project related configuration options");
   //---------------------------------------------------------------------------
 
   //----
   cs = cfg->addString(
-                 "DOXYFILE_ENCODING",
-                 "This tag specifies the encoding used for all characters in the config file\n"
-                 "that follow. The default is UTF-8 which is also the encoding used for all\n"
-                 "text before the first occurrence of this tag. Doxygen uses libiconv (or the\n"
-                 "iconv built into libc) for the transcoding. See\n"
-                 "http://www.gnu.org/software/libiconv for the list of possible encodings."
-                );
+              "DOXYFILE_ENCODING",
+              "This tag specifies the encoding used for all characters in the config file\n"
+              "that follow. The default is UTF-8 which is also the encoding used for all text\n"
+              "before the first occurrence of this tag. Doxygen uses libiconv (or the iconv\n"
+              "built into libc) for the transcoding. See http://www.gnu.org/software/libiconv\n"
+              "for the list of possible encodings.\n"
+              "The default value is: UTF-8."
+             );
   cs->setDefaultValue("UTF-8");
   //----
   cs = cfg->addString(
-                 "PROJECT_NAME",
-                 "The PROJECT_NAME tag is a single word (or sequence of words) that should\n"
-                 "identify the project. Note that if you do not use Doxywizard you need\n"
-                 "to put quotes around the project name if it contains spaces."
-                );
+              "PROJECT_NAME",
+              "The PROJECT_NAME tag is a single word (or a sequence of words surrounded by\n"
+              "double-quotes, unless you are using Doxywizard) that should identify the\n"
+              "project for which the documentation is generated. This name is used in the\n"
+              "title of most generated pages and in a few other places.\n"
+              "The default value is: My Project."
+             );
   cs->setDefaultValue("My Project");
   //----
   cs = cfg->addString(
-                 "PROJECT_NUMBER",
-                 "The PROJECT_NUMBER tag can be used to enter a project or revision number.\n"
-                 "This could be handy for archiving the generated documentation or\n"
-                 "if some version control system is used."
-                );
+              "PROJECT_NUMBER",
+              "The PROJECT_NUMBER tag can be used to enter a project or revision number. This\n"
+              "could be handy for archiving the generated documentation or if some version\n"
+              "control system is used."
+             );
   //----
   cs = cfg->addString(
-                 "PROJECT_BRIEF",
-                 "Using the PROJECT_BRIEF tag one can provide an optional one line description\n"
-                 "for a project that appears at the top of each page and should give viewer\n"
-                 "a quick idea about the purpose of the project. Keep the description short."
-                );
+              "PROJECT_BRIEF",
+              "Using the PROJECT_BRIEF tag one can provide an optional one line description\n"
+              "for a project that appears at the top of each page and should give viewer a\n"
+              "quick idea about the purpose of the project. Keep the description short."
+             );
   //----
   cs = cfg->addString(
-                 "PROJECT_LOGO",
-                 "With the PROJECT_LOGO tag one can specify an logo or icon that is\n"
-                 "included in the documentation. The maximum height of the logo should not\n"
-                 "exceed 55 pixels and the maximum width should not exceed 200 pixels.\n"
-                 "Doxygen will copy the logo to the output directory."
-                );
+              "PROJECT_LOGO",
+              "With the PROJECT_LOGO tag one can specify an logo or icon that is included in\n"
+              "the documentation. The maximum height of the logo should not exceed 55 pixels\n"
+              "and the maximum width should not exceed 200 pixels. Doxygen will copy the logo\n"
+              "to the output directory."
+             );
   cs->setWidgetType(ConfigString::File);
   //----
   cs = cfg->addString(
-                 "OUTPUT_DIRECTORY",
-                 "The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)\n"
-                 "base path where the generated documentation will be put.\n"
-                 "If a relative path is entered, it will be relative to the location\n"
-                 "where doxygen was started. If left blank the current directory will be used."
-                );
+              "OUTPUT_DIRECTORY",
+              "The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path\n"
+              "into which the generated documentation will be written. If a relative path is\n"
+              "entered, it will be relative to the location where doxygen was started. If\n"
+              "left blank the current directory will be used."
+             );
   cs->setWidgetType(ConfigString::Dir);
   //----
   cb = cfg->addBool(
-                 "CREATE_SUBDIRS",
-                 "If the CREATE_SUBDIRS tag is set to YES, then doxygen will create\n"
-                 "4096 sub-directories (in 2 levels) under the output directory of each output\n"
-                 "format and will distribute the generated files over these directories.\n"
-                 "Enabling this option can be useful when feeding doxygen a huge amount of\n"
-                 "source files, where putting all generated files in the same directory would\n"
-                 "otherwise cause performance problems for the file system.",
-                 FALSE
-                );
+             "CREATE_SUBDIRS",
+              "If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-\n"
+              "directories (in 2 levels) under the output directory of each output format and\n"
+              "will distribute the generated files over these directories. Enabling this\n"
+              "option can be useful when feeding doxygen a huge amount of source files, where\n"
+              "putting all generated files in the same directory would otherwise causes\n"
+              "performance problems for the file system.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   ce = cfg->addEnum(
-                 "OUTPUT_LANGUAGE",
-                 "The OUTPUT_LANGUAGE tag is used to specify the language in which all\n"
-                 "documentation generated by doxygen is written. Doxygen will use this\n"
-                 "information to generate all constant output in the proper language.\n"
-                 "The default language is English, other supported languages are:\n"
-                 "Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,\n"
-                 "Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,\n"
-                 "Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English\n"
-                 "messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian,\n"
-                 "Persian, Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic,\n"
-                 "Slovak, Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.",
-                 "English"
-                );
+              "OUTPUT_LANGUAGE",
+              "The OUTPUT_LANGUAGE tag is used to specify the language in which all\n"
+              "documentation generated by doxygen is written. Doxygen will use this\n"
+              "information to generate all constant output in the proper language.\n"
+              "Possible values are: Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-\n"
+              "Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto, Farsi,\n"
+              "Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en,\n"
+              "Korean, Korean-en, Latvian, Norwegian, Macedonian, Persian, Polish,\n"
+              "Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish,\n"
+              "Turkish, Ukrainian and Vietnamese.\n"
+              "The default value is: English.",
+              "English"
+             );
   ce->addValue("Afrikaans");
   ce->addValue("Arabic");
   ce->addValue("Brazilian");
@@ -137,35 +155,36 @@ void addConfigOptions(Config *cfg)
   ce->addValue("Vietnamese");
   //----
   cb = cfg->addBool(
-                 "BRIEF_MEMBER_DESC",
-                 "If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will\n"
-                 "include brief member descriptions after the members that are listed in\n"
-                 "the file and class documentation (similar to JavaDoc).\n"
-                 "Set to NO to disable this.",
-                 TRUE
-                );
+             "BRIEF_MEMBER_DESC",
+              "If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member\n"
+              "descriptions after the members that are listed in the file and class\n"
+              "documentation (similar to Javadoc). Set to NO to disable this.\n"
+              "The default value is: YES.",
+              TRUE
+             );
   //----
   cb = cfg->addBool(
-                 "REPEAT_BRIEF",
-                 "If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend\n"
-                 "the brief description of a member or function before the detailed description.\n"
-                 "Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the\n"
-                 "brief descriptions will be completely suppressed.",
-                 TRUE
-                );
+             "REPEAT_BRIEF",
+              "If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief\n"
+              "description of a member or function before the detailed description\n"
+              "\n"
+              "Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the\n"
+              "brief descriptions will be completely suppressed.\n"
+              "The default value is: YES.",
+              TRUE
+             );
   //----
   cl = cfg->addList(
-                 "ABBREVIATE_BRIEF",
-                 "This tag implements a quasi-intelligent brief description abbreviator\n"
-                 "that is used to form the text in various listings. Each string\n"
-                 "in this list, if found as the leading text of the brief description, will be\n"
-                 "stripped from the text and the result after processing the whole list, is\n"
-                 "used as the annotated text. Otherwise, the brief description is used as-is.\n"
-                 "If left blank, the following values are used (\"$name\" is automatically\n"
-                 "replaced with the name of the entity): \"The $name class\" \"The $name widget\"\n"
-                 "\"The $name file\" \"is\" \"provides\" \"specifies\" \"contains\"\n"
-                 "\"represents\" \"a\" \"an\" \"the\""
-                );
+              "ABBREVIATE_BRIEF",
+              "This tag implements a quasi-intelligent brief description abbreviator that is\n"
+              "used to form the text in various listings. Each string in this list, if found\n"
+              "as the leading text of the brief description, will be stripped from the text\n"
+              "and the result, after processing the whole list, is used as the annotated\n"
+              "text. Otherwise, the brief description is used as-is. If left blank, the\n"
+              "following values are used ($name is automatically replaced with the name of\n"
+              "the entity):The $name class, The $name widget, The $name file, is, provides,\n"
+              "specifies, contains, represents, a, an and the."
+             );
   cl->addValue("The $name class");
   cl->addValue("The $name widget");
   cl->addValue("The $name file");
@@ -179,744 +198,822 @@ void addConfigOptions(Config *cfg)
   cl->addValue("the");
   //----
   cb = cfg->addBool(
-                 "ALWAYS_DETAILED_SEC",
-                 "If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then\n"
-                 "Doxygen will generate a detailed section even if there is only a brief\n"
-                 "description.",
-                 FALSE
-                );
+             "ALWAYS_DETAILED_SEC",
+              "If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then\n"
+              "doxygen will generate a detailed section even if there is only a brief\n"
+              "description.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   cb = cfg->addBool(
-                 "INLINE_INHERITED_MEMB",
-                 "If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all\n"
-                 "inherited members of a class in the documentation of that class as if those\n"
-                 "members were ordinary class members. Constructors, destructors and assignment\n"
-                 "operators of the base classes will not be shown.",
-                 FALSE
-                );
+             "INLINE_INHERITED_MEMB",
+              "If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all\n"
+              "inherited members of a class in the documentation of that class as if those\n"
+              "members were ordinary class members. Constructors, destructors and assignment\n"
+              "operators of the base classes will not be shown.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   cb = cfg->addBool(
-                 "FULL_PATH_NAMES",
-                 "If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full\n"
-                 "path before files name in the file list and in the header files. If set\n"
-                 "to NO the shortest path that makes the file name unique will be used.",
-                 TRUE
-                );
+             "FULL_PATH_NAMES",
+              "If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path\n"
+              "before files name in the file list and in the header files. If set to NO the\n"
+              "shortest path that makes the file name unique will be used\n"
+              "The default value is: YES.",
+              TRUE
+             );
   //----
   cl = cfg->addList(
-                 "STRIP_FROM_PATH",
-                 "If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag\n"
-                 "can be used to strip a user-defined part of the path. Stripping is\n"
-                 "only done if one of the specified strings matches the left-hand part of\n"
-                 "the path. The tag can be used to show relative paths in the file list.\n"
-                 "If left blank the directory from which doxygen is run is used as the\n"
-                 "path to strip. Note that you specify absolute paths here, but also\n"
-                 "relative paths, which will be relative from the directory where doxygen is\n"
-                 "started."
-                );
+              "STRIP_FROM_PATH",
+              "The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.\n"
+              "Stripping is only done if one of the specified strings matches the left-hand\n"
+              "part of the path. The tag can be used to show relative paths in the file list.\n"
+              "If left blank the directory from which doxygen is run is used as the path to\n"
+              "strip.\n"
+              "\n"
+              "Note that you can specify absolute paths here, but also relative paths, which\n"
+              "will be relative from the directory where doxygen is started.\n"
+              "This tag requires that the tag FULL_PATH_NAMES is set to YES."
+             );
   cl->addValue("");
   cl->addDependency("FULL_PATH_NAMES");
   //----
   cl = cfg->addList(
-                 "STRIP_FROM_INC_PATH",
-                 "The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of\n"
-                 "the path mentioned in the documentation of a class, which tells\n"
-                 "the reader which header file to include in order to use a class.\n"
-                 "If left blank only the name of the header file containing the class\n"
-                 "definition is used. Otherwise one should specify the include paths that\n"
-                 "are normally passed to the compiler using the -I flag."
-                );
-  //----
-  cb = cfg->addBool(
-                 "SHORT_NAMES",
-                 "If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter\n"
-                 "(but less readable) file names. This can be useful if your file system\n"
-                 "doesn't support long names like on DOS, Mac, or CD-ROM.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "JAVADOC_AUTOBRIEF",
-                 "If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen\n"
-                 "will interpret the first line (until the first dot) of a JavaDoc-style\n"
-                 "comment as the brief description. If set to NO, the JavaDoc\n"
-                 "comments will behave just like regular Qt-style comments\n"
-                 "(thus requiring an explicit @brief command for a brief description.)",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "QT_AUTOBRIEF",
-                 "If the QT_AUTOBRIEF tag is set to YES then Doxygen will\n"
-                 "interpret the first line (until the first dot) of a Qt-style\n"
-                 "comment as the brief description. If set to NO, the comments\n"
-                 "will behave just like regular Qt-style comments (thus requiring\n"
-                 "an explicit \\brief command for a brief description.)",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "MULTILINE_CPP_IS_BRIEF",
-                 "The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen\n"
-                 "treat a multi-line C++ special comment block (i.e. a block of //! or ///\n"
-                 "comments) as a brief description. This used to be the default behaviour.\n"
-                 "The new default is to treat a multi-line C++ comment block as a detailed\n"
-                 "description. Set this tag to YES if you prefer the old behaviour instead.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "INHERIT_DOCS",
-                 "If the INHERIT_DOCS tag is set to YES (the default) then an undocumented\n"
-                 "member inherits the documentation from any documented member that it\n"
-                 "re-implements.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "SEPARATE_MEMBER_PAGES",
-                 "If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce\n"
-                 "a new page for each member. If set to NO, the documentation of a member will\n"
-                 "be part of the file/class/namespace that contains it.",
-                 FALSE
-                );
+              "STRIP_FROM_INC_PATH",
+              "The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the\n"
+              "path mentioned in the documentation of a class, which tells the reader which\n"
+              "header file to include in order to use a class. If left blank only the name of\n"
+              "the header file containing the class definition is used. Otherwise one should\n"
+              "specify the list of include paths that are normally passed to the compiler\n"
+              "using the -I flag."
+             );
+  //----
+  cb = cfg->addBool(
+             "SHORT_NAMES",
+              "If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but\n"
+              "less readable) file names. This can be useful is your file systems doesn't\n"
+              "support long names like on DOS, Mac, or CD-ROM.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "JAVADOC_AUTOBRIEF",
+              "If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the\n"
+              "first line (until the first dot) of a Javadoc-style comment as the brief\n"
+              "description. If set to NO, the Javadoc-style will behave just like regular Qt-\n"
+              "style comments (thus requiring an explicit @brief command for a brief\n"
+              "description.)\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "QT_AUTOBRIEF",
+              "If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first\n"
+              "line (until the first dot) of a Qt-style comment as the brief description. If\n"
+              "set to NO, the Qt-style will behave just like regular Qt-style comments (thus\n"
+              "requiring an explicit \\brief command for a brief description.)\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "MULTILINE_CPP_IS_BRIEF",
+              "The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a\n"
+              "multi-line C++ special comment block (i.e. a block of //! or /// comments) as\n"
+              "a brief description. This used to be the default behavior. The new default is\n"
+              "to treat a multi-line C++ comment block as a detailed description. Set this\n"
+              "tag to YES if you prefer the old behavior instead.\n"
+              "\n"
+              "Note that setting this tag to YES also means that rational rose comments are\n"
+              "not recognized any more.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "INHERIT_DOCS",
+              "If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the\n"
+              "documentation from any documented member that it re-implements.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "SEPARATE_MEMBER_PAGES",
+              "If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a\n"
+              "new page for each member. If set to NO, the documentation of a member will be\n"
+              "part of the file/class/namespace that contains it.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   ci = cfg->addInt(
-                 "TAB_SIZE",
-                 "The TAB_SIZE tag can be used to set the number of spaces in a tab.\n"
-                 "Doxygen uses this value to replace tabs by spaces in code fragments.",
-                 1,16,4
-                );
+              "TAB_SIZE",
+              "The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen\n"
+              "uses this value to replace tabs by spaces in code fragments.\n"
+              "Minimum value: 1, maximum value: 16, default value: 4.",
+              1,16,4
+             );
   //----
   cl = cfg->addList(
-                 "ALIASES",
-                 "This tag can be used to specify a number of aliases that acts\n"
-                 "as commands in the documentation. An alias has the form \"name=value\".\n"
-                 "For example adding \"sideeffect=\\par Side Effects:\\n\" will allow you to\n"
-                 "put the command \\sideeffect (or @sideeffect) in the documentation, which\n"
-                 "will result in a user-defined paragraph with heading \"Side Effects:\".\n"
-                 "You can put \\n's in the value part of an alias to insert newlines."
-                );
+              "ALIASES",
+              "This tag can be used to specify a number of aliases that act as commands in\n"
+              "the documentation. An alias has the form:\n"
+              "name=value\n"
+              "For example adding\n"
+              "\"sideeffect=@par Side Effects:\\n\"\n"
+              "will allow you to put the command \\sideeffect (or @sideeffect) in the\n"
+              "documentation, which will result in a user-defined paragraph with heading\n"
+              "\"Side Effects:\". You can put \\n's in the value part of an alias to insert\n"
+              "newlines."
+             );
   //----
   cl = cfg->addList(
-                 "TCL_SUBST",
-                 "This tag can be used to specify a number of word-keyword mappings (TCL only).\n"
-                 "A mapping has the form \"name=value\". For example adding\n"
-                 "\"class=itcl::class\" will allow you to use the command class in the\n"
-                 "itcl::class meaning."
-                );
-  //----
-  cb = cfg->addBool(
-                 "OPTIMIZE_OUTPUT_FOR_C",
-                 "Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C\n"
-                 "sources only. Doxygen will then generate output that is more tailored for C.\n"
-                 "For instance, some of the names that are used will be different. The list\n"
-                 "of all members will be omitted, etc.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "OPTIMIZE_OUTPUT_JAVA",
-                 "Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java\n"
-                 "sources only. Doxygen will then generate output that is more tailored for\n"
-                 "Java. For instance, namespaces will be presented as packages, qualified\n"
-                 "scopes will look different, etc.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "OPTIMIZE_FOR_FORTRAN",
-                 "Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran\n"
-                 "sources only. Doxygen will then generate output that is more tailored for\n"
-                 "Fortran.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "OPTIMIZE_OUTPUT_VHDL",
-                 "Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL\n"
-                 "sources. Doxygen will then generate output that is tailored for\n"
-                 "VHDL.",
-                 FALSE
-                );
+              "TCL_SUBST",
+              "This tag can be used to specify a number of word-keyword mappings (TCL only).\n"
+              "A mapping has the form \"name=value\". For example adding \"class=itcl::class\"\n"
+              "will allow you to use the command class in the itcl::class meaning."
+             );
+  //----
+  cb = cfg->addBool(
+             "OPTIMIZE_OUTPUT_FOR_C",
+              "Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources\n"
+              "only. Doxygen will then generate output that is more tailored for C. For\n"
+              "instance, some of the names that are used will be different. The list of all\n"
+              "members will be omitted, etc.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "OPTIMIZE_OUTPUT_JAVA",
+              "Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or\n"
+              "Python sources only. Doxygen will then generate output that is more tailored\n"
+              "for that language. For instance, namespaces will be presented as packages,\n"
+              "qualified scopes will look different, etc.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "OPTIMIZE_FOR_FORTRAN",
+              "Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran\n"
+              "sources. Doxygen will then generate output that is tailored for Fortran.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "OPTIMIZE_OUTPUT_VHDL",
+              "Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL\n"
+              "sources. Doxygen will then generate output that is tailored for VHDL.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   cl = cfg->addList(
-                 "EXTENSION_MAPPING",
-                 "Doxygen selects the parser to use depending on the extension of the files it\n"
-                 "parses. With this tag you can assign which parser to use for a given\n"
-                 "extension. Doxygen has a built-in mapping, but you can override or extend it\n"
-                 "using this tag. The format is ext=language, where ext is a file extension,\n"
-                 "and language is one of the parsers supported by doxygen: IDL, Java,\n"
-                 "Javascript, CSharp, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C,\n"
-                 "C++. For instance to make doxygen treat .inc files as Fortran files (default\n"
-                 "is PHP), and .f files as C (default is Fortran), use: inc=Fortran f=C. Note\n"
-                 "that for custom extensions you also need to set FILE_PATTERNS otherwise the\n"
-                 "files are not read by doxygen."
-                );
-  //----
-  cb = cfg->addBool(
-                 "MARKDOWN_SUPPORT",
-                 "If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all\n"
-                 "comments according to the Markdown format, which allows for more readable\n"
-                 "documentation. See http://daringfireball.net/projects/markdown/ for details.\n"
-                 "The output of markdown processing is further processed by doxygen, so you\n"
-                 "can mix doxygen, HTML, and XML commands with Markdown formatting.\n"
-                 "Disable only in case of backward compatibilities issues.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "AUTOLINK_SUPPORT",
-                 "When enabled doxygen tries to link words that correspond to documented\n"
-                 "classes, or namespaces to their corresponding documentation. Such a link can\n"
-                 "be prevented in individual cases by by putting a % sign in front of the word\n"
-                 "or globally by setting AUTOLINK_SUPPORT to NO.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "BUILTIN_STL_SUPPORT",
-                 "If you use STL classes (i.e. std::string, std::vector, etc.) but do not want\n"
-                 "to include (a tag file for) the STL sources as input, then you should\n"
-                 "set this tag to YES in order to let doxygen match functions declarations and\n"
-                 "definitions whose arguments contain STL classes (e.g. func(std::string); v.s.\n"
-                 "func(std::string) {}). This also makes the inheritance and collaboration\n"
-                 "diagrams that involve STL classes more complete and accurate.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "CPP_CLI_SUPPORT",
-                 "If you use Microsoft's C++/CLI language, you should set this option to YES to\n"
-                 "enable parsing support.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "SIP_SUPPORT",
-                 "Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.\n"
-                 "Doxygen will parse them like normal C++ but will assume all classes use public\n"
-                 "instead of private inheritance when no explicit protection keyword is present.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "IDL_PROPERTY_SUPPORT",
-                 "For Microsoft's IDL there are propget and propput attributes to indicate\n"
-                 "getter and setter methods for a property. Setting this option to YES (the\n"
-                 "default) will make doxygen replace the get and set methods by a property in\n"
-                 "the documentation. This will only work if the methods are indeed getting or\n"
-                 "setting a simple type. If this is not the case, or you want to show the\n"
-                 "methods anyway, you should set this option to NO.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "DISTRIBUTE_GROUP_DOC",
-                 "If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC\n"
-                 "tag is set to YES, then doxygen will reuse the documentation of the first\n"
-                 "member in the group (if any) for the other members of the group. By default\n"
-                 "all members of a group must be documented explicitly.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "SUBGROUPING",
-                 "Set the SUBGROUPING tag to YES (the default) to allow class member groups of\n"
-                 "the same type (for instance a group of public functions) to be put as a\n"
-                 "subgroup of that type (e.g. under the Public Functions section). Set it to\n"
-                 "NO to prevent subgrouping. Alternatively, this can be done per class using\n"
-                 "the \\nosubgrouping command.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "INLINE_GROUPED_CLASSES",
-                 "When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and\n"
-                 "unions are shown inside the group in which they are included (e.g. using\n"
-                 "@ingroup) instead of on a separate page (for HTML and Man pages) or\n"
-                 "section (for LaTeX and RTF).",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "INLINE_SIMPLE_STRUCTS",
-                 "When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and\n"
-                 "unions with only public data fields or simple typedef fields will be shown\n"
-                 "inline in the documentation of the scope in which they are defined (i.e. file,\n"
-                 "namespace, or group documentation), provided this scope is documented. If set\n"
-                 "to NO (the default), structs, classes, and unions are shown on a separate\n"
-                 "page (for HTML and Man pages) or section (for LaTeX and RTF).",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "TYPEDEF_HIDES_STRUCT",
-                 "When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum\n"
-                 "is documented as struct, union, or enum with the name of the typedef. So\n"
-                 "typedef struct TypeS {} TypeT, will appear in the documentation as a struct\n"
-                 "with name TypeT. When disabled the typedef will appear as a member of a file,\n"
-                 "namespace, or class. And the struct will be named TypeS. This can typically\n"
-                 "be useful for C code in case the coding convention dictates that all compound\n"
-                 "types are typedef'ed and only the typedef is referenced, never the tag name.",
-                 FALSE
-                );
+              "EXTENSION_MAPPING",
+              "Doxygen selects the parser to use depending on the extension of the files it\n"
+              "parses. With this tag you can assign which parser to use for a given\n"
+              "extension. Doxygen has a built-in mapping, but you can override or extend it\n"
+              "using this tag. The format is ext=language, where ext is a file extension, and\n"
+              "language is one of the parsers supported by doxygen: IDL, Java, Javascript,\n"
+              "C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make\n"
+              "doxygen treat .inc files as Fortran files (default is PHP), and .f files as C\n"
+              "(default is Fortran), use: inc=Fortran f=C.\n"
+              "\n"
+              "Note For files without extension you can use no_extension as a placeholder.\n"
+              "\n"
+              "Note that for custom extensions you also need to set FILE_PATTERNS otherwise\n"
+              "the files are not read by doxygen."
+             );
+  //----
+  cb = cfg->addBool(
+             "MARKDOWN_SUPPORT",
+              "If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments\n"
+              "according to the Markdown format, which allows for more readable\n"
+              "documentation. See http://daringfireball.net/projects/markdown/ for details.\n"
+              "The output of markdown processing is further processed by doxygen, so you can\n"
+              "mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in\n"
+              "case of backward compatibilities issues.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "AUTOLINK_SUPPORT",
+              "When enabled doxygen tries to link words that correspond to documented\n"
+              "classes, or namespaces to their corresponding documentation. Such a link can\n"
+              "be prevented in individual cases by by putting a % sign in front of the word\n"
+              "or globally by setting AUTOLINK_SUPPORT to NO.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "BUILTIN_STL_SUPPORT",
+              "If you use STL classes (i.e. std::string, std::vector, etc.) but do not want\n"
+              "to include (a tag file for) the STL sources as input, then you should set this\n"
+              "tag to YES in order to let doxygen match functions declarations and\n"
+              "definitions whose arguments contain STL classes (e.g. func(std::string);\n"
+              "versus func(std::string) {}). This also make the inheritance and collaboration\n"
+              "diagrams that involve STL classes more complete and accurate.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "CPP_CLI_SUPPORT",
+              "If you use Microsoft's C++/CLI language, you should set this option to YES to\n"
+              "enable parsing support.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "SIP_SUPPORT",
+              "Set the SIP_SUPPORT tag to YES if your project consists of sip (see:\n"
+              "http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen\n"
+              "will parse them like normal C++ but will assume all classes use public instead\n"
+              "of private inheritance when no explicit protection keyword is present.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "IDL_PROPERTY_SUPPORT",
+              "For Microsoft's IDL there are propget and propput attributes to indicate\n"
+              "getter and setter methods for a property. Setting this option to YES will make\n"
+              "doxygen to replace the get and set methods by a property in the documentation.\n"
+              "This will only work if the methods are indeed getting or setting a simple\n"
+              "type. If this is not the case, or you want to show the methods anyway, you\n"
+              "should set this option to NO.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "DISTRIBUTE_GROUP_DOC",
+              "If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC\n"
+              "tag is set to YES, then doxygen will reuse the documentation of the first\n"
+              "member in the group (if any) for the other members of the group. By default\n"
+              "all members of a group must be documented explicitly.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "SUBGROUPING",
+              "Set the SUBGROUPING tag to YES to allow class member groups of the same type\n"
+              "(for instance a group of public functions) to be put as a subgroup of that\n"
+              "type (e.g. under the Public Functions section). Set it to NO to prevent\n"
+              "subgrouping. Alternatively, this can be done per class using the\n"
+              "\\nosubgrouping command.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "INLINE_GROUPED_CLASSES",
+              "When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions\n"
+              "are shown inside the group in which they are included (e.g. using \\ingroup)\n"
+              "instead of on a separate page (for HTML and Man pages) or section (for LaTeX\n"
+              "and RTF).\n"
+              "\n"
+              "Note that this feature does not work in combination with\n"
+              "SEPARATE_MEMBER_PAGES.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "INLINE_SIMPLE_STRUCTS",
+              "When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions\n"
+              "with only public data fields or simple typedef fields will be shown inline in\n"
+              "the documentation of the scope in which they are defined (i.e. file,\n"
+              "namespace, or group documentation), provided this scope is documented. If set\n"
+              "to NO, structs, classes, and unions are shown on a separate page (for HTML and\n"
+              "Man pages) or section (for LaTeX and RTF).\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "TYPEDEF_HIDES_STRUCT",
+              "When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or\n"
+              "enum is documented as struct, union, or enum with the name of the typedef. So\n"
+              "typedef struct TypeS {} TypeT, will appear in the documentation as a struct\n"
+              "with name TypeT. When disabled the typedef will appear as a member of a file,\n"
+              "namespace, or class. And the struct will be named TypeS. This can typically be\n"
+              "useful for C code in case the coding convention dictates that all compound\n"
+              "types are typedef'ed and only the typedef is referenced, never the tag name.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   ci = cfg->addInt(
-                 "LOOKUP_CACHE_SIZE",
-                 "The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This\n"
-                 "cache is used to resolve symbols given their name and scope. Since this can\n"
-                 "be an expensive process and often the same symbol appear multiple times in\n"
-                 "the code, doxygen keeps a cache of pre-resolved symbols. If the cache is too\n"
-                 "small doxygen will become slower. If the cache is too large, memory is wasted.\n"
-                 "The cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid\n"
-                 "range is 0..9, the default is 0, corresponding to a cache size of 2^16 = 65536\n"
-                 "symbols.",
-                 0,9,0
-                );
+              "LOOKUP_CACHE_SIZE",
+              "The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This\n"
+              "cache is used to resolve symbols given their name and scope. Since this can be\n"
+              "an expensive process and often the same symbol appears multiple times in the\n"
+              "code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small\n"
+              "doxygen will become slower. If the cache is too large, memory is wasted. The\n"
+              "cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range\n"
+              "is 0..9, the default is 0, corresponding to a cache size of 2^16=65536\n"
+              "symbols. At the end of a run doxygen will report the cache usage and suggest\n"
+              "the optimal cache size from a speed point of view.\n"
+              "Minimum value: 0, maximum value: 9, default value: 0.",
+              0,9,0
+             );
   //---------------------------------------------------------------------------
   cfg->addInfo("Build","Build related configuration options");
   //---------------------------------------------------------------------------
 
   //----
   cb = cfg->addBool(
-                 "EXTRACT_ALL",
-                 "If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in\n"
-                 "documentation are documented, even if no documentation was available.\n"
-                 "Private class members and static file members will be hidden unless\n"
-                 "the EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "EXTRACT_PRIVATE",
-                 "If the EXTRACT_PRIVATE tag is set to YES all private members of a class\n"
-                 "will be included in the documentation.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "EXTRACT_PACKAGE",
-                 "If the EXTRACT_PACKAGE tag is set to YES all members with package or internal\n"
-                 "scope will be included in the documentation.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "EXTRACT_STATIC",
-                 "If the EXTRACT_STATIC tag is set to YES all static members of a file\n"
-                 "will be included in the documentation.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "EXTRACT_LOCAL_CLASSES",
-                 "If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)\n"
-                 "defined locally in source files will be included in the documentation.\n"
-                 "If set to NO only classes defined in header files are included.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "EXTRACT_LOCAL_METHODS",
-                 "This flag is only useful for Objective-C code. When set to YES local\n"
-                 "methods, which are defined in the implementation section but not in\n"
-                 "the interface are included in the documentation.\n"
-                 "If set to NO (the default) only methods in the interface are included.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "EXTRACT_ANON_NSPACES",
-                 "If this flag is set to YES, the members of anonymous namespaces will be\n"
-                 "extracted and appear in the documentation as a namespace called\n"
-                 "'anonymous_namespace{file}', where file will be replaced with the base\n"
-                 "name of the file that contains the anonymous namespace. By default\n"
-                 "anonymous namespaces are hidden.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "HIDE_UNDOC_MEMBERS",
-                 "If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all\n"
-                 "undocumented members of documented classes, files or namespaces.\n"
-                 "If set to NO (the default) these members will be included in the\n"
-                 "various overviews, but no documentation section is generated.\n"
-                 "This option has no effect if EXTRACT_ALL is enabled.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "HIDE_UNDOC_CLASSES",
-                 "If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all\n"
-                 "undocumented classes that are normally visible in the class hierarchy.\n"
-                 "If set to NO (the default) these classes will be included in the various\n"
-                 "overviews. This option has no effect if EXTRACT_ALL is enabled.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "HIDE_FRIEND_COMPOUNDS",
-                 "If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all\n"
-                 "friend (class|struct|union) declarations.\n"
-                 "If set to NO (the default) these declarations will be included in the\n"
-                 "documentation.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "HIDE_IN_BODY_DOCS",
-                 "If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any\n"
-                 "documentation blocks found inside the body of a function.\n"
-                 "If set to NO (the default) these blocks will be appended to the\n"
-                 "function's detailed documentation block.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "INTERNAL_DOCS",
-                 "The INTERNAL_DOCS tag determines if documentation\n"
-                 "that is typed after a \\internal command is included. If the tag is set\n"
-                 "to NO (the default) then the documentation will be excluded.\n"
-                 "Set it to YES to include the internal documentation.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "CASE_SENSE_NAMES",
-                 "If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate\n"
-                 "file names in lower-case letters. If set to YES upper-case letters are also\n"
-                 "allowed. This is useful if you have classes or files whose names only differ\n"
-                 "in case and if your file system supports case sensitive file names. Windows\n"
-                 "and Mac users are advised to set this option to NO.",
-                 portable_fileSystemIsCaseSensitive()
-                );
-  //----
-  cb = cfg->addBool(
-                 "HIDE_SCOPE_NAMES",
-                 "If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen\n"
-                 "will show members with their full class and namespace scopes in the\n"
-                 "documentation. If set to YES the scope will be hidden.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "SHOW_INCLUDE_FILES",
-                 "If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen\n"
-                 "will put a list of the files that are included by a file in the documentation\n"
-                 "of that file.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "FORCE_LOCAL_INCLUDES",
-                 "If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen\n"
-                 "will list include files with double quotes in the documentation\n"
-                 "rather than with sharp brackets.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "INLINE_INFO",
-                 "If the INLINE_INFO tag is set to YES (the default) then a tag [inline]\n"
-                 "is inserted in the documentation for inline members.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "SORT_MEMBER_DOCS",
-                 "If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen\n"
-                 "will sort the (detailed) documentation of file and class members\n"
-                 "alphabetically by member name. If set to NO the members will appear in\n"
-                 "declaration order.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "SORT_BRIEF_DOCS",
-                 "If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the\n"
-                 "brief documentation of file, namespace and class members alphabetically\n"
-                 "by member name. If set to NO (the default) the members will appear in\n"
-                 "declaration order.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "SORT_MEMBERS_CTORS_1ST",
-                 "If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen\n"
-                 "will sort the (brief and detailed) documentation of class members so that\n"
-                 "constructors and destructors are listed first. If set to NO (the default)\n"
-                 "the constructors will appear in the respective orders defined by\n"
-                 "SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.\n"
-                 "This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO\n"
-                 "and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "SORT_GROUP_NAMES",
-                 "If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the\n"
-                 "hierarchy of group names into alphabetical order. If set to NO (the default)\n"
-                 "the group names will appear in their defined order.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "SORT_BY_SCOPE_NAME",
-                 "If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be\n"
-                 "sorted by fully-qualified names, including namespaces. If set to\n"
-                 "NO (the default), the class list will be sorted only by class name,\n"
-                 "not including the namespace part.\n"
-                 "Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.\n"
-                 "Note: This option applies only to the class list, not to the\n"
-                 "alphabetical list.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "STRICT_PROTO_MATCHING",
-                 "If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to\n"
-                 "do proper type resolution of all parameters of a function it will reject a\n"
-                 "match between the prototype and the implementation of a member function even\n"
-                 "if there is only one candidate or it is obvious which candidate to choose\n"
-                 "by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen\n"
-                 "will still accept a match between prototype and implementation in such cases.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "GENERATE_TODOLIST",
-                 "The GENERATE_TODOLIST tag can be used to enable (YES) or\n"
-                 "disable (NO) the todo list. This list is created by putting \\todo\n"
-                 "commands in the documentation.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "GENERATE_TESTLIST",
-                 "The GENERATE_TESTLIST tag can be used to enable (YES) or\n"
-                 "disable (NO) the test list. This list is created by putting \\test\n"
-                 "commands in the documentation.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "GENERATE_BUGLIST",
-                 "The GENERATE_BUGLIST tag can be used to enable (YES) or\n"
-                 "disable (NO) the bug list. This list is created by putting \\bug\n"
-                 "commands in the documentation.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "GENERATE_DEPRECATEDLIST",
-                 "The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or\n"
-                 "disable (NO) the deprecated list. This list is created by putting\n"
-                 "\\deprecated commands in the documentation.",
-                 TRUE
-                );
+             "EXTRACT_ALL",
+              "If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in\n"
+              "documentation are documented, even if no documentation was available. Private\n"
+              "class members and static file members will be hidden unless the\n"
+              "EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.\n"
+              "Note: This will also disable the warnings about undocumented members that are\n"
+              "normally produced when WARNINGS is set to YES.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "EXTRACT_PRIVATE",
+              "If the EXTRACT_PRIVATE tag is set to YES all private members of a class will\n"
+              "be included in the documentation.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "EXTRACT_PACKAGE",
+              "If the EXTRACT_PACKAGE tag is set to YES all members with package or internal\n"
+              "scope will be included in the documentation.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "EXTRACT_STATIC",
+              "If the EXTRACT_STATIC tag is set to YES all static members of a file will be\n"
+              "included in the documentation.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "EXTRACT_LOCAL_CLASSES",
+              "If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined\n"
+              "locally in source files will be included in the documentation. If set to NO\n"
+              "only classes defined in header files are included. Does not have any effect\n"
+              "for Java sources.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "EXTRACT_LOCAL_METHODS",
+              "This flag is only useful for Objective-C code. When set to YES local methods,\n"
+              "which are defined in the implementation section but not in the interface are\n"
+              "included in the documentation. If set to NO only methods in the interface are\n"
+              "included.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "EXTRACT_ANON_NSPACES",
+              "If this flag is set to YES, the members of anonymous namespaces will be\n"
+              "extracted and appear in the documentation as a namespace called\n"
+              "'anonymous_namespace{file}', where file will be replaced with the base name of\n"
+              "the file that contains the anonymous namespace. By default anonymous namespace\n"
+              "are hidden.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "HIDE_UNDOC_MEMBERS",
+              "If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all\n"
+              "undocumented members inside documented classes or files. If set to NO these\n"
+              "members will be included in the various overviews, but no documentation\n"
+              "section is generated. This option has no effect if EXTRACT_ALL is enabled.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "HIDE_UNDOC_CLASSES",
+              "If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all\n"
+              "undocumented classes that are normally visible in the class hierarchy. If set\n"
+              "to NO these classes will be included in the various overviews. This option has\n"
+              "no effect if EXTRACT_ALL is enabled.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "HIDE_FRIEND_COMPOUNDS",
+              "If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend\n"
+              "(class|struct|union) declarations. If set to NO these declarations will be\n"
+              "included in the documentation.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "HIDE_IN_BODY_DOCS",
+              "If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any\n"
+              "documentation blocks found inside the body of a function. If set to NO these\n"
+              "blocks will be appended to the function's detailed documentation block.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "INTERNAL_DOCS",
+              "The INTERNAL_DOCS tag determines if documentation that is typed after a\n"
+              "\\internal command is included. If the tag is set to NO then the documentation\n"
+              "will be excluded. Set it to YES to include the internal documentation.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "CASE_SENSE_NAMES",
+              "If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file\n"
+              "names in lower-case letters. If set to YES upper-case letters are also\n"
+              "allowed. This is useful if you have classes or files whose names only differ\n"
+              "in case and if your file system supports case sensitive file names. Windows\n"
+              "and Mac users are advised to set this option to NO.\n"
+              "The default value is: system dependent.",
+              portable_fileSystemIsCaseSensitive()
+             );
+  //----
+  cb = cfg->addBool(
+             "HIDE_SCOPE_NAMES",
+              "If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with\n"
+              "their full class and namespace scopes in the documentation. If set to YES the\n"
+              "scope will be hidden.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "SHOW_INCLUDE_FILES",
+              "If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of\n"
+              "the files that are included by a file in the documentation of that file.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "FORCE_LOCAL_INCLUDES",
+              "If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include\n"
+              "files with double quotes in the documentation rather than with sharp brackets.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "INLINE_INFO",
+              "If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the\n"
+              "documentation for inline members.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "SORT_MEMBER_DOCS",
+              "If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the\n"
+              "(detailed) documentation of file and class members alphabetically by member\n"
+              "name. If set to NO the members will appear in declaration order.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "SORT_BRIEF_DOCS",
+              "If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief\n"
+              "descriptions of file, namespace and class members alphabetically by member\n"
+              "name. If set to NO the members will appear in declaration order.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "SORT_MEMBERS_CTORS_1ST",
+              "If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the\n"
+              "(brief and detailed) documentation of class members so that constructors and\n"
+              "destructors are listed first. If set to NO the constructors will appear in the\n"
+              "respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.\n"
+              "Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief\n"
+              "member documentation.\n"
+              "Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting\n"
+              "detailed member documentation.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "SORT_GROUP_NAMES",
+              "If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy\n"
+              "of group names into alphabetical order. If set to NO the group names will\n"
+              "appear in their defined order.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "SORT_BY_SCOPE_NAME",
+              "If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by\n"
+              "fully-qualified names, including namespaces. If set to NO, the class list will\n"
+              "be sorted only by class name, not including the namespace part.\n"
+              "Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.\n"
+              "Note: This option applies only to the class list, not to the alphabetical\n"
+              "list.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "STRICT_PROTO_MATCHING",
+              "If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper\n"
+              "type resolution of all parameters of a function it will reject a match between\n"
+              "the prototype and the implementation of a member function even if there is\n"
+              "only one candidate or it is obvious which candidate to choose by doing a\n"
+              "simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still\n"
+              "accept a match between prototype and implementation in such cases.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "GENERATE_TODOLIST",
+              "The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the\n"
+              "todo list. This list is created by putting \\todo commands in the\n"
+              "documentation.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "GENERATE_TESTLIST",
+              "The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the\n"
+              "test list. This list is created by putting \\test commands in the\n"
+              "documentation.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "GENERATE_BUGLIST",
+              "The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug\n"
+              "list. This list is created by putting \\bug commands in the documentation.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "GENERATE_DEPRECATEDLIST",
+              "The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)\n"
+              "the deprecated list. This list is created by putting \\deprecated commands in\n"
+              "the documentation.\n"
+              "The default value is: YES.",
+              TRUE
+             );
   //----
   cl = cfg->addList(
-                 "ENABLED_SECTIONS",
-                 "The ENABLED_SECTIONS tag can be used to enable conditional\n"
-                 "documentation sections, marked by \\if section-label ... \\endif\n"
-                 "and \\cond section-label ... \\endcond blocks."
-                );
+              "ENABLED_SECTIONS",
+              "The ENABLED_SECTIONS tag can be used to enable conditional documentation\n"
+              "sections, marked by \\if <section_label> ... \\endif and \\cond <section_label>\n"
+              "... \\endcond blocks."
+             );
   //----
   ci = cfg->addInt(
-                 "MAX_INITIALIZER_LINES",
-                 "The MAX_INITIALIZER_LINES tag determines the maximum number of lines\n"
-                 "the initial value of a variable or macro consists of for it to appear in\n"
-                 "the documentation. If the initializer consists of more lines than specified\n"
-                 "here it will be hidden. Use a value of 0 to hide initializers completely.\n"
-                 "The appearance of the initializer of individual variables and macros in the\n"
-                 "documentation can be controlled using \\showinitializer or \\hideinitializer\n"
-                 "command in the documentation regardless of this setting.",
-                 0,10000,30
-                );
-  //----
-  cb = cfg->addBool(
-                 "SHOW_USED_FILES",
-                 "Set the SHOW_USED_FILES tag to NO to disable the list of files generated\n"
-                 "at the bottom of the documentation of classes and structs. If set to YES the\n"
-                 "list will mention the files that were used to generate the documentation.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "SHOW_FILES",
-                 "Set the SHOW_FILES tag to NO to disable the generation of the Files page.\n"
-                 "This will remove the Files entry from the Quick Index and from the\n"
-                 "Folder Tree View (if specified). The default is YES.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "SHOW_NAMESPACES",
-                 "Set the SHOW_NAMESPACES tag to NO to disable the generation of the\n"
-                 "Namespaces page.\n"
-                 "This will remove the Namespaces entry from the Quick Index\n"
-                 "and from the Folder Tree View (if specified). The default is YES.",
-                 TRUE
-                );
+              "MAX_INITIALIZER_LINES",
+              "The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the\n"
+              "initial value of a variable or macro / define can have for it to appear in the\n"
+              "documentation. If the initializer consists of more lines than specified here\n"
+              "it will be hidden. Use a value of 0 to hide initializers completely. The\n"
+              "appearance of the value of individual variables and macros / defines can be\n"
+              "controlled using \\showinitializer or \\hideinitializer command in the\n"
+              "documentation regardless of this setting.\n"
+              "Minimum value: 0, maximum value: 10000, default value: 30.",
+              0,10000,30
+             );
+  //----
+  cb = cfg->addBool(
+             "SHOW_USED_FILES",
+              "Set the SHOW_USED_FILES tag to NO to disable the list of files generated at\n"
+              "the bottom of the documentation of classes and structs. If set to YES the list\n"
+              "will mention the files that were used to generate the documentation.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "SHOW_FILES",
+              "Set the SHOW_FILES tag to NO to disable the generation of the Files page. This\n"
+              "will remove the Files entry from the Quick Index and from the Folder Tree View\n"
+              "(if specified).\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "SHOW_NAMESPACES",
+              "Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces\n"
+              "page. This will remove the Namespaces entry from the Quick Index and from the\n"
+              "Folder Tree View (if specified).\n"
+              "The default value is: YES.",
+              TRUE
+             );
   //----
   cs = cfg->addString(
-                 "FILE_VERSION_FILTER",
-                 "The FILE_VERSION_FILTER tag can be used to specify a program or script that\n"
-                 "doxygen should invoke to get the current version for each file (typically from\n"
-                 "the version control system). Doxygen will invoke the program by executing (via\n"
-                 "popen()) the command <command> <input-file>, where <command> is the value of\n"
-                 "the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file\n"
-                 "provided by doxygen. Whatever the program writes to standard output\n"
-                 "is used as the file version. See the manual for examples."
-                );
+              "FILE_VERSION_FILTER",
+              "The FILE_VERSION_FILTER tag can be used to specify a program or script that\n"
+              "doxygen should invoke to get the current version for each file (typically from\n"
+              "the version control system). Doxygen will invoke the program by executing (via\n"
+              "popen()) the command command input-file, where command is the value of the\n"
+              "FILE_VERSION_FILTER tag, and input-file is the name of an input file provided\n"
+              "by doxygen. Whatever the program writes to standard output is used as the file\n"
+              "version. For an example see the documentation."
+             );
   cs->setWidgetType(ConfigString::File);
   //----
   cs = cfg->addString(
-                 "LAYOUT_FILE",
-                 "The LAYOUT_FILE tag can be used to specify a layout file which will be parsed\n"
-                 "by doxygen. The layout file controls the global structure of the generated\n"
-                 "output files in an output format independent way. To create the layout file\n"
-                 "that represents doxygen's defaults, run doxygen with the -l option.\n"
-                 "You can optionally specify a file name after the option, if omitted\n"
-                 "DoxygenLayout.xml will be used as the name of the layout file."
-                );
+              "LAYOUT_FILE",
+              "The LAYOUT_FILE tag can be used to specify a layout file which will be parsed\n"
+              "by doxygen. The layout file controls the global structure of the generated\n"
+              "output files in an output format independent way. To create the layout file\n"
+              "that represents doxygen's defaults, run doxygen with the -l option. You can\n"
+              "optionally specify a file name after the option, if omitted DoxygenLayout.xml\n"
+              "will be used as the name of the layout file.\n"
+              "\n"
+              "Note that if you run doxygen from a directory containing a file called\n"
+              "DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE\n"
+              "tag is left empty."
+             );
   cs->setWidgetType(ConfigString::File);
   //----
   cl = cfg->addList(
-                 "CITE_BIB_FILES",
-                 "The CITE_BIB_FILES tag can be used to specify one or more bib files\n"
-                 "containing the references data. This must be a list of .bib files. The\n"
-                 ".bib extension is automatically appended if omitted. Using this command\n"
-                 "requires the bibtex tool to be installed. See also\n"
-                 "http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style\n"
-                 "of the bibliography can be controlled using LATEX_BIB_STYLE. To use this\n"
-                 "feature you need bibtex and perl available in the search path. Do not use\n"
-                 "file names with spaces, bibtex cannot handle them."
-                );
+              "CITE_BIB_FILES",
+              "The CITE_BIB_FILES tag can be used to specify one or more bib files containing\n"
+              "the reference definitions. This must be a list of .bib files. The .bib\n"
+              "extension is automatically appended if omitted. This requires the bibtex tool\n"
+              "to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.\n"
+              "For LaTeX the style of the bibliography can be controlled using\n"
+              "LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the\n"
+              "search path. Do not use file names with spaces, bibtex cannot handle them. See\n"
+              "also \\cite for info how to create references."
+             );
   cl->setWidgetType(ConfigList::File);
   //---------------------------------------------------------------------------
-  cfg->addInfo("Messages","configuration options related to warning and progress messages");
+  cfg->addInfo("Messages","Configuration options related to warning and progress messages");
   //---------------------------------------------------------------------------
 
   //----
   cb = cfg->addBool(
-                 "QUIET",
-                 "The QUIET tag can be used to turn on/off the messages that are generated\n"
-                 "by doxygen. Possible values are YES and NO. If left blank NO is used.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "WARNINGS",
-                 "The WARNINGS tag can be used to turn on/off the warning messages that are\n"
-                 "generated by doxygen. Possible values are YES and NO. If left blank\n"
-                 "NO is used.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "WARN_IF_UNDOCUMENTED",
-                 "If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings\n"
-                 "for undocumented members. If EXTRACT_ALL is set to YES then this flag will\n"
-                 "automatically be disabled.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "WARN_IF_DOC_ERROR",
-                 "If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for\n"
-                 "potential errors in the documentation, such as not documenting some\n"
-                 "parameters in a documented function, or documenting parameters that\n"
-                 "don't exist or using markup commands wrongly.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "WARN_NO_PARAMDOC",
-                 "The WARN_NO_PARAMDOC option can be enabled to get warnings for\n"
-                 "functions that are documented, but have no documentation for their parameters\n"
-                 "or return value. If set to NO (the default) doxygen will only warn about\n"
-                 "wrong or incomplete parameter documentation, but not about the absence of\n"
-                 "documentation.",
-                 FALSE
-                );
+             "QUIET",
+              "The QUIET tag can be used to turn on/off the messages that are generated to\n"
+              "standard output by doxygen. If QUIET is set to YES this implies that the\n"
+              "messages are off.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "WARNINGS",
+              "The WARNINGS tag can be used to turn on/off the warning messages that are\n"
+              "generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES\n"
+              "this implies that the warnings are on.\n"
+              "\n"
+              "Tip: Turn warnings on while writing the documentation.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "WARN_IF_UNDOCUMENTED",
+              "If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate\n"
+              "warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag\n"
+              "will automatically be disabled.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "WARN_IF_DOC_ERROR",
+              "If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for\n"
+              "potential errors in the documentation, such as not documenting some parameters\n"
+              "in a documented function, or documenting parameters that don't exist or using\n"
+              "markup commands wrongly.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "WARN_NO_PARAMDOC",
+              "This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that\n"
+              "are documented, but have no documentation for their parameters or return\n"
+              "value. If set to NO doxygen will only warn about wrong or incomplete parameter\n"
+              "documentation, but not about the absence of documentation.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   cs = cfg->addString(
-                 "WARN_FORMAT",
-                 "The WARN_FORMAT tag determines the format of the warning messages that\n"
-                 "doxygen can produce. The string should contain the $file, $line, and $text\n"
-                 "tags, which will be replaced by the file and line number from which the\n"
-                 "warning originated and the warning text. Optionally the format may contain\n"
-                 "$version, which will be replaced by the version of the file (if it could\n"
-                 "be obtained via FILE_VERSION_FILTER)"
-                );
+              "WARN_FORMAT",
+              "The WARN_FORMAT tag determines the format of the warning messages that doxygen\n"
+              "can produce. The string should contain the $file, $line, and $text tags, which\n"
+              "will be replaced by the file and line number from which the warning originated\n"
+              "and the warning text. Optionally the format may contain $version, which will\n"
+              "be replaced by the version of the file (if it could be obtained via\n"
+              "FILE_VERSION_FILTER)\n"
+              "The default value is: $file:$line: $text."
+             );
   cs->setDefaultValue("$file:$line: $text");
   //----
   cs = cfg->addString(
-                 "WARN_LOGFILE",
-                 "The WARN_LOGFILE tag can be used to specify a file to which warning\n"
-                 "and error messages should be written. If left blank the output is written\n"
-                 "to stderr."
-                );
+              "WARN_LOGFILE",
+              "The WARN_LOGFILE tag can be used to specify a file to which warning and error\n"
+              "messages should be written. If left blank the output is written to standard\n"
+              "error (stderr)."
+             );
   cs->setWidgetType(ConfigString::File);
   //---------------------------------------------------------------------------
-  cfg->addInfo("Input","configuration options related to the input files");
+  cfg->addInfo("Input","Configuration options related to the input files");
   //---------------------------------------------------------------------------
 
   //----
   cl = cfg->addList(
-                 "INPUT",
-                 "The INPUT tag can be used to specify the files and/or directories that contain\n"
-                 "documented source files. You may enter file names like \"myfile.cpp\" or\n"
-                 "directories like \"/usr/src/myproject\". Separate the files or directories\n"
-                 "with spaces."
-                );
+              "INPUT",
+              "The INPUT tag is used to specify the files and/or directories that contain\n"
+              "documented source files. You may enter file names like myfile.cpp or\n"
+              "directories like /usr/src/myproject. Separate the files or directories with\n"
+              "spaces.\n"
+              "Note: If this tag is empty the current directory is searched."
+             );
   cl->addValue("");
   cl->setWidgetType(ConfigList::FileAndDir);
   //----
   cs = cfg->addString(
-                 "INPUT_ENCODING",
-                 "This tag can be used to specify the character encoding of the source files\n"
-                 "that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is\n"
-                 "also the default input encoding. Doxygen uses libiconv (or the iconv built\n"
-                 "into libc) for the transcoding. See http://www.gnu.org/software/libiconv for\n"
-                 "the list of possible encodings."
-                );
+              "INPUT_ENCODING",
+              "This tag can be used to specify the character encoding of the source files\n"
+              "that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses\n"
+              "libiconv (or the iconv built into libc) for the transcoding. See the libiconv\n"
+              "documentation (see: http://www.gnu.org/software/libiconv) for the list of\n"
+              "possible encodings.\n"
+              "The default value is: UTF-8."
+             );
   cs->setDefaultValue("UTF-8");
   //----
   cl = cfg->addList(
-                 "FILE_PATTERNS",
-                 "If the value of the INPUT tag contains directories, you can use the\n"
-                 "FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp\n"
-                 "and *.h) to filter out the source-files in the directories. If left\n"
-                 "blank the following patterns are tested:\n"
-                 "*.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh\n"
-                 "*.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py\n"
-                 "*.f90 *.f *.for *.vhd *.vhdl"
-                );
+              "FILE_PATTERNS",
+              "If the value of the INPUT tag contains directories, you can use the\n"
+              "FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and\n"
+              "*.h) to filter out the source-files in the directories. If left blank the\n"
+              "following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,\n"
+              "*.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,\n"
+              "*.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,\n"
+              "*.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,\n"
+              "*.qsf, *.as and *.js."
+             );
   cl->addValue("*.c");
   cl->addValue("*.cc");
   cl->addValue("*.cxx");
   cl->addValue("*.cpp");
   cl->addValue("*.c++");
-  cl->addValue("*.d");
   cl->addValue("*.java");
   cl->addValue("*.ii");
   cl->addValue("*.ixx");
   cl->addValue("*.ipp");
   cl->addValue("*.i++");
   cl->addValue("*.inl");
+  cl->addValue("*.idl");
+  cl->addValue("*.ddl");
+  cl->addValue("*.odl");
   cl->addValue("*.h");
   cl->addValue("*.hh");
   cl->addValue("*.hxx");
   cl->addValue("*.hpp");
   cl->addValue("*.h++");
-  cl->addValue("*.idl");
-  cl->addValue("*.odl");
   cl->addValue("*.cs");
+  cl->addValue("*.d");
   cl->addValue("*.php");
-  cl->addValue("*.php3");
+  cl->addValue("*.php4");
+  cl->addValue("*.php5");
+  cl->addValue("*.phtml");
   cl->addValue("*.inc");
   cl->addValue("*.m");
   cl->addValue("*.markdown");
@@ -927,907 +1024,1094 @@ void addConfigOptions(Config *cfg)
   cl->addValue("*.f90");
   cl->addValue("*.f");
   cl->addValue("*.for");
+  cl->addValue("*.tcl");
   cl->addValue("*.vhd");
   cl->addValue("*.vhdl");
+  cl->addValue("*.ucf");
+  cl->addValue("*.qsf");
+  cl->addValue("*.as");
+  cl->addValue("*.js");
   //----
   cb = cfg->addBool(
-                 "RECURSIVE",
-                 "The RECURSIVE tag can be used to turn specify whether or not subdirectories\n"
-                 "should be searched for input files as well. Possible values are YES and NO.\n"
-                 "If left blank NO is used.",
-                 FALSE
-                );
+             "RECURSIVE",
+              "The RECURSIVE tag can be used to specify whether or not subdirectories should\n"
+              "be searched for input files as well.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   cl = cfg->addList(
-                 "EXCLUDE",
-                 "The EXCLUDE tag can be used to specify files and/or directories that should be\n"
-                 "excluded from the INPUT source files. This way you can easily exclude a\n"
-                 "subdirectory from a directory tree whose root is specified with the INPUT tag.\n"
-                 "Note that relative paths are relative to the directory from which doxygen is\n"
-                 "run."
-                );
+              "EXCLUDE",
+              "The EXCLUDE tag can be used to specify files and/or directories that should be\n"
+              "excluded from the INPUT source files. This way you can easily exclude a\n"
+              "subdirectory from a directory tree whose root is specified with the INPUT tag.\n"
+              "\n"
+              "Note that relative paths are relative to the directory from which doxygen is\n"
+              "run."
+             );
   cl->setWidgetType(ConfigList::FileAndDir);
   //----
   cb = cfg->addBool(
-                 "EXCLUDE_SYMLINKS",
-                 "The EXCLUDE_SYMLINKS tag can be used to select whether or not files or\n"
-                 "directories that are symbolic links (a Unix file system feature) are excluded\n"
-                 "from the input.",
-                 FALSE
-                );
+             "EXCLUDE_SYMLINKS",
+              "The EXCLUDE_SYMLINKS tag can be used to select whether or not files or\n"
+              "directories that are symbolic links (a Unix file system feature) are excluded\n"
+              "from the input.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   cl = cfg->addList(
-                 "EXCLUDE_PATTERNS",
-                 "If the value of the INPUT tag contains directories, you can use the\n"
-                 "EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude\n"
-                 "certain files from those directories. Note that the wildcards are matched\n"
-                 "against the file with absolute path, so to exclude all test directories\n"
-                 "for example use the pattern */test/*"
-                );
+              "EXCLUDE_PATTERNS",
+              "If the value of the INPUT tag contains directories, you can use the\n"
+              "EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude\n"
+              "certain files from those directories.\n"
+              "\n"
+              "Note that the wildcards are matched against the file with absolute path, so to\n"
+              "exclude all test directories for example use the pattern */test/*"
+             );
   //----
   cl = cfg->addList(
-                 "EXCLUDE_SYMBOLS",
-                 "The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names\n"
-                 "(namespaces, classes, functions, etc.) that should be excluded from the\n"
-                 "output. The symbol name can be a fully qualified name, a word, or if the\n"
-                 "wildcard * is used, a substring. Examples: ANamespace, AClass,\n"
-                 "AClass::ANamespace, ANamespace::*Test"
-                );
+              "EXCLUDE_SYMBOLS",
+              "The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names\n"
+              "(namespaces, classes, functions, etc.) that should be excluded from the\n"
+              "output. The symbol name can be a fully qualified name, a word, or if the\n"
+              "wildcard * is used, a substring. Examples: ANamespace, AClass,\n"
+              "AClass::ANamespace, ANamespace::*Test\n"
+              "\n"
+              "Note that the wildcards are matched against the file with absolute path, so to\n"
+              "exclude all test directories use the pattern */test/*"
+             );
   //----
   cl = cfg->addList(
-                 "EXAMPLE_PATH",
-                 "The EXAMPLE_PATH tag can be used to specify one or more files or\n"
-                 "directories that contain example code fragments that are included (see\n"
-                 "the \\include command)."
-                );
-  cl->setWidgetType(ConfigList::Dir);
+              "EXAMPLE_PATH",
+              "The EXAMPLE_PATH tag can be used to specify one or more files or directories\n"
+              "that contain example code fragments that are included (see the \\include\n"
+              "command)."
+             );
+  cl->setWidgetType(ConfigList::FileAndDir);
   //----
   cl = cfg->addList(
-                 "EXAMPLE_PATTERNS",
-                 "If the value of the EXAMPLE_PATH tag contains directories, you can use the\n"
-                 "EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp\n"
-                 "and *.h) to filter out the source-files in the directories. If left\n"
-                 "blank all files are included."
-                );
+              "EXAMPLE_PATTERNS",
+              "If the value of the EXAMPLE_PATH tag contains directories, you can use the\n"
+              "EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and\n"
+              "*.h) to filter out the source-files in the directories. If left blank all\n"
+              "files are included."
+             );
   cl->addValue("*");
   //----
   cb = cfg->addBool(
-                 "EXAMPLE_RECURSIVE",
-                 "If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be\n"
-                 "searched for input files to be used with the \\include or \\dontinclude\n"
-                 "commands irrespective of the value of the RECURSIVE tag.\n"
-                 "Possible values are YES and NO. If left blank NO is used.",
-                 FALSE
-                );
+             "EXAMPLE_RECURSIVE",
+              "If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be\n"
+              "searched for input files to be used with the \\include or \\dontinclude commands\n"
+              "irrespective of the value of the RECURSIVE tag.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   cl = cfg->addList(
-                 "IMAGE_PATH",
-                 "The IMAGE_PATH tag can be used to specify one or more files or\n"
-                 "directories that contain image that are included in the documentation (see\n"
-                 "the \\image command)."
-                );
-  cl->setWidgetType(ConfigList::Dir);
+              "IMAGE_PATH",
+              "The IMAGE_PATH tag can be used to specify one or more files or directories\n"
+              "that contain images that are to be included in the documentation (see the\n"
+              "\\image command)."
+             );
+  cl->setWidgetType(ConfigList::FileAndDir);
   //----
   cs = cfg->addString(
-                 "INPUT_FILTER",
-                 "The INPUT_FILTER tag can be used to specify a program that doxygen should\n"
-                 "invoke to filter for each input file. Doxygen will invoke the filter program\n"
-                 "by executing (via popen()) the command <filter> <input-file>, where <filter>\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"
-                 "to standard output.\n"
-                 "If FILTER_PATTERNS is specified, this tag will be ignored.\n"
-                 "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."
-                );
+              "INPUT_FILTER",
+              "The INPUT_FILTER tag can be used to specify a program that doxygen should\n"
+              "invoke to filter for each input file. Doxygen will invoke the filter program\n"
+              "by executing (via popen()) the command:\n"
+              "\n"
+              "<filter> <input-file>\n"
+              "\n"
+              "where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the\n"
+              "name of an input file. Doxygen will then use the output that the filter\n"
+              "program writes to standard output. If FILTER_PATTERNS is specified, this tag\n"
+              "will be ignored.\n"
+              "\n"
+              "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);
   //----
   cl = cfg->addList(
-                 "FILTER_PATTERNS",
-                 "The FILTER_PATTERNS tag can be used to specify filters on a per file pattern\n"
-                 "basis.\n"
-                 "Doxygen will compare the file name with each pattern and apply the\n"
-                 "filter if there is a match.\n"
-                 "The filters are a list of the form:\n"
-                 "pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further\n"
-                 "info on how filters are used. If FILTER_PATTERNS is empty or if\n"
-                 "non of the patterns match the file name, INPUT_FILTER is applied."
-                );
-  //----
-  cb = cfg->addBool(
-                 "FILTER_SOURCE_FILES",
-                 "If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using\n"
-                 "INPUT_FILTER) will be used to filter the input files when producing source\n"
-                 "files to browse (i.e. when SOURCE_BROWSER is set to YES).",
-                 FALSE
-                );
+              "FILTER_PATTERNS",
+              "The FILTER_PATTERNS tag can be used to specify filters on a per file pattern\n"
+              "basis. Doxygen will compare the file name with each pattern and apply the\n"
+              "filter if there is a match. The filters are a list of the form: pattern=filter\n"
+              "(like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how\n"
+              "filters are used. If the FILTER_PATTERNS tag is empty or if none of the\n"
+              "patterns match the file name, INPUT_FILTER is applied."
+             );
+  //----
+  cb = cfg->addBool(
+             "FILTER_SOURCE_FILES",
+              "If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using\n"
+              "INPUT_FILTER ) will also be used to filter the input files that are used for\n"
+              "producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   cl = cfg->addList(
-                 "FILTER_SOURCE_PATTERNS",
-                 "The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file\n"
-                 "pattern. A pattern will override the setting for FILTER_PATTERN (if any)\n"
-                 "and it is also possible to disable source filtering for a specific pattern\n"
-                 "using *.ext= (so without naming a filter). This option only has effect when\n"
-                 "FILTER_SOURCE_FILES is enabled."
-                );
+              "FILTER_SOURCE_PATTERNS",
+              "The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file\n"
+              "pattern. A pattern will override the setting for FILTER_PATTERN (if any) and\n"
+              "it is also possible to disable source filtering for a specific pattern using\n"
+              "*.ext= (so without naming a filter).\n"
+              "This tag requires that the tag FILTER_SOURCE_FILES is set to YES."
+             );
   cl->addDependency("FILTER_SOURCE_FILES");
   //----
   cs = cfg->addString(
-                 "USE_MDFILE_AS_MAINPAGE",
-                 "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\n"
-                 "(index.html). This can be useful if you have a project on for instance GitHub\n"
-                 "and want reuse the introduction page also for the doxygen output."
-                );
+              "USE_MDFILE_AS_MAINPAGE",
+              "If the USE_MDFILE_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\n"
+              "(index.html). This can be useful if you have a project on for instance GitHub\n"
+              "and want to 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");
   //---------------------------------------------------------------------------
 
   //----
   cb = cfg->addBool(
-                 "SOURCE_BROWSER",
-                 "If the SOURCE_BROWSER tag is set to YES then a list of source files will\n"
-                 "be generated. Documented entities will be cross-referenced with these sources.\n"
-                 "Note: To get rid of all source code in the generated output, make sure also\n"
-                 "VERBATIM_HEADERS is set to NO.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "INLINE_SOURCES",
-                 "Setting the INLINE_SOURCES tag to YES will include the body\n"
-                 "of functions and classes directly in the documentation.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "STRIP_CODE_COMMENTS",
-                 "Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct\n"
-                 "doxygen to hide any special comment blocks from generated source code\n"
-                 "fragments. Normal C, C++ and Fortran comments will always remain visible.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "REFERENCED_BY_RELATION",
-                 "If the REFERENCED_BY_RELATION tag is set to YES\n"
-                 "then for each documented function all documented\n"
-                 "functions referencing it will be listed.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "REFERENCES_RELATION",
-                 "If the REFERENCES_RELATION tag is set to YES\n"
-                 "then for each documented function all documented entities\n"
-                 "called/used by that function will be listed.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "REFERENCES_LINK_SOURCE",
-                 "If the REFERENCES_LINK_SOURCE tag is set to YES (the default)\n"
-                 "and SOURCE_BROWSER tag is set to YES, then the hyperlinks from\n"
-                 "functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will\n"
-                 "link to the source code.\n"
-                 "Otherwise they will link to the documentation.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "USE_HTAGS",
-                 "If the USE_HTAGS tag is set to YES then the references to source code\n"
-                 "will point to the HTML generated by the htags(1) tool instead of doxygen\n"
-                 "built-in source browser. The htags tool is part of GNU's global source\n"
-                 "tagging system (see http://www.gnu.org/software/global/global.html). You\n"
-                 "will need version 4.8.6 or higher.",
-                 FALSE
-                );
+             "SOURCE_BROWSER",
+              "If the SOURCE_BROWSER tag is set to YES then a list of source files will be\n"
+              "generated. Documented entities will be cross-referenced with these sources.\n"
+              "\n"
+              "Note: To get rid of all source code in the generated output, make sure that\n"
+              "also VERBATIM_HEADERS is set to NO.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "INLINE_SOURCES",
+              "Setting the INLINE_SOURCES tag to YES will include the body of functions,\n"
+              "classes and enums directly into the documentation.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "STRIP_CODE_COMMENTS",
+              "Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any\n"
+              "special comment blocks from generated source code fragments. Normal C, C++ and\n"
+              "Fortran comments will always remain visible.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "REFERENCED_BY_RELATION",
+              "If the REFERENCED_BY_RELATION tag is set to YES then for each documented\n"
+              "function all documented functions referencing it will be listed.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "REFERENCES_RELATION",
+              "If the REFERENCES_RELATION tag is set to YES then for each documented function\n"
+              "all documented entities called/used by that function will be listed.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "REFERENCES_LINK_SOURCE",
+              "If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set\n"
+              "to YES, then the hyperlinks from functions in REFERENCES_RELATION and\n"
+              "REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will\n"
+              "link to the documentation.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "SOURCE_TOOLTIPS",
+              "If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the\n"
+              "source code will show a tooltip with additional information such as prototype,\n"
+              "brief description and links to the definition and documentation. Since this\n"
+              "will make the HTML file larger and loading of large files a bit slower, you\n"
+              "can opt to disable this feature.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag SOURCE_BROWSER is set to YES.",
+              TRUE
+             );
+  cb->addDependency("SOURCE_BROWSER");
+  //----
+  cb = cfg->addBool(
+             "USE_HTAGS",
+              "If the USE_HTAGS tag is set to YES then the references to source code will\n"
+              "point to the HTML generated by the htags(1) tool instead of doxygen built-in\n"
+              "source browser. The htags tool is part of GNU's global source tagging system\n"
+              "(see http://www.gnu.org/software/global/global.html). You will need version\n"
+              "4.8.6 or higher.\n"
+              "\n"
+              "To use it do the following:\n"
+              "- Install the latest version of global\n"
+              "- Enable SOURCE_BROWSER and USE_HTAGS in the config file\n"
+              "- Make sure the INPUT points to the root of the source tree\n"
+              "- Run doxygen as normal\n"
+              "\n"
+              "Doxygen will invoke htags (and that will in turn invoke gtags), so these\n"
+              "tools must be available from the command line (i.e. in the search path).\n"
+              "\n"
+              "The result: instead of the source browser generated by doxygen, the links to\n"
+              "source code will now point to the output of htags.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag SOURCE_BROWSER is set to YES.",
+              FALSE
+             );
   cb->addDependency("SOURCE_BROWSER");
   //----
   cb = cfg->addBool(
-                 "VERBATIM_HEADERS",
-                 "If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen\n"
-                 "will generate a verbatim copy of the header file for each class for\n"
-                 "which an include is specified. Set to NO to disable this.",
-                 TRUE
-                );
+             "VERBATIM_HEADERS",
+              "If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a\n"
+              "verbatim copy of the header file for each class for which an include is\n"
+              "specified. Set to NO to disable this.\n"
+              "See also: Section \\class.\n"
+              "The default value is: YES.",
+              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 more acurate parsing at the cost of reduced performance. This can be\n"
-                 "particularly helpful with template rich C++ code for which doxygen's built-in\n"
-                 "parser lacks the necessairy type information.",
-                 FALSE
-                );
+             "CLANG_ASSISTED_PARSING",
+              "If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the\n"
+              "clang parser (see: http://clang.llvm.org/) for more acurate parsing at the\n"
+              "cost of reduced performance. This can be particularly helpful with template\n"
+              "rich C++ code for which doxygen's built-in parser lacks the necessary type\n"
+              "information.\n"
+              "Note: The availability of this option depends on whether or not doxygen was\n"
+              "compiled with the --with-libclang option.\n"
+              "The default value is: NO.",
+              FALSE
+             );
 #else
   cfg->addDisabled("CLANG_ASSISTED_PARSING");
 #endif
 #if USE_LIBCLANG
   //----
   cl = cfg->addList(
-                 "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 already be set by doxygen for the files and directories\n"
-                 "specified at INPUT and INCLUDE_PATH."
-                );
+              "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 already be set by doxygen for the files and directories\n"
+              "specified with INPUT and INCLUDE_PATH.\n"
+              "This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES."
+             );
   cl->addDependency("CLANG_ASSISTED_PARSING");
 #else
   cfg->addDisabled("CLANG_OPTIONS");
 #endif
   //---------------------------------------------------------------------------
-  cfg->addInfo("Index","configuration options related to the alphabetical class index");
+  cfg->addInfo("Index","Configuration options related to the alphabetical class index");
   //---------------------------------------------------------------------------
 
   //----
   cb = cfg->addBool(
-                 "ALPHABETICAL_INDEX",
-                 "If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index\n"
-                 "of all compounds will be generated. Enable this if the project\n"
-                 "contains a lot of classes, structs, unions or interfaces.",
-                 TRUE
-                );
+             "ALPHABETICAL_INDEX",
+              "If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all\n"
+              "compounds will be generated. Enable this if the project contains a lot of\n"
+              "classes, structs, unions or interfaces.\n"
+              "The default value is: YES.",
+              TRUE
+             );
   //----
   ci = cfg->addInt(
-                 "COLS_IN_ALPHA_INDEX",
-                 "If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then\n"
-                 "the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns\n"
-                 "in which this list will be split (can be a number in the range [1..20])",
-                 1,20,5
-                );
+              "COLS_IN_ALPHA_INDEX",
+              "The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in\n"
+              "which the alphabetical index list will be split.\n"
+              "Minimum value: 1, maximum value: 20, default value: 5.\n"
+              "This tag requires that the tag ALPHABETICAL_INDEX is set to YES.",
+              1,20,5
+             );
   ci->addDependency("ALPHABETICAL_INDEX");
   //----
   cl = cfg->addList(
-                 "IGNORE_PREFIX",
-                 "In case all classes in a project start with a common prefix, all\n"
-                 "classes will be put under the same header in the alphabetical index.\n"
-                 "The IGNORE_PREFIX tag can be used to specify one or more prefixes that\n"
-                 "should be ignored while generating the index headers."
-                );
+              "IGNORE_PREFIX",
+              "In case all classes in a project start with a common prefix, all classes will\n"
+              "be put under the same header in the alphabetical index. The IGNORE_PREFIX tag\n"
+              "can be used to specify a prefix (or a list of prefixes) that should be ignored\n"
+              "while generating the index headers.\n"
+              "This tag requires that the tag ALPHABETICAL_INDEX is set to YES."
+             );
   cl->addDependency("ALPHABETICAL_INDEX");
   //---------------------------------------------------------------------------
-  cfg->addInfo("HTML","configuration options related to the HTML output");
+  cfg->addInfo("HTML","Configuration options related to the HTML output");
   //---------------------------------------------------------------------------
 
   //----
   cb = cfg->addBool(
-                 "GENERATE_HTML",
-                 "If the GENERATE_HTML tag is set to YES (the default) Doxygen will\n"
-                 "generate HTML output.",
-                 TRUE
-                );
+             "GENERATE_HTML",
+              "If the GENERATE_HTML tag is set to YES doxygen will generate HTML output\n"
+              "The default value is: YES.",
+              TRUE
+             );
   //----
   cs = cfg->addString(
-                 "HTML_OUTPUT",
-                 "The HTML_OUTPUT tag is used to specify where the HTML docs will be put.\n"
-                 "If a relative path is entered the value of OUTPUT_DIRECTORY will be\n"
-                 "put in front of it. If left blank `html' will be used as the default path."
-                );
+              "HTML_OUTPUT",
+              "The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a\n"
+              "relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n"
+              "it.\n"
+              "The default directory is: html.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+             );
   cs->setDefaultValue("html");
   cs->setWidgetType(ConfigString::Dir);
   cs->addDependency("GENERATE_HTML");
   //----
   cs = cfg->addString(
-                 "HTML_FILE_EXTENSION",
-                 "The HTML_FILE_EXTENSION tag can be used to specify the file extension for\n"
-                 "each generated HTML page (for example: .htm,.php,.asp). If it is left blank\n"
-                 "doxygen will generate files with .html extension."
-                );
+              "HTML_FILE_EXTENSION",
+              "The HTML_FILE_EXTENSION tag can be used to specify the file extension for each\n"
+              "generated HTML page (for example: .htm, .php, .asp).\n"
+              "The default value is: .html.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+             );
   cs->setDefaultValue(".html");
   cs->addDependency("GENERATE_HTML");
   //----
   cs = cfg->addString(
-                 "HTML_HEADER",
-                 "The HTML_HEADER tag can be used to specify a personal HTML header for\n"
-                 "each generated HTML page. If it is left blank doxygen will generate a\n"
-                 "standard header. Note that when using a custom header you are responsible\n"
-                 " for the proper inclusion of any scripts and style sheets that doxygen\n"
-                 "needs, which is dependent on the configuration options used.\n"
-                 "It is advised to generate a default header using \"doxygen -w html\n"
-                 "header.html footer.html stylesheet.css YourConfigFile\" and then modify\n"
-                 "that header. Note that the header is subject to change so you typically\n"
-                 "have to redo this when upgrading to a newer version of doxygen or when\n"
-                 "changing the value of configuration settings such as GENERATE_TREEVIEW!"
-                );
+              "HTML_HEADER",
+              "The HTML_HEADER tag can be used to specify a user-defined HTML header file for\n"
+              "each generated HTML page. If the tag is left blank doxygen will generate a\n"
+              "standard header.\n"
+              "\n"
+              "To get valid HTML the header file that includes any scripts and style sheets\n"
+              "that doxygen needs, which is dependent on the configuration options used (e.g.\n"
+              "the setting GENERATE_TREEVIEW). It is highly recommended to start with a\n"
+              "default header using\n"
+              "doxygen -w html new_header.html new_footer.html new_stylesheet.css\n"
+              "YourConfigFile\n"
+              "and then modify the file new_header.html. See also section \"Doxygen usage\"\n"
+              "for information on how to generate the default header that doxygen normally\n"
+              "uses.\n"
+              "Note: The header is subject to change so you typically have to regenerate the\n"
+              "default header when upgrading to a newer version of doxygen. For a description\n"
+              "of the possible markers and block names see the documentation.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+             );
   cs->setWidgetType(ConfigString::File);
   cs->addDependency("GENERATE_HTML");
   //----
   cs = cfg->addString(
-                 "HTML_FOOTER",
-                 "The HTML_FOOTER tag can be used to specify a personal HTML footer for\n"
-                 "each generated HTML page. If it is left blank doxygen will generate a\n"
-                 "standard footer."
-                );
+              "HTML_FOOTER",
+              "The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each\n"
+              "generated HTML page. If the tag is left blank doxygen will generate a standard\n"
+              "footer. See HTML_HEADER for more information on how to generate a default\n"
+              "footer and what special commands can be used inside the footer. See also\n"
+              "section \"Doxygen usage\" for information on how to generate the default footer\n"
+              "that doxygen normally uses.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+             );
   cs->setWidgetType(ConfigString::File);
   cs->addDependency("GENERATE_HTML");
   //----
   cs = cfg->addString(
-                 "HTML_STYLESHEET",
-                 "The HTML_STYLESHEET tag can be used to specify a user-defined cascading\n"
-                 "style sheet that is used by each HTML page. It can be used to\n"
-                 "fine-tune the look of the HTML output. If left blank doxygen will\n"
-                 "generate a default style sheet. Note that it is recommended to use\n"
-                 "HTML_EXTRA_STYLESHEET instead of this one, as it is more robust and this\n"
-                 "tag will in the future become obsolete."
-                );
+              "HTML_STYLESHEET",
+              "The HTML_STYLESHEET tag can be used to specify a user-defined cascading style\n"
+              "sheet that is used by each HTML page. It can be used to fine-tune the look of\n"
+              "the HTML output. If left blank doxygen will generate a default style sheet.\n"
+              "See also section \"Doxygen usage\" for information on how to generate the style\n"
+              "sheet that doxygen normally uses.\n"
+              "Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as\n"
+              "it is more robust and this tag (HTML_STYLESHEET) will in the future become\n"
+              "obsolete.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+             );
   cs->setWidgetType(ConfigString::File);
   cs->addDependency("GENERATE_HTML");
   //----
   cs = cfg->addString(
-                 "HTML_EXTRA_STYLESHEET",
-                 "The HTML_EXTRA_STYLESHEET tag can be used to specify an additional\n"
-                 "user-defined cascading style sheet that is included after the standard\n"
-                 "style sheets created by doxygen. Using this option one can overrule\n"
-                 "certain style aspects. This is preferred over using HTML_STYLESHEET\n"
-                 "since it does not replace the standard style sheet and is therefor more\n"
-                 "robust against future updates. Doxygen will copy the style sheet file to\n"
-                 "the output directory."
-                );
+              "HTML_EXTRA_STYLESHEET",
+              "The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user-\n"
+              "defined cascading style sheet that is included after the standard style sheets\n"
+              "created by doxygen. Using this option one can overrule certain style aspects.\n"
+              "This is preferred over using HTML_STYLESHEET since it does not replace the\n"
+              "standard style sheet and is therefor more robust against future updates.\n"
+              "Doxygen will copy the style sheet file to the output directory. For an example\n"
+              "see the documentation.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+             );
   cs->setWidgetType(ConfigString::File);
   cs->addDependency("GENERATE_HTML");
   //----
   cl = cfg->addList(
-                 "HTML_EXTRA_FILES",
-                 "The HTML_EXTRA_FILES tag can be used to specify one or more extra images or\n"
-                 "other source files which should be copied to the HTML output directory. Note\n"
-                 "that these files will be copied to the base HTML output directory. Use the\n"
-                 "$relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these\n"
-                 "files. In the HTML_STYLESHEET file, use the file name only. Also note that\n"
-                 "the files will be copied as-is; there are no commands or markers available."
-                );
+              "HTML_EXTRA_FILES",
+              "The HTML_EXTRA_FILES tag can be used to specify one or more extra images or\n"
+              "other source files which should be copied to the HTML output directory. Note\n"
+              "that these files will be copied to the base HTML output directory. Use the\n"
+              "$relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these\n"
+              "files. In the HTML_STYLESHEET file, use the file name only. Also note that the\n"
+              "files will be copied as-is; there are no commands or markers available.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES."
+             );
   cl->addDependency("GENERATE_HTML");
   cl->setWidgetType(ConfigList::File);
   //----
   ci = cfg->addInt(
-                 "HTML_COLORSTYLE_HUE",
-                 "The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.\n"
-                 "Doxygen will adjust the colors in the style sheet and background images\n"
-                 "according to this color. Hue is specified as an angle on a colorwheel,\n"
-                 "see http://en.wikipedia.org/wiki/Hue for more information.\n"
-                 "For instance the value 0 represents red, 60 is yellow, 120 is green,\n"
-                 "180 is cyan, 240 is blue, 300 purple, and 360 is red again.\n"
-                 "The allowed range is 0 to 359.",
-                 0,359,220
-                );
+              "HTML_COLORSTYLE_HUE",
+              "The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen\n"
+              "will adjust the colors in the stylesheet and background images according to\n"
+              "this color. Hue is specified as an angle on a colorwheel, see\n"
+              "http://en.wikipedia.org/wiki/Hue for more information. For instance the value\n"
+              "0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300\n"
+              "purple, and 360 is red again.\n"
+              "Minimum value: 0, maximum value: 359, default value: 220.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              0,359,220
+             );
   ci->addDependency("GENERATE_HTML");
   //----
   ci = cfg->addInt(
-                 "HTML_COLORSTYLE_SAT",
-                 "The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of\n"
-                 "the colors in the HTML output. For a value of 0 the output will use\n"
-                 "grayscales only. A value of 255 will produce the most vivid colors.",
-                 0,255,100
-                );
+              "HTML_COLORSTYLE_SAT",
+              "The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors\n"
+              "in the HTML output. For a value of 0 the output will use grayscales only. A\n"
+              "value of 255 will produce the most vivid colors.\n"
+              "Minimum value: 0, maximum value: 255, default value: 100.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              0,255,100
+             );
   ci->addDependency("GENERATE_HTML");
   //----
   ci = cfg->addInt(
-                 "HTML_COLORSTYLE_GAMMA",
-                 "The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to\n"
-                 "the luminance component of the colors in the HTML output. Values below\n"
-                 "100 gradually make the output lighter, whereas values above 100 make\n"
-                 "the output darker. The value divided by 100 is the actual gamma applied,\n"
-                 "so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,\n"
-                 "and 100 does not change the gamma.",
-                 40,240,80
-                );
+              "HTML_COLORSTYLE_GAMMA",
+              "The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the\n"
+              "luminance component of the colors in the HTML output. Values below 100\n"
+              "gradually make the output lighter, whereas values above 100 make the output\n"
+              "darker. The value divided by 100 is the actual gamma applied, so 80 represents\n"
+              "a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not\n"
+              "change the gamma.\n"
+              "Minimum value: 40, maximum value: 240, default value: 80.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              40,240,80
+             );
   ci->addDependency("GENERATE_HTML");
   //----
   cb = cfg->addBool(
-                 "HTML_TIMESTAMP",
-                 "If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML\n"
-                 "page will contain the date and time when the page was generated. Setting\n"
-                 "this to NO can help when comparing the output of multiple runs.",
-                 TRUE
-                );
+             "HTML_TIMESTAMP",
+              "If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML\n"
+              "page will contain the date and time when the page was generated. Setting this\n"
+              "to NO can help when comparing the output of multiple runs.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              TRUE
+             );
   cb->addDependency("GENERATE_HTML");
   //----
   cb = cfg->addBool(
-                 "HTML_DYNAMIC_SECTIONS",
-                 "If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML\n"
-                 "documentation will contain sections that can be hidden and shown after the\n"
-                 "page has loaded.",
-                 FALSE
-                );
+             "HTML_DYNAMIC_SECTIONS",
+              "If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML\n"
+              "documentation will contain sections that can be hidden and shown after the\n"
+              "page has loaded.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_HTML");
   //----
   ci = cfg->addInt(
-                 "HTML_INDEX_NUM_ENTRIES",
-                 "With HTML_INDEX_NUM_ENTRIES one can control the preferred number of\n"
-                 "entries shown in the various tree structured indices initially; the user\n"
-                 "can expand and collapse entries dynamically later on. Doxygen will expand\n"
-                 "the tree to such a level that at most the specified number of entries are\n"
-                 "visible (unless a fully collapsed tree already exceeds this amount).\n"
-                 "So setting the number of entries 1 will produce a full collapsed tree by\n"
-                 "default. 0 is a special value representing an infinite number of entries\n"
-                 "and will result in a full expanded tree by default.",
-                 0,9999,100
-                );
+              "HTML_INDEX_NUM_ENTRIES",
+              "With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries\n"
+              "shown in the various tree structured indices initially; the user can expand\n"
+              "and collapse entries dynamically later on. Doxygen will expand the tree to\n"
+              "such a level that at most the specified number of entries are visible (unless\n"
+              "a fully collapsed tree already exceeds this amount). So setting the number of\n"
+              "entries 1 will produce a full collapsed tree by default. 0 is a special value\n"
+              "representing an infinite number of entries and will result in a full expanded\n"
+              "tree by default.\n"
+              "Minimum value: 0, maximum value: 9999, default value: 100.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              0,9999,100
+             );
   ci->addDependency("GENERATE_HTML");
   //----
   cb = cfg->addBool(
-                 "GENERATE_DOCSET",
-                 "If the GENERATE_DOCSET tag is set to YES, additional index files\n"
-                 "will be generated that can be used as input for Apple's Xcode 3\n"
-                 "integrated development environment, introduced with OSX 10.5 (Leopard).\n"
-                 "To create a documentation set, doxygen will generate a Makefile in the\n"
-                 "HTML output directory. Running make will produce the docset in that\n"
-                 "directory and running \"make install\" will install the docset in\n"
-                 "~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find\n"
-                 "it at startup.\n"
-                 "See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html\n"
-                 "for more information.",
-                 FALSE
-                );
+             "GENERATE_DOCSET",
+              "If the GENERATE_DOCSET tag is set to YES, additional index files will be\n"
+              "generated that can be used as input for Apple's Xcode 3 integrated development\n"
+              "environment (see: http://developer.apple.com/tools/xcode/), introduced with\n"
+              "OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a\n"
+              "Makefile in the HTML output directory. Running make will produce the docset in\n"
+              "that directory and running make install will install the docset in\n"
+              "~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at\n"
+              "startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html\n"
+              "for more information.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_HTML");
   //----
   cs = cfg->addString(
-                 "DOCSET_FEEDNAME",
-                 "When GENERATE_DOCSET tag is set to YES, this tag determines the name of the\n"
-                 "feed. A documentation feed provides an umbrella under which multiple\n"
-                 "documentation sets from a single provider (such as a company or product suite)\n"
-                 "can be grouped."
-                );
+              "DOCSET_FEEDNAME",
+              "This tag determines the name of the docset feed. A documentation feed provides\n"
+              "an umbrella under which multiple documentation sets from a single provider\n"
+              "(such as a company or product suite) can be grouped.\n"
+              "The default value is: Doxygen generated docs.\n"
+              "This tag requires that the tag GENERATE_DOCSET is set to YES."
+             );
   cs->setDefaultValue("Doxygen generated docs");
   cs->addDependency("GENERATE_DOCSET");
   //----
   cs = cfg->addString(
-                 "DOCSET_BUNDLE_ID",
-                 "When GENERATE_DOCSET tag is set to YES, this tag specifies a string that\n"
-                 "should uniquely identify the documentation set bundle. This should be a\n"
-                 "reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen\n"
-                 "will append .docset to the name."
-                );
+              "DOCSET_BUNDLE_ID",
+              "This tag specifies a string that should uniquely identify the documentation\n"
+              "set bundle. This should be a reverse domain-name style string, e.g.\n"
+              "com.mycompany.MyDocSet. Doxygen will append .docset to the name.\n"
+              "The default value is: org.doxygen.Project.\n"
+              "This tag requires that the tag GENERATE_DOCSET is set to YES."
+             );
   cs->setDefaultValue("org.doxygen.Project");
   cs->addDependency("GENERATE_DOCSET");
   //----
   cs = cfg->addString(
-                 "DOCSET_PUBLISHER_ID",
-                 "When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely\n"
-                 "identify the documentation publisher. This should be a reverse domain-name\n"
-                 "style string, e.g. com.mycompany.MyDocSet.documentation."
-                );
+              "DOCSET_PUBLISHER_ID",
+              "The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify\n"
+              "the documentation publisher. This should be a reverse domain-name style\n"
+              "string, e.g. com.mycompany.MyDocSet.documentation.\n"
+              "The default value is: org.doxygen.Publisher.\n"
+              "This tag requires that the tag GENERATE_DOCSET is set to YES."
+             );
   cs->setDefaultValue("org.doxygen.Publisher");
   cs->addDependency("GENERATE_DOCSET");
   //----
   cs = cfg->addString(
-                 "DOCSET_PUBLISHER_NAME",
-                 "The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher."
-                );
+              "DOCSET_PUBLISHER_NAME",
+              "The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.\n"
+              "The default value is: Publisher.\n"
+              "This tag requires that the tag GENERATE_DOCSET is set to YES."
+             );
   cs->setDefaultValue("Publisher");
   cs->addDependency("GENERATE_DOCSET");
   //----
   cb = cfg->addBool(
-                 "GENERATE_HTMLHELP",
-                 "If the GENERATE_HTMLHELP tag is set to YES, additional index files\n"
-                 "will be generated that can be used as input for tools like the\n"
-                 "Microsoft HTML help workshop to generate a compiled HTML help file (.chm)\n"
-                 "of the generated HTML documentation.",
-                 FALSE
-                );
+             "GENERATE_HTMLHELP",
+              "If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three\n"
+              "additional HTML index files: index.hhp, index.hhc, and index.hhk. The\n"
+              "index.hhp is a project file that can be read by Microsoft's HTML Help Workshop\n"
+              "(see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on\n"
+              "Windows.\n"
+              "\n"
+              "The HTML Help Workshop contains a compiler that can convert all HTML output\n"
+              "generated by doxygen into a single compiled HTML file (.chm). Compiled HTML\n"
+              "files are now used as the Windows 98 help format, and will replace the old\n"
+              "Windows help format (.hlp) on all Windows platforms in the future. Compressed\n"
+              "HTML files also contain an index, a table of contents, and you can search for\n"
+              "words in the documentation. The HTML workshop also contains a viewer for\n"
+              "compressed HTML files.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_HTML");
   //----
   cs = cfg->addString(
-                 "CHM_FILE",
-                 "If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can\n"
-                 "be used to specify the file name of the resulting .chm file. You\n"
-                 "can add a path in front of the file if the result should not be\n"
-                 "written to the html output directory."
-                );
+              "CHM_FILE",
+              "The CHM_FILE tag can be used to specify the file name of the resulting .chm\n"
+              "file. You can add a path in front of the file if the result should not be\n"
+              "written to the html output directory.\n"
+              "This tag requires that the tag GENERATE_HTMLHELP is set to YES."
+             );
   cs->setWidgetType(ConfigString::File);
   cs->addDependency("GENERATE_HTMLHELP");
   //----
   cs = cfg->addString(
-                 "HHC_LOCATION",
-                 "If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can\n"
-                 "be used to specify the location (absolute path including file name) of\n"
-                 "the HTML help compiler (hhc.exe). If non-empty doxygen will try to run\n"
-                 "the HTML help compiler on the generated index.hhp."
-                );
+              "HHC_LOCATION",
+              "The HHC_LOCATION tag can be used to specify the location (absolute path\n"
+              "including file name) of the HTML help compiler ( hhc.exe). If non-empty\n"
+              "doxygen will try to run the HTML help compiler on the generated index.hhp.\n"
+              "The file has to be specified with full path.\n"
+              "This tag requires that the tag GENERATE_HTMLHELP is set to YES."
+             );
   cs->setWidgetType(ConfigString::File);
   cs->addDependency("GENERATE_HTMLHELP");
   //----
   cb = cfg->addBool(
-                 "GENERATE_CHI",
-                 "If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag\n"
-                 "controls if a separate .chi index file is generated (YES) or that\n"
-                 "it should be included in the master .chm file (NO).",
-                 FALSE
-                );
+             "GENERATE_CHI",
+              "The GENERATE_CHI flag controls if a separate .chi index file is generated (\n"
+              "YES) or that it should be included in the master .chm file ( NO).\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTMLHELP is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_HTMLHELP");
   //----
   cs = cfg->addString(
-                 "CHM_INDEX_ENCODING",
-                 "If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING\n"
-                 "is used to encode HtmlHelp index (hhk), content (hhc) and project file\n"
-                 "content."
-                );
+              "CHM_INDEX_ENCODING",
+              "The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)\n"
+              "and project file content.\n"
+              "This tag requires that the tag GENERATE_HTMLHELP is set to YES."
+             );
   cs->addDependency("GENERATE_HTMLHELP");
   //----
   cb = cfg->addBool(
-                 "BINARY_TOC",
-                 "If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag\n"
-                 "controls whether a binary table of contents is generated (YES) or a\n"
-                 "normal table of contents (NO) in the .chm file.",
-                 FALSE
-                );
+             "BINARY_TOC",
+              "The BINARY_TOC flag controls whether a binary table of contents is generated (\n"
+              "YES) or a normal table of contents ( NO) in the .chm file.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTMLHELP is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_HTMLHELP");
   //----
   cb = cfg->addBool(
-                 "TOC_EXPAND",
-                 "The TOC_EXPAND flag can be set to YES to add extra items for group members\n"
-                 "to the contents of the HTML help documentation and to the tree view.",
-                 FALSE
-                );
+             "TOC_EXPAND",
+              "The TOC_EXPAND flag can be set to YES to add extra items for group members to\n"
+              "the table of contents of the HTML help documentation and to the tree view.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTMLHELP is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_HTMLHELP");
   //----
   cb = cfg->addBool(
-                 "GENERATE_QHP",
-                 "If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and\n"
-                 "QHP_VIRTUAL_FOLDER are set, an additional index file will be generated\n"
-                 "that can be used as input for Qt's qhelpgenerator to generate a\n"
-                 "Qt Compressed Help (.qch) of the generated HTML documentation.",
-                 FALSE
-                );
+             "GENERATE_QHP",
+              "If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and\n"
+              "QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that\n"
+              "can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help\n"
+              "(.qch) of the generated HTML documentation.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_HTML");
   //----
   cs = cfg->addString(
-                 "QCH_FILE",
-                 "If the QHG_LOCATION tag is specified, the QCH_FILE tag can\n"
-                 "be used to specify the file name of the resulting .qch file.\n"
-                 "The path specified is relative to the HTML output folder."
-                );
+              "QCH_FILE",
+              "If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify\n"
+              "the file name of the resulting .qch file. The path specified is relative to\n"
+              "the HTML output folder.\n"
+              "This tag requires that the tag GENERATE_QHP is set to YES."
+             );
   cs->setWidgetType(ConfigString::File);
   cs->addDependency("GENERATE_QHP");
   //----
   cs = cfg->addString(
-                 "QHP_NAMESPACE",
-                 "The QHP_NAMESPACE tag specifies the namespace to use when generating\n"
-                 "Qt Help Project output. For more information please see\n"
-                 "http://doc.trolltech.com/qthelpproject.html#namespace"
-                );
+              "QHP_NAMESPACE",
+              "The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help\n"
+              "Project output. For more information please see Qt Help Project / Namespace\n"
+              "(see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).\n"
+              "The default value is: org.doxygen.Project.\n"
+              "This tag requires that the tag GENERATE_QHP is set to YES."
+             );
   cs->setDefaultValue("org.doxygen.Project");
   cs->addDependency("GENERATE_QHP");
   //----
   cs = cfg->addString(
-                 "QHP_VIRTUAL_FOLDER",
-                 "The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating\n"
-                 "Qt Help Project output. For more information please see\n"
-                 "http://doc.trolltech.com/qthelpproject.html#virtual-folders"
-                );
+              "QHP_VIRTUAL_FOLDER",
+              "The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt\n"
+              "Help Project output. For more information please see Qt Help Project / Virtual\n"
+              "Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-\n"
+              "folders).\n"
+              "The default value is: doc.\n"
+              "This tag requires that the tag GENERATE_QHP is set to YES."
+             );
   cs->setDefaultValue("doc");
   cs->addDependency("GENERATE_QHP");
   //----
   cs = cfg->addString(
-                 "QHP_CUST_FILTER_NAME",
-                 "If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to\n"
-                 "add. For more information please see\n"
-                 "http://doc.trolltech.com/qthelpproject.html#custom-filters"
-                );
+              "QHP_CUST_FILTER_NAME",
+              "If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom\n"
+              "filter to add. For more information please see Qt Help Project / Custom\n"
+              "Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-\n"
+              "filters).\n"
+              "This tag requires that the tag GENERATE_QHP is set to YES."
+             );
   cs->addDependency("GENERATE_QHP");
   //----
   cs = cfg->addString(
-                 "QHP_CUST_FILTER_ATTRS",
-                 "The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the\n"
-                 "custom filter to add. For more information please see\n"
-                 "<a href=\"http://doc.trolltech.com/qthelpproject.html#custom-filters\">\n"
-                 "Qt Help Project / Custom Filters</a>."
-                );
+              "QHP_CUST_FILTER_ATTRS",
+              "The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the\n"
+              "custom filter to add. For more information please see Qt Help Project / Custom\n"
+              "Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-\n"
+              "filters).\n"
+              "This tag requires that the tag GENERATE_QHP is set to YES."
+             );
   cs->addDependency("GENERATE_QHP");
   //----
   cs = cfg->addString(
-                 "QHP_SECT_FILTER_ATTRS",
-                 "The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this\n"
-                 "project's\n"
-                 "filter section matches.\n"
-                 "<a href=\"http://doc.trolltech.com/qthelpproject.html#filter-attributes\">\n"
-                 "Qt Help Project / Filter Attributes</a>."
-                );
+              "QHP_SECT_FILTER_ATTRS",
+              "The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this\n"
+              "project's filter section matches. Qt Help Project / Filter Attributes (see:\n"
+              "http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).\n"
+              "This tag requires that the tag GENERATE_QHP is set to YES."
+             );
   cs->addDependency("GENERATE_QHP");
   //----
   cs = cfg->addString(
-                 "QHG_LOCATION",
-                 "If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can\n"
-                 "be used to specify the location of Qt's qhelpgenerator.\n"
-                 "If non-empty doxygen will try to run qhelpgenerator on the generated\n"
-                 ".qhp file."
-                );
+              "QHG_LOCATION",
+              "The QHG_LOCATION tag can be used to specify the location of Qt's\n"
+              "qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the\n"
+              "generated .qhp file.\n"
+              "This tag requires that the tag GENERATE_QHP is set to YES."
+             );
   cs->setWidgetType(ConfigString::File);
   cs->addDependency("GENERATE_QHP");
   //----
   cb = cfg->addBool(
-                 "GENERATE_ECLIPSEHELP",
-                 "If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files\n"
-                 " will be generated, which together with the HTML files, form an Eclipse help\n"
-                 "plugin. To install this plugin and make it available under the help contents\n"
-                 "menu in Eclipse, the contents of the directory containing the HTML and XML\n"
-                 "files needs to be copied into the plugins directory of eclipse. The name of\n"
-                 "the directory within the plugins directory should be the same as\n"
-                 "the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before\n"
-                 "the help appears.",
-                 FALSE
-                );
+             "GENERATE_ECLIPSEHELP",
+              "If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be\n"
+              "generated, together with the HTML files, they form an Eclipse help plugin. To\n"
+              "install this plugin and make it available under the help contents menu in\n"
+              "Eclipse, the contents of the directory containing the HTML and XML files needs\n"
+              "to be copied into the plugins directory of eclipse. The name of the directory\n"
+              "within the plugins directory should be the same as the ECLIPSE_DOC_ID value.\n"
+              "After copying Eclipse needs to be restarted before the help appears.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_HTML");
   //----
   cs = cfg->addString(
-                 "ECLIPSE_DOC_ID",
-                 "A unique identifier for the eclipse help plugin. When installing the plugin\n"
-                 "the directory name containing the HTML and XML files should also have\n"
-                 "this name."
-                );
+              "ECLIPSE_DOC_ID",
+              "A unique identifier for the Eclipse help plugin. When installing the plugin\n"
+              "the directory name containing the HTML and XML files should also have this\n"
+              "name. Each documentation set should have its own identifier.\n"
+              "The default value is: org.doxygen.Project.\n"
+              "This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES."
+             );
   cs->setDefaultValue("org.doxygen.Project");
   cs->addDependency("GENERATE_ECLIPSEHELP");
   //----
   cb = cfg->addBool(
-                 "DISABLE_INDEX",
-                 "The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs)\n"
-                 "at top of each HTML page. The value NO (the default) enables the index and\n"
-                 "the value YES disables it. Since the tabs have the same information as the\n"
-                 "navigation tree you can set this option to NO if you already set\n"
-                 "GENERATE_TREEVIEW to YES.",
-                 FALSE
-                );
+             "DISABLE_INDEX",
+              "If you want full control over the layout of the generated HTML pages it might\n"
+              "be necessary to disable the index and replace it with your own. The\n"
+              "DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top\n"
+              "of each HTML page. A value of NO enables the index and the value YES disables\n"
+              "it. Since the tabs in the index contain the same information as the navigation\n"
+              "tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_HTML");
   //----
   cb = cfg->addBool(
-                 "GENERATE_TREEVIEW",
-                 "The GENERATE_TREEVIEW tag is used to specify whether a tree-like index\n"
-                 "structure should be generated to display hierarchical information.\n"
-                 "If the tag value is set to YES, a side panel will be generated\n"
-                 "containing a tree-like index structure (just like the one that\n"
-                 "is generated for HTML Help). For this to work a browser that supports\n"
-                 "JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).\n"
-                 "Windows users are probably better off using the HTML help feature.\n"
-                 "Since the tree basically has the same information as the tab index you\n"
-                 "could consider to set DISABLE_INDEX to NO when enabling this option.",
-                 FALSE
-                );
+             "GENERATE_TREEVIEW",
+              "The GENERATE_TREEVIEW tag is used to specify whether a tree-like index\n"
+              "structure should be generated to display hierarchical information. If the tag\n"
+              "value is set to YES, a side panel will be generated containing a tree-like\n"
+              "index structure (just like the one that is generated for HTML Help). For this\n"
+              "to work a browser that supports JavaScript, DHTML, CSS and frames is required\n"
+              "(i.e. any modern browser). Windows users are probably better off using the\n"
+              "HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can\n"
+              "further fine-tune the look of the index. As an example, the default style\n"
+              "sheet generated by doxygen has an example that shows how to put an image at\n"
+              "the root of the tree instead of the PROJECT_NAME. Since the tree basically has\n"
+              "the same information as the tab index, you could consider setting\n"
+              "DISABLE_INDEX to YES when enabling this option.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_HTML");
   //----
   ci = cfg->addInt(
-                 "ENUM_VALUES_PER_LINE",
-                 "The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values\n"
-                 "(range [0,1..20]) that doxygen will group on one line in the generated HTML\n"
-                 "documentation. Note that a value of 0 will completely suppress the enum\n"
-                 "values from appearing in the overview section.",
-                 0,20,4
-                );
+              "ENUM_VALUES_PER_LINE",
+              "The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that\n"
+              "doxygen will group on one line in the generated HTML documentation.\n"
+              "\n"
+              "Note that a value of 0 will completely suppress the enum values from appearing\n"
+              "in the overview section.\n"
+              "Minimum value: 0, maximum value: 20, default value: 4.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              0,20,4
+             );
   ci->addDependency("GENERATE_HTML");
   //----
   ci = cfg->addInt(
-                 "TREEVIEW_WIDTH",
-                 "If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be\n"
-                 "used to set the initial width (in pixels) of the frame in which the tree\n"
-                 "is shown.",
-                 0,1500,250
-                );
+              "TREEVIEW_WIDTH",
+              "If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used\n"
+              "to set the initial width (in pixels) of the frame in which the tree is shown.\n"
+              "Minimum value: 0, maximum value: 1500, default value: 250.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              0,1500,250
+             );
   ci->addDependency("GENERATE_HTML");
   //----
   cb = cfg->addBool(
-                 "EXT_LINKS_IN_WINDOW",
-                 "When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open\n"
-                 "links to external symbols imported via tag files in a separate window.",
-                 FALSE
-                );
+             "EXT_LINKS_IN_WINDOW",
+              "When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to\n"
+              "external symbols imported via tag files in a separate window.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_HTML");
   //----
   ci = cfg->addInt(
-                 "FORMULA_FONTSIZE",
-                 "Use this tag to change the font size of Latex formulas included\n"
-                 "as images in the HTML documentation. The default is 10. Note that\n"
-                 "when you change the font size after a successful doxygen run you need\n"
-                 "to manually remove any form_*.png images from the HTML output directory\n"
-                 "to force them to be regenerated.",
-                 8,50,10
-                );
+              "FORMULA_FONTSIZE",
+              "Use this tag to change the font size of LaTeX formulas included as images in\n"
+              "the HTML documentation. When you change the font size after a successful\n"
+              "doxygen run you need to manually remove any form_*.png images from the HTML\n"
+              "output directory to force them to be regenerated.\n"
+              "Minimum value: 8, maximum value: 50, default value: 10.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              8,50,10
+             );
   ci->addDependency("GENERATE_HTML");
   //----
   cb = cfg->addBool(
-                 "FORMULA_TRANSPARENT",
-                 "Use the FORMULA_TRANPARENT tag to determine whether or not the images\n"
-                 "generated for formulas are transparent PNGs. Transparent PNGs are\n"
-                 "not supported properly for IE 6.0, but are supported on all modern browsers.\n"
-                 "Note that when changing this option you need to delete any form_*.png files\n"
-                 "in the HTML output before the changes have effect.",
-                 TRUE
-                );
+             "FORMULA_TRANSPARENT",
+              "Use the FORMULA_TRANPARENT tag to determine whether or not the images\n"
+              "generated for formulas are transparent PNGs. Transparent PNGs are not\n"
+              "supported properly for IE 6.0, but are supported on all modern browsers.\n"
+              "\n"
+              "Note that when changing this option you need to delete any form_*.png files in\n"
+              "the HTML output directory before the changes have effect.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              TRUE
+             );
   cb->addDependency("GENERATE_HTML");
   //----
   cb = cfg->addBool(
-                 "USE_MATHJAX",
-                 "Enable the USE_MATHJAX option to render LaTeX formulas using MathJax\n"
-                 "(see http://www.mathjax.org) which uses client side Javascript for the\n"
-                 "rendering instead of using prerendered bitmaps. Use this if you do not\n"
-                 "have LaTeX installed or if you want to formulas look prettier in the HTML\n"
-                 "output. When enabled you may also need to install MathJax separately and\n"
-                 "configure the path to it using the MATHJAX_RELPATH option.",
-                 FALSE
-                );
+             "USE_MATHJAX",
+              "Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see\n"
+              "http://www.mathjax.org) which uses client side Javascript for the rendering\n"
+              "instead of using prerendered bitmaps. Use this if you do not have LaTeX\n"
+              "installed or if you want to formulas look prettier in the HTML output. When\n"
+              "enabled you may also need to install MathJax separately and configure the path\n"
+              "to it using the MATHJAX_RELPATH option.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_HTML");
   //----
   ce = cfg->addEnum(
-                 "MATHJAX_FORMAT",
-                 "When MathJax is enabled you can set the default output format to be used for\n"
-                 "the MathJax output. Supported types are HTML-CSS, NativeMML (i.e. MathML) and\n"
-                 "SVG. The default value is HTML-CSS, which is slower, but has the best\n"
-                 "compatibility.",
-                 "HTML-CSS"
-                );
+              "MATHJAX_FORMAT",
+              "When MathJax is enabled you can set the default output format to be used for\n"
+              "the MathJax output. See the MathJax site (see:\n"
+              "http://docs.mathjax.org/en/latest/output.html) for more details.\n"
+              "Possible values are: HTML-CSS (which is slower, but has the best\n"
+              "compatibility), NativeMML (i.e. MathML) and SVG.\n"
+              "The default value is: HTML-CSS.\n"
+              "This tag requires that the tag USE_MATHJAX is set to YES.",
+              "HTML-CSS"
+             );
   ce->addValue("HTML-CSS");
   ce->addValue("NativeMML");
   ce->addValue("SVG");
   ce->addDependency("USE_MATHJAX");
   //----
   cs = cfg->addString(
-                 "MATHJAX_RELPATH",
-                 "When MathJax is enabled you need to specify the location relative to the\n"
-                 "HTML output directory using the MATHJAX_RELPATH option. The destination\n"
-                 "directory should contain the MathJax.js script. For instance, if the mathjax\n"
-                 "directory is located at the same level as the HTML output directory, then\n"
-                 "MATHJAX_RELPATH should be ../mathjax. The default value points to\n"
-                 "the MathJax Content Delivery Network so you can quickly see the result without\n"
-                 "installing MathJax.\n"
-                 "However, it is strongly recommended to install a local\n"
-                 "copy of MathJax from http://www.mathjax.org before deployment."
-                );
+              "MATHJAX_RELPATH",
+              "When MathJax is enabled you need to specify the location relative to the HTML\n"
+              "output directory using the MATHJAX_RELPATH option. The destination directory\n"
+              "should contain the MathJax.js script. For instance, if the mathjax directory\n"
+              "is located at the same level as the HTML output directory, then\n"
+              "MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax\n"
+              "Content Delivery Network so you can quickly see the result without installing\n"
+              "MathJax. However, it is strongly recommended to install a local copy of\n"
+              "MathJax from http://www.mathjax.org before deployment.\n"
+              "The default value is: http://cdn.mathjax.org/mathjax/latest.\n"
+              "This tag requires that the tag USE_MATHJAX is set to YES."
+             );
   cs->setDefaultValue("http://cdn.mathjax.org/mathjax/latest");
   cs->addDependency("USE_MATHJAX");
   //----
   cl = cfg->addList(
-                 "MATHJAX_EXTENSIONS",
-                 "The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension\n"
-                 "names that should be enabled during MathJax rendering."
-                );
+              "MATHJAX_EXTENSIONS",
+              "The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax\n"
+              "extension names that should be enabled during MathJax rendering. For example\n"
+              "MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols\n"
+              "This tag requires that the tag USE_MATHJAX is set to YES."
+             );
   cl->addDependency("USE_MATHJAX");
   //----
   cs = cfg->addString(
-                 "MATHJAX_CODEFILE",
-                 "The MATHJAX_CODEFILE tag can be used to specify a file with javascript\n"
-                 "pieces of code that will be used on startup of the MathJax code."
-                );
+              "MATHJAX_CODEFILE",
+              "The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces\n"
+              "of code that will be used on startup of the MathJax code. See the MathJax site\n"
+              "(see: http://docs.mathjax.org/en/latest/output.html) for more details. For an\n"
+              "example see the documentation.\n"
+              "This tag requires that the tag USE_MATHJAX is set to YES."
+             );
   cs->addDependency("USE_MATHJAX");
   //----
   cb = cfg->addBool(
-                 "SEARCHENGINE",
-                 "When the SEARCHENGINE tag is enabled doxygen will generate a search box\n"
-                 "for the HTML output. The underlying search engine uses javascript\n"
-                 "and DHTML and should work on any modern browser. Note that when using\n"
-                 "HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets\n"
-                 "(GENERATE_DOCSET) there is already a search function so this one should\n"
-                 "typically be disabled. For large projects the javascript based search engine\n"
-                 "can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.",
-                 TRUE
-                );
+             "SEARCHENGINE",
+              "When the SEARCHENGINE tag is enabled doxygen will generate a search box for\n"
+              "the HTML output. The underlying search engine uses javascript and DHTML and\n"
+              "should work on any modern browser. Note that when using HTML help\n"
+              "(GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)\n"
+              "there is already a search function so this one should typically be disabled.\n"
+              "For large projects the javascript based search engine can be slow, then\n"
+              "enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to\n"
+              "search using the keyboard; to jump to the search box use <access key> + S\n"
+              "(what the <access key> is depends on the OS and browser, but it is typically\n"
+              "<CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down\n"
+              "key> to jump into the search results window, the results can be navigated\n"
+              "using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel\n"
+              "the search. The filter options can be selected when the cursor is inside the\n"
+              "search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>\n"
+              "to select a filter and <Enter> or <escape> to activate or cancel the filter\n"
+              "option.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag GENERATE_HTML is set to YES.",
+              TRUE
+             );
   cb->addDependency("GENERATE_HTML");
   //----
   cb = cfg->addBool(
-                 "SERVER_BASED_SEARCH",
-                 "When the SERVER_BASED_SEARCH tag is enabled the search engine will be\n"
-                 "implemented using a web server instead of a web client using Javascript.\n"
-                 "There are two flavours of web server based search depending on the\n"
-                 "EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for\n"
-                 "searching and an index file used by the script. When EXTERNAL_SEARCH is\n"
-                 "enabled the indexing and searching needs to be provided by external tools.\n"
-                 "See the manual for details.",
-                 FALSE
-                );
+             "SERVER_BASED_SEARCH",
+              "When the SERVER_BASED_SEARCH tag is enabled the search engine will be\n"
+              "implemented using a web server instead of a web client using Javascript. There\n"
+              "are two flavours of web server based searching depending on the\n"
+              "EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for\n"
+              "searching and an index file used by the script. When EXTERNAL_SEARCH is\n"
+              "enabled the indexing and searching needs to be provided by external tools. See\n"
+              "the section \"External Indexing and Searching\" for details.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag SEARCHENGINE is set to YES.",
+              FALSE
+             );
   cb->addDependency("SEARCHENGINE");
   //----
   cb = cfg->addBool(
-                 "EXTERNAL_SEARCH",
-                 "When EXTERNAL_SEARCH is enabled doxygen will no longer generate the PHP\n"
-                 "script for searching. Instead the search results are written to an XML file\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"
-                 "the search results. Doxygen ships with an example indexer (doxyindexer) and\n"
-                 "search engine (doxysearch.cgi) which are based on the open source search\n"
-                 "engine library Xapian. See the manual for configuration details.",
-                 FALSE
-                );
+             "EXTERNAL_SEARCH",
+              "When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP\n"
+              "script for searching. Instead the search results are written to an XML file\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 the\n"
+              "search results.\n"
+              "\n"
+              "Doxygen ships with an example indexer ( doxyindexer) and search engine\n"
+              "(doxysearch.cgi) which are based on the open source search engine library\n"
+              "Xapian (see: http://xapian.org/).\n"
+              "\n"
+              "See the section \"External Indexing and Searching\" for details.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag SEARCHENGINE is set to YES.",
+              FALSE
+             );
   cb->addDependency("SEARCHENGINE");
   //----
   cs = cfg->addString(
-                 "SEARCHENGINE_URL",
-                 "The SEARCHENGINE_URL should point to a search engine hosted by a web server\n"
-                 "which will returned the search results when EXTERNAL_SEARCH is enabled.\n"
-                 "Doxygen ships with an example search engine (doxysearch) which is based on\n"
-                 "the open source search engine library Xapian. See the manual for configuration\n"
-                 "details."
-                );
+              "SEARCHENGINE_URL",
+              "The SEARCHENGINE_URL should point to a search engine hosted by a web server\n"
+              "which will return the search results when EXTERNAL_SEARCH is enabled.\n"
+              "\n"
+              "Doxygen ships with an example indexer ( doxyindexer) and search engine\n"
+              "(doxysearch.cgi) which are based on the open source search engine library\n"
+              "Xapian (see: http://xapian.org/). See the section \"External Indexing and\n"
+              "Searching\" for details.\n"
+              "This tag requires that the tag SEARCHENGINE is set to YES."
+             );
   cs->addDependency("SEARCHENGINE");
   //----
   cs = cfg->addString(
-                 "SEARCHDATA_FILE",
-                 "When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed\n"
-                 "search data is written to a file for indexing by an external tool. With the\n"
-                 "SEARCHDATA_FILE tag the name of this file can be specified."
-                );
+              "SEARCHDATA_FILE",
+              "When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed\n"
+              "search data is written to a file for indexing by an external tool. With the\n"
+              "SEARCHDATA_FILE tag the name of this file can be specified.\n"
+              "The default file is: searchdata.xml.\n"
+              "This tag requires that the tag SEARCHENGINE is set to YES."
+             );
   cs->setDefaultValue("searchdata.xml");
   cs->setWidgetType(ConfigString::File);
   cs->addDependency("SEARCHENGINE");
   //----
   cs = cfg->addString(
-                 "EXTERNAL_SEARCH_ID",
-                 "When SERVER_BASED_SEARCH AND EXTERNAL_SEARCH are both enabled the\n"
-                 "EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is\n"
-                 "useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple\n"
-                 "projects and redirect the results back to the right project."
-                );
+              "EXTERNAL_SEARCH_ID",
+              "When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the\n"
+              "EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is\n"
+              "useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple\n"
+              "projects and redirect the results back to the right project.\n"
+              "This tag requires that the tag SEARCHENGINE is set to YES."
+             );
   cs->addDependency("SEARCHENGINE");
   //----
   cl = cfg->addList(
-                 "EXTRA_SEARCH_MAPPINGS",
-                 "The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen\n"
-                 "projects other than the one defined by this configuration file, but that are\n"
-                 "all added to the same external search index. Each project needs to have a\n"
-                 "unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id\n"
-                 "of to a relative location where the documentation can be found.\n"
-                 "The format is: EXTRA_SEARCH_MAPPINGS = id1=loc1 id2=loc2 ..."
-                );
+              "EXTRA_SEARCH_MAPPINGS",
+              "The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen\n"
+              "projects other than the one defined by this configuration file, but that are\n"
+              "all added to the same external search index. Each project needs to have a\n"
+              "unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of\n"
+              "to a relative location where the documentation can be found. The format is:\n"
+              "EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...\n"
+              "This tag requires that the tag SEARCHENGINE is set to YES."
+             );
   cl->addDependency("SEARCHENGINE");
   //---------------------------------------------------------------------------
-  cfg->addInfo("LaTeX","configuration options related to the LaTeX output");
+  cfg->addInfo("LaTeX","Configuration options related to the LaTeX output");
   //---------------------------------------------------------------------------
 
   //----
   cb = cfg->addBool(
-                 "GENERATE_LATEX",
-                 "If the GENERATE_LATEX tag is set to YES (the default) Doxygen will\n"
-                 "generate Latex output.",
-                 TRUE
-                );
+             "GENERATE_LATEX",
+              "If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.\n"
+              "The default value is: YES.",
+              TRUE
+             );
   //----
   cs = cfg->addString(
-                 "LATEX_OUTPUT",
-                 "The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.\n"
-                 "If a relative path is entered the value of OUTPUT_DIRECTORY will be\n"
-                 "put in front of it. If left blank `latex' will be used as the default path."
-                );
+              "LATEX_OUTPUT",
+              "The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a\n"
+              "relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n"
+              "it.\n"
+              "The default directory is: latex.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+             );
   cs->setDefaultValue("latex");
   cs->setWidgetType(ConfigString::Dir);
   cs->addDependency("GENERATE_LATEX");
   //----
   cs = cfg->addString(
-                 "LATEX_CMD_NAME",
-                 "The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be\n"
-                 "invoked. If left blank `latex' will be used as the default command name.\n"
-                 "Note that when enabling USE_PDFLATEX this option is only used for\n"
-                 "generating bitmaps for formulas in the HTML output, but not in the\n"
-                 "Makefile that is written to the output directory."
-                );
+              "LATEX_CMD_NAME",
+              "The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be\n"
+              "invoked.\n"
+              "\n"
+              "Note that when enabling USE_PDFLATEX this option is only used for generating\n"
+              "bitmaps for formulas in the HTML output, but not in the Makefile that is\n"
+              "written to the output directory.\n"
+              "The default file is: latex.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+             );
   cs->setDefaultValue("latex");
   cs->setWidgetType(ConfigString::File);
   cs->addDependency("GENERATE_LATEX");
   //----
   cs = cfg->addString(
-                 "MAKEINDEX_CMD_NAME",
-                 "The MAKEINDEX_CMD_NAME tag can be used to specify the command name to\n"
-                 "generate index for LaTeX. If left blank `makeindex' will be used as the\n"
-                 "default command name."
-                );
+              "MAKEINDEX_CMD_NAME",
+              "The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate\n"
+              "index for LaTeX.\n"
+              "The default file is: makeindex.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+             );
   cs->setDefaultValue("makeindex");
   cs->setWidgetType(ConfigString::File);
   cs->addDependency("GENERATE_LATEX");
   //----
   cb = cfg->addBool(
-                 "COMPACT_LATEX",
-                 "If the COMPACT_LATEX tag is set to YES Doxygen generates more compact\n"
-                 "LaTeX documents. This may be useful for small projects and may help to\n"
-                 "save some trees in general.",
-                 FALSE
-                );
+             "COMPACT_LATEX",
+              "If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX\n"
+              "documents. This may be useful for small projects and may help to save some\n"
+              "trees in general.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_LATEX");
   //----
   ce = cfg->addEnum(
-                 "PAPER_TYPE",
-                 "The PAPER_TYPE tag can be used to set the paper type that is used\n"
-                 "by the printer. Possible values are: a4, letter, legal and\n"
-                 "executive. If left blank a4 will be used.",
-                 "a4"
-                );
+              "PAPER_TYPE",
+              "The PAPER_TYPE tag can be used to set the paper type that is used by the\n"
+              "printer.\n"
+              "Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x\n"
+              "14 inches) and executive (7.25 x 10.5 inches).\n"
+              "The default value is: a4.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES.",
+              "a4"
+             );
   ce->addValue("a4");
   ce->addValue("letter");
   ce->addValue("legal");
@@ -1835,325 +2119,386 @@ void addConfigOptions(Config *cfg)
   ce->addDependency("GENERATE_LATEX");
   //----
   cl = cfg->addList(
-                 "EXTRA_PACKAGES",
-                 "The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX\n"
-                 "packages that should be included in the LaTeX output."
-                );
+              "EXTRA_PACKAGES",
+              "The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names\n"
+              "that should be included in the LaTeX output. To get the times font for\n"
+              "instance you can specify\n"
+              "EXTRA_PACKAGES=times\n"
+              "If left blank no extra packages will be included.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+             );
   cl->addDependency("GENERATE_LATEX");
   //----
   cs = cfg->addString(
-                 "LATEX_HEADER",
-                 "The LATEX_HEADER tag can be used to specify a personal LaTeX header for\n"
-                 "the generated latex document. The header should contain everything until\n"
-                 "the first chapter. If it is left blank doxygen will generate a\n"
-                 "standard header. Notice: only use this tag if you know what you are doing!"
-                );
+              "LATEX_HEADER",
+              "The LATEX_HEADER tag can be used to specify a personal LaTeX header for the\n"
+              "generated LaTeX document. The header should contain everything until the first\n"
+              "chapter. If it is left blank doxygen will generate a standard header. See\n"
+              "section \"Doxygen usage\" for information on how to let doxygen write the\n"
+              "default header to a separate file.\n"
+              "\n"
+              "Note: Only use a user-defined header if you know what you are doing! The\n"
+              "following commands have a special meaning inside the header: $title,\n"
+              "$datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will\n"
+              "replace them by respectively the title of the page, the current date and time,\n"
+              "only the current date, the version number of doxygen, the project name (see\n"
+              "PROJECT_NAME), or the project number (see PROJECT_NUMBER).\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+             );
   cs->setWidgetType(ConfigString::File);
   cs->addDependency("GENERATE_LATEX");
   //----
   cs = cfg->addString(
-                 "LATEX_FOOTER",
-                 "The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for\n"
-                 "the generated latex document. The footer should contain everything after\n"
-                 "the last chapter. If it is left blank doxygen will generate a\n"
-                 "standard footer. Notice: only use this tag if you know what you are doing!"
-                );
+              "LATEX_FOOTER",
+              "The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the\n"
+              "generated LaTeX document. The footer should contain everything after the last\n"
+              "chapter. If it is left blank doxygen will generate a standard footer.\n"
+              "\n"
+              "Note: Only use a user-defined footer if you know what you are doing!\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+             );
   cs->setWidgetType(ConfigString::File);
   cs->addDependency("GENERATE_LATEX");
   //----
   cl = cfg->addList(
-                 "LATEX_EXTRA_FILES",
-                 "The LATEX_EXTRA_FILES tag can be used to specify one or more extra images\n"
-                 "or other source files which should be copied to the LaTeX output directory.\n"
-                 "Note that the files will be copied as-is; there are no commands or markers\n"
-                 "available."
-                );
+              "LATEX_EXTRA_FILES",
+              "The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or\n"
+              "other source files which should be copied to the LATEX_OUTPUT output\n"
+              "directory. Note that the files will be copied as-is; there are no commands or\n"
+              "markers available.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+             );
   cl->addDependency("GENERATE_LATEX");
   cl->setWidgetType(ConfigList::File);
   //----
   cb = cfg->addBool(
-                 "PDF_HYPERLINKS",
-                 "If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated\n"
-                 "is prepared for conversion to pdf (using ps2pdf). The pdf file will\n"
-                 "contain links (just like the HTML output) instead of page references\n"
-                 "This makes the output suitable for online browsing using a pdf viewer.",
-                 TRUE
-                );
+             "PDF_HYPERLINKS",
+              "If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is\n"
+              "prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will\n"
+              "contain links (just like the HTML output) instead of page references. This\n"
+              "makes the output suitable for online browsing using a PDF viewer.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES.",
+              TRUE
+             );
   cb->addDependency("GENERATE_LATEX");
   //----
   cb = cfg->addBool(
-                 "USE_PDFLATEX",
-                 "If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of\n"
-                 "plain latex in the generated Makefile. Set this option to YES to get a\n"
-                 "higher quality PDF documentation.",
-                 TRUE
-                );
+             "USE_PDFLATEX",
+              "If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate\n"
+              "the PDF file directly from the LaTeX files. Set this option to YES to get a\n"
+              "higher quality PDF documentation.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES.",
+              TRUE
+             );
   cb->addDependency("GENERATE_LATEX");
   //----
   cb = cfg->addBool(
-                 "LATEX_BATCHMODE",
-                 "If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\\\batchmode.\n"
-                 "command to the generated LaTeX files. This will instruct LaTeX to keep\n"
-                 "running if errors occur, instead of asking the user for help.\n"
-                 "This option is also used when generating formulas in HTML.",
-                 FALSE
-                );
+             "LATEX_BATCHMODE",
+              "If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode\n"
+              "command to the generated LaTeX files. This will instruct LaTeX to keep running\n"
+              "if errors occur, instead of asking the user for help. This option is also used\n"
+              "when generating formulas in HTML.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_LATEX");
   //----
   cb = cfg->addBool(
-                 "LATEX_HIDE_INDICES",
-                 "If LATEX_HIDE_INDICES is set to YES then doxygen will not\n"
-                 "include the index chapters (such as File Index, Compound Index, etc.)\n"
-                 "in the output.",
-                 FALSE
-                );
+             "LATEX_HIDE_INDICES",
+              "If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the\n"
+              "index chapters (such as File Index, Compound Index, etc.) in the output.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_LATEX");
   //----
   cb = cfg->addBool(
-                 "LATEX_SOURCE_CODE",
-                 "If LATEX_SOURCE_CODE is set to YES then doxygen will include\n"
-                 "source code with syntax highlighting in the LaTeX output.\n"
-                 "Note that which sources are shown also depends on other settings\n"
-                 "such as SOURCE_BROWSER.",
-                 FALSE
-                );
+             "LATEX_SOURCE_CODE",
+              "If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source\n"
+              "code with syntax highlighting in the LaTeX output.\n"
+              "\n"
+              "Note that which sources are shown also depends on other settings such as\n"
+              "SOURCE_BROWSER.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_LATEX");
   //----
   cs = cfg->addString(
-                 "LATEX_BIB_STYLE",
-                 "The LATEX_BIB_STYLE tag can be used to specify the style to use for the\n"
-                 "bibliography, e.g. plainnat, or ieeetr. The default style is \"plain\". See\n"
-                 "http://en.wikipedia.org/wiki/BibTeX for more info."
-                );
+              "LATEX_BIB_STYLE",
+              "The LATEX_BIB_STYLE tag can be used to specify the style to use for the\n"
+              "bibliography, e.g. plainnat, or ieeetr. See\n"
+              "http://en.wikipedia.org/wiki/BibTeX and \\cite for more info.\n"
+              "The default value is: plain.\n"
+              "This tag requires that the tag GENERATE_LATEX is set to YES."
+             );
   cs->setDefaultValue("plain");
   cs->addDependency("GENERATE_LATEX");
   //---------------------------------------------------------------------------
-  cfg->addInfo("RTF","configuration options related to the RTF output");
+  cfg->addInfo("RTF","Configuration options related to the RTF output");
   //---------------------------------------------------------------------------
 
   //----
   cb = cfg->addBool(
-                 "GENERATE_RTF",
-                 "If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output\n"
-                 "The RTF output is optimized for Word 97 and may not look very pretty with\n"
-                 "other RTF readers or editors.",
-                 FALSE
-                );
+             "GENERATE_RTF",
+              "If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The\n"
+              "RTF output is optimized for Word 97 and may not look too pretty with other RTF\n"
+              "readers/editors.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   cs = cfg->addString(
-                 "RTF_OUTPUT",
-                 "The RTF_OUTPUT tag is used to specify where the RTF docs will be put.\n"
-                 "If a relative path is entered the value of OUTPUT_DIRECTORY will be\n"
-                 "put in front of it. If left blank `rtf' will be used as the default path."
-                );
+              "RTF_OUTPUT",
+              "The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a\n"
+              "relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n"
+              "it.\n"
+              "The default directory is: rtf.\n"
+              "This tag requires that the tag GENERATE_RTF is set to YES."
+             );
   cs->setDefaultValue("rtf");
   cs->setWidgetType(ConfigString::Dir);
   cs->addDependency("GENERATE_RTF");
   //----
   cb = cfg->addBool(
-                 "COMPACT_RTF",
-                 "If the COMPACT_RTF tag is set to YES Doxygen generates more compact\n"
-                 "RTF documents. This may be useful for small projects and may help to\n"
-                 "save some trees in general.",
-                 FALSE
-                );
+             "COMPACT_RTF",
+              "If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF\n"
+              "documents. This may be useful for small projects and may help to save some\n"
+              "trees in general.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_RTF is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_RTF");
   //----
   cb = cfg->addBool(
-                 "RTF_HYPERLINKS",
-                 "If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated\n"
-                 "will contain hyperlink fields. The RTF file will\n"
-                 "contain links (just like the HTML output) instead of page references.\n"
-                 "This makes the output suitable for online browsing using WORD or other\n"
-                 "programs which support those fields.\n"
-                 "Note: wordpad (write) and others do not support links.",
-                 FALSE
-                );
+             "RTF_HYPERLINKS",
+              "If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will\n"
+              "contain hyperlink fields. The RTF file will contain links (just like the HTML\n"
+              "output) instead of page references. This makes the output suitable for online\n"
+              "browsing using Word or some other Word compatible readers that support those\n"
+              "fields.\n"
+              "\n"
+              "Note: WordPad (write) and others do not support links.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_RTF is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_RTF");
   //----
   cs = cfg->addString(
-                 "RTF_STYLESHEET_FILE",
-                 "Load style sheet definitions from file. Syntax is similar to doxygen's\n"
-                 "config file, i.e. a series of assignments. You only have to provide\n"
-                 "replacements, missing definitions are set to their default value."
-                );
+              "RTF_STYLESHEET_FILE",
+              "Load stylesheet definitions from file. Syntax is similar to doxygen's config\n"
+              "file, i.e. a series of assignments. You only have to provide replacements,\n"
+              "missing definitions are set to their default value.\n"
+              "\n"
+              "See also section \"Doxygen usage\" for information on how to generate the\n"
+              "default style sheet that doxygen normally uses.\n"
+              "This tag requires that the tag GENERATE_RTF is set to YES."
+             );
   cs->setWidgetType(ConfigString::File);
   cs->addDependency("GENERATE_RTF");
   //----
   cs = cfg->addString(
-                 "RTF_EXTENSIONS_FILE",
-                 "Set optional variables used in the generation of an rtf document.\n"
-                 "Syntax is similar to doxygen's config file."
-                );
+              "RTF_EXTENSIONS_FILE",
+              "Set optional variables used in the generation of an RTF document. Syntax is\n"
+              "similar to doxygen's config file. A template extensions file can be generated\n"
+              "using doxygen -e rtf extensionFile.\n"
+              "This tag requires that the tag GENERATE_RTF is set to YES."
+             );
   cs->setWidgetType(ConfigString::File);
   cs->addDependency("GENERATE_RTF");
   //---------------------------------------------------------------------------
-  cfg->addInfo("Man","configuration options related to the man page output");
+  cfg->addInfo("Man","Configuration options related to the man page output");
   //---------------------------------------------------------------------------
 
   //----
   cb = cfg->addBool(
-                 "GENERATE_MAN",
-                 "If the GENERATE_MAN tag is set to YES (the default) Doxygen will\n"
-                 "generate man pages",
-                 FALSE
-                );
+             "GENERATE_MAN",
+              "If the GENERATE_MAN tag is set to YES doxygen will generate man pages for\n"
+              "classes and files.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   cs = cfg->addString(
-                 "MAN_OUTPUT",
-                 "The MAN_OUTPUT tag is used to specify where the man pages will be put.\n"
-                 "If a relative path is entered the value of OUTPUT_DIRECTORY will be\n"
-                 "put in front of it. If left blank `man' will be used as the default path."
-                );
+              "MAN_OUTPUT",
+              "The MAN_OUTPUT tag is used to specify where the man pages will be put. If a\n"
+              "relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n"
+              "it. A directory man3 will be created inside the directory specified by\n"
+              "MAN_OUTPUT.\n"
+              "The default directory is: man.\n"
+              "This tag requires that the tag GENERATE_MAN is set to YES."
+             );
   cs->setDefaultValue("man");
   cs->setWidgetType(ConfigString::Dir);
   cs->addDependency("GENERATE_MAN");
   //----
   cs = cfg->addString(
-                 "MAN_EXTENSION",
-                 "The MAN_EXTENSION tag determines the extension that is added to\n"
-                 "the generated man pages (default is the subroutine's section .3)"
-                );
+              "MAN_EXTENSION",
+              "The MAN_EXTENSION tag determines the extension that is added to the generated\n"
+              "man pages. In case the manual section does not start with a number, the number\n"
+              "3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is\n"
+              "optional.\n"
+              "The default value is: .3.\n"
+              "This tag requires that the tag GENERATE_MAN is set to YES."
+             );
   cs->setDefaultValue(".3");
   cs->addDependency("GENERATE_MAN");
   //----
   cb = cfg->addBool(
-                 "MAN_LINKS",
-                 "If the MAN_LINKS tag is set to YES and Doxygen generates man output,\n"
-                 "then it will generate one additional man file for each entity\n"
-                 "documented in the real man page(s). These additional files\n"
-                 "only source the real man page, but without them the man command\n"
-                 "would be unable to find the correct page. The default is NO.",
-                 FALSE
-                );
+             "MAN_LINKS",
+              "If the MAN_LINKS tag is set to YES and doxygen generates man output, then it\n"
+              "will generate one additional man file for each entity documented in the real\n"
+              "man page(s). These additional files only source the real man page, but without\n"
+              "them the man command would be unable to find the correct page.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_MAN is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_MAN");
   //---------------------------------------------------------------------------
-  cfg->addInfo("XML","configuration options related to the XML output");
+  cfg->addInfo("XML","Configuration options related to the XML output");
   //---------------------------------------------------------------------------
 
   //----
   cb = cfg->addBool(
-                 "GENERATE_XML",
-                 "If the GENERATE_XML tag is set to YES Doxygen will\n"
-                 "generate an XML file that captures the structure of\n"
-                 "the code including all documentation.",
-                 FALSE
-                );
+             "GENERATE_XML",
+              "If the GENERATE_XML tag is set to YES doxygen will generate an XML file that\n"
+              "captures the structure of the code including all documentation.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   cs = cfg->addString(
-                 "XML_OUTPUT",
-                 "The XML_OUTPUT tag is used to specify where the XML pages will be put.\n"
-                 "If a relative path is entered the value of OUTPUT_DIRECTORY will be\n"
-                 "put in front of it. If left blank `xml' will be used as the default path."
-                );
+              "XML_OUTPUT",
+              "The XML_OUTPUT tag is used to specify where the XML pages will be put. If a\n"
+              "relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n"
+              "it.\n"
+              "The default directory is: xml.\n"
+              "This tag requires that the tag GENERATE_XML is set to YES."
+             );
   cs->setDefaultValue("xml");
   cs->setWidgetType(ConfigString::Dir);
   cs->addDependency("GENERATE_XML");
   //----
   cs = cfg->addString(
-                 "XML_SCHEMA",
-                 "The XML_SCHEMA tag can be used to specify an XML schema,\n"
-                 "which can be used by a validating XML parser to check the\n"
-                 "syntax of the XML files."
-                );
+              "XML_SCHEMA",
+              "The XML_SCHEMA tag can be used to specify a XML schema, which can be used by a\n"
+              "validating XML parser to check the syntax of the XML files.\n"
+              "This tag requires that the tag GENERATE_XML is set to YES."
+             );
   cs->addDependency("GENERATE_XML");
   //----
   cs = cfg->addString(
-                 "XML_DTD",
-                 "The XML_DTD tag can be used to specify an XML DTD,\n"
-                 "which can be used by a validating XML parser to check the\n"
-                 "syntax of the XML files."
-                );
+              "XML_DTD",
+              "The XML_DTD tag can be used to specify a XML DTD, which can be used by a\n"
+              "validating XML parser to check the syntax of the XML files.\n"
+              "This tag requires that the tag GENERATE_XML is set to YES."
+             );
   cs->addDependency("GENERATE_XML");
   //----
   cb = cfg->addBool(
-                 "XML_PROGRAMLISTING",
-                 "If the XML_PROGRAMLISTING tag is set to YES Doxygen will\n"
-                 "dump the program listings (including syntax highlighting\n"
-                 "and cross-referencing information) to the XML output. Note that\n"
-                 "enabling this will significantly increase the size of the XML output.",
-                 TRUE
-                );
+             "XML_PROGRAMLISTING",
+              "If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program\n"
+              "listings (including syntax highlighting and cross-referencing information) to\n"
+              "the XML output. Note that enabling this will significantly increase the size\n"
+              "of the XML output.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag GENERATE_XML is set to YES.",
+              TRUE
+             );
   cb->addDependency("GENERATE_XML");
   //---------------------------------------------------------------------------
-  cfg->addInfo("Docbook","configuration options related to the DOCBOOK output");
+  cfg->addInfo("Docbook","Configuration options related to the DOCBOOK output");
   //---------------------------------------------------------------------------
 
   //----
   cb = cfg->addBool(
-                 "GENERATE_DOCBOOK",
-                 "If the GENERATE_DOCBOOK tag is set to YES Doxygen will generate DOCBOOK files\n"
-                 "that can be used to generate PDF.",
-                 FALSE
-                );
+             "GENERATE_DOCBOOK",
+              "If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files\n"
+              "that can be used to generate PDF.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   cs = cfg->addString(
-                 "DOCBOOK_OUTPUT",
-                 "The DOCBOOK_OUTPUT tag is used to specify where the DOCBOOK pages will be put.\n"
-                 "If a relative path is entered the value of OUTPUT_DIRECTORY will be put in\n"
-                 "front of it. If left blank docbook will be used as the default path."
-                );
+              "DOCBOOK_OUTPUT",
+              "The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.\n"
+              "If a relative path is entered the value of OUTPUT_DIRECTORY will be put in\n"
+              "front of it.\n"
+              "The default directory is: docbook.\n"
+              "This tag requires that the tag GENERATE_DOCBOOK is set to YES."
+             );
   cs->setDefaultValue("docbook");
   cs->setWidgetType(ConfigString::Dir);
   cs->addDependency("GENERATE_DOCBOOK");
   //---------------------------------------------------------------------------
-  cfg->addInfo("DEF","configuration options for the AutoGen Definitions output");
+  cfg->addInfo("AutoGen","Configuration options for the AutoGen Definitions output");
   //---------------------------------------------------------------------------
 
   //----
   cb = cfg->addBool(
-                 "GENERATE_AUTOGEN_DEF",
-                 "If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will\n"
-                 "generate an AutoGen Definitions (see autogen.sf.net) file\n"
-                 "that captures the structure of the code including all\n"
-                 "documentation. Note that this feature is still experimental\n"
-                 "and incomplete at the moment.",
-                 FALSE
-                );
+             "GENERATE_AUTOGEN_DEF",
+              "If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen\n"
+              "Definitions (see http://autogen.sf.net) file that captures the structure of\n"
+              "the code including all documentation. Note that this feature is still\n"
+              "experimental and incomplete at the moment.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //---------------------------------------------------------------------------
-  cfg->addInfo("PerlMod","configuration options related to the Perl module output");
+  cfg->addInfo("PerlMod","Configuration options related to the Perl module output");
   //---------------------------------------------------------------------------
 
   //----
   cb = cfg->addBool(
-                 "GENERATE_PERLMOD",
-                 "If the GENERATE_PERLMOD tag is set to YES Doxygen will\n"
-                 "generate a Perl module file that captures the structure of\n"
-                 "the code including all documentation. Note that this\n"
-                 "feature is still experimental and incomplete at the\n"
-                 "moment.",
-                 FALSE
-                );
-  //----
-  cb = cfg->addBool(
-                 "PERLMOD_LATEX",
-                 "If the PERLMOD_LATEX tag is set to YES Doxygen will generate\n"
-                 "the necessary Makefile rules, Perl scripts and LaTeX code to be able\n"
-                 "to generate PDF and DVI output from the Perl module output.",
-                 FALSE
-                );
+             "GENERATE_PERLMOD",
+              "If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module\n"
+              "file that captures the structure of the code including all documentation.\n"
+              "\n"
+              "Note that this feature is still experimental and incomplete at the moment.\n"
+              "The default value is: NO.",
+              FALSE
+             );
+  //----
+  cb = cfg->addBool(
+             "PERLMOD_LATEX",
+              "If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary\n"
+              "Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI\n"
+              "output from the Perl module output.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag GENERATE_PERLMOD is set to YES.",
+              FALSE
+             );
   cb->addDependency("GENERATE_PERLMOD");
   //----
   cb = cfg->addBool(
-                 "PERLMOD_PRETTY",
-                 "If the PERLMOD_PRETTY tag is set to YES the Perl module output will be\n"
-                 "nicely formatted so it can be parsed by a human reader.\n"
-                 "This is useful\n"
-                 "if you want to understand what is going on.\n"
-                 "On the other hand, if this\n"
-                 "tag is set to NO the size of the Perl module output will be much smaller\n"
-                 "and Perl will parse it just the same.",
-                 TRUE
-                );
+             "PERLMOD_PRETTY",
+              "If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely\n"
+              "formatted so it can be parsed by a human reader. This is useful if you want to\n"
+              "understand what is going on. On the other hand, if this tag is set to NO the\n"
+              "size of the Perl module output will be much smaller and Perl will parse it\n"
+              "just the same.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag GENERATE_PERLMOD is set to YES.",
+              TRUE
+             );
   cb->addDependency("GENERATE_PERLMOD");
   //----
   cs = cfg->addString(
-                 "PERLMOD_MAKEVAR_PREFIX",
-                 "The names of the make variables in the generated doxyrules.make file\n"
-                 "are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.\n"
-                 "This is useful so different doxyrules.make files included by the same\n"
-                 "Makefile don't overwrite each other's variables."
-                );
+              "PERLMOD_MAKEVAR_PREFIX",
+              "The names of the make variables in the generated doxyrules.make file are\n"
+              "prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful\n"
+              "so different doxyrules.make files included by the same Makefile don't\n"
+              "overwrite each other's variables.\n"
+              "This tag requires that the tag GENERATE_PERLMOD is set to YES."
+             );
   cs->addDependency("GENERATE_PERLMOD");
   //---------------------------------------------------------------------------
   cfg->addInfo("Preprocessor","Configuration options related to the preprocessor");
@@ -2161,356 +2506,414 @@ void addConfigOptions(Config *cfg)
 
   //----
   cb = cfg->addBool(
-                 "ENABLE_PREPROCESSING",
-                 "If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will\n"
-                 "evaluate all C-preprocessor directives found in the sources and include\n"
-                 "files.",
-                 TRUE
-                );
+             "ENABLE_PREPROCESSING",
+              "If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all\n"
+              "C-preprocessor directives found in the sources and include files.\n"
+              "The default value is: YES.",
+              TRUE
+             );
   //----
   cb = cfg->addBool(
-                 "MACRO_EXPANSION",
-                 "If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro\n"
-                 "names in the source code. If set to NO (the default) only conditional\n"
-                 "compilation will be performed. Macro expansion can be done in a controlled\n"
-                 "way by setting EXPAND_ONLY_PREDEF to YES.",
-                 FALSE
-                );
+             "MACRO_EXPANSION",
+              "If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names\n"
+              "in the source code. If set to NO only conditional compilation will be\n"
+              "performed. Macro expansion can be done in a controlled way by setting\n"
+              "EXPAND_ONLY_PREDEF to YES.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag ENABLE_PREPROCESSING is set to YES.",
+              FALSE
+             );
   cb->addDependency("ENABLE_PREPROCESSING");
   //----
   cb = cfg->addBool(
-                 "EXPAND_ONLY_PREDEF",
-                 "If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES\n"
-                 "then the macro expansion is limited to the macros specified with the\n"
-                 "PREDEFINED and EXPAND_AS_DEFINED tags.",
-                 FALSE
-                );
+             "EXPAND_ONLY_PREDEF",
+              "If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then\n"
+              "the macro expansion is limited to the macros specified with the PREDEFINED and\n"
+              "EXPAND_AS_DEFINED tags.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag ENABLE_PREPROCESSING is set to YES.",
+              FALSE
+             );
   cb->addDependency("ENABLE_PREPROCESSING");
   //----
   cb = cfg->addBool(
-                 "SEARCH_INCLUDES",
-                 "If the SEARCH_INCLUDES tag is set to YES (the default) the includes files\n"
-                 "pointed to by INCLUDE_PATH will be searched when a #include is found.",
-                 TRUE
-                );
+             "SEARCH_INCLUDES",
+              "If the SEARCH_INCLUDES tag is set to YES the includes files in the\n"
+              "INCLUDE_PATH will be searched if a #include is found.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag ENABLE_PREPROCESSING is set to YES.",
+              TRUE
+             );
   cb->addDependency("ENABLE_PREPROCESSING");
   //----
   cl = cfg->addList(
-                 "INCLUDE_PATH",
-                 "The INCLUDE_PATH tag can be used to specify one or more directories that\n"
-                 "contain include files that are not input files but should be processed by\n"
-                 "the preprocessor."
-                );
+              "INCLUDE_PATH",
+              "The INCLUDE_PATH tag can be used to specify one or more directories that\n"
+              "contain include files that are not input files but should be processed by the\n"
+              "preprocessor.\n"
+              "This tag requires that the tag SEARCH_INCLUDES is set to YES."
+             );
   cl->addDependency("SEARCH_INCLUDES");
   cl->setWidgetType(ConfigList::Dir);
   //----
   cl = cfg->addList(
-                 "INCLUDE_FILE_PATTERNS",
-                 "You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard\n"
-                 "patterns (like *.h and *.hpp) to filter out the header-files in the\n"
-                 "directories. If left blank, the patterns specified with FILE_PATTERNS will\n"
-                 "be used."
-                );
+              "INCLUDE_FILE_PATTERNS",
+              "You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard\n"
+              "patterns (like *.h and *.hpp) to filter out the header-files in the\n"
+              "directories. If left blank, the patterns specified with FILE_PATTERNS will be\n"
+              "used.\n"
+              "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+             );
   cl->addDependency("ENABLE_PREPROCESSING");
   //----
   cl = cfg->addList(
-                 "PREDEFINED",
-                 "The PREDEFINED tag can be used to specify one or more macro names that\n"
-                 "are defined before the preprocessor is started (similar to the -D option of\n"
-                 "gcc). The argument of the tag is a list of macros of the form: name\n"
-                 "or name=definition (no spaces). If the definition and the = are\n"
-                 "omitted =1 is assumed. To prevent a macro definition from being\n"
-                 "undefined via #undef or recursively expanded use the := operator\n"
-                 "instead of the = operator."
-                );
+              "PREDEFINED",
+              "The PREDEFINED tag can be used to specify one or more macro names that are\n"
+              "defined before the preprocessor is started (similar to the -D option of e.g.\n"
+              "gcc). The argument of the tag is a list of macros of the form: name or\n"
+              "name=definition (no spaces). If the definition and the \"=\" are omitted, \"=1\"\n"
+              "is assumed. To prevent a macro definition from being undefined via #undef or\n"
+              "recursively expanded use the := operator instead of the = operator.\n"
+              "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+             );
   cl->addDependency("ENABLE_PREPROCESSING");
   //----
   cl = cfg->addList(
-                 "EXPAND_AS_DEFINED",
-                 "If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then\n"
-                 "this tag can be used to specify a list of macro names that should be expanded.\n"
-                 "The macro definition that is found in the sources will be used.\n"
-                 "Use the PREDEFINED tag if you want to use a different macro definition that\n"
-                 "overrules the definition found in the source code."
-                );
+              "EXPAND_AS_DEFINED",
+              "If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this\n"
+              "tag can be used to specify a list of macro names that should be expanded. The\n"
+              "macro definition that is found in the sources will be used. Use the PREDEFINED\n"
+              "tag if you want to use a different macro definition that overrules the\n"
+              "definition found in the source code.\n"
+              "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+             );
   cl->addDependency("ENABLE_PREPROCESSING");
   //----
   cb = cfg->addBool(
-                 "SKIP_FUNCTION_MACROS",
-                 "If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then\n"
-                 "doxygen's preprocessor will remove all references to function-like macros\n"
-                 "that are alone on a line, have an all uppercase name, and do not end with a\n"
-                 "semicolon, because these will confuse the parser if not removed.",
-                 TRUE
-                );
+             "SKIP_FUNCTION_MACROS",
+              "If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will\n"
+              "remove all refrences to function-like macros that are alone on a line, have an\n"
+              "all uppercase name, and do not end with a semicolon. Such function macros are\n"
+              "typically used for boiler-plate code, and will confuse the parser if not\n"
+              "removed.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag ENABLE_PREPROCESSING is set to YES.",
+              TRUE
+             );
   cb->addDependency("ENABLE_PREPROCESSING");
   //---------------------------------------------------------------------------
-  cfg->addInfo("External","Configuration::additions related to external references");
+  cfg->addInfo("External","Configuration options related to external references");
   //---------------------------------------------------------------------------
 
   //----
   cl = cfg->addList(
-                 "TAGFILES",
-                 "The TAGFILES option can be used to specify one or more tagfiles. For each\n"
-                 "tag file the location of the external documentation should be added. The\n"
-                 "format of a tag file without this location is as follows:\n"
-                 "\n"
-                 "TAGFILES = file1 file2 ...\n"
-                 "Adding location for the tag files is done as follows:\n"
-                 "\n"
-                 "TAGFILES = file1=loc1 \"file2 = loc2\" ...\n"
-                 "where \"loc1\" and \"loc2\" can be relative or absolute paths\n"
-                 "or URLs. Note that each tag file must have a unique name (where the name does\n"
-                 "NOT include the path). If a tag file is not located in the directory in which\n"
-                 "doxygen is run, you must also specify the path to the tagfile here."
-                );
+              "TAGFILES",
+              "The TAGFILES tag can be used to specify one or more tag files. For each tag\n"
+              "file the location of the external documentation should be added. The format of\n"
+              "a tag file without this location is as follows:\n"
+              "TAGFILES = file1 file2 ...\n"
+              "Adding location for the tag files is done as follows:\n"
+              "TAGFILES = file1=loc1 \"file2 = loc2\" ...\n"
+              "where loc1 and loc2 can be relative or absolute paths or URLs. See the\n"
+              "section \"Linking to external documentation\" for more information about the use\n"
+              "of tag files.\n"
+              "Note: Each tag file must have an unique name (where the name does NOT include\n"
+              "the path). If a tag file is not located in the directory in which doxygen is\n"
+              "run, you must also specify the path to the tagfile here."
+             );
   cl->setWidgetType(ConfigList::File);
   //----
   cs = cfg->addString(
-                 "GENERATE_TAGFILE",
-                 "When a file name is specified after GENERATE_TAGFILE, doxygen will create\n"
-                 "a tag file that is based on the input files it reads."
-                );
+              "GENERATE_TAGFILE",
+              "When a file name is specified after GENERATE_TAGFILE, doxygen will create a\n"
+              "tag file that is based on the input files it reads. See section \"Linking to\n"
+              "external documentation\" for more information about the usage of tag files."
+             );
   cs->setWidgetType(ConfigString::File);
   //----
   cb = cfg->addBool(
-                 "ALLEXTERNALS",
-                 "If the ALLEXTERNALS tag is set to YES all external classes will be listed\n"
-                 "in the class index. If set to NO only the inherited external classes\n"
-                 "will be listed.",
-                 FALSE
-                );
+             "ALLEXTERNALS",
+              "If the ALLEXTERNALS tag is set to YES all external class will be listed in the\n"
+              "class index. If set to NO only the inherited external classes will be listed.\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   cb = cfg->addBool(
-                 "EXTERNAL_GROUPS",
-                 "If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed\n"
-                 "in the modules index. If set to NO, only the current project's groups will\n"
-                 "be listed.",
-                 TRUE
-                );
+             "EXTERNAL_GROUPS",
+              "If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in\n"
+              "the modules index. If set to NO, only the current project's groups will be\n"
+              "listed.\n"
+              "The default value is: YES.",
+              TRUE
+             );
   //----
   cb = cfg->addBool(
-                 "EXTERNAL_PAGES",
-                 "If the EXTERNAL_PAGES tag is set to YES all external pages will be listed\n"
-                 "in the related pages index. If set to NO, only the current project's\n"
-                 "pages will be listed.",
-                 TRUE
-                );
+             "EXTERNAL_PAGES",
+              "If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in\n"
+              "the related pages index. If set to NO, only the current project's pages will\n"
+              "be listed.\n"
+              "The default value is: YES.",
+              TRUE
+             );
   //----
   cs = cfg->addString(
-                 "PERL_PATH",
-                 "The PERL_PATH should be the absolute path and name of the perl script\n"
-                 "interpreter (i.e. the result of `which perl')."
-                );
+              "PERL_PATH",
+              "The PERL_PATH should be the absolute path and name of the perl script\n"
+              "interpreter (i.e. the result of 'which perl').\n"
+              "The default file (with absolute path) is: /usr/bin/perl."
+             );
   cs->setDefaultValue("/usr/bin/perl");
-  cs->setWidgetType(ConfigString::Dir);
+  cs->setWidgetType(ConfigString::File);
   //---------------------------------------------------------------------------
   cfg->addInfo("Dot","Configuration options related to the dot tool");
   //---------------------------------------------------------------------------
 
   //----
   cb = cfg->addBool(
-                 "CLASS_DIAGRAMS",
-                 "If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will\n"
-                 "generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base\n"
-                 "or super classes. Setting the tag to NO turns the diagrams off. Note that\n"
-                 "this option also works with HAVE_DOT disabled, but it is recommended to\n"
-                 "install and use dot, since it yields more powerful graphs.",
-                 TRUE
-                );
+             "CLASS_DIAGRAMS",
+              "If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram\n"
+              "(in HTML and LaTeX) for classes with base or super classes. Setting the tag to\n"
+              "NO turns the diagrams off. Note that this option also works with HAVE_DOT\n"
+              "disabled, but it is recommended to install and use dot, since it yields more\n"
+              "powerful graphs.\n"
+              "The default value is: YES.",
+              TRUE
+             );
   //----
   cs = cfg->addString(
-                 "MSCGEN_PATH",
-                 "You can define message sequence charts within doxygen comments using the \\msc\n"
-                 "command. Doxygen will then run the mscgen tool (see\n"
-                 "http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the\n"
-                 "documentation. The MSCGEN_PATH tag allows you to specify the directory where\n"
-                 "the mscgen tool resides. If left empty the tool is assumed to be found in the\n"
-                 "default search path."
-                );
-  //----
-  cb = cfg->addBool(
-                 "HIDE_UNDOC_RELATIONS",
-                 "If set to YES, the inheritance and collaboration graphs will hide\n"
-                 "inheritance and usage relations if the target is undocumented\n"
-                 "or is not a class.",
-                 TRUE
-                );
-  //----
-  cb = cfg->addBool(
-                 "HAVE_DOT",
-                 "If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is\n"
-                 "available from the path. This tool is part of Graphviz, a graph visualization\n"
-                 "toolkit from AT&T and Lucent Bell Labs. The other options in this section\n"
-                 "have no effect if this option is set to NO (the default)",
-                 FALSE
-                );
+              "MSCGEN_PATH",
+              "You can define message sequence charts within doxygen comments using the \\msc\n"
+              "command. Doxygen will then run the mscgen tool (see:\n"
+              "http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the\n"
+              "documentation. The MSCGEN_PATH tag allows you to specify the directory where\n"
+              "the mscgen tool resides. If left empty the tool is assumed to be found in the\n"
+              "default search path."
+             );
+  cs->setWidgetType(ConfigString::Dir);
+  //----
+  cb = cfg->addBool(
+             "HIDE_UNDOC_RELATIONS",
+              "If set to YES, the inheritance and collaboration graphs will hide inheritance\n"
+              "and usage relations if the target is undocumented or is not a class.\n"
+              "The default value is: YES.",
+              TRUE
+             );
+  //----
+  cb = cfg->addBool(
+             "HAVE_DOT",
+              "If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is\n"
+              "available from the path. This tool is part of Graphviz (see:\n"
+              "http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent\n"
+              "Bell Labs. The other options in this section have no effect if this option is\n"
+              "set to NO\n"
+              "The default value is: NO.",
+              FALSE
+             );
   //----
   ci = cfg->addInt(
-                 "DOT_NUM_THREADS",
-                 "The DOT_NUM_THREADS specifies the number of dot invocations doxygen is\n"
-                 "allowed to run in parallel. When set to 0 (the default) doxygen will\n"
-                 "base this on the number of processors available in the system. You can set it\n"
-                 "explicitly to a value larger than 0 to get control over the balance\n"
-                 "between CPU load and processing speed.",
-                 0,32,0
-                );
+              "DOT_NUM_THREADS",
+              "The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed\n"
+              "to run in parallel. When set to 0 doxygen will base this on the number of\n"
+              "processors available in the system. You can set it explicitly to a value\n"
+              "larger than 0 to get control over the balance between CPU load and processing\n"
+              "speed.\n"
+              "Minimum value: 0, maximum value: 32, default value: 0.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              0,32,0
+             );
   ci->addDependency("HAVE_DOT");
   //----
   cs = cfg->addString(
-                 "DOT_FONTNAME",
-                 "By default doxygen will use the Helvetica font for all dot files that\n"
-                 "doxygen generates. When you want a differently looking font you can specify\n"
-                 "the font name using DOT_FONTNAME. You need to make sure dot is able to find\n"
-                 "the font, which can be done by putting it in a standard location or by setting\n"
-                 "the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the\n"
-                 "directory containing the font."
-                );
+              "DOT_FONTNAME",
+              "When you want a differently looking font n the dot files that doxygen\n"
+              "generates you can specify the font name using DOT_FONTNAME. You need to make\n"
+              "sure dot is able to find the font, which can be done by putting it in a\n"
+              "standard location or by setting the DOTFONTPATH environment variable or by\n"
+              "setting DOT_FONTPATH to the directory containing the font.\n"
+              "The default value is: Helvetica.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+             );
   cs->setDefaultValue("Helvetica");
   cs->addDependency("HAVE_DOT");
   //----
   ci = cfg->addInt(
-                 "DOT_FONTSIZE",
-                 "The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.\n"
-                 "The default size is 10pt.",
-                 4,24,10
-                );
+              "DOT_FONTSIZE",
+              "The DOT_FONTSIZE tag can be used to set the size (in points) of the font of\n"
+              "dot graphs.\n"
+              "Minimum value: 4, maximum value: 24, default value: 10.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              4,24,10
+             );
   ci->addDependency("HAVE_DOT");
   //----
   cs = cfg->addString(
-                 "DOT_FONTPATH",
-                 "By default doxygen will tell dot to use the Helvetica font.\n"
-                 "If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to\n"
-                 "set the path where dot can find it."
-                );
+              "DOT_FONTPATH",
+              "By default doxygen will tell dot to use the default font as specified with\n"
+              "DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set\n"
+              "the path where dot can find it using this tag.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+             );
+  cs->setWidgetType(ConfigString::Dir);
   cs->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "CLASS_GRAPH",
-                 "If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen\n"
-                 "will generate a graph for each documented class showing the direct and\n"
-                 "indirect inheritance relations. Setting this tag to YES will force the\n"
-                 "CLASS_DIAGRAMS tag to NO.",
-                 TRUE
-                );
+             "CLASS_GRAPH",
+              "If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for\n"
+              "each documented class showing the direct and indirect inheritance relations.\n"
+              "Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              TRUE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "COLLABORATION_GRAPH",
-                 "If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen\n"
-                 "will generate a graph for each documented class showing the direct and\n"
-                 "indirect implementation dependencies (inheritance, containment, and\n"
-                 "class references variables) of the class with other documented classes.",
-                 TRUE
-                );
+             "COLLABORATION_GRAPH",
+              "If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a\n"
+              "graph for each documented class showing the direct and indirect implementation\n"
+              "dependencies (inheritance, containment, and class references variables) of the\n"
+              "class with other documented classes.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              TRUE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "GROUP_GRAPHS",
-                 "If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen\n"
-                 "will generate a graph for groups, showing the direct groups dependencies",
-                 TRUE
-                );
+             "GROUP_GRAPHS",
+              "If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for\n"
+              "groups, showing the direct groups dependencies.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              TRUE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "UML_LOOK",
-                 "If the UML_LOOK tag is set to YES doxygen will generate inheritance and\n"
-                 "collaboration diagrams in a style similar to the OMG's Unified Modeling\n"
-                 "Language.",
-                 FALSE
-                );
+             "UML_LOOK",
+              "If the UML_LOOK tag is set to YES doxygen will generate inheritance and\n"
+              "collaboration diagrams in a style similar to the OMG's Unified Modeling\n"
+              "Language.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              FALSE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   ci = cfg->addInt(
-                 "UML_LIMIT_NUM_FIELDS",
-                 "If the UML_LOOK tag is enabled, the fields and methods are shown inside\n"
-                 "the class node. If there are many fields or methods and many nodes the\n"
-                 "graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS\n"
-                 "threshold limits the number of items for each type to make the size more\n"
-                 "manageable. Set this to 0 for no limit. Note that the threshold may be\n"
-                 "exceeded by 50% before the limit is enforced.",
-                 0,100,10
-                );
+              "UML_LIMIT_NUM_FIELDS",
+              "If the UML_LOOK tag is enabled, the fields and methods are shown inside the\n"
+              "class node. If there are many fields or methods and many nodes the graph may\n"
+              "become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the\n"
+              "number of items for each type to make the size more manageable. Set this to 0\n"
+              "for no limit. Note that the threshold may be exceeded by 50% before the limit\n"
+              "is enforced. So when you set the threshold to 10, up to 15 fields may appear,\n"
+              "but if the number exceeds 15, the total amount of fields shown is limited to\n"
+              "10.\n"
+              "Minimum value: 0, maximum value: 100, default value: 10.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              0,100,10
+             );
   ci->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "TEMPLATE_RELATIONS",
-                 "If set to YES, the inheritance and collaboration graphs will show the\n"
-                 "relations between templates and their instances.",
-                 FALSE
-                );
+             "TEMPLATE_RELATIONS",
+              "If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and\n"
+              "collaboration graphs will show the relations between templates and their\n"
+              "instances.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              FALSE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "INCLUDE_GRAPH",
-                 "If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT\n"
-                 "tags are set to YES then doxygen will generate a graph for each documented\n"
-                 "file showing the direct and indirect include dependencies of the file with\n"
-                 "other documented files.",
-                 TRUE
-                );
+             "INCLUDE_GRAPH",
+              "If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to\n"
+              "YES then doxygen will generate a graph for each documented file showing the\n"
+              "direct and indirect include dependencies of the file with other documented\n"
+              "files.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              TRUE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "INCLUDED_BY_GRAPH",
-                 "If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and\n"
-                 "HAVE_DOT tags are set to YES then doxygen will generate a graph for each\n"
-                 "documented header file showing the documented files that directly or\n"
-                 "indirectly include this file.",
-                 TRUE
-                );
+             "INCLUDED_BY_GRAPH",
+              "If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are\n"
+              "set to YES then doxygen will generate a graph for each documented file showing\n"
+              "the direct and indirect include dependencies of the file with other documented\n"
+              "files.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              TRUE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "CALL_GRAPH",
-                 "If the CALL_GRAPH and HAVE_DOT options are set to YES then\n"
-                 "doxygen will generate a call dependency graph for every global function\n"
-                 "or class method. Note that enabling this option will significantly increase\n"
-                 "the time of a run. So in most cases it will be better to enable call graphs\n"
-                 "for selected functions only using the \\callgraph command.",
-                 FALSE
-                );
+             "CALL_GRAPH",
+              "If the CALL_GRAPH tag is set to YES then doxygen will generate a call\n"
+              "dependency graph for every global function or class method.\n"
+              "\n"
+              "Note that enabling this option will significantly increase the time of a run.\n"
+              "So in most cases it will be better to enable call graphs for selected\n"
+              "functions only using the \\callgraph command.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              FALSE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "CALLER_GRAPH",
-                 "If the CALLER_GRAPH and HAVE_DOT tags are set to YES then\n"
-                 "doxygen will generate a caller dependency graph for every global function\n"
-                 "or class method. Note that enabling this option will significantly increase\n"
-                 "the time of a run. So in most cases it will be better to enable caller\n"
-                 "graphs for selected functions only using the \\callergraph command.",
-                 FALSE
-                );
+             "CALLER_GRAPH",
+              "If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller\n"
+              "dependency graph for every global function or class method.\n"
+              "\n"
+              "Note that enabling this option will significantly increase the time of a run.\n"
+              "So in most cases it will be better to enable caller graphs for selected\n"
+              "functions only using the \\callergraph command.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              FALSE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "GRAPHICAL_HIERARCHY",
-                 "If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen\n"
-                 "will generate a graphical hierarchy of all classes instead of a textual one.",
-                 TRUE
-                );
+             "GRAPHICAL_HIERARCHY",
+              "If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical\n"
+              "hierarchy of all classes instead of a textual one.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              TRUE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "DIRECTORY_GRAPH",
-                 "If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES\n"
-                 "then doxygen will show the dependencies a directory has on other directories\n"
-                 "in a graphical way. The dependency relations are determined by the #include\n"
-                 "relations between the files in the directories.",
-                 TRUE
-                );
+             "DIRECTORY_GRAPH",
+              "If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the\n"
+              "dependencies a directory has on other directories in a graphical way. The\n"
+              "dependency relations are determined by the #include relations between the\n"
+              "files in the directories.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              TRUE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   ce = cfg->addEnum(
-                 "DOT_IMAGE_FORMAT",
-                 "The DOT_IMAGE_FORMAT tag can be used to set the image format of the images\n"
-                 "generated by dot. Possible values are svg, png, jpg, or gif.\n"
-                 "If left blank png will be used. If you choose svg you need to set\n"
-                 "HTML_FILE_EXTENSION to xhtml in order to make the SVG files\n"
-                 "visible in IE 9+ (other browsers do not have this requirement).",
-                 "png"
-                );
+              "DOT_IMAGE_FORMAT",
+              "The DOT_IMAGE_FORMAT tag can be used to set the image format of the images\n"
+              "generated by dot.\n"
+              "Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order\n"
+              "to make the SVG files visible in IE 9+ (other browsers do not have this\n"
+              "requirement).\n"
+              "Possible values are: png, jpg, gif and svg.\n"
+              "The default value is: png.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              "png"
+             );
   ce->addValue("png");
   ce->addValue("jpg");
   ce->addValue("gif");
@@ -2518,105 +2921,123 @@ void addConfigOptions(Config *cfg)
   ce->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "INTERACTIVE_SVG",
-                 "If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to\n"
-                 "enable generation of interactive SVG images that allow zooming and panning.\n"
-                 "Note that this requires a modern browser other than Internet Explorer.\n"
-                 "Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you\n"
-                 "need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files\n"
-                 "visible. Older versions of IE do not have SVG support.",
-                 FALSE
-                );
+             "INTERACTIVE_SVG",
+              "If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to\n"
+              "enable generation of interactive SVG images that allow zooming and panning.\n"
+              "\n"
+              "Note that this requires a modern browser other than Internet Explorer. Tested\n"
+              "and working are Firefox, Chrome, Safari, and Opera.\n"
+              "Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make\n"
+              "the SVG files visible. Older versions of IE do not have SVG support.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              FALSE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   cs = cfg->addString(
-                 "DOT_PATH",
-                 "The tag DOT_PATH can be used to specify the path where the dot tool can be\n"
-                 "found. If left blank, it is assumed the dot tool can be found in the path."
-                );
+              "DOT_PATH",
+              "The DOT_PATH tag can be used to specify the path where the dot tool can be\n"
+              "found. If left blank, it is assumed the dot tool can be found in the path.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+             );
   cs->setWidgetType(ConfigString::Dir);
   cs->addDependency("HAVE_DOT");
   //----
   cl = cfg->addList(
-                 "DOTFILE_DIRS",
-                 "The DOTFILE_DIRS tag can be used to specify one or more directories that\n"
-                 "contain dot files that are included in the documentation (see the\n"
-                 "\\dotfile command)."
-                );
+              "DOTFILE_DIRS",
+              "The DOTFILE_DIRS tag can be used to specify one or more directories that\n"
+              "contain dot files that are included in the documentation (see the \\dotfile\n"
+              "command).\n"
+              "This tag requires that the tag HAVE_DOT is set to YES."
+             );
   cl->addDependency("HAVE_DOT");
   cl->setWidgetType(ConfigList::Dir);
   //----
   cl = cfg->addList(
-                 "MSCFILE_DIRS",
-                 "The MSCFILE_DIRS tag can be used to specify one or more directories that\n"
-                 "contain msc files that are included in the documentation (see the\n"
-                 "\\mscfile command)."
-                );
+              "MSCFILE_DIRS",
+              "The MSCFILE_DIRS tag can be used to specify one or more directories that\n"
+              "contain msc files that are included in the documentation (see the \\mscfile\n"
+              "command)."
+             );
   cl->setWidgetType(ConfigList::Dir);
   //----
   ci = cfg->addInt(
-                 "DOT_GRAPH_MAX_NODES",
-                 "The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of\n"
-                 "nodes that will be shown in the graph. If the number of nodes in a graph\n"
-                 "becomes larger than this value, doxygen will truncate the graph, which is\n"
-                 "visualized by representing a node as a red box. Note that doxygen if the\n"
-                 "number of direct children of the root node in a graph is already larger than\n"
-                 "DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note\n"
-                 "that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.",
-                 0,10000,50
-                );
+              "DOT_GRAPH_MAX_NODES",
+              "The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes\n"
+              "that will be shown in the graph. If the number of nodes in a graph becomes\n"
+              "larger than this value, doxygen will truncate the graph, which is visualized\n"
+              "by representing a node as a red box. Note that doxygen if the number of direct\n"
+              "children of the root node in a graph is already larger than\n"
+              "DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that\n"
+              "the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.\n"
+              "Minimum value: 0, maximum value: 10000, default value: 50.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              0,10000,50
+             );
   ci->addDependency("HAVE_DOT");
   //----
   ci = cfg->addInt(
-                 "MAX_DOT_GRAPH_DEPTH",
-                 "The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the\n"
-                 "graphs generated by dot. A depth value of 3 means that only nodes reachable\n"
-                 "from the root by following a path via at most 3 edges will be shown. Nodes\n"
-                 "that lay further from the root node will be omitted. Note that setting this\n"
-                 "option to 1 or 2 may greatly reduce the computation time needed for large\n"
-                 "code bases. Also note that the size of a graph can be further restricted by\n"
-                 "DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.",
-                 0,1000,0
-                );
+              "MAX_DOT_GRAPH_DEPTH",
+              "The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs\n"
+              "generated by dot. A depth value of 3 means that only nodes reachable from the\n"
+              "root by following a path via at most 3 edges will be shown. Nodes that lay\n"
+              "further from the root node will be omitted. Note that setting this option to 1\n"
+              "or 2 may greatly reduce the computation time needed for large code bases. Also\n"
+              "note that the size of a graph can be further restricted by\n"
+              "DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.\n"
+              "Minimum value: 0, maximum value: 1000, default value: 0.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              0,1000,0
+             );
   ci->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "DOT_TRANSPARENT",
-                 "Set the DOT_TRANSPARENT tag to YES to generate images with a transparent\n"
-                 "background. This is disabled by default, because dot on Windows does not\n"
-                 "seem to support this out of the box. Warning: Depending on the platform used,\n"
-                 "enabling this option may lead to badly anti-aliased labels on the edges of\n"
-                 "a graph (i.e. they become hard to read).",
-                 FALSE
-                );
+             "DOT_TRANSPARENT",
+              "Set the DOT_TRANSPARENT tag to YES to generate images with a transparent\n"
+              "background. This is disabled by default, because dot on Windows does not seem\n"
+              "to support this out of the box.\n"
+              "\n"
+              "Warning: Depending on the platform used, enabling this option may lead to\n"
+              "badly anti-aliased labels on the edges of a graph (i.e. they become hard to\n"
+              "read).\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              FALSE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "DOT_MULTI_TARGETS",
-                 "Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output\n"
-                 "files in one run (i.e. multiple -o and -T options on the command line). This\n"
-                 "makes dot run faster, but since only newer versions of dot (>1.8.10)\n"
-                 "support this, this feature is disabled by default.",
-                 FALSE
-                );
+             "DOT_MULTI_TARGETS",
+              "Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output\n"
+              "files in one run (i.e. multiple -o and -T options on the command line). This\n"
+              "makes dot run faster, but since only newer versions of dot (>1.8.10) support\n"
+              "this, this feature is disabled by default.\n"
+              "The default value is: NO.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              FALSE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "GENERATE_LEGEND",
-                 "If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will\n"
-                 "generate a legend page explaining the meaning of the various boxes and\n"
-                 "arrows in the dot generated graphs.",
-                 TRUE
-                );
+             "GENERATE_LEGEND",
+              "If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page\n"
+              "explaining the meaning of the various boxes and arrows in the dot generated\n"
+              "graphs.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              TRUE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   cb = cfg->addBool(
-                 "DOT_CLEANUP",
-                 "If the DOT_CLEANUP tag is set to YES (the default) Doxygen will\n"
-                 "remove the intermediate dot files that are used to generate\n"
-                 "the various graphs.",
-                 TRUE
-                );
+             "DOT_CLEANUP",
+              "If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot\n"
+              "files that are used to generate the various graphs.\n"
+              "The default value is: YES.\n"
+              "This tag requires that the tag HAVE_DOT is set to YES.",
+              TRUE
+             );
   cb->addDependency("HAVE_DOT");
   //----
   cfg->addObsolete("USE_WINDOWS_ENCODING");
index 179d751..8b4fc22 100644 (file)
@@ -1,8 +1,5 @@
 /******************************************************************************
  *
- * 
- *
- *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
index bfb5cd0..12168dd 100644 (file)
@@ -861,6 +861,7 @@ bool DBusXMLScanner::needsPreprocessing(const QCString & /* extension */)
 void DBusXMLScanner::parseCode(CodeOutputInterface & /* codeOutIntf */,
                                const char * /* scopeName */,
                                const QCString & /* input */,
+                               SrcLangExt /* lang */,
                                bool /* isExampleBlock */,
                                const char * /* exampleName */,
                                FileDef * /* fileDef */,
index a0ead5a..64ba1a7 100644 (file)
@@ -42,6 +42,7 @@ public:
     void parseCode(CodeOutputInterface &codeOutIntf,
                    const char *scopeName,
                    const QCString &input,
+                   SrcLangExt lang,
                    bool isExampleBlock,
                    const char *exampleName=0,
                    FileDef *fileDef=0,
index fe1afb7..b259088 100644 (file)
@@ -67,6 +67,7 @@ class DefinitionImpl
     DocInfo   *inbodyDocs; // not exported
     BriefInfo *brief;      // not exported
     BodyInfo  *body;       // not exported
+    QCString   briefSignatures;
     QCString   docSignatures;
 
     QCString localName;      // local (unqualified) name of the definition
@@ -536,7 +537,7 @@ void Definition::writeDocAnchorsToTagFile()
   }
 }
 
-bool Definition::_docsAlreadyAdded(const QCString &doc)
+bool Definition::_docsAlreadyAdded(const QCString &doc,QCString &sigList)
 {
   uchar md5_sig[16];
   QCString sigStr(33);
@@ -545,9 +546,11 @@ bool Definition::_docsAlreadyAdded(const QCString &doc)
   QCString docStr = doc.simplifyWhiteSpace();
   MD5Buffer((const unsigned char *)docStr.data(),docStr.length(),md5_sig);
   MD5SigToString(md5_sig,sigStr.data(),33);
-  if (m_impl->docSignatures.find(sigStr)==-1) // new docs, add signature to prevent re-adding it
+  //printf("%s:_docsAlreadyAdded doc='%s' sig='%s' docSigs='%s'\n",
+  //    name().data(),doc.data(),sigStr.data(),sigList.data());
+  if (sigList.find(sigStr)==-1) // new docs, add signature to prevent re-adding it
   {
-    m_impl->docSignatures+=":"+sigStr;
+    sigList+=":"+sigStr;
     return FALSE;
   }
   else
@@ -570,7 +573,7 @@ void Definition::_setDocumentation(const char *d,const char *docFile,int docLine
   {
     doc=d;
   }
-  if (!_docsAlreadyAdded(doc))
+  if (!_docsAlreadyAdded(doc,m_impl->docSignatures))
   {
     //printf("setting docs for %s: `%s'\n",name().data(),m_doc.data());
     if (m_impl->details==0)
@@ -644,30 +647,37 @@ void Definition::_setBriefDescription(const char *b,const char *briefFile,int br
     }
   }
 
-  if (m_impl->brief && !m_impl->brief->doc.isEmpty())
+  if (!_docsAlreadyAdded(brief,m_impl->briefSignatures))
   {
-      //printf("adding to details\n");
-      _setDocumentation(brief,briefFile,briefLine,FALSE,TRUE);
-  }
-  else if (!_docsAlreadyAdded(brief))
-  {
-    //fprintf(stderr,"Definition::setBriefDescription(%s,%s,%d)\n",b,briefFile,briefLine);
-    if (m_impl->brief==0)
+    if (m_impl->brief && !m_impl->brief->doc.isEmpty())
     {
-      m_impl->brief = new BriefInfo;
-    }
-    m_impl->brief->doc=brief;
-    if (briefLine!=-1)
-    {
-      m_impl->brief->file = briefFile;
-      m_impl->brief->line = briefLine;
+       //printf("adding to details\n");
+       _setDocumentation(brief,briefFile,briefLine,FALSE,TRUE);
     }
     else
     {
-      m_impl->brief->file = briefFile;
-      m_impl->brief->line = 1;
+      //fprintf(stderr,"Definition::setBriefDescription(%s,%s,%d)\n",b,briefFile,briefLine);
+      if (m_impl->brief==0)
+      {
+        m_impl->brief = new BriefInfo;
+      }
+      m_impl->brief->doc=brief;
+      if (briefLine!=-1)
+      {
+        m_impl->brief->file = briefFile;
+        m_impl->brief->line = briefLine;
+      }
+      else
+      {
+        m_impl->brief->file = briefFile;
+        m_impl->brief->line = 1;
+      }
     }
   }
+  else
+  {
+    //printf("do nothing!\n");
+  }
 }
 
 void Definition::setBriefDescription(const char *b,const char *briefFile,int briefLine) 
@@ -867,24 +877,53 @@ bool readCodeFragment(const char *fileName,
   return found;
 }
 
+QCString Definition::getSourceFileBase() const
+{ 
+  ASSERT(definitionType()!=Definition::TypeFile); // file overloads this method
+  QCString fn;
+  static bool sourceBrowser = Config_getBool("SOURCE_BROWSER");
+  if (sourceBrowser && 
+      m_impl->body && m_impl->body->startLine!=-1 && m_impl->body->fileDef)
+  {
+    fn = m_impl->body->fileDef->getSourceFileBase();
+  }
+  return fn;
+}
+
+QCString Definition::getSourceAnchor() const
+{
+  QCString anchorStr;
+  if (m_impl->body && m_impl->body->startLine!=-1)
+  {
+    if (Htags::useHtags)
+    {
+      anchorStr.sprintf("L%d",m_impl->body->startLine);
+    }
+    else
+    {
+      anchorStr.sprintf("l%05d",m_impl->body->startLine);
+    }
+  }
+  return anchorStr;
+}
+
 /*! Write a reference to the source code defining this definition */
 void Definition::writeSourceDef(OutputList &ol,const char *)
 {
-  static bool sourceBrowser = Config_getBool("SOURCE_BROWSER");
   static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE");
   ol.pushGeneratorState();
   //printf("Definition::writeSourceRef %d %p\n",bodyLine,bodyDef);
-  if (sourceBrowser && 
-      m_impl->body && m_impl->body->startLine!=-1 && m_impl->body->fileDef)
+  QCString fn = getSourceFileBase();
+  if (!fn.isEmpty())
   {
     QCString refText = theTranslator->trDefinedAtLineInSourceFile();
     int lineMarkerPos = refText.find("@0");
     int fileMarkerPos = refText.find("@1");
     if (lineMarkerPos!=-1 && fileMarkerPos!=-1) // should always pass this.
     {
-      QCString lineStr,anchorStr;
+      QCString lineStr;
       lineStr.sprintf("%d",m_impl->body->startLine);
-      anchorStr.sprintf(Htags::useHtags ? "L%d" : "l%05d",m_impl->body->startLine);
+      QCString anchorStr = getSourceAnchor();
       ol.startParagraph();
       if (lineMarkerPos<fileMarkerPos) // line marker before file marker
       {
@@ -898,8 +937,7 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
           ol.disable(OutputGenerator::Latex);
         }
         // write line link (HTML, LaTeX optionally)
-        ol.writeObjectLink(0,m_impl->body->fileDef->getSourceFileBase(),
-            anchorStr,lineStr);
+        ol.writeObjectLink(0,fn,anchorStr,lineStr);
         ol.enableAll();
         ol.disable(OutputGenerator::Html);
         if (latexSourceCode) 
@@ -922,8 +960,7 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
           ol.disable(OutputGenerator::Latex);
         }
         // write line link (HTML, LaTeX optionally)
-        ol.writeObjectLink(0,m_impl->body->fileDef->getSourceFileBase(),
-            0,m_impl->body->fileDef->name());
+        ol.writeObjectLink(0,fn,0,m_impl->body->fileDef->name());
         ol.enableAll();
         ol.disable(OutputGenerator::Html);
         if (latexSourceCode) 
@@ -950,8 +987,7 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
           ol.disable(OutputGenerator::Latex);
         }
         // write file link (HTML only)
-        ol.writeObjectLink(0,m_impl->body->fileDef->getSourceFileBase(),
-            0,m_impl->body->fileDef->name());
+        ol.writeObjectLink(0,fn,0,m_impl->body->fileDef->name());
         ol.enableAll();
         ol.disable(OutputGenerator::Html);
         if (latexSourceCode) 
@@ -975,8 +1011,7 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
         }
         ol.disableAllBut(OutputGenerator::Html); 
         // write line link (HTML only)
-        ol.writeObjectLink(0,m_impl->body->fileDef->getSourceFileBase(),
-            anchorStr,lineStr);
+        ol.writeObjectLink(0,fn,anchorStr,lineStr);
         ol.enableAll();
         ol.disable(OutputGenerator::Html);
         if (latexSourceCode) 
@@ -1044,6 +1079,7 @@ void Definition::writeInlineCode(OutputList &ol,const char *scopeName)
       pIntf->parseCode(ol,               // codeOutIntf
                        scopeName,        // scope
                        codeFragment,     // input
+                       m_impl->lang,     // lang
                        FALSE,            // isExample
                        0,                // exampleName
                        m_impl->body->fileDef,  // fileDef
@@ -1668,6 +1704,7 @@ QCString abbreviate(const char *s,const char *name)
 
 QCString Definition::briefDescription(bool abbr) const 
 { 
+  //printf("%s::briefDescription(%d)='%s'\n",name().data(),abbr,m_impl->brief?m_impl->brief->doc.data():"<none>");
   return m_impl->brief ? 
          (abbr ? abbreviate(m_impl->brief->doc,displayName()) : m_impl->brief->doc) :
          QCString(""); 
index 74a801f..6b6e1d7 100644 (file)
@@ -130,8 +130,11 @@ class Definition : public DefinitionIntf
     /*! Returns the anchor within a page where this item can be found */
     virtual QCString anchor() const = 0;
 
-    /*! Returns the name of the source listing of this file. */
-    virtual QCString getSourceFileBase() const { ASSERT(0); return "NULL"; }
+    /*! Returns the name of the source listing of this definition. */
+    virtual QCString getSourceFileBase() const;
+
+    /*! Returns the anchor of the source listing of this definition. */
+    virtual QCString getSourceAnchor() const;
 
     /*! Returns the detailed description of this definition */
     QCString documentation() const;
@@ -349,7 +352,7 @@ class Definition : public DefinitionIntf
     void _setBriefDescription(const char *b,const char *briefFile,int briefLine);
     void _setDocumentation(const char *d,const char *docFile,int docLine,bool stripWhiteSpace,bool atTop);
     void _setInbodyDocumentation(const char *d,const char *docFile,int docLine);
-    bool _docsAlreadyAdded(const QCString &doc);
+    bool _docsAlreadyAdded(const QCString &doc,QCString &sigList);
     DefinitionImpl *m_impl; // internal structure holding all private data
     QCString m_name;
     bool m_isSymbol;
index 5726b3e..df922b3 100644 (file)
@@ -208,6 +208,12 @@ class DocbookCodeGenerator : public CodeOutputInterface
       writeDocbookLink(m_t,ref,file,anchor,name,tooltip);
       col+=strlen(name);
     }
+    void writeTooltip(const char *, const DocLinkInfo &, const char *,
+                      const char *, const SourceLinkInfo &, const SourceLinkInfo &
+                     )
+    {
+      Docbook_DB(("(writeToolTip)\n"));
+    }
     void startCodeLine(bool)
     {
       Docbook_DB(("(startCodeLine)\n"));
@@ -235,16 +241,6 @@ class DocbookCodeGenerator : public CodeOutputInterface
       m_external.resize(0);
       m_insideCodeLine=FALSE;
     }
-    void startCodeAnchor(const char *id)
-    {
-      Docbook_DB(("(startCodeAnchor)\n"));
-      m_t << "<anchor id=\"" << id << "\">";
-    }
-    void endCodeAnchor()
-    {
-      Docbook_DB(("(endCodeAnchor)\n"));
-      m_t << "</anchor>";
-    }
     void startFontClass(const char * /*colorClass*/)
     {
       Docbook_DB(("(startFontClass)\n"));
@@ -370,11 +366,13 @@ static void writeDocbookDocBlock(FTextStream &t,
 void writeDocbookCodeBlock(FTextStream &t,FileDef *fd)
 {
   ParserInterface *pIntf=Doxygen::parserManager->getParser(fd->getDefFileExtension());
+  SrcLangExt langExt = getLanguageFromFileName(fd->getDefFileExtension());
   pIntf->resetCodeParserState();
   DocbookCodeGenerator *docbookGen = new DocbookCodeGenerator(t);
   pIntf->parseCode(*docbookGen,  // codeOutIntf
       0,           // scopeName
       fileToString(fd->absFilePath(),Config_getBool("FILTER_SOURCE_FILES")),
+      langExt,     // lang
       FALSE,       // isExampleBlock
       0,           // exampleName
       fd,          // fileDef
@@ -1171,7 +1169,27 @@ static void generateDocbookForClass(ClassDef *cd,FTextStream &ti)
       {
         t << "<link linkend=\"" << ii->fileDef->getOutputFileBase() << "\">";
       }
-      t << "&lt;" << nm << "&gt;" << "</link>";
+      if (ii->local)
+      {
+        t << "&quot;";
+      }
+      else
+      {
+        t << "&lt;";
+      }
+      t << convertToXML(nm);
+      if (ii->local)
+      {
+        t << "&quot;";
+      }
+      else
+      {
+        t << "&gt;";
+      }
+      if (ii->fileDef && !ii->fileDef->isReference())
+      {
+        t << "</link>";
+      }
       t << "</programlisting>" << endl;
       t << "</para>" << endl;
     }
@@ -1389,7 +1407,23 @@ static void generateDocbookForFile(FileDef *fd,FTextStream &ti)
     for (ili1.toFirst();(inc=ili1.current());++ili1)
     {
       t << "    <programlisting>#include ";
-      t << inc->includeName;
+      if (inc->local)
+      {
+        t << "&quot;";
+      }
+      else
+      {
+        t << "&lt;";
+      }
+      t << convertToXML(inc->includeName);
+      if (inc->local)
+      {
+        t << "&quot;";
+      }
+      else
+      {
+        t << "&gt;";
+      }
       t << "</programlisting>" << endl;
     }
   }
index aa750db..ad5965d 100644 (file)
@@ -249,12 +249,13 @@ void DocbookDocVisitor::visit(DocStyleChange *s)
 void DocbookDocVisitor::visit(DocVerbatim *s)
 {
   if (m_hide) return;
+  SrcLangExt langExt = getLanguageFromFileName(m_langExt);
   switch(s->type())
   {
     case DocVerbatim::Code: // fall though
       m_t << "<programlisting>";
       Doxygen::parserManager->getParser(m_langExt)
-        ->parseCode(m_ci,s->context(),s->text(),
+        ->parseCode(m_ci,s->context(),s->text(),langExt,
             s->isExample(),s->exampleFile());
       m_t << "</programlisting>";
       break;
@@ -346,6 +347,7 @@ void DocbookDocVisitor::visit(DocAnchor *anc)
 void DocbookDocVisitor::visit(DocInclude *inc)
 {
   if (m_hide) return;
+  SrcLangExt langExt = getLanguageFromFileName(inc->extension());
   switch(inc->type())
   {
     case DocInclude::IncWithLines:
@@ -356,6 +358,7 @@ void DocbookDocVisitor::visit(DocInclude *inc)
         Doxygen::parserManager->getParser(inc->extension())
           ->parseCode(m_ci,inc->context(),
               inc->text(),
+              langExt,
               inc->isExample(),
               inc->exampleFile(), &fd);
         m_t << "</programlisting>";
@@ -366,6 +369,7 @@ void DocbookDocVisitor::visit(DocInclude *inc)
       Doxygen::parserManager->getParser(inc->extension())
         ->parseCode(m_ci,inc->context(),
             inc->text(),
+            langExt,
             inc->isExample(),
             inc->exampleFile());
       m_t << "</programlisting>";
@@ -385,6 +389,7 @@ void DocbookDocVisitor::visit(DocInclude *inc)
         ->parseCode(m_ci,
             inc->context(),
             extractBlock(inc->text(),inc->blockId()),
+            langExt,
             inc->isExample(),
             inc->exampleFile()
             );
@@ -404,6 +409,7 @@ void DocbookDocVisitor::visit(DocIncOperator *op)
     pushEnabled();
     m_hide = TRUE;
   }
+  SrcLangExt langExt = getLanguageFromFileName(m_langExt);
   if (op->type()!=DocIncOperator::Skip)
   {
     popEnabled();
@@ -411,7 +417,7 @@ void DocbookDocVisitor::visit(DocIncOperator *op)
     {
       Doxygen::parserManager->getParser(m_langExt)
         ->parseCode(m_ci,op->context(),
-            op->text(),op->isExample(),
+            op->text(),langExt,op->isExample(),
             op->exampleFile());
     }
     pushEnabled();
index 1cc3b3c..5259d46 100644 (file)
@@ -51,6 +51,7 @@
 #include "reflist.h"
 #include "formula.h"
 #include "config.h"
+#include "growbuf.h"
 
 // debug off
 #define DBG(x) do {} while(0)
@@ -1351,7 +1352,7 @@ reparsetoken:
             doctokenizerYYsetStateDbOnly();
             tok = doctokenizerYYlex();
             children.append(new DocVerbatim(parent,g_context,g_token->verb,DocVerbatim::DocbookOnly,g_isExample,g_exampleName));
-            if (tok==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"xmlonly section ended without end marker",doctokenizerYYlineno);
+            if (tok==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"docbookonly section ended without end marker",doctokenizerYYlineno);
             doctokenizerYYsetStatePara();
           }
           break;
@@ -1528,39 +1529,6 @@ handlepara:
 
 //---------------------------------------------------------------------------
 
-static int handleDocCopy(DocNode *parent,QList<DocNode> &children)
-{
-  int tok=doctokenizerYYlex();
-  int cmdId = Mappers::cmdMapper->map(g_token->name);
-  if (tok!=TK_WHITESPACE)
-  {
-    warn_doc_error(g_fileName,doctokenizerYYlineno,"expected whitespace after %s command",
-        qPrint(g_token->name));
-    return 0;
-  }
-  tok=doctokenizerYYlex();
-  if (tok==0)
-  {
-    warn_doc_error(g_fileName,doctokenizerYYlineno,"unexpected end of comment block while parsing the "
-        "argument of command %s\n", qPrint(g_token->name));
-    return 0;
-  }
-  else if (tok!=TK_WORD && tok!=TK_LNKWORD)
-  {
-    warn_doc_error(g_fileName,doctokenizerYYlineno,"unexpected token %s as the argument of %s",
-        tokToString(tok),qPrint(g_token->name));
-    return 0;
-  }
-  DocCopy *cpy = new DocCopy(parent,g_token->name,
-      cmdId==CMD_COPYDOC || cmdId==CMD_COPYBRIEF,
-      cmdId==CMD_COPYDOC || cmdId==CMD_COPYDETAILS);
-  cpy->parse(children);
-  delete cpy;
-  return TK_NEWPARA;
-}
-
-//---------------------------------------------------------------------------
-
 static void handleImg(DocNode *parent,QList<DocNode> &children,const HtmlAttribList &tagHtmlAttribs)
 {
   HtmlAttribListIterator li(tagHtmlAttribs);
@@ -1757,10 +1725,6 @@ static int internalValidatingParseDoc(DocNode *parent,QList<DocNode> &children,
     {
       delete par;
     }
-    if (retval==RetVal_CopyDoc)
-    {
-      retval=handleDocCopy(parent,children);
-    }
   } while (retval==TK_NEWPARA);
   if (lastPar) lastPar->markLast();
 
@@ -3239,15 +3203,12 @@ int DocInternal::parse(int level)
     {
       warn_doc_error(g_fileName,doctokenizerYYlineno,"Invalid list item found",doctokenizerYYlineno);
     }
-    else if (retval==RetVal_CopyDoc)
-    {
-      retval=handleDocCopy(this,m_children);
-    }
   } while (retval!=0 && 
            retval!=RetVal_Section &&
            retval!=RetVal_Subsection &&
            retval!=RetVal_Subsubsection &&
-           retval!=RetVal_Paragraph
+           retval!=RetVal_Paragraph &&
+           retval!=RetVal_EndInternal
           );
   if (lastPar) lastPar->markLast();
 
@@ -3269,7 +3230,7 @@ int DocInternal::parse(int level)
     warn_doc_error(g_fileName,doctokenizerYYlineno,"\\internal command found inside internal section");
   }
 
-  DBG(("DocInternal::parse() end\n"));
+  DBG(("DocInternal::parse() end: retval=%x\n",retval));
   DocNode *n=g_nodeStack.pop();
   ASSERT(n==this);
   return retval;
@@ -4447,6 +4408,7 @@ int DocAutoList::parse()
   int retval = RetVal_OK;
   int num=1;
   g_nodeStack.push(this);
+  doctokenizerYYstartAutoList();
          // first item or sub list => create new list
   do
   {
@@ -4469,6 +4431,7 @@ int DocAutoList::parse()
          (g_token->id==-1 || g_token->id>=num)  // increasing number (or no number)
         );
 
+  doctokenizerYYendAutoList();
   DocNode *n=g_nodeStack.pop();
   ASSERT(n==this);
   return retval;
@@ -5510,6 +5473,15 @@ int DocPara::handleCommand(const QCString &cmdName)
         doctokenizerYYsetStatePara();
       }
       break;
+    case CMD_DBONLY:
+      {
+        doctokenizerYYsetStateDbOnly();
+        retval = doctokenizerYYlex();
+        m_children.append(new DocVerbatim(this,g_context,g_token->verb,DocVerbatim::DocbookOnly,g_isExample,g_exampleName));
+        if (retval==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"docbookonly section ended without end marker",doctokenizerYYlineno);
+        doctokenizerYYsetStatePara();
+      }
+      break;
     case CMD_VERBATIM:
       {
         doctokenizerYYsetStateVerbatim();
@@ -5592,10 +5564,14 @@ int DocPara::handleCommand(const QCString &cmdName)
     case CMD_INTERNAL:
       retval = RetVal_Internal;
       break;
+    case CMD_ENDINTERNAL:
+      retval = RetVal_EndInternal;
+      break;
     case CMD_COPYDOC:   // fall through
     case CMD_COPYBRIEF: // fall through
     case CMD_COPYDETAILS:
-      retval = RetVal_CopyDoc;
+      //retval = RetVal_CopyDoc;
+      // these commands should already be resolved by processCopyDoc()
       break;
     case CMD_INCLUDE:
       handleInclude(cmdName,DocInclude::Include);
@@ -5697,7 +5673,8 @@ int DocPara::handleCommand(const QCString &cmdName)
   INTERNAL_ASSERT(retval==0 || retval==RetVal_OK || retval==RetVal_SimpleSec || 
          retval==TK_LISTITEM || retval==TK_ENDLIST || retval==TK_NEWPARA ||
          retval==RetVal_Section || retval==RetVal_EndList || 
-         retval==RetVal_Internal || retval==RetVal_SwitchLang
+         retval==RetVal_Internal || retval==RetVal_SwitchLang || 
+         retval==RetVal_EndInternal
         );
   DBG(("handleCommand(%s) end retval=%x\n",qPrint(cmdName),retval));
   return retval;
@@ -6646,16 +6623,22 @@ int DocSection::parse()
     {
       warn_doc_error(g_fileName,doctokenizerYYlineno,"Invalid list item found");
     }
-    else if (retval==RetVal_CopyDoc)
+    if (retval==RetVal_Internal)
     {
-      retval=handleDocCopy(this,m_children);
+      DocInternal *in = new DocInternal(this);
+      m_children.append(in);
+      retval = in->parse(m_level+1);
+      if (retval==RetVal_EndInternal)
+      {
+        retval=RetVal_OK;
+      }
     }
   } while (retval!=0 && 
-           retval!=RetVal_Internal      &&
            retval!=RetVal_Section       &&
            retval!=RetVal_Subsection    &&
            retval!=RetVal_Subsubsection &&
-           retval!=RetVal_Paragraph 
+           retval!=RetVal_Paragraph     &&
+           retval!=RetVal_EndInternal
           );
 
   if (lastPar) lastPar->markLast();
@@ -6712,12 +6695,6 @@ int DocSection::parse()
     retval=0; // stop parsing
             
   }
-  else if (retval==RetVal_Internal)
-  {
-    DocInternal *in = new DocInternal(this);
-    m_children.append(in);
-    retval = in->parse(m_level+1);
-  }
   else
   {
   }
@@ -6727,10 +6704,11 @@ int DocSection::parse()
                   retval==RetVal_Subsection || 
                   retval==RetVal_Subsubsection || 
                   retval==RetVal_Paragraph || 
-                  retval==RetVal_Internal
+                  retval==RetVal_Internal ||
+                  retval==RetVal_EndInternal
                  );
 
-  DBG(("DocSection::parse() end\n"));
+  DBG(("DocSection::parse() end: retval=%x\n",retval));
   DocNode *n = g_nodeStack.pop();
   ASSERT(n==this);
   return retval;
@@ -6866,11 +6844,13 @@ void DocRoot::parse()
     {
       warn_doc_error(g_fileName,doctokenizerYYlineno,"found paragraph command outside of subsubsection context!");
     }
-    else if (retval==RetVal_CopyDoc)
+    if (retval==RetVal_Internal)
     {
-      retval=handleDocCopy(this,m_children);
+      DocInternal *in = new DocInternal(this);
+      m_children.append(in);
+      retval = in->parse(1);
     }
-  } while (retval!=0 && retval!=RetVal_Section && retval!=RetVal_Internal);
+  } while (retval!=0 && retval!=RetVal_Section);
   if (lastPar) lastPar->markLast();
 
   //printf("DocRoot::parse() retval=%d %d\n",retval,RetVal_Section);
@@ -6892,14 +6872,6 @@ void DocRoot::parse()
     }
   }
 
-  if (retval==RetVal_Internal)
-  {
-    DocInternal *in = new DocInternal(this);
-    m_children.append(in);
-    retval = in->parse(1);
-  }
-
-
   handleUnclosedStyleCommands();
 
   DocNode *n = g_nodeStack.pop();
@@ -6907,6 +6879,140 @@ void DocRoot::parse()
   DBG(("DocRoot::parse() end\n"));
 }
 
+static QCString extractCopyDocId(const char *data, uint &j, uint len)
+{
+  uint s=j;
+  uint e=j;
+  int round=0;
+  bool insideDQuote=FALSE;
+  bool insideSQuote=FALSE;
+  bool found=FALSE;
+  while (j<len && !found)
+  {
+    if (!insideSQuote && !insideDQuote)
+    {
+      switch (data[j])
+      {
+        case '(': round++; break;
+        case ')': round--; break;
+        case '"': insideDQuote=TRUE; break;
+        case '\'': insideSQuote=TRUE; break;
+        case ' ':  // fall through
+        case '\t': // fall through
+        case '\n': 
+          found=(round==0);
+          break;
+      }
+    }
+    else if (insideSQuote) // look for single quote end
+    {
+      if (data[j]=='\'' && (j==0 || data[j]!='\\'))
+      {
+        insideSQuote=FALSE;
+      }
+    }
+    else if (insideDQuote) // look for double quote end
+    {
+      if (data[j]=='"' && (j==0 || data[j]!='\\'))
+      {
+        insideDQuote=FALSE;
+      }
+    }
+    if (!found) j++;
+  }
+  e=j;
+  QCString id(e-s+1);
+  if (e>s) memcpy(id.data(),data+s,e-s);
+  id.at(e-s)='\0';
+  //printf("extractCopyDocId=%s input='%s'\n",id.data(),&data[s]);
+  return id;
+}
+
+static uint isCopyBriefOrDetailsCmd(const char *data, uint i,uint len,bool &brief)
+{
+  int j=0;
+  if (i==0 || (data[i-1]!='@' && data[i-1]!='\\')) // not an escaped command
+  {
+    if (i+10<len && qstrncmp(data+i+1,"copybrief",9)==0) // @copybrief or \copybrief
+    {
+      j=i+10;
+      brief=TRUE;
+    }
+    else if (i+12<len && qstrncmp(data+i+1,"copydetails",11)==0) // @copydetails or \copydetails
+    {
+      j=i+12;
+      brief=FALSE;
+    }
+  }
+  return j;
+}
+
+static QCString processCopyDoc(const char *data,uint &len)
+{
+  //printf("processCopyDoc start '%s'\n",data);
+  GrowBuf buf;
+  uint i=0;
+  while (i<len)
+  {
+    char c = data[i];
+    if (c=='@' || c=='\\') // look for a command
+    {
+      bool isBrief=TRUE;
+      uint j=isCopyBriefOrDetailsCmd(data,i,len,isBrief);
+      if (j>0)
+      {
+        // skip whitespace
+        while (j<len && (data[j]==' ' || data[j]=='\t')) j++;
+        // extract the argument
+        QCString id = extractCopyDocId(data,j,len);
+        Definition *def;
+        QCString doc,brief;
+        //printf("resolving docs='%s'\n",id.data());
+        if (findDocsForMemberOrCompound(id,&doc,&brief,&def))
+        {
+          //printf("found it def=%p brief='%s' doc='%s' isBrief=%d\n",def,brief.data(),doc.data(),isBrief);
+          if (g_copyStack.findRef(def)==-1) // definition not parsed earlier
+          {
+            g_copyStack.append(def);
+            if (isBrief)
+            {
+              uint l=brief.length();
+              buf.addStr(processCopyDoc(brief,l));
+            }
+            else 
+            {
+              uint l=doc.length();
+              buf.addStr(processCopyDoc(doc,l));
+            }
+            g_copyStack.remove(def);
+          }
+          else
+          {
+            warn_doc_error(g_fileName,doctokenizerYYlineno,
+                "Found recursive @copy%s or @copydoc relation for argument '%s'.\n",
+                 isBrief?"brief":"details",id.data());
+          }
+        }
+        // skip over command
+        i=j;
+      }
+      else
+      {
+        buf.addChar(c);
+        i++;
+      }
+    }
+    else // not a command, just copy
+    {
+      buf.addChar(c);
+      i++;
+    }
+  }
+  len = buf.getPos();
+  buf.addChar(0);
+  return buf.get();
+}
+
 //--------------------------------------------------------------------------
 
 DocRoot *validatingParseDoc(const char *fileName,int startLine,
@@ -7072,12 +7178,13 @@ DocRoot *validatingParseDoc(const char *fileName,int startLine,
   
   //printf("Starting comment block at %s:%d\n",g_fileName.data(),startLine);
   doctokenizerYYlineno=startLine;
-  QCString inpStr=input;
-  uint inpLen = inpStr.length();
-  if (inpLen>0 && inpStr.at(inpLen-1)!='\n')
+  uint inpLen=qstrlen(input);
+  QCString inpStr = processCopyDoc(input,inpLen);
+  if (inpStr.isEmpty() || inpStr.at(inpStr.length()-1)!='\n')
   {
     inpStr+='\n';
   }
+  //printf("processCopyDoc(in='%s' out='%s')\n",input,inpStr.data());
   doctokenizerYYinit(inpStr,g_fileName);
 
   // build abstract syntax tree
index 8804a41..d2e6ea1 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * 
+ * $Id: $
  *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
@@ -62,7 +62,8 @@ enum Tokens
   RetVal_SwitchLang     = 0x10012,
   RetVal_CloseXml       = 0x10013,
   RetVal_EndBlockQuote  = 0x10014,
-  RetVal_CopyDoc        = 0x10015
+  RetVal_CopyDoc        = 0x10015,
+  RetVal_EndInternal    = 0x10016
 };
 
 /** @brief Data associated with a token used by the comment block parser. */
@@ -156,5 +157,7 @@ void doctokenizerYYsetStateAnchor();
 void doctokenizerYYsetInsidePre(bool b);
 void doctokenizerYYpushBackHtmlTag(const char *tag);
 void doctokenizerYYsetStateSnippet();
+void doctokenizerYYstartAutoList();
+void doctokenizerYYendAutoList();
 
 #endif
index cdf2933..3c924cf 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * 
+ * $Id: $
  *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
@@ -57,11 +57,13 @@ static QCString     g_secLabel;
 static QCString     g_secTitle;
 static SectionInfo::SectionType g_secType;
 static QCString     g_endMarker;
+static int          g_autoListLevel;
 
 struct DocLexerContext
 {
   TokenInfo *token;
   int rule;
+  int autoListLevel;
   int inputPos;
   const char *inputString;
   YY_BUFFER_STATE state;
@@ -75,6 +77,7 @@ void doctokenizerYYpushContext()
 {
   DocLexerContext *ctx = new DocLexerContext;
   ctx->rule = YY_START;
+  ctx->autoListLevel = g_autoListLevel;
   ctx->token = g_token;
   ctx->inputPos = g_inputPos;
   ctx->inputString = g_inputString;
@@ -87,6 +90,7 @@ bool doctokenizerYYpopContext()
 {
   if (g_lexerStack.isEmpty()) return FALSE;
   DocLexerContext *ctx = g_lexerStack.pop();
+  g_autoListLevel = ctx->autoListLevel;
   g_inputPos = ctx->inputPos;
   g_inputString = ctx->inputString;
   yy_delete_buffer(YY_CURRENT_BUFFER);
@@ -546,6 +550,13 @@ REFWORD   {LABELID}|{REFWORD2}|{REFWORD3}
                         ASSERT(ok);
                         return TK_COMMAND;
                       }
+<St_Para>{CMD}"n"\n    { /* \n followed by real newline */
+                         yylineno++;
+                         g_token->name = yytext+1;
+                        g_token->name = g_token->name.stripWhiteSpace();
+                        g_token->paramDir=TokenInfo::Unspecified;
+                         return TK_COMMAND;
+                       }
 <St_Para>{SPCMD1}      |
 <St_Para>{SPCMD2}      |
 <St_Para>{SPCMD4}      { /* special command */
@@ -691,19 +702,19 @@ REFWORD   {LABELID}|{REFWORD2}|{REFWORD3}
                          return TK_COMMAND;
                       }
 <St_Para>({BLANK}*\n)+{BLANK}*\n/{LISTITEM} { /* skip trailing paragraph followed by new list item */
-                         if (g_insidePre)
+                         if (g_insidePre || g_autoListLevel==0)
                          {
                            REJECT;
                          }
                        }
 <St_Para>({BLANK}*\n)+{BLANK}*\n/{MLISTITEM} { /* skip trailing paragraph followed by new list item */
-                         if (!Doxygen::markdownSupport || g_insidePre)
+                         if (!Doxygen::markdownSupport || g_insidePre || g_autoListLevel==0)
                          {
                            REJECT;
                          }
                        }
 <St_Para>({BLANK}*\n)+{BLANK}*\n/{OLISTITEM} { /* skip trailing paragraph followed by new list item */
-                         if (!Doxygen::markdownSupport || g_insidePre)
+                         if (!Doxygen::markdownSupport || g_insidePre || g_autoListLevel==0)
                          {
                            REJECT;
                          }
@@ -1095,6 +1106,10 @@ REFWORD   {LABELID}|{REFWORD2}|{REFWORD3}
                                       g_endMarker="endxmlonly";
                                      BEGIN(St_SecSkip);
                                     }
+<St_Sections>{CMD}"docbookonly"/[^a-z_A-Z0-9] {
+                                      g_endMarker="enddocbookonly";
+                                     BEGIN(St_SecSkip);
+                                    }
 <St_Sections>{CMD}"code"/[^a-z_A-Z0-9] {
                                       g_endMarker="endcode";
                                      BEGIN(St_SecSkip);
@@ -1182,6 +1197,7 @@ void doctokenizerYYFindSections(const char *input,Definition *d,
 
 void doctokenizerYYinit(const char *input,const char *fileName)
 {
+  g_autoListLevel = 0;
   g_inputString = input;
   g_inputPos    = 0;
   g_fileName    = fileName;
@@ -1354,6 +1370,16 @@ void doctokenizerYYpushBackHtmlTag(const char *tag)
   unput('<');
 }
 
+void doctokenizerYYstartAutoList()
+{
+  g_autoListLevel++;
+}
+
+void doctokenizerYYendAutoList()
+{
+  g_autoListLevel--;
+}
+
 #if !defined(YY_FLEX_SUBMINOR_VERSION) 
 extern "C" { // some bogus code to keep the compiler happy
     void doctokenizerYYdummy() { yy_flex_realloc(0,0); }
index ffe1028..7d9e795 100644 (file)
@@ -665,7 +665,7 @@ static void checkDotResult(const QCString &imgName)
 {
   if (Config_getEnum("DOT_IMAGE_FORMAT")=="png")
   {
-    FILE *f = fopen(imgName,"rb");
+    FILE *f = portable_fopen(imgName,"rb");
     if (f)
     {
       char data[4];
@@ -961,24 +961,25 @@ bool DotFilePatcher::run()
     //printf("DotFilePatcher::addSVGConversion: file=%s zoomable=%d\n",
     //    m_patchFile.data(),map->zoomable);
   }
-  QCString tmpName = m_patchFile+".tmp";
-  if (!QDir::current().rename(m_patchFile,tmpName))
+  QString tmpName = QString::fromUtf8(m_patchFile+".tmp");
+  QString patchFile = QString::fromUtf8(m_patchFile);
+  if (!QDir::current().rename(patchFile,tmpName))
   {
     err("Failed to rename file %s to %s!\n",m_patchFile.data(),tmpName.data());
     return FALSE;
   }
   QFile fi(tmpName);
-  QFile fo(m_patchFile);
+  QFile fo(patchFile);
   if (!fi.open(IO_ReadOnly)) 
   {
     err("problem opening file %s for patching!\n",tmpName.data());
-    QDir::current().rename(tmpName,m_patchFile);
+    QDir::current().rename(tmpName,patchFile);
     return FALSE;
   }
   if (!fo.open(IO_WriteOnly))
   {
     err("problem opening file %s for patching!\n",m_patchFile.data());
-    QDir::current().rename(tmpName,m_patchFile);
+    QDir::current().rename(tmpName,patchFile);
     return FALSE;
   }
   FTextStream t(&fo);
index e1fe597..14d34c0 100644 (file)
@@ -176,7 +176,6 @@ static QDict<FileDef>   g_usingDeclarations(1009); // used classes
 static FileStorage     *g_storage = 0;
 static bool             g_successfulRun = FALSE;
 static bool             g_dumpSymbolMap = FALSE;
-static bool             g_dumpConfigAsXML = FALSE;
 
 void clearAll()
 {
@@ -1294,6 +1293,13 @@ static void addClassToContext(EntryNav *rootNav)
     {
       tagName     = rootNav->tagInfo()->tagName;
       refFileName = rootNav->tagInfo()->fileName;
+      int i;
+      if ((i=fullName.find("::"))!=-1) 
+        // symbols imported via tag files may come without the parent scope, 
+        // so we artificially create it here
+      {
+        buildScopeFromQualifiedName(fullName,fullName.contains("::"),root->lang);
+      }
     }
     cd=new ClassDef(root->fileName,root->startLine,root->startColumn,
         fullName,sec,tagName,refFileName,TRUE,root->spec&Entry::Enum);
@@ -6105,11 +6111,15 @@ static void findMember(EntryNav *rootNav,
               // for template member we also need to check the return type
               if (md->templateArguments()!=0 && root->tArgLists!=0)
               {
-                //printf("Comparing return types '%s'<->'%s' args %d<->%d\n",
-                //    md->typeString(),funcType.data(),
-                //    md->templateArguments()->count(),root->tArgLists->last()->count());
+                QCString memType = md->typeString();
+                memType.stripPrefix("static "); // see bug700696
+                funcType=substitute(funcType,className+"::",""); // see bug700693
+                Debug::print(Debug::FindMembers,0,
+                   "5b. Comparing return types '%s'<->'%s' #args %d<->%d\n",
+                    md->typeString(),funcType.data(),
+                    md->templateArguments()->count(),root->tArgLists->last()->count());
                 if (md->templateArguments()->count()!=root->tArgLists->last()->count() ||
-                    qstrcmp(md->typeString(),funcType))
+                    qstrcmp(memType,funcType))
                 {
                   //printf(" ---> no matching\n");
                   matching = FALSE;
@@ -7183,10 +7193,12 @@ static void addEnumValuesToEnums(EntryNav *rootNav)
                 // them here and only add them to the enum
                 e->loadEntry(g_storage);
                 Entry *root = e->entry();
-                //printf("md->qualifiedName()=%s rootNav->name()=%s\n",
-                //    md->qualifiedName().data(),rootNav->name().data());
+                //printf("md->qualifiedName()=%s rootNav->name()=%s tagInfo=%p name=%s\n",
+                //    md->qualifiedName().data(),rootNav->name().data(),rootNav->tagInfo(),root->name.data());
                 if (substitute(md->qualifiedName(),"::",".")== // TODO: add function to get canonical representation
-                    substitute(rootNav->name(),"::",".")) // enum value scope matches that of the enum
+                    substitute(rootNav->name(),"::",".") ||    // enum value scope matches that of the enum
+                    rootNav->tagInfo()                         // be less strict for tag files as members can have incomplete scope
+                   ) 
                 {
                   MemberDef *fmd=new MemberDef(
                       root->fileName,root->startLine,root->startColumn,
@@ -9746,18 +9758,6 @@ static void dumpSymbolMap()
 }
 
 //----------------------------------------------------------------------------
-
-void dumpConfigAsXML()
-{
-  QFile f("config.xml");
-  if (f.open(IO_WriteOnly))
-  {
-    FTextStream t(&f);
-    Config::instance()->writeXML(t);
-  }
-}
-
-//----------------------------------------------------------------------------
 // print the usage of doxygen
 
 static void usage(const char *name)
@@ -9782,7 +9782,7 @@ static void usage(const char *name)
   msg("    LaTeX:      %s -w latex headerFile footerFile styleSheetFile [configFile]\n\n",name);
   msg("6) Use doxygen to generate an rtf extensions file\n");
   msg("    RTF:   %s -e rtf extensionsFile\n\n",name);
-  msg("If -s is specified the comments in the config file will be omitted.\n");
+  msg("If -s is specified the comments of the configuration items in the config file will be omitted.\n");
   msg("If configName is omitted `Doxyfile' will be used as a default.\n\n");
   exit(1);
 }
@@ -10173,8 +10173,10 @@ void readConfiguration(int argc, char **argv)
       case 'm':
         g_dumpSymbolMap = TRUE;
         break;
-      case 'x':
-        g_dumpConfigAsXML = TRUE;
+      case 'v':
+        msg("%s\n",versionString); 
+        cleanUpDoxygen();
+        exit(0);
         break;
       case '-':
         if (qstrcmp(&argv[optind][2],"help")==0)
@@ -10187,6 +10189,11 @@ void readConfiguration(int argc, char **argv)
           cleanUpDoxygen();
           exit(0);
         }
+        else
+        {
+          err("Unknown option -%s\n",&argv[optind][1]);
+          usage(argv[0]);
+        }
         break;
       case 'b':
         setvbuf(stdout,NULL,_IONBF,0);
@@ -10211,17 +10218,7 @@ void readConfiguration(int argc, char **argv)
 
   if (genConfig)
   {
-    if (g_dumpConfigAsXML)
-    {
-      checkConfiguration();
-      generateConfigFile(configName,shortList);
-      dumpConfigAsXML();
-      exit(0); 
-    }
-    else
-    {
-      generateConfigFile(configName,shortList);
-    }
+    generateConfigFile(configName,shortList);
     cleanUpDoxygen();
     exit(0);
   }
index c314142..3e9451f 100644 (file)
@@ -141,11 +141,11 @@ a.el {
 a.elRef {
 }
 
-a.code, a.code:visited {
+a.code, a.code:visited, a.line, a.line:visited {
        color: #4665A2; 
 }
 
-a.codeRef, a.codeRef:visited {
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
        color: #4665A2; 
 }
 
@@ -1165,6 +1165,177 @@ tr.heading h2 {
         margin-bottom: 4px;
 }
 
+/* tooltip related style info */
+
+.ttc {
+        position: absolute;
+        display: none;
+}
+
+#powerTip {
+       cursor: default;
+       white-space: nowrap;
+       background-color: white;
+       border: 1px solid gray;
+       border-radius: 4px 4px 4px 4px;
+       box-shadow: 1px 1px 7px gray;
+       display: none;
+       font-size: smaller;
+       max-width: 80%;
+       opacity: 0.9;
+       padding: 1ex 1em 1em;
+       position: absolute;
+       z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+        color: grey;
+       font-style: italic;
+}
+
+#powerTip div.ttname a {
+        font-weight: bold;
+}
+
+#powerTip div.ttname {
+        font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+        color: #006318;
+}
+
+#powerTip div {
+        margin: 0px;
+        padding: 0px;
+        font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+       content: "";
+       position: absolute;
+       margin: 0px;
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.w:after,  #powerTip.w:before,
+#powerTip.e:after,  #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+       border: solid transparent;
+       content: " ";
+       height: 0;
+       width: 0;
+       position: absolute;
+}
+
+#powerTip.n:after,  #powerTip.s:after,
+#powerTip.w:after,  #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+       border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before,  #powerTip.s:before,
+#powerTip.w:before,  #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+       border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+       top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+       border-top-color: #ffffff;
+       border-width: 10px;
+       margin: 0px -10px;
+}
+#powerTip.n:before {
+       border-top-color: #808080;
+       border-width: 11px;
+       margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+       left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+       right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+       left: 14px;
+}
+
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+       bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+       border-bottom-color: #ffffff;
+       border-width: 10px;
+       margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+       border-bottom-color: #808080;
+       border-width: 11px;
+       margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+       left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+       right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+       left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+       left: 100%;
+}
+#powerTip.e:after {
+       border-left-color: #ffffff;
+       border-width: 10px;
+       top: 50%;
+       margin-top: -10px;
+}
+#powerTip.e:before {
+       border-left-color: #808080;
+       border-width: 11px;
+       top: 50%;
+       margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+       right: 100%;
+}
+#powerTip.w:after {
+       border-right-color: #ffffff;
+       border-width: 10px;
+       top: 50%;
+       margin-top: -10px;
+}
+#powerTip.w:before {
+       border-right-color: #808080;
+       border-width: 11px;
+       top: 50%;
+       margin-top: -11px;
+}
+
 @media print
 {
   #top { display: none; }
index 7941149..ee87e71 100644 (file)
@@ -24,7 +24,9 @@ The format of the configuration file (options and types) is defined
 by the file `config.xml`. As part of the build process, 
 the python script `configgen.py` will create a file configoptions.cpp 
 from this, which serves as the input for the configuration file parser
-that is invoked using Config::parse()
+that is invoked using Config::parse(). The script `configgen.py` will also
+create the documentation for the configuration items, creating the file
+`config.doc`.
 
 Gathering Input files
 ---------------------
index 15af1f5..d9589e7 100644 (file)
@@ -20,7 +20,7 @@ HEADERS      =        doxygen.h
 SOURCES      = main.cpp 
 unix:LIBS                  += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -lpthread %%SQLITE3_LIBS%% %%LIBCLANG_LIBS%%
 win32:INCLUDEPATH          += .
-win32-mingw:LIBS           += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -lpthread %%SQLITE3_LIBS%% %%LIBCLANG_LIBS%%
+win32-mingw:LIBS           += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -lpthread -llibiconv -lole32 %%SQLITE3_LIBS%% %%LIBCLANG_LIBS%%
 win32-msvc:LIBS            += qtools.lib md5.lib doxygen.lib doxycfg.lib shell32.lib iconv.lib
 win32-msvc:TMAKE_LFLAGS    += /LIBPATH:..\lib
 win32-borland:LIBS         += qtools.lib md5.lib doxygen.lib doxycfg.lib shell32.lib iconv.lib
index d5348fe..38ffa19 100644 (file)
 "a.elRef {\n"
 "}\n"
 "\n"
-"a.code, a.code:visited {\n"
+"a.code, a.code:visited, a.line, a.line:visited {\n"
 "      color: #4665A2; \n"
 "}\n"
 "\n"
-"a.codeRef, a.codeRef:visited {\n"
+"a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {\n"
 "      color: #4665A2; \n"
 "}\n"
 "\n"
 "        margin-bottom: 4px;\n"
 "}\n"
 "\n"
+"/* tooltip related style info */\n"
+"\n"
+".ttc {\n"
+"        position: absolute;\n"
+"        display: none;\n"
+"}\n"
+"\n"
+"#powerTip {\n"
+"      cursor: default;\n"
+"      white-space: nowrap;\n"
+"      background-color: white;\n"
+"      border: 1px solid gray;\n"
+"      border-radius: 4px 4px 4px 4px;\n"
+"      box-shadow: 1px 1px 7px gray;\n"
+"      display: none;\n"
+"      font-size: smaller;\n"
+"      max-width: 80%;\n"
+"      opacity: 0.9;\n"
+"      padding: 1ex 1em 1em;\n"
+"      position: absolute;\n"
+"      z-index: 2147483647;\n"
+"}\n"
+"\n"
+"#powerTip div.ttdoc {\n"
+"        color: grey;\n"
+"      font-style: italic;\n"
+"}\n"
+"\n"
+"#powerTip div.ttname a {\n"
+"        font-weight: bold;\n"
+"}\n"
+"\n"
+"#powerTip div.ttname {\n"
+"        font-weight: bold;\n"
+"}\n"
+"\n"
+"#powerTip div.ttdeci {\n"
+"        color: #006318;\n"
+"}\n"
+"\n"
+"#powerTip div {\n"
+"        margin: 0px;\n"
+"        padding: 0px;\n"
+"        font: 12px/16px Roboto,sans-serif;\n"
+"}\n"
+"\n"
+"#powerTip:before, #powerTip:after {\n"
+"      content: \"\";\n"
+"      position: absolute;\n"
+"      margin: 0px;\n"
+"}\n"
+"\n"
+"#powerTip.n:after,  #powerTip.n:before,\n"
+"#powerTip.s:after,  #powerTip.s:before,\n"
+"#powerTip.w:after,  #powerTip.w:before,\n"
+"#powerTip.e:after,  #powerTip.e:before,\n"
+"#powerTip.ne:after, #powerTip.ne:before,\n"
+"#powerTip.se:after, #powerTip.se:before,\n"
+"#powerTip.nw:after, #powerTip.nw:before,\n"
+"#powerTip.sw:after, #powerTip.sw:before {\n"
+"      border: solid transparent;\n"
+"      content: \" \";\n"
+"      height: 0;\n"
+"      width: 0;\n"
+"      position: absolute;\n"
+"}\n"
+"\n"
+"#powerTip.n:after,  #powerTip.s:after,\n"
+"#powerTip.w:after,  #powerTip.e:after,\n"
+"#powerTip.nw:after, #powerTip.ne:after,\n"
+"#powerTip.sw:after, #powerTip.se:after {\n"
+"      border-color: rgba(255, 255, 255, 0);\n"
+"}\n"
+"\n"
+"#powerTip.n:before,  #powerTip.s:before,\n"
+"#powerTip.w:before,  #powerTip.e:before,\n"
+"#powerTip.nw:before, #powerTip.ne:before,\n"
+"#powerTip.sw:before, #powerTip.se:before {\n"
+"      border-color: rgba(128, 128, 128, 0);\n"
+"}\n"
+"\n"
+"#powerTip.n:after,  #powerTip.n:before,\n"
+"#powerTip.ne:after, #powerTip.ne:before,\n"
+"#powerTip.nw:after, #powerTip.nw:before {\n"
+"      top: 100%;\n"
+"}\n"
+"\n"
+"#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {\n"
+"      border-top-color: #ffffff;\n"
+"      border-width: 10px;\n"
+"      margin: 0px -10px;\n"
+"}\n"
+"#powerTip.n:before {\n"
+"      border-top-color: #808080;\n"
+"      border-width: 11px;\n"
+"      margin: 0px -11px;\n"
+"}\n"
+"#powerTip.n:after, #powerTip.n:before {\n"
+"      left: 50%;\n"
+"}\n"
+"\n"
+"#powerTip.nw:after, #powerTip.nw:before {\n"
+"      right: 14px;\n"
+"}\n"
+"\n"
+"#powerTip.ne:after, #powerTip.ne:before {\n"
+"      left: 14px;\n"
+"}\n"
+"\n"
+"#powerTip.s:after,  #powerTip.s:before,\n"
+"#powerTip.se:after, #powerTip.se:before,\n"
+"#powerTip.sw:after, #powerTip.sw:before {\n"
+"      bottom: 100%;\n"
+"}\n"
+"\n"
+"#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {\n"
+"      border-bottom-color: #ffffff;\n"
+"      border-width: 10px;\n"
+"      margin: 0px -10px;\n"
+"}\n"
+"\n"
+"#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {\n"
+"      border-bottom-color: #808080;\n"
+"      border-width: 11px;\n"
+"      margin: 0px -11px;\n"
+"}\n"
+"\n"
+"#powerTip.s:after, #powerTip.s:before {\n"
+"      left: 50%;\n"
+"}\n"
+"\n"
+"#powerTip.sw:after, #powerTip.sw:before {\n"
+"      right: 14px;\n"
+"}\n"
+"\n"
+"#powerTip.se:after, #powerTip.se:before {\n"
+"      left: 14px;\n"
+"}\n"
+"\n"
+"#powerTip.e:after, #powerTip.e:before {\n"
+"      left: 100%;\n"
+"}\n"
+"#powerTip.e:after {\n"
+"      border-left-color: #ffffff;\n"
+"      border-width: 10px;\n"
+"      top: 50%;\n"
+"      margin-top: -10px;\n"
+"}\n"
+"#powerTip.e:before {\n"
+"      border-left-color: #808080;\n"
+"      border-width: 11px;\n"
+"      top: 50%;\n"
+"      margin-top: -11px;\n"
+"}\n"
+"\n"
+"#powerTip.w:after, #powerTip.w:before {\n"
+"      right: 100%;\n"
+"}\n"
+"#powerTip.w:after {\n"
+"      border-right-color: #ffffff;\n"
+"      border-width: 10px;\n"
+"      top: 50%;\n"
+"      margin-top: -10px;\n"
+"}\n"
+"#powerTip.w:before {\n"
+"      border-right-color: #808080;\n"
+"      border-width: 11px;\n"
+"      top: 50%;\n"
+"      margin-top: -11px;\n"
+"}\n"
+"\n"
 "@media print\n"
 "{\n"
 "  #top { display: none; }\n"
index 784ebff..7bd6aeb 100644 (file)
@@ -54,12 +54,13 @@ class DevNullCodeDocInterface : public CodeOutputInterface
     virtual void writeCodeLink(const char *,const char *,
                                const char *,const char *,
                                const char *) {}
+    virtual void writeTooltip(const char *, const DocLinkInfo &, const char *,
+                              const char *, const SourceLinkInfo &, const SourceLinkInfo &
+                             ) {}
     virtual void writeLineNumber(const char *,const char *,
                                  const char *,int) {}
     virtual void startCodeLine(bool) {}
     virtual void endCodeLine() {}
-    virtual void startCodeAnchor(const char *) {}
-    virtual void endCodeAnchor() {}
     virtual void startFontClass(const char *) {}
     virtual void endFontClass() {}
     virtual void writeCodeAnchor(const char *) {}
@@ -513,7 +514,7 @@ void FileDef::writeSummaryLinks(OutputList &ol)
       MemberList * ml = getMemberList(lmd->type);
       if (ml && ml->declVisible())
       {
-        ol.writeSummaryLink(0,ml->listTypeAsString(),lmd->title(lang),first);
+        ol.writeSummaryLink(0,ml->listTypeAsString(ml->listType()),lmd->title(lang),first);
         first=FALSE;
       }
     }
@@ -879,6 +880,7 @@ void FileDef::writeSource(OutputList &ol,bool sameTu,QStrList &filesInSameTu)
     ol.startCodeFragment();
     pIntf->parseCode(ol,0,
         fileToString(absFilePath(),filterSourceFiles,TRUE),
+        getLanguage(),
         FALSE,0,this
         );
     ol.endCodeFragment();
@@ -917,6 +919,7 @@ void FileDef::parseSource(bool sameTu,QStrList &filesInSameTu)
     pIntf->parseCode(
             devNullIntf,0,
             fileToString(absFilePath(),filterSourceFiles,TRUE),
+            getLanguage(),
             FALSE,0,this
            );
   }
@@ -1643,14 +1646,7 @@ QCString FileDef::getSourceFileBase() const
 /*! Returns the name of the verbatim copy of this file (if any). */
 QCString FileDef::includeName() const 
 { 
-  if (Htags::useHtags)
-  {
-    return Htags::path2URL(m_filePath);
-  }
-  else
-  {
-    return convertNameToFile(m_diskName)+"_source"; 
-  }
+  return getSourceFileBase();
 }
 
 MemberList *FileDef::createMemberList(MemberListType lt)
index 203a2ed..80fc333 100644 (file)
@@ -49,6 +49,7 @@
 #include "classlist.h"
 #include "filedef.h"
 #include "namespacedef.h"
+#include "tooltip.h"
 
 // Toggle for some debugging info
 //#define DBG_CTX(x) fprintf x
@@ -337,9 +338,18 @@ static void codifyLines(QCString str)
  * split into multiple links with the same destination, one for each line.
  */
 static void writeMultiLineCodeLink(CodeOutputInterface &ol,
-                  const char *ref,const char *file,
-                  const char *anchor,const char *text)
+                  Definition *d,const char *text)
 {
+  static bool sourceTooltips = Config_getBool("SOURCE_TOOLTIPS");
+  TooltipManager::instance()->addTooltip(d);
+  QCString ref  = d->getReference();
+  QCString file = d->getOutputFileBase();
+  QCString anchor = d->anchor();
+  QCString tooltip; 
+  if (!sourceTooltips) // fall back to simple "title" tooltips
+  {
+    tooltip = d->briefDescriptionAsTooltip();
+  }
   bool done=FALSE;
   char *p=(char *)text;
   while (!done)
@@ -352,7 +362,7 @@ static void writeMultiLineCodeLink(CodeOutputInterface &ol,
       g_yyLineNr++;
       *(p-1)='\0';
       //printf("writeCodeLink(%s,%s,%s,%s)\n",ref,file,anchor,sp);
-      ol.writeCodeLink(ref,file,anchor,sp,0);
+      ol.writeCodeLink(ref,file,anchor,sp,tooltip);
       endCodeLine();
       if (g_yyLineNr<g_inputLines) 
       {
@@ -362,7 +372,7 @@ static void writeMultiLineCodeLink(CodeOutputInterface &ol,
     else
     {
       //printf("writeCodeLink(%s,%s,%s,%s)\n",ref,file,anchor,sp);
-      ol.writeCodeLink(ref,file,anchor,sp,0);
+      ol.writeCodeLink(ref,file,anchor,sp,tooltip);
       done=TRUE;
     }
   }
@@ -559,10 +569,7 @@ static bool getLink(UseSDict *usedict, // dictonary with used modules
       { 
        addDocCrossReference(g_currentMemberDef,md); 
       }     
-      writeMultiLineCodeLink(ol,md->getReference(),
-                               md->getOutputFileBase(),
-                               md->anchor(),
-                               text ? text : memberText);
+      writeMultiLineCodeLink(ol,md,text ? text : memberText);
       addToSearchIndex(text ? text : memberText);
       return TRUE;
     } 
@@ -587,7 +594,7 @@ static void generateLink(CodeOutputInterface &ol, char *lname)
     } 
     else 
     { // write type or interface link
-      writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),cd->anchor(),tmp);
+      writeMultiLineCodeLink(ol,cd,tmp);
       addToSearchIndex(tmp.data());
     }
   }
@@ -1135,6 +1142,7 @@ void parseFortranCode(CodeOutputInterface &od,const char *className,const QCStri
   (void)className;
 
   if (s.isEmpty()) return;
+  TooltipManager::instance()->clearTooltips();
   g_code = &od;
   g_inputString   = s;
   g_inputPosition = 0;
@@ -1182,6 +1190,10 @@ void parseFortranCode(CodeOutputInterface &od,const char *className,const QCStri
     endFontClass();
     g_code->endCodeLine();
   }
+  if (fd)
+  {
+    TooltipManager::instance()->writeTooltips(*g_code);
+  }
   if (exBlock && g_sourceFileDef)
   {
     // delete the temporary file definition used for this example
index c70f948..e834698 100644 (file)
@@ -39,6 +39,7 @@ class FortranLanguageScanner : public ParserInterface
     void parseCode(CodeOutputInterface &codeOutIntf,
                    const char *scopeName,
                    const QCString &input,
+                   SrcLangExt lang,
                    bool isExampleBlock,
                    const char *exampleName=0,
                    FileDef *fileDef=0,
index eae6d6e..3ed0031 100644 (file)
@@ -164,7 +164,7 @@ static QList<Entry>     moduleProcedures; // list of all interfaces which contai
                                           // module procedures
 static QCString         docBlock;
 static QCString         docBlockName;
-static bool             docBlockInBody;
+static bool             docBlockInBody = FALSE;
 static bool             docBlockJavaStyle;
 
 static MethodTypes     mtype;
@@ -187,6 +187,7 @@ static InterfaceType     ifType = IF_NONE;
 static bool              functionLine = FALSE;
 
 static char              stringStartSymbol; // single or double quote
+static bool             parsingPrototype = FALSE; // see parsePrototype()
 
 //! Accumulated modifiers of current statement, eg variable declaration.
 static SymbolModifiers currentModifiers;
@@ -265,6 +266,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC}
 
 CONTAINS  CONTAINS
 PREFIX    (RECURSIVE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,2}(RECURSIVE|PURE|ELEMENTAL)?
+SCOPENAME ({ID}{BS}"::"{BS})*
 
 %option noyywrap
 %option stack
@@ -307,6 +309,12 @@ PREFIX    (RECURSIVE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,2}(RECURSIVE|PURE|ELEMENTA
 %x     EndDoc
 
 %x      BlockData
+
+/** prototype parsing */
+%x     Prototype
+%x     PrototypeSubprog
+%x     PrototypeArgs
+
 %%
 
  /*-----------------------------------------------------------------------------------*/
@@ -559,7 +567,7 @@ PREFIX    (RECURSIVE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,2}(RECURSIVE|PURE|ELEMENTA
 
  /*------- type definition  -------------------------------------------------------------------------------*/
 
-<Start,ModuleBody>^{BS}type             {
+<Start,ModuleBody>^{BS}type/[^a-z0-9]    {
                                           if(YY_START == Start)
                                           {
                                             addModule(NULL); 
@@ -1023,7 +1031,7 @@ private                                 {
 
  /*---- documentation comments --------------------------------------------------------------------*/
 
-<Variable,SubprogBody,ModuleBody,TypedefBody>"!<"  { /* backward docu comment */
+<Variable,SubprogBody,ModuleBody,TypedefBody,TypedefBodyContains>"!<"  { /* backward docu comment */
                                           if (v_type != V_IGNORE) {
                                           current->docLine  = yyLineNr;
                                           docBlockJavaStyle = FALSE;
@@ -1077,6 +1085,7 @@ private                                 {
                                           yy_push_state(YY_START);
                                          current->docLine  = yyLineNr;
                                          docBlockJavaStyle = FALSE;
+                                         if (YY_START==SubprogBody) docBlockInBody = TRUE;
                                          docBlock.resize(0);
                                          docBlockJavaStyle = Config_getBool("JAVADOC_AUTOBRIEF");
                                          startCommentBlock(TRUE);
@@ -1099,6 +1108,24 @@ private                                 {
                                           yy_pop_state();                                          
                                        }
 
+ /*-----Prototype parsing -------------------------------------------------------------------------*/
+<Prototype>{BS}{SUBPROG}{BS_}          {
+                                         BEGIN(PrototypeSubprog);
+                                       }
+<Prototype,PrototypeSubprog>{BS}{SCOPENAME}?{BS}{ID} { 
+                                         current->name = QCString(yytext).lower();
+                                         current->name.stripWhiteSpace();
+                                         BEGIN(PrototypeArgs);
+                                       }
+<PrototypeArgs>{
+"("|")"|","|{BS_}                      { current->args += yytext; }
+{ID}                                   { current->args += yytext; 
+                                         Argument *a = new Argument;
+                                         a->name = QCString(yytext).lower();
+                                         current->argList->append(a);
+                                       }
+}
+
  /*------------------------------------------------------------------------------------------------*/
 
 <*>"\n"                                 {
@@ -1111,7 +1138,10 @@ private                                 {
  /*---- error: EOF in wrong state --------------------------------------------------------------------*/
 
 <*><<EOF>>                              {
-                                          if ( include_stack_ptr <= 0 ) {
+                                         if (parsingPrototype) {
+                                           yyterminate();
+
+                                         } else if ( include_stack_ptr <= 0 ) {
                                             if (YY_START!=INITIAL && YY_START!=Start) {
                                               DBG_CTX((stderr,"==== Error: EOF reached in wrong state (end missing)"));
                                               scanner_abort();
@@ -2067,11 +2097,14 @@ static void startCommentBlock(bool brief)
 
 static void handleCommentBlock(const QCString &doc,bool brief)
 {
-  docBlockInBody = FALSE;
   bool needsEntry = FALSE;
   static bool hideInBodyDocs = Config_getBool("HIDE_IN_BODY_DOCS");
   int position=0;
-  if (docBlockInBody && hideInBodyDocs) return;
+  if (docBlockInBody && hideInBodyDocs)
+  {
+    docBlockInBody = FALSE;
+    return;
+  }
   DBG_CTX((stderr,"call parseCommentBlock [%s]\n",doc.data()));
   int lineNr = brief ? current->briefLine : current->docLine;
   while (parseCommentBlock(
@@ -2094,6 +2127,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
   DBG_CTX((stderr,"parseCommentBlock position=%d [%s]  needsEntry=%d\n",position,doc.data()+position,needsEntry));
 
   if (needsEntry) addCurrentEntry(0);
+  docBlockInBody = FALSE;
 }
 
 //----------------------------------------------------------------------------
@@ -2103,6 +2137,10 @@ static void subrHandleCommentBlock(const QCString &doc,bool brief)
   QCString loc_doc;
   Entry *tmp_entry = current; 
   current = subrCurrent.first(); // temporarily switch to the entry of the subroutine / function
+
+  // Still in the specification section so no inbodyDocs yet, but parameter documentation
+  current->inbodyDocs = "";
+
   if (docBlock.stripWhiteSpace().find("\\param") == 0)
   {
     handleCommentBlock("\n\n"+doc,brief);
@@ -2277,6 +2315,7 @@ void FortranLanguageScanner::parseInput(const char *fileName,
 void FortranLanguageScanner::parseCode(CodeOutputInterface & codeOutIntf,
                    const char * scopeName,
                    const QCString & input,
+                   SrcLangExt /*lang*/,
                    bool isExampleBlock,
                    const char * exampleName,
                    FileDef * fileDef,
@@ -2304,7 +2343,13 @@ void FortranLanguageScanner::resetCodeParserState()
 
 void FortranLanguageScanner::parsePrototype(const char *text)
 {
-  current->name = QCString(text).lower();
+  QCString buffer = QCString(text);
+  pushBuffer(buffer);
+  parsingPrototype = TRUE;
+  BEGIN(Prototype);
+  fscanYYlex();
+  parsingPrototype = FALSE;
+  popBuffer();
 }
 
 static void scanner_abort() 
index dd3c3d1..c0ea2bd 100644 (file)
@@ -883,6 +883,7 @@ void FTVHelp::generateLink(FTextStream &t,FTVNode *n)
 static void generateBriefDoc(FTextStream &t,Definition *def)
 {
   QCString brief = def->briefDescription(TRUE);
+  //printf("*** %p: generateBriefDoc(%s)='%s'\n",def,def->name().data(),brief.data());
   if (!brief.isEmpty())
   {
     DocNode *root = validatingParseDoc(def->briefFile(),def->briefLine(),
index 2b41594..f9b47ae 100644 (file)
@@ -913,7 +913,7 @@ void GroupDef::writeSummaryLinks(OutputList &ol)
       MemberList * ml = getMemberList(lmd->type);
       if (ml && ml->declVisible())
       {
-        ol.writeSummaryLink(0,ml->listTypeAsString(),lmd->title(lang),first);
+        ol.writeSummaryLink(0,ml->listTypeAsString(ml->listType()),lmd->title(lang),first);
         first=FALSE;
       }
     }
index 767fa5b..6fe4f35 100644 (file)
@@ -417,6 +417,7 @@ void HtmlDocVisitor::visit(DocVerbatim *s)
   {
     lang = s->language();
   }
+  SrcLangExt langExt = getLanguageFromFileName(lang);
   switch(s->type())
   {
     case DocVerbatim::Code: 
@@ -426,6 +427,7 @@ void HtmlDocVisitor::visit(DocVerbatim *s)
                             ->parseCode(m_ci,
                                         s->context(),
                                         s->text(),
+                                        langExt,
                                         s->isExample(),
                                         s->exampleFile(),
                                         0,     // fileDef
@@ -526,6 +528,7 @@ void HtmlDocVisitor::visit(DocAnchor *anc)
 void HtmlDocVisitor::visit(DocInclude *inc)
 {
   if (m_hide) return;
+  SrcLangExt langExt = getLanguageFromFileName(inc->extension());
   switch(inc->type())
   {
     case DocInclude::Include: 
@@ -535,6 +538,7 @@ void HtmlDocVisitor::visit(DocInclude *inc)
                             ->parseCode(m_ci,                 
                                         inc->context(),
                                         inc->text(),
+                                        langExt,
                                         inc->isExample(),
                                         inc->exampleFile(),
                                         0,     // fileDef
@@ -558,6 +562,7 @@ void HtmlDocVisitor::visit(DocInclude *inc)
                                ->parseCode(m_ci,
                                            inc->context(),
                                            inc->text(),
+                                           langExt,
                                            inc->isExample(),
                                            inc->exampleFile(), 
                                            &fd,   // fileDef,
@@ -592,6 +597,7 @@ void HtmlDocVisitor::visit(DocInclude *inc)
                                ->parseCode(m_ci,
                                            inc->context(),
                                            extractBlock(inc->text(),inc->blockId()),
+                                           langExt,
                                            inc->isExample(),
                                            inc->exampleFile(), 
                                            0,
@@ -619,6 +625,7 @@ void HtmlDocVisitor::visit(DocIncOperator *op)
     pushEnabled();
     m_hide=TRUE;
   }
+  SrcLangExt langExt = getLanguageFromFileName(m_langExt);
   if (op->type()!=DocIncOperator::Skip) 
   {
     popEnabled();
@@ -629,6 +636,7 @@ void HtmlDocVisitor::visit(DocIncOperator *op)
                                 m_ci,
                                 op->context(),
                                 op->text(),
+                                langExt,
                                 op->isExample(),
                                 op->exampleFile(),
                                 0,     // fileDef
index 1644f23..6fe61fc 100644 (file)
@@ -90,6 +90,10 @@ static const char search_jquery_script5[]=
 #include "jquery_fx_js.h"
 ;
 
+static const char search_jquery_script6[]=
+#include "jquery_pt_js.h"
+;
+
 static const char svgpan_script[]=
 #include "svgpan_js.h"
 ;
@@ -1102,10 +1106,12 @@ static QCString substituteHtmlKeywords(const QCString &s,
     extraCssText = "<link href=\"$relpath^"+stripPath(extraCssFile)+"\" rel=\"stylesheet\" type=\"text/css\"/>\n";
   }
 
-  if (timeStamp) {
-    generatedBy = theTranslator->trGeneratedAt(dateToString(TRUE), Config_getString("PROJECT_NAME"));
+  if (timeStamp) 
+  {
+    generatedBy = theTranslator->trGeneratedAt(dateToString(TRUE), convertToHtml(Config_getString("PROJECT_NAME")));
   }
-  else {
+  else 
+  {
     generatedBy = theTranslator->trGeneratedBy();
   }
 
@@ -1247,7 +1253,7 @@ void HtmlCodeGenerator::setRelativePath(const QCString &path)
 void HtmlCodeGenerator::codify(const char *str)
 {
   static int tabSize = Config_getInt("TAB_SIZE");
-  if (str)
+  if (str && m_streamSet)
   { 
     const char *p=str;
     char c;
@@ -1294,7 +1300,7 @@ void HtmlCodeGenerator::codify(const char *str)
 
 void HtmlCodeGenerator::docify(const char *str)
 {
-  if (str)
+  if (str && m_streamSet)
   {
     const char *p=str;
     char c;
@@ -1324,40 +1330,47 @@ void HtmlCodeGenerator::docify(const char *str)
 void HtmlCodeGenerator::writeLineNumber(const char *ref,const char *filename,
                                     const char *anchor,int l)
 {
+  if (!m_streamSet) return;
   QCString lineNumber,lineAnchor;
   lineNumber.sprintf("%5d",l);
   lineAnchor.sprintf("l%05d",l);
 
+  m_t << "<div class=\"line\">";
+  m_t << "<a name=\"" << lineAnchor << "\"></a><span class=\"lineno\">"; 
   if (filename)
   {
-    startCodeAnchor(lineAnchor);
-    writeCodeLink(ref,filename,anchor,lineNumber,0);
-    endCodeAnchor();
+    _writeCodeLink("line",ref,filename,anchor,lineNumber,0);
   }
   else
   {
-    startCodeAnchor(lineAnchor);
     codify(lineNumber);
-    endCodeAnchor();
   }
+  m_t << "</span>"; 
   m_t << "&#160;";
 }
 
-
 void HtmlCodeGenerator::writeCodeLink(const char *ref,const char *f,
                                       const char *anchor, const char *name,
                                       const char *tooltip)
 {
   if (!m_streamSet) return;
   //printf("writeCodeLink(ref=%s,f=%s,anchor=%s,name=%s,tooltip=%s)\n",ref,f,anchor,name,tooltip);
+  _writeCodeLink("code",ref,f,anchor,name,tooltip);
+}
+
+void HtmlCodeGenerator::_writeCodeLink(const char *className,
+                                      const char *ref,const char *f,
+                                      const char *anchor, const char *name,
+                                      const char *tooltip)
+{
   if (ref) 
   {
-    m_t << "<a class=\"codeRef\" ";
+    m_t << "<a class=\"" << className << "Ref\" ";
     m_t << externalLinkTarget() << externalRef(m_relPath,ref,FALSE);
   }
   else
   {
-    m_t << "<a class=\"code\" ";
+    m_t << "<a class=\"" << className << "\" ";
   }
   m_t << "href=\"";
   m_t << externalRef(m_relPath,ref,TRUE);
@@ -1371,29 +1384,102 @@ void HtmlCodeGenerator::writeCodeLink(const char *ref,const char *f,
   m_col+=qstrlen(name);
 }
 
-void HtmlCodeGenerator::startCodeLine(bool hasLineNumbers) 
-{ 
-  if (!hasLineNumbers) m_t << "<div class=\"line\">";
-  m_col=0; 
+void HtmlCodeGenerator::writeTooltip(const char *id, const DocLinkInfo &docInfo,
+                                     const char *decl, const char *desc, 
+                                     const SourceLinkInfo &defInfo, 
+                                     const SourceLinkInfo &declInfo)
+{
+  m_t << "<div class=\"ttc\" id=\"" << id << "\">";
+  m_t << "<div class=\"ttname\">";
+  if (!docInfo.url.isEmpty())
+  {
+    m_t << "<a href=\"";
+    m_t << externalRef(m_relPath,docInfo.ref,TRUE);
+    m_t << docInfo.url << Doxygen::htmlFileExtension;
+    if (!docInfo.anchor.isEmpty())
+    {
+      m_t << "#" << docInfo.anchor;
+    }
+    m_t << "\">";
+  }
+  docify(docInfo.name);
+  if (!docInfo.url.isEmpty())
+  {
+    m_t << "</a>";
+  }
+  m_t << "</div>";
+  if (decl)
+  {
+    m_t << "<div class=\"ttdeci\">";
+    docify(decl);
+    m_t << "</div>";
+  }
+  if (desc)
+  {
+    m_t << "<div class=\"ttdoc\">";
+    docify(desc);
+    m_t << "</div>";
+  }
+  if (!defInfo.file.isEmpty())
+  {
+    m_t << "<div class=\"ttdef\"><b>Definition:</b> ";
+    if (!defInfo.url.isEmpty())
+    {
+      m_t << "<a href=\"";
+      m_t << externalRef(m_relPath,defInfo.ref,TRUE);
+      m_t << defInfo.url << Doxygen::htmlFileExtension;
+      if (!defInfo.anchor.isEmpty())
+      {
+        m_t << "#" << defInfo.anchor;
+      }
+      m_t << "\">";
+    }
+    m_t << defInfo.file << ":" << defInfo.line;
+    if (!defInfo.url.isEmpty())
+    {
+      m_t << "</a>";
+    }
+    m_t << "</div>";
+  }
+  if (!declInfo.file.isEmpty())
+  {
+    m_t << "<div class=\"ttdecl\"><b>Declaration:</b> ";
+    if (!declInfo.url.isEmpty())
+    {
+      m_t << "<a href=\"";
+      m_t << externalRef(m_relPath,declInfo.ref,TRUE);
+      m_t << declInfo.url << Doxygen::htmlFileExtension;
+      if (!declInfo.anchor.isEmpty())
+      {
+        m_t << "#" << declInfo.anchor;
+      }
+      m_t << "\">";
+    }
+    m_t << declInfo.file << ":" << declInfo.line;
+    if (!declInfo.url.isEmpty())
+    {
+      m_t << "</a>";
+    }
+    m_t << "</div>";
+  }
+  m_t << "</div>" << endl;
 }
 
-void HtmlCodeGenerator::endCodeLine() 
-{ 
-  m_t << "</div>\n";
-}
 
-void HtmlCodeGenerator::startCodeAnchor(const char *label
+void HtmlCodeGenerator::startCodeLine(bool hasLineNumbers
 { 
-  m_t << "<div class=\"line\">";
-  m_t << "<a name=\"" << label << "\"></a><span class=\"lineno\">"; 
+  if (m_streamSet)
+  {
+    if (!hasLineNumbers) m_t << "<div class=\"line\">";
+    m_col=0; 
+  }
 }
 
-void HtmlCodeGenerator::endCodeAnchor() 
+void HtmlCodeGenerator::endCodeLine() 
 { 
-  m_t << "</span>"; 
+  if (m_streamSet) m_t << "</div>\n";
 }
 
-
 void HtmlCodeGenerator::startFontClass(const char *s) 
 { 
   if (m_streamSet) m_t << "<span class=\"" << s << "\">"; 
@@ -1484,6 +1570,10 @@ void HtmlGenerator::init()
       {
         t << search_jquery_script4 << search_jquery_script5;
       }
+      if (Config_getBool("SOURCE_BROWSER"))
+      {
+        t << search_jquery_script6;
+      }
     }
   }
 
@@ -1503,6 +1593,16 @@ void HtmlGenerator::init()
     {
       FTextStream t(&f);
       t << dynsections_script;
+      if (Config_getBool("SOURCE_BROWSER") && Config_getBool("SOURCE_TOOLTIPS"))
+      {
+        t << endl << 
+          "$(document).ready(function() {\n"
+          "  $('.code,.codeRef').each(function() {\n"
+          "    $(this).data('powertip',$('#'+$(this).attr('href').replace(/.*\\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());\n"
+          "    $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });\n"
+          "  });\n"
+          "});\n";
+      }
     }
   }
 }
@@ -2398,7 +2498,7 @@ void HtmlGenerator::endParameterName(bool last,bool emptyList,bool closeBracket)
   {
     if (emptyList)
     {
-      if (closeBracket) t << ")</td><td>";
+      if (closeBracket) t << "</td><td>)";
       t << "</td>" << endl;
       t << "          <td>";
     }
@@ -2986,7 +3086,7 @@ void HtmlGenerator::writeSearchPage()
     FTextStream t(&cf);
     t << "<script language=\"php\">\n\n";
     t << "$config = array(\n";
-    t << "  'PROJECT_NAME' => \"" << projectName << "\",\n";
+    t << "  'PROJECT_NAME' => \"" << convertToHtml(projectName) << "\",\n";
     t << "  'GENERATE_TREEVIEW' => " << (generateTreeView?"true":"false") << ",\n";
     t << "  'DISABLE_INDEX' => " << (disableIndex?"true":"false") << ",\n";
     t << ");\n\n";
index 34eb1e5..6fb168b 100644 (file)
@@ -39,11 +39,16 @@ class HtmlCodeGenerator : public CodeOutputInterface
     void writeCodeLink(const char *ref,const char *file,
                        const char *anchor,const char *name,
                        const char *tooltip);
+    void writeTooltip(const char *id, 
+                      const DocLinkInfo &docInfo,
+                      const char *decl,
+                      const char *desc,
+                      const SourceLinkInfo &defInfo,
+                      const SourceLinkInfo &declInfo
+                     );
     void writeLineNumber(const char *,const char *,const char *,int);
     void startCodeLine(bool);
     void endCodeLine();
-    void startCodeAnchor(const char *label);
-    void endCodeAnchor();
     void startFontClass(const char *s);
     void endFontClass();
     void writeCodeAnchor(const char *anchor);
@@ -51,6 +56,10 @@ class HtmlCodeGenerator : public CodeOutputInterface
     void addWord(const char *,bool) {}
 
   private:
+    void _writeCodeLink(const char *className,
+                        const char *ref,const char *file,
+                        const char *anchor,const char *name,
+                        const char *tooltip);
     void docify(const char *str);
     bool m_streamSet;
     FTextStream m_t;
@@ -94,14 +103,14 @@ class HtmlGenerator : public OutputGenerator
     { m_codeGen.writeCodeLink(ref,file,anchor,name,tooltip); }
     void writeLineNumber(const char *ref,const char *file,const char *anchor,int lineNumber)
     { m_codeGen.writeLineNumber(ref,file,anchor,lineNumber); }
+    void writeTooltip(const char *id, const DocLinkInfo &docInfo, const char *decl,
+                      const char *desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo
+                     )
+    { m_codeGen.writeTooltip(id,docInfo,decl,desc,defInfo,declInfo); }
     void startCodeLine(bool hasLineNumbers)
     { m_codeGen.startCodeLine(hasLineNumbers); }
     void endCodeLine()
     { m_codeGen.endCodeLine(); }
-    void startCodeAnchor(const char *label)
-    { m_codeGen.startCodeAnchor(label); }
-    void endCodeAnchor()
-    { m_codeGen.endCodeAnchor(); }
     void startFontClass(const char *s) 
     { m_codeGen.startFontClass(s); }
     void endFontClass() 
index 944d5db..5970a43 100644 (file)
@@ -4129,16 +4129,19 @@ static void writeIndex(OutputList &ol)
         }
         QCString title = pd->title();
         if (title.isEmpty()) title=pd->name();
+
         ol.startIndexSection(isPageDocumentation);
         ol.parseText(title);
         ol.endIndexSection(isPageDocumentation);
+
         ol.pushGeneratorState(); // write TOC title (RTF only)
           ol.disableAllBut(OutputGenerator::RTF);
           ol.startIndexSection(isPageDocumentation2);
           ol.parseText(title);
           ol.endIndexSection(isPageDocumentation2);
-          ol.popGeneratorState();
-        ol.writeAnchor(0,pd->name());
+        ol.popGeneratorState();
+
+        ol.writeAnchor(0,pd->getOutputFileBase());
 
         ol.writePageLink(pd->getOutputFileBase(),first);
         first=FALSE;
diff --git a/src/jquery_pt.js b/src/jquery_pt.js
new file mode 100644 (file)
index 0000000..cbc428d
--- /dev/null
@@ -0,0 +1,8 @@
+/*!
+ PowerTip - v1.2.0 - 2013-04-03
+ http://stevenbenner.github.com/jquery-powertip/
+ Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).
+ Released under MIT license.
+ https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
+*/
+(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k("body");var n="displayController",e="hasActiveHover",d="forcedOpen",u="hasMouseMove",f="mouseOnToPopup",g="originalTitle",y="powertip",o="powertipjq",l="powertiptarget",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)==="string"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr("title");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr("title")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({"mouseenter.powertip":function J(P){k.powerTip.show(this,P)},"mouseleave.powertip":function L(){k.powerTip.hide(this)},"focus.powertip":function K(){k.powerTip.show(this)},"blur.powertip":function H(){k.powerTip.hide(this,true)},"keydown.powertip":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(".powertip").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr("title",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top="auto";F.left="auto";F.right="auto";F.bottom="auto";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P<N.intentSensitivity){F.showTip(K)}else{c.previousX=c.currentX;c.previousY=c.currentY;L()}}function M(){J=clearTimeout(J);c.delayInProgress=false}function H(){F.resetPosition(K)}this.show=L;this.hide=G;this.cancel=M;this.resetPosition=H}function j(){function G(M,L,J,O,P){var K=L.split("-")[0],N=new b(),I;if(q(M)){I=H(M,K)}else{I=F(M,K)}switch(L){case"n":N.set("left",I.left-(J/2));N.set("bottom",c.windowHeight-I.top+P);break;case"e":N.set("left",I.left+P);N.set("top",I.top-(O/2));break;case"s":N.set("left",I.left-(J/2));N.set("top",I.top+P);break;case"w":N.set("top",I.top-(O/2));N.set("right",c.windowWidth-I.left+P);break;case"nw":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"nw-alt":N.set("left",I.left);N.set("bottom",c.windowHeight-I.top+P);break;case"ne":N.set("left",I.left-20);N.set("bottom",c.windowHeight-I.top+P);break;case"ne-alt":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left);break;case"sw":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"sw-alt":N.set("left",I.left);N.set("top",I.top+P);break;case"se":N.set("left",I.left-20);N.set("top",I.top+P);break;case"se-alt":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left);break}return N}function F(K,J){var O=K.offset(),N=K.outerWidth(),I=K.outerHeight(),M,L;switch(J){case"n":M=O.left+N/2;L=O.top;break;case"e":M=O.left+N;L=O.top+I/2;break;case"s":M=O.left+N/2;L=O.top+I;break;case"w":M=O.left;L=O.top+I/2;break;case"nw":M=O.left;L=O.top;break;case"ne":M=O.left+N;L=O.top;break;case"sw":M=O.left;L=O.top+I;break;case"se":M=O.left+N;L=O.top+I;break}return{top:L,left:M}}function H(O,K){var S=O.closest("svg")[0],N=O[0],W=S.createSVGPoint(),L=N.getBBox(),V=N.getScreenCTM(),M=L.width/2,Q=L.height/2,P=[],I=["nw","n","ne","e","se","s","sw","w"],U,X,R,T;function J(){P.push(W.matrixTransform(V))}W.x=L.x;W.y=L.y;J();W.x+=M;J();W.x+=M;J();W.y+=Q;J();W.y+=Q;J();W.x-=M;J();W.x-=M;J();W.y-=Q;J();if(P[0].y!==P[1].y||P[0].x!==P[7].x){X=Math.atan2(V.b,V.a)*E;R=Math.ceil(((X%360)-22.5)/45);if(R<1){R+=8}while(R--){I.push(I.shift())}}for(T=0;T<P.length;T++){if(I[T]===K){U=P[T];break}}return{top:U.y+c.scrollTop,left:U.x+c.scrollLeft}}this.compute=G}function x(Q){var P=new j(),O=k("#"+Q.popupId);if(O.length===0){O=k("<div/>",{id:Q.popupId});if(w.length===0){w=k("body")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on("mousemove",M);s.on("scroll",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger("powerTipPreRender");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger("powerTipRender");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger("powerTipOpen")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set("top",c.currentY+Q.offset);T.set("left",c.currentX+Q.offset);O.css(T);R.trigger("powerTipClose")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set("top",c.currentY+Q.offset);U.set("left",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set("left",c.windowWidth-R)}else{if(S===p.bottom){U.set("top",c.scrollTop+c.windowHeight-V)}}}else{U.set("left",c.currentX-R-Q.offset);U.set("top",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set("top",0);V.set("left",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(":disabled")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(":focus")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on("mousemove",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k("#"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.top<G||Math.abs(M.bottom-c.windowHeight)-K<G){H|=p.top}if(M.top+K>I||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.left<J||M.right+L>F){H|=p.left}if(M.left+L>F||M.right<J){H|=p.right}return H}function a(G){var F=0;while(G){G&=G-1;F++}return F}}));
\ No newline at end of file
diff --git a/src/jquery_pt_js.h b/src/jquery_pt_js.h
new file mode 100644 (file)
index 0000000..27ba1c2
--- /dev/null
@@ -0,0 +1,8 @@
+"/*!\n"
+" PowerTip - v1.2.0 - 2013-04-03\n"
+" http://stevenbenner.github.com/jquery-powertip/\n"
+" Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).\n"
+" Released under MIT license.\n"
+" https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt\n"
+"*/\n"
+"(function(a){if(typeof define===\"function\"&&define.amd){define([\"jquery\"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k(\"body\");var n=\"displayController\",e=\"hasActiveHover\",d=\"forcedOpen\",u=\"hasMouseMove\",f=\"mouseOnToPopup\",g=\"originalTitle\",y=\"powertip\",o=\"powertipjq\",l=\"powertiptarget\",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)===\"string\"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr(\"title\");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr(\"title\")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({\"mouseenter.powertip\":function J(P){k.powerTip.show(this,P)},\"mouseleave.powertip\":function L(){k.powerTip.hide(this)},\"focus.powertip\":function K(){k.powerTip.show(this)},\"blur.powertip\":function H(){k.powerTip.hide(this,true)},\"keydown.powertip\":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:\"powerTip\",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:\"n\",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:[\"n\",\"ne\",\"nw\",\"s\"],e:[\"e\",\"ne\",\"se\",\"w\",\"nw\",\"sw\",\"n\",\"s\",\"e\"],s:[\"s\",\"se\",\"sw\",\"n\"],w:[\"w\",\"nw\",\"sw\",\"e\",\"ne\",\"se\",\"n\",\"s\",\"w\"],nw:[\"nw\",\"w\",\"sw\",\"n\",\"s\",\"se\",\"nw\"],ne:[\"ne\",\"e\",\"se\",\"n\",\"s\",\"sw\",\"ne\"],sw:[\"sw\",\"w\",\"nw\",\"s\",\"n\",\"ne\",\"sw\"],se:[\"se\",\"e\",\"ne\",\"s\",\"n\",\"nw\",\"se\"],\"nw-alt\":[\"nw-alt\",\"n\",\"ne-alt\",\"sw-alt\",\"s\",\"se-alt\",\"w\",\"e\"],\"ne-alt\":[\"ne-alt\",\"n\",\"nw-alt\",\"se-alt\",\"s\",\"sw-alt\",\"e\",\"w\"],\"sw-alt\":[\"sw-alt\",\"s\",\"se-alt\",\"nw-alt\",\"n\",\"ne-alt\",\"w\",\"e\"],\"se-alt\":[\"se-alt\",\"s\",\"sw-alt\",\"ne-alt\",\"n\",\"nw-alt\",\"e\",\"w\"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(\".powertip\").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr(\"title\",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top=\"auto\";F.left=\"auto\";F.right=\"auto\";F.bottom=\"auto\";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P<N.intentSensitivity){F.showTip(K)}else{c.previousX=c.currentX;c.previousY=c.currentY;L()}}function M(){J=clearTimeout(J);c.delayInProgress=false}function H(){F.resetPosition(K)}this.show=L;this.hide=G;this.cancel=M;this.resetPosition=H}function j(){function G(M,L,J,O,P){var K=L.split(\"-\")[0],N=new b(),I;if(q(M)){I=H(M,K)}else{I=F(M,K)}switch(L){case\"n\":N.set(\"left\",I.left-(J/2));N.set(\"bottom\",c.windowHeight-I.top+P);break;case\"e\":N.set(\"left\",I.left+P);N.set(\"top\",I.top-(O/2));break;case\"s\":N.set(\"left\",I.left-(J/2));N.set(\"top\",I.top+P);break;case\"w\":N.set(\"top\",I.top-(O/2));N.set(\"right\",c.windowWidth-I.left+P);break;case\"nw\":N.set(\"bottom\",c.windowHeight-I.top+P);N.set(\"right\",c.windowWidth-I.left-20);break;case\"nw-alt\":N.set(\"left\",I.left);N.set(\"bottom\",c.windowHeight-I.top+P);break;case\"ne\":N.set(\"left\",I.left-20);N.set(\"bottom\",c.windowHeight-I.top+P);break;case\"ne-alt\":N.set(\"bottom\",c.windowHeight-I.top+P);N.set(\"right\",c.windowWidth-I.left);break;case\"sw\":N.set(\"top\",I.top+P);N.set(\"right\",c.windowWidth-I.left-20);break;case\"sw-alt\":N.set(\"left\",I.left);N.set(\"top\",I.top+P);break;case\"se\":N.set(\"left\",I.left-20);N.set(\"top\",I.top+P);break;case\"se-alt\":N.set(\"top\",I.top+P);N.set(\"right\",c.windowWidth-I.left);break}return N}function F(K,J){var O=K.offset(),N=K.outerWidth(),I=K.outerHeight(),M,L;switch(J){case\"n\":M=O.left+N/2;L=O.top;break;case\"e\":M=O.left+N;L=O.top+I/2;break;case\"s\":M=O.left+N/2;L=O.top+I;break;case\"w\":M=O.left;L=O.top+I/2;break;case\"nw\":M=O.left;L=O.top;break;case\"ne\":M=O.left+N;L=O.top;break;case\"sw\":M=O.left;L=O.top+I;break;case\"se\":M=O.left+N;L=O.top+I;break}return{top:L,left:M}}function H(O,K){var S=O.closest(\"svg\")[0],N=O[0],W=S.createSVGPoint(),L=N.getBBox(),V=N.getScreenCTM(),M=L.width/2,Q=L.height/2,P=[],I=[\"nw\",\"n\",\"ne\",\"e\",\"se\",\"s\",\"sw\",\"w\"],U,X,R,T;function J(){P.push(W.matrixTransform(V))}W.x=L.x;W.y=L.y;J();W.x+=M;J();W.x+=M;J();W.y+=Q;J();W.y+=Q;J();W.x-=M;J();W.x-=M;J();W.y-=Q;J();if(P[0].y!==P[1].y||P[0].x!==P[7].x){X=Math.atan2(V.b,V.a)*E;R=Math.ceil(((X%360)-22.5)/45);if(R<1){R+=8}while(R--){I.push(I.shift())}}for(T=0;T<P.length;T++){if(I[T]===K){U=P[T];break}}return{top:U.y+c.scrollTop,left:U.x+c.scrollLeft}}this.compute=G}function x(Q){var P=new j(),O=k(\"#\"+Q.popupId);if(O.length===0){O=k(\"<div/>\",{id:Q.popupId});if(w.length===0){w=k(\"body\")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on(\"mousemove\",M);s.on(\"scroll\",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger(\"powerTipPreRender\");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger(\"powerTipRender\");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger(\"powerTipOpen\")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set(\"top\",c.currentY+Q.offset);T.set(\"left\",c.currentX+Q.offset);O.css(T);R.trigger(\"powerTipClose\")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set(\"top\",c.currentY+Q.offset);U.set(\"left\",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set(\"left\",c.windowWidth-R)}else{if(S===p.bottom){U.set(\"top\",c.scrollTop+c.windowHeight-V)}}}else{U.set(\"left\",c.currentX-R-Q.offset);U.set(\"top\",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set(\"top\",0);V.set(\"left\",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(\":disabled\")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(\":focus\")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on(\"mousemove\",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k(\"#\"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.top<G||Math.abs(M.bottom-c.windowHeight)-K<G){H|=p.top}if(M.top+K>I||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.left<J||M.right+L>F){H|=p.left}if(M.left+L>F||M.right<J){H|=p.right}return H}function a(G){var F=0;while(G){G&=G-1;F++}return F}}));\n"
index 1037d7f..eb88455 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -21,7 +21,6 @@
 #include "language.h"
 #include "lang_cfg.h"
 #include "translator.h"
-#include "translatordecoder.h"
 #include "translator_en.h"
 #if !defined(ENGLISH_ONLY)
 #include "translator_adapter.h"
@@ -189,7 +188,7 @@ bool setTranslator(const char *langName)
 #ifdef LANG_SV
   else if (L_EQUAL("swedish"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorSwedish);
+    theTranslator=new TranslatorSwedish;
   }
 #endif
 #ifdef LANG_CZ
@@ -198,19 +197,19 @@ bool setTranslator(const char *langName)
     theTranslator=new TranslatorCzech;
   }
 #endif
-#ifdef LANG_FR  
+#ifdef LANG_FR
   else if (L_EQUAL("french"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorFrench);
+    theTranslator=new TranslatorFrench;
   }
 #endif
-#ifdef LANG_ID  
+#ifdef LANG_ID
   else if (L_EQUAL("indonesian"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorIndonesian);
+    theTranslator=new TranslatorIndonesian;
   }
 #endif
-#ifdef LANG_IT  
+#ifdef LANG_IT
   else if (L_EQUAL("italian"))
   {
     theTranslator=new TranslatorItalian;
@@ -225,13 +224,13 @@ bool setTranslator(const char *langName)
 #ifdef LANG_JP
   else if (L_EQUAL("japanese"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorJapanese);
+    theTranslator=new TranslatorJapanese;
   }
 #endif
 #ifdef LANG_JE
   else if (L_EQUAL("japanese-en"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorJapaneseEn);
+    theTranslator=new TranslatorJapaneseEn;
   }
 #endif
 #ifdef LANG_ES
@@ -249,7 +248,7 @@ bool setTranslator(const char *langName)
 #ifdef LANG_RU
   else if (L_EQUAL("russian"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorRussian);
+    theTranslator=new TranslatorRussian;
   }
 #endif
 #ifdef LANG_HR
@@ -273,31 +272,31 @@ bool setTranslator(const char *langName)
 #ifdef LANG_HU
   else if (L_EQUAL("hungarian"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorHungarian);
+    theTranslator=new TranslatorHungarian;
   }
 #endif
 #ifdef LANG_KR
   else if (L_EQUAL("korean"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorKorean);
+    theTranslator=new TranslatorKorean;
   }
 #endif
 #ifdef LANG_KE
   else if (L_EQUAL("korean-en"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorKoreanEn);
+    theTranslator=new TranslatorKoreanEn;
   }
 #endif
 #ifdef LANG_RO
   else if (L_EQUAL("romanian"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorRomanian);
+    theTranslator=new TranslatorRomanian;
   }
 #endif
 #ifdef LANG_SI
   else if (L_EQUAL("slovene"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorSlovene);
+    theTranslator=new TranslatorSlovene;
   }
 #endif
 #ifdef LANG_CN
@@ -309,13 +308,13 @@ bool setTranslator(const char *langName)
 #ifdef LANG_TW
   else if (L_EQUAL("chinese-traditional"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorChinesetraditional);
+    theTranslator=new TranslatorChinesetraditional;
   }
 #endif
 #ifdef LANG_NO
   else if (L_EQUAL("norwegian"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorNorwegian);
+    theTranslator=new TranslatorNorwegian;
   }
 #endif
 #ifdef LANG_BR
@@ -327,7 +326,7 @@ bool setTranslator(const char *langName)
 #ifdef LANG_DK
   else if (L_EQUAL("danish"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorDanish);
+    theTranslator=new TranslatorDanish;
   }
 #endif
 #ifdef LANG_SK
@@ -351,7 +350,7 @@ bool setTranslator(const char *langName)
 #ifdef LANG_SR
   else if (L_EQUAL("serbian"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorSerbian);
+    theTranslator=new TranslatorSerbian;
   }
 #endif
 #ifdef LANG_SC
@@ -369,19 +368,19 @@ bool setTranslator(const char *langName)
 #ifdef LANG_LT
   else if (L_EQUAL("lithuanian"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorLithuanian);
+    theTranslator=new TranslatorLithuanian;
   }
 #endif
 #ifdef LANG_LV
   else if (L_EQUAL("latvian"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorLatvian);
+    theTranslator=new TranslatorLatvian;
   }
 #endif
 #ifdef LANG_ZA
   else if (L_EQUAL("afrikaans"))
   {
-    theTranslator=new TranslatorDecoder(new TranslatorAfrikaans);
+    theTranslator=new TranslatorAfrikaans;
   }
 #endif
 #ifdef LANG_AR
@@ -426,7 +425,7 @@ bool setTranslator(const char *langName)
     theTranslator=new TranslatorEnglish;
     return FALSE;
   }
-  
+
   QCString msg = theTranslator->updateNeededMessage();
   if (!msg.isEmpty()) warn_uncond(msg);
   return TRUE;
index 0a96530..cdcf8b4 100644 (file)
@@ -142,9 +142,9 @@ void LatexDocVisitor::visit(DocSymbol *s)
     case DocSymbol::DoubleColon:  m_t << "::"; break;
     case DocSymbol::Percent: m_t << "\\%"; break;
     case DocSymbol::Pipe:    m_t << "$|$"; break;
-    case DocSymbol::Copy:    m_t << "\\copyright"; break;
-    case DocSymbol::Tm:      m_t << "\\texttrademark"; break;
-    case DocSymbol::Reg:     m_t << "\\textregistered"; break;
+    case DocSymbol::Copy:    m_t << "\\copyright{}"; break;
+    case DocSymbol::Tm:      m_t << "\\texttrademark{}"; break;
+    case DocSymbol::Reg:     m_t << "\\textregistered{}"; break;
     case DocSymbol::Apos:    m_t << "'"; break;
     case DocSymbol::Quot:    m_t << "\""; break;
     case DocSymbol::Lsquo:   m_t << "`"; break;
@@ -339,13 +339,14 @@ void LatexDocVisitor::visit(DocVerbatim *s)
   {
     lang = s->language();
   }
+  SrcLangExt langExt = getLanguageFromFileName(lang);
   switch(s->type())
   {
     case DocVerbatim::Code: 
       {
         m_t << "\n\\begin{DoxyCode}\n";
         Doxygen::parserManager->getParser(lang)
-                              ->parseCode(m_ci,s->context(),s->text(),
+                              ->parseCode(m_ci,s->context(),s->text(),langExt,
                                           s->isExample(),s->exampleFile());
         m_t << "\\end{DoxyCode}\n";
       }
@@ -435,6 +436,7 @@ void LatexDocVisitor::visit(DocAnchor *anc)
 void LatexDocVisitor::visit(DocInclude *inc)
 {
   if (m_hide) return;
+  SrcLangExt langExt = getLanguageFromFileName(inc->extension());
   switch(inc->type())
   {
     case DocInclude::IncWithLines:
@@ -445,6 +447,7 @@ void LatexDocVisitor::visit(DocInclude *inc)
          Doxygen::parserManager->getParser(inc->extension())
                                ->parseCode(m_ci,inc->context(),
                                            inc->text(),
+                                           langExt,
                                            inc->isExample(),
                                            inc->exampleFile(), &fd);
          m_t << "\\end{DoxyCodeInclude}" << endl;
@@ -454,7 +457,7 @@ void LatexDocVisitor::visit(DocInclude *inc)
       m_t << "\n\\begin{DoxyCodeInclude}\n";
       Doxygen::parserManager->getParser(inc->extension())
                             ->parseCode(m_ci,inc->context(),
-                                        inc->text(),inc->isExample(),
+                                        inc->text(),langExt,inc->isExample(),
                                         inc->exampleFile());
       m_t << "\\end{DoxyCodeInclude}\n";
       break;
@@ -474,6 +477,7 @@ void LatexDocVisitor::visit(DocInclude *inc)
                                ->parseCode(m_ci,
                                            inc->context(),
                                            extractBlock(inc->text(),inc->blockId()),
+                                           langExt,
                                            inc->isExample(),
                                            inc->exampleFile()
                                           );
@@ -493,13 +497,14 @@ void LatexDocVisitor::visit(DocIncOperator *op)
     pushEnabled();
     m_hide = TRUE;
   }
+  SrcLangExt langExt = getLanguageFromFileName(m_langExt);
   if (op->type()!=DocIncOperator::Skip) 
   {
     popEnabled();
     if (!m_hide) 
     {
       Doxygen::parserManager->getParser(m_langExt)
-                            ->parseCode(m_ci,op->context(),op->text(),
+                            ->parseCode(m_ci,op->context(),op->text(),langExt,
                                         op->isExample(),op->exampleFile());
     }
     pushEnabled();
index 1434dca..49f06fe 100644 (file)
@@ -366,8 +366,12 @@ static void writeDefaultHeaderPart1(FTextStream &t)
        "\n";
 
   // Headers & footers
-  QCString genString =
-        theTranslator->trGeneratedAt(dateToString(TRUE),Config_getString("PROJECT_NAME"));
+  QGString genString;
+  FTextStream tg(&genString);
+  filterLatexString(tg,
+                    theTranslator->trGeneratedAt(dateToString(TRUE),
+                       Config_getString("PROJECT_NAME")),
+                    FALSE,FALSE,FALSE);
   t << "% Headers & footers\n"
        "\\usepackage{fancyhdr}\n"
        "\\pagestyle{fancyplain}\n"
@@ -2053,6 +2057,8 @@ void LatexGenerator::endCodeFragment()
 
 void LatexGenerator::writeLineNumber(const char *ref,const char *fileName,const char *anchor,int l)
 {
+  static bool usePDFLatex = Config_getBool("USE_PDFLATEX");
+  static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS");
   if (m_prettyCode)
   {
     QCString lineNumber;
@@ -2063,9 +2069,12 @@ void LatexGenerator::writeLineNumber(const char *ref,const char *fileName,const
       QCString lineAnchor;
       lineAnchor.sprintf("_l%05d",l);
       lineAnchor.prepend(sourceFileName);
-      startCodeAnchor(lineAnchor);
+      //if (!m_prettyCode) return;
+      if (usePDFLatex && pdfHyperlinks)
+      {
+        t << "\\hypertarget{" << stripPath(lineAnchor) << "}{}";
+      }
       writeCodeLink(ref,fileName,anchor,lineNumber,0);
-      endCodeAnchor();
     }
     else
     { 
@@ -2101,21 +2110,6 @@ void LatexGenerator::endFontClass()
   t << "}";
 }
 
-void LatexGenerator::startCodeAnchor(const char *name) 
-{
-  static bool usePDFLatex = Config_getBool("USE_PDFLATEX");
-  static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS");
-  //if (!m_prettyCode) return;
-  if (usePDFLatex && pdfHyperlinks)
-  {
-    t << "\\hypertarget{" << stripPath(name) << "}{}";
-  }
-}
-
-void LatexGenerator::endCodeAnchor() 
-{
-}
-
 void LatexGenerator::startInlineHeader()
 {
   if (Config_getBool("COMPACT_LATEX")) 
index 2712d31..8e29c01 100644 (file)
@@ -87,6 +87,9 @@ class LatexGenerator : public OutputGenerator
     void writeCodeLink(const char *ref, const char *file,
                        const char *anchor,const char *name,
                        const char *tooltip);
+    void writeTooltip(const char *, const DocLinkInfo &, const char *,
+                      const char *, const SourceLinkInfo &, const SourceLinkInfo &
+                     ) {}
     void startTextLink(const char *,const char *);
     void endTextLink();
     void startHtmlLink(const char *url);
@@ -148,8 +151,6 @@ class LatexGenerator : public OutputGenerator
     void endMemberDoc(bool);
     void startDoxyAnchor(const char *,const char *,const char *,const char *,const char *);
     void endDoxyAnchor(const char *,const char *);
-    void startCodeAnchor(const char *);
-    void endCodeAnchor();
     void writeChar(char c);
     void writeLatexSpacing() { t << "\\hspace{0.3cm}"; }
     void writeStartAnnoItem(const char *type,const char *file, 
index c2b1ac5..010c850 100644 (file)
@@ -582,7 +582,7 @@ class LayoutParser : public QXmlDefaultHandler
                                            SrcLangExt_Fortran,theTranslator->trModules()
                                          )));
       m_sHandler.insert("file/memberdecl/constantgroups",
-          new StartElementHandlerSection(this,LayoutDocEntry::FileNamespaces,&LayoutParser::startSectionEntry,
+          new StartElementHandlerSection(this,LayoutDocEntry::FileConstantGroups,&LayoutParser::startSectionEntry,
                                          theTranslator->trConstantGroups()));
       m_sHandler.insert("file/memberdecl/defines", 
           new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
index 4f885a7..270d090 100644 (file)
@@ -47,6 +47,6 @@ sub GenerateDep {
 #$ GenerateDep("config.cpp","config.l");
        $(LEX) -PconfigYY -t config.l >config.cpp 
 
-configoptions.cpp: config.xml
-       python configgen.py config.xml >configoptions.cpp
+configoptions.cpp: config.xml configgen.py
+       python configgen.py -cpp config.xml >configoptions.cpp
 
index d63f7ac..c4e79da 100644 (file)
@@ -72,6 +72,7 @@ HEADERS      =        arguments.h \
                jquery_p3_js.h \
                jquery_ui_js.h \
                jquery_fx_js.h \
+               jquery_pt_js.h \
                svgpan_js.h \
                dynsections_js.h \
                language.h \
@@ -127,6 +128,7 @@ HEADERS      =      arguments.h \
                tagreader.h \
                tclscanner.h \
                 textdocvisitor.h \
+               tooltip.h \
                translator.h \
                translator_adapter.h \
                translator_am.h \
@@ -257,7 +259,7 @@ SOURCES      =      arguments.cpp \
                tagreader.cpp \
                 tclscanner.cpp \
                 textdocvisitor.cpp \
-               translator.cpp \
+                tooltip.cpp \
                util.cpp \
                version.cpp \
                vhdlcode.cpp \
@@ -276,6 +278,7 @@ linux-g++:TMAKE_CXXFLAGS    += -fno-exceptions -fno-rtti
 INCLUDEPATH                += ../qtools
 #INCLUDEPATH                += ../libpng
 INCLUDEPATH                += ../libmd5
+INCLUDEPATH                += %%SQLITE3_INC%%
 win32:INCLUDEPATH          += .
 #win32-g++:INCLUDEPATH      = ../qtools /usr/include/libpng12 ../libmd5
 win32-g++:INCLUDEPATH      = ../qtools ../libmd5
index 526a097..959fd69 100644 (file)
@@ -174,6 +174,9 @@ jquery_ui_js.h: jquery_ui.js
 jquery_fx_js.h: jquery_fx.js
        cat jquery_fx.js | $(TO_C_CMD) >jquery_fx_js.h
 
+jquery_pt_js.h: jquery_pt.js
+       cat jquery_pt.js | $(TO_C_CMD) >jquery_pt_js.h
+
 navtree_css.h: navtree.css
        cat navtree.css | $(TO_C_CMD) >navtree_css.h
 
diff --git a/src/lockingptr.h b/src/lockingptr.h
deleted file mode 100644 (file)
index 024758f..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-/******************************************************************************
- *
- * 
- *
- * Copyright (C) 1997-2013 by Dimitri van Heesch.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
- * for any purpose. It is provided "as is" without express or implied warranty.
- * See the GNU General Public License for more details.
- *
- * Documents produced by Doxygen are derivative works derived from the
- * input used in their production; they are not affected by this license.
- *
- */
-
-#ifndef LOCKINGPTR_H
-#define LOCKINGPTR_H
-
-/*! @brief Abstract interface for lockable objects.
- *
- *  By implementing this interface, a smart pointer can be created which
- *  will lock this object. This is used to prevent that an internal pointer
- *  owned by a lockable object would become invalid when the object is removed from 
- *  memory, leaving the client with an invalid pointer. By letting the client use 
- *  a smart pointer instead of the real object the object will be locked into
- *  memory until the pointer is no longer used, at which point the owner object will be
- *  unlock and can be removed from memory.
- */
-class LockableObj
-{
-  public:
-    LockableObj() : m_lockCount(0) {}
-    virtual ~LockableObj() {}
-
-    /*! Returns TRUE if the object is currently locked. */
-    bool isLocked() const { return m_lockCount>0; }
-
-//VC++6.0 workaround
-//  protected:
-    /*! Called when the object is locked. */
-    virtual void lock() const = 0;
-
-    /*! Called when the object is unlocked. */
-    virtual void unlock() const = 0;
-
-//VC++6.0 workaround
-//  private:
-//    template<class T> friend class LockingPtr;
-    int  m_lockCount;
-};
-
-/*! @brief Smart pointer which keeps a lock on the owner of the pointer.
- *
- *  With the pointer an owner object derived from LockableObj is associated.
- *  As long as the smart object exists it will keep a lock on the obj by calling 
- *  LockableObj::lock(). Smart pointers can be copied and passed by value. As 
- *  soon as there or no more smart pointer references to the object, 
- *  LockableObj::unlock() will be called automatically.
- */
-template<class T> class LockingPtr
-{
-    LockableObj *m_owner;
-    const T *m_ptr;
-
-  public:
-    /*! Creates a smart pointer for pointer \a p owned by object \a o.
-     */
-    LockingPtr(const LockableObj *o,const T* p) 
-    { 
-      if (o->m_lockCount==0) o->lock(); 
-      m_owner = (LockableObj *)o;
-      m_owner->m_lockCount++;
-      m_ptr = p;
-    }
-    
-    /*! Copies the smart pointer \a lp 
-     */
-    LockingPtr(const LockingPtr &lp)
-    {
-      m_ptr   = lp.m_ptr;
-      m_owner = lp.m_owner;
-      m_owner->m_lockCount++;
-    }
-
-    /*! Assigns the smart pointer \a lp 
-     */
-    LockingPtr &operator=(const LockingPtr &lp)
-    {
-      m_owner->m_lockCount--;
-      if (m_owner->m_lockCount==0) // no more references
-      {
-        m_owner->unlock(); 
-      }
-      m_ptr   = lp.m_ptr;
-      m_owner = lp.m_owner;
-      m_owner->m_lockCount++;
-      return *this;
-    }
-
-    /*! Destroys the smart pointer, will unlock the owner.
-     */
-    ~LockingPtr() 
-    { 
-      m_owner->m_lockCount--;
-      if (m_owner->m_lockCount==0) // no more references
-      {
-        m_owner->unlock(); 
-      }
-    }
-
-    bool isNull() const
-    {
-      return m_ptr==0;
-    }
-
-    bool operator!() const
-    {
-      return !m_ptr;
-    }
-
-    bool operator==(T *p) const
-    {
-      return m_ptr==p;
-    }
-
-    bool operator==(const LockingPtr &lp) const
-    {
-      return m_ptr==lp.m_ptr;
-    }
-
-    bool operator!=(T *p) const
-    {
-      return m_ptr!=p;
-    }
-
-    bool operator!=(const LockingPtr &lp) const
-    {
-      return m_ptr!=lp.m_ptr;
-    }
-
-    /*! Dereference operator */
-    const T& operator* () const
-    { 
-      return *m_ptr; 
-    }
-
-    T* pointer() const
-    {
-      return (T*)m_ptr;
-    }
-    
-    /*! Pointer operator */
-    T* operator-> () const
-    { 
-      return (T*)m_ptr; 
-    }
-};
-
-#endif // LOCKINGPTR_H
-
index e854bfc..18f93bb 100644 (file)
@@ -193,14 +193,21 @@ void ManDocVisitor::visit(DocStyleChange *s)
 void ManDocVisitor::visit(DocVerbatim *s)
 {
   if (m_hide) return;
+  QCString lang = m_langExt;
+  if (!s->language().isEmpty()) // explicit language setting
+  {
+    lang = s->language();
+  }
+  SrcLangExt langExt = getLanguageFromFileName(lang);
   switch (s->type())
   {
     case DocVerbatim::Code: // fall though
       if (!m_firstCol) m_t << endl;
       m_t << ".PP" << endl;
       m_t << ".nf" << endl;
-      Doxygen::parserManager->getParser(0/*TODO*/)
+      Doxygen::parserManager->getParser(lang)
                             ->parseCode(m_ci,s->context(),s->text(),
+                                        langExt,
                                         s->isExample(),s->exampleFile());
       if (!m_firstCol) m_t << endl;
       m_t << ".fi" << endl;
@@ -240,6 +247,7 @@ void ManDocVisitor::visit(DocAnchor *)
 void ManDocVisitor::visit(DocInclude *inc)
 {
   if (m_hide) return;
+  SrcLangExt langExt = getLanguageFromFileName(inc->extension());
   switch(inc->type())
   {
     case DocInclude::IncWithLines:
@@ -252,6 +260,7 @@ void ManDocVisitor::visit(DocInclude *inc)
          Doxygen::parserManager->getParser(inc->extension())
                                ->parseCode(m_ci,inc->context(),
                                            inc->text(),
+                                           langExt,
                                            inc->isExample(),
                                            inc->exampleFile(), &fd);
          if (!m_firstCol) m_t << endl;
@@ -266,7 +275,9 @@ void ManDocVisitor::visit(DocInclude *inc)
       m_t << ".nf" << endl;
       Doxygen::parserManager->getParser(inc->extension())
                             ->parseCode(m_ci,inc->context(),
-                                        inc->text(),inc->isExample(),
+                                        inc->text(),
+                                        langExt,
+                                        inc->isExample(),
                                         inc->exampleFile());
       if (!m_firstCol) m_t << endl;
       m_t << ".fi" << endl;
@@ -295,6 +306,7 @@ void ManDocVisitor::visit(DocInclude *inc)
                             ->parseCode(m_ci,
                                         inc->context(),
                                         extractBlock(inc->text(),inc->blockId()),
+                                        langExt,
                                         inc->isExample(),
                                         inc->exampleFile()
                                        );
@@ -308,6 +320,7 @@ void ManDocVisitor::visit(DocInclude *inc)
 
 void ManDocVisitor::visit(DocIncOperator *op)
 {
+  SrcLangExt langExt = getLanguageFromFileName(m_langExt);
   //printf("DocIncOperator: type=%d first=%d, last=%d text=`%s'\n",
   //    op->type(),op->isFirst(),op->isLast(),op->text().data());
   if (op->isFirst()) 
@@ -326,8 +339,8 @@ void ManDocVisitor::visit(DocIncOperator *op)
     popEnabled();
     if (!m_hide) 
     {
-      Doxygen::parserManager->getParser(0/*TODO*/)
-                            ->parseCode(m_ci,op->context(),op->text(),
+      Doxygen::parserManager->getParser(m_langExt)
+                            ->parseCode(m_ci,op->context(),op->text(),langExt,
                                         op->isExample(),op->exampleFile());
     }
     pushEnabled();
index eda360e..7ac5ae1 100644 (file)
@@ -84,6 +84,9 @@ class ManGenerator : public OutputGenerator
     void writeCodeLink(const char *ref,const char *file,
                        const char *anchor,const char *name,
                        const char *tooltip);
+    void writeTooltip(const char *, const DocLinkInfo &, const char *,
+                      const char *, const SourceLinkInfo &, const SourceLinkInfo &
+                     ) {}
     void startTextLink(const char *,const char *) {}
     void endTextLink() {}
     void startHtmlLink(const char *url);
@@ -145,8 +148,6 @@ class ManGenerator : public OutputGenerator
     void endMemberDoc(bool);
     void startDoxyAnchor(const char *,const char *,const char *,const char *,const char *);
     void endDoxyAnchor(const char *,const char *) {}
-    void startCodeAnchor(const char *) {}
-    void endCodeAnchor() {}
     void writeLatexSpacing() {}
     void writeStartAnnoItem(const char *type,const char *file,
                             const char *path,const char *name);
index a3ac468..63d6cfc 100644 (file)
@@ -442,7 +442,7 @@ static int processEmphasis3(GrowBuf &out, const char *data, int size, char c)
 }
 
 /** Process ndash and mdashes */
-static int processNmdash(GrowBuf &out,const char *data,int,int size)
+static int processNmdash(GrowBuf &out,const char *data,int off,int size)
 {
   // precondition: data[0]=='-'
   int i=1;
@@ -459,7 +459,7 @@ static int processNmdash(GrowBuf &out,const char *data,int,int size)
   {
     count++;
   }
-  if (count==2) // -- => ndash
+  if (count==2 && (off<8 || qstrncmp(data-8,"operator",8)!=0)) // -- => ndash
   {
     out.addStr("&ndash;");
     return 2;
@@ -1831,10 +1831,11 @@ static void findEndOfLine(GrowBuf &out,const char *data,int size,
        )
     {
       QCString endBlockName = isBlockCommand(data+end-1,end-1,size-(end-1));
+      end++;
       if (!endBlockName.isEmpty())
       {
         int l = endBlockName.length();
-        for (;end<size-l;end++) // search for end of block marker
+        for (;end<size-l-1;end++) // search for end of block marker
         {
           if ((data[end]=='\\' || data[end]=='@') &&
               data[end-1]!='\\' && data[end-1]!='@'
@@ -1858,10 +1859,6 @@ static void findEndOfLine(GrowBuf &out,const char *data,int size,
           }
         }
       }
-      else
-      {
-        end++;
-      }
     }
     else if (nb==0 && data[end-1]=='<' && end<size-6 &&
              (end<=1 || (data[end-2]!='\\' && data[end-2]!='@'))
@@ -2341,6 +2338,7 @@ void MarkdownFileParser::parseInput(const char *fileName,
 void MarkdownFileParser::parseCode(CodeOutputInterface &codeOutIntf,
                const char *scopeName,
                const QCString &input,
+               SrcLangExt lang,
                bool isExampleBlock,
                const char *exampleName,
                FileDef *fileDef,
@@ -2356,7 +2354,7 @@ void MarkdownFileParser::parseCode(CodeOutputInterface &codeOutIntf,
   if (pIntf!=this)
   {
     pIntf->parseCode(
-       codeOutIntf,scopeName,input,isExampleBlock,exampleName,
+       codeOutIntf,scopeName,input,lang,isExampleBlock,exampleName,
        fileDef,startLine,endLine,inlineFragment,memberDef,showLineNumbers,searchCtx);
   }
 }
index 71884d5..daabc33 100644 (file)
@@ -39,6 +39,7 @@ class MarkdownFileParser : public ParserInterface
     void parseCode(CodeOutputInterface &codeOutIntf,
                    const char *scopeName,
                    const QCString &input,
+                   SrcLangExt lang,
                    bool isExampleBlock,
                    const char *exampleName=0,
                    FileDef *fileDef=0,
index c5bf787..d9b9ce9 100644 (file)
@@ -2701,7 +2701,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
     ParserInterface *pIntf = Doxygen::parserManager->getParser(getDefFileExtension());
     pIntf->resetCodeParserState();
     ol.startCodeFragment();
-    pIntf->parseCode(ol,scopeName,m_impl->initializer,FALSE,0,getFileDef(),
+    pIntf->parseCode(ol,scopeName,m_impl->initializer,lang,FALSE,0,getFileDef(),
                      -1,-1,TRUE,this,FALSE,this);
     ol.endCodeFragment();
   }
@@ -3397,6 +3397,8 @@ void MemberDef::_writeTagData(const DefType compoundType)
 { 
   unsigned typeMask = 1 << compoundType;
   if ((m_impl->tagDataWritten) & typeMask) return; // member already written for this type
+  if (m_impl->mtype==MemberType_EnumValue && m_impl->enumScope &&
+      m_impl->enumScope->isStrong()) return; // enum value is part of enum
   static bool generateTagFile = !Config_getString("GENERATE_TAGFILE").isEmpty();
   // write tag file information of this member
   if (generateTagFile && isLinkableInProject())
@@ -3447,37 +3449,32 @@ void MemberDef::_writeTagData(const DefType compoundType)
       Doxygen::tagFile << "      <clangid>" << convertToXML(idStr) << "</clangid>" << endl;
     }
     Doxygen::tagFile << "      <arglist>" << convertToXML(argsString()) << "</arglist>" << endl;
-    writeDocAnchorsToTagFile();
-    Doxygen::tagFile << "    </member>" << endl;
-    _addToSearchIndex();
-  }
-  MemberList *fmdl=m_impl->enumFields;
-  if (fmdl)
-  {
-    MemberListIterator mli(*fmdl);
-    MemberDef *fmd;
-    for (mli.toFirst();(fmd=mli.current());++mli)
+    if (isStrong())
     {
-      if (!fmd->isReference())
+      MemberList *fmdl=m_impl->enumFields;
+      if (fmdl)
       {
-        if (!Config_getString("GENERATE_TAGFILE").isEmpty())
+        MemberListIterator mli(*fmdl);
+        MemberDef *fmd;
+        for (mli.toFirst();(fmd=mli.current());++mli)
         {
-          Doxygen::tagFile << "    <member kind=\"enumvalue\">" << endl;
-          Doxygen::tagFile << "      <name>" << convertToXML(fmd->name()) << "</name>" << endl; 
-          Doxygen::tagFile << "      <anchorfile>" << convertToXML(getOutputFileBase()+Doxygen::htmlFileExtension) << "</anchorfile>" << endl;              
-          Doxygen::tagFile << "      <anchor>" << convertToXML(fmd->anchor()) << "</anchor>" << endl; 
-          QCString idStr = fmd->id();
-          if (!idStr.isEmpty())
+          if (!fmd->isReference())
           {
-            Doxygen::tagFile << "      <clangid>" << convertToXML(idStr) << "</clangid>" << endl;
+            Doxygen::tagFile << "      <enumvalue file=\"" << convertToXML(getOutputFileBase()+Doxygen::htmlFileExtension);
+            Doxygen::tagFile << "\" anchor=\"" << convertToXML(fmd->anchor());
+            QCString idStr = fmd->id();
+            if (!idStr.isEmpty()) 
+            {
+              Doxygen::tagFile << "\" clangid=\"" << convertToXML(idStr);
+            }
+            Doxygen::tagFile  << "\">" << convertToXML(fmd->name()) << "</enumvalue>" << endl; 
           }
-          Doxygen::tagFile << "      <arglist>" << convertToXML(fmd->argsString()) << "</arglist>" << endl; 
-          Doxygen::tagFile << "    </member>" << endl;
-          fmd->m_impl->tagDataWritten |= typeMask;
-          fmd->_addToSearchIndex();
         }
       }
     }
+    writeDocAnchorsToTagFile();
+    Doxygen::tagFile << "    </member>" << endl;
+    _addToSearchIndex();
   }
   m_impl->tagDataWritten |= typeMask;
 }
@@ -3795,6 +3792,12 @@ QCString MemberDef::qualifiedName() const
     qm+="]";
     return qm;
   }
+  else if (m_impl->enumScope && m_impl->enumScope->isStrong())
+  {
+    return m_impl->enumScope->qualifiedName()+
+           getLanguageSpecificSeparator(getLanguage())+
+           localName();
+  }
   else
   {
     return Definition::qualifiedName();
@@ -4139,6 +4142,13 @@ bool MemberDef::isStrong() const
   return (m_impl->memSpec&Entry::Strong)!=0; 
 }
 
+bool MemberDef::isStrongEnumValue() const
+{
+  return m_impl->mtype==MemberType_EnumValue &&
+         m_impl->enumScope && 
+         m_impl->enumScope->isStrong();
+}
+
 bool MemberDef::isUnretained() const
 {
   return (m_impl->memSpec&Entry::Unretained)!=0; 
@@ -4845,4 +4855,3 @@ void combineDeclarationAndDefinition(MemberDef *mdec,MemberDef *mdef)
   }
 }
 
-
index 8c88f7c..fc2bb44 100644 (file)
@@ -169,6 +169,7 @@ class MemberDef : public Definition
     bool hasMultiLineInitializer() const;
     bool protectionVisible() const;
     bool showInCallGraph() const;
+    bool isStrongEnumValue() const;
 
     // output info
     bool isLinkableInProject() const;
index 76ffff1..68edabc 100644 (file)
@@ -315,7 +315,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,
     return; // no members in this list
   }
   //printf("  --> writePlainDeclaration() numDecMembers()=%d\n",
-  //     numDecMembers());
+  //    numDecMembers());
   
   ol.pushGeneratorState();
 
@@ -329,6 +329,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,
     if ((inheritedFrom==0 || !md->isReimplementedBy(inheritedFrom)) &&
         md->isBriefSectionVisible())
     {
+      //printf(">>> rendering\n");
       switch(md->memberType())
       {
         case MemberType_Define:    // fall through
@@ -493,7 +494,7 @@ void MemberList::writeDeclarations(OutputList &ol,
              ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
              const char *title,const char *subtitle,
              const DefinitionIntf::DefType compoundType,bool showEnumValues,
-             bool showInline,ClassDef *inheritedFrom)
+             bool showInline,ClassDef *inheritedFrom,MemberListType lt)
 {
   (void)showEnumValues; // unused
 
@@ -507,8 +508,8 @@ void MemberList::writeDeclarations(OutputList &ol,
   if (ctx==0 && gd) ctx = gd;
   if (ctx==0 && fd) ctx = fd;
 
-  //printf("%p: MemberList::writeDeclaration(title=`%s',subtitle=`%s')=%d\n",
-  //       this,title,subtitle,numDecMembers());
+  //printf("%p: MemberList::writeDeclaration(title=`%s',subtitle=`%s')=%d inheritedFrom=%p\n",
+  //       this,title,subtitle,numDecMembers(),inheritedFrom);
 
   int num = numDecMembers();
   if (inheritedFrom)
@@ -519,7 +520,7 @@ void MemberList::writeDeclarations(OutputList &ol,
     {
       ol.pushGeneratorState();
       ol.disableAllBut(OutputGenerator::Html);
-      inheritId = substitute(listTypeAsString(),"-","_")+"_"+
+      inheritId = substitute(listTypeAsString(lt),"-","_")+"_"+
                   stripPath(cd->getOutputFileBase());
       if (title)
       {
@@ -540,7 +541,7 @@ void MemberList::writeDeclarations(OutputList &ol,
       }
       else
       {
-        ol.startMemberHeader(listTypeAsString());
+        ol.startMemberHeader(listTypeAsString(m_listType));
       }
       ol.parseText(title);
       if (showInline)
@@ -872,9 +873,14 @@ void MemberList::unmarshal(StorageIntf *s)
   }
 }
 
-QCString MemberList::listTypeAsString() const
+void MemberList::setNeedsSorting(bool b)
+{
+  m_needsSorting = b;
+}
+
+QCString MemberList::listTypeAsString(MemberListType type) const
 {
-  switch(m_listType)
+  switch(type)
   {
     case MemberListType_pubMethods: return "pub-methods";
     case MemberListType_proMethods: return "pro-methods";
@@ -928,10 +934,6 @@ QCString MemberList::listTypeAsString() const
   return "";
 }
 
-void MemberList::setNeedsSorting(bool b)
-{
-  m_needsSorting = b;
-}
 
 //--------------------------------------------------------------------------
 
index ce5a3d2..7241258 100644 (file)
@@ -36,7 +36,7 @@ class MemberList : public QList<MemberDef>
     MemberList(MemberListType lt);
    ~MemberList();
     MemberListType listType() const { return m_listType; }
-    QCString listTypeAsString() const;
+    QCString listTypeAsString(MemberListType type) const;
     bool insert(uint index,const MemberDef *md);
     void inSort(const MemberDef *md);
     void append(const MemberDef *md);
@@ -63,7 +63,7 @@ class MemberList : public QList<MemberDef>
                ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
                const char *title,const char *subtitle,const DefinitionIntf::DefType compoundType,
                bool showEnumValues=FALSE,bool showInline=FALSE,
-               ClassDef *inheritedFrom=0);
+               ClassDef *inheritedFrom=0,MemberListType lt=MemberListType_pubMethods);
     void writeDocumentation(OutputList &ol,const char *scopeName,
                Definition *container,const char *title,bool showEnumValues=FALSE,bool showInline=FALSE);
     void writeSimpleDocumentation(OutputList &ol,Definition *container);
index dd1f05c..7c9c02b 100644 (file)
@@ -26,8 +26,8 @@
 #include "filedef.h"
 
 static QCString outputFormat;
-static const char *warning_str = "Warning: ";
-static const char *error_str = "Error: ";
+static const char *warning_str = "warning: ";
+static const char *error_str = "error: ";
 //static int warnFormatOrder; // 1 = $file,$line,$text
 //                            // 2 = $text,$line,$file
 //                            // 3 = $line,$text,$file
index f9b069e..91b1d05 100644 (file)
@@ -55,7 +55,7 @@ static bool convertMapFile(QTextStream &t,const char *mapName,const QCString rel
       // obtain the url and the coordinates in the order used by graphviz-1.5
       sscanf(buf,"rect %s %d,%d %d,%d",url,&x1,&y1,&x2,&y2);
 
-      if ( strcmp(url,"\\ref") == 0 )
+      if (qstrcmp(url,"\\ref")==0 || qstrcmp(url,"@ref")==0)
       {
         isRef = TRUE;
         sscanf(buf,"rect %s %s %d,%d %d,%d",ref,url,&x1,&y1,&x2,&y2);
index cfca6d6..ee1568e 100644 (file)
@@ -429,7 +429,7 @@ void NamespaceDef::writeSummaryLinks(OutputList &ol)
       MemberList * ml = getMemberList(lmd->type);
       if (ml && ml->declVisible())
       {
-        ol.writeSummaryLink(0,ml->listTypeAsString(),lmd->title(lang),first);
+        ol.writeSummaryLink(0,ml->listTypeAsString(ml->listType()),lmd->title(lang),first);
         first=FALSE;
       }
     }
index 3d8134a..ed2565a 100644 (file)
@@ -1,3 +1,5 @@
+var SYNCONMSG = 'click to disable panel synchronisation';
+var SYNCOFFMSG = 'click to enable panel synchronisation';
 var navTreeSubIndices = new Array();
 
 function getData(varName)
@@ -78,12 +80,12 @@ function createIndent(o,domNode,node,level)
   var level=-1;
   var n = node;
   while (n.parentNode) { level++; n=n.parentNode; }
-  var imgNode = document.createElement("img");
-  imgNode.style.paddingLeft=(16*level).toString()+'px';
-  imgNode.width  = 16;
-  imgNode.height = 22;
-  imgNode.border = 0;
   if (node.childrenData) {
+    var imgNode = document.createElement("img");
+    imgNode.style.paddingLeft=(16*level).toString()+'px';
+    imgNode.width  = 16;
+    imgNode.height = 22;
+    imgNode.border = 0;
     node.plus_img = imgNode;
     node.expandToggle = document.createElement("a");
     node.expandToggle.href = "javascript:void(0)";
@@ -100,8 +102,12 @@ function createIndent(o,domNode,node,level)
     domNode.appendChild(node.expandToggle);
     imgNode.src = node.relpath+"ftv2pnode.png";
   } else {
-    imgNode.src = node.relpath+"ftv2node.png";
-    domNode.appendChild(imgNode);
+    var span = document.createElement("span");
+    span.style.display = 'inline-block';
+    span.style.width   = 16*(level+1)+'px';
+    span.style.height  = '22px';
+    span.innerHTML = '&nbsp;';
+    domNode.appendChild(span);
   } 
 }
 
@@ -320,7 +326,7 @@ function showNode(o, node, index, hash)
       if (!node.childrenVisited) {
         getNode(o, node);
       }
-      $(node.getChildrenUL()).show();
+      $(node.getChildrenUL()).css({'display':'block'});
       if (node.isLast) {
         node.plus_img.src = node.relpath+"ftv2mlastnode.png";
       } else {
@@ -352,8 +358,22 @@ function showNode(o, node, index, hash)
   }
 }
 
+function removeToInsertLater(element) {
+  var parentNode = element.parentNode;
+  var nextSibling = element.nextSibling;
+  parentNode.removeChild(element);
+  return function() {
+    if (nextSibling) {
+      parentNode.insertBefore(element, nextSibling);
+    } else {
+      parentNode.appendChild(element);
+    }
+  };
+}
+
 function getNode(o, po)
 {
+  var insertFunction = removeToInsertLater(po.li);
   po.childrenVisited = true;
   var l = po.childrenData.length-1;
   for (var i in po.childrenData) {
@@ -361,6 +381,7 @@ function getNode(o, po)
     po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
       i==l);
   }
+  insertFunction();
 }
 
 function gotoNode(o,subIndex,root,hash,relpath)
@@ -464,7 +485,10 @@ function initNavTree(toroot,relpath)
     navSync.click(function(){ toggleSyncButton(relpath); });
   }
 
-  navTo(o,toroot,window.location.hash,relpath);
+  $(window).load(function(){
+    navTo(o,toroot,window.location.hash,relpath);
+    showRoot();
+  });
 
   $(window).bind('hashchange', function(){
      if (window.location.hash && window.location.hash.length>1){
@@ -487,7 +511,5 @@ function initNavTree(toroot,relpath)
        navTo(o,toroot,window.location.hash,relpath);
      }
   })
-
-  $(window).load(showRoot);
 }
 
index 2e4df6a..bd03629 100644 (file)
@@ -1,3 +1,5 @@
+"var SYNCONMSG = 'click to disable panel synchronisation';\n"
+"var SYNCOFFMSG = 'click to enable panel synchronisation';\n"
 "var navTreeSubIndices = new Array();\n"
 "\n"
 "function getData(varName)\n"
 "  var level=-1;\n"
 "  var n = node;\n"
 "  while (n.parentNode) { level++; n=n.parentNode; }\n"
-"  var imgNode = document.createElement(\"img\");\n"
-"  imgNode.style.paddingLeft=(16*level).toString()+'px';\n"
-"  imgNode.width  = 16;\n"
-"  imgNode.height = 22;\n"
-"  imgNode.border = 0;\n"
 "  if (node.childrenData) {\n"
+"    var imgNode = document.createElement(\"img\");\n"
+"    imgNode.style.paddingLeft=(16*level).toString()+'px';\n"
+"    imgNode.width  = 16;\n"
+"    imgNode.height = 22;\n"
+"    imgNode.border = 0;\n"
 "    node.plus_img = imgNode;\n"
 "    node.expandToggle = document.createElement(\"a\");\n"
 "    node.expandToggle.href = \"javascript:void(0)\";\n"
 "    domNode.appendChild(node.expandToggle);\n"
 "    imgNode.src = node.relpath+\"ftv2pnode.png\";\n"
 "  } else {\n"
-"    imgNode.src = node.relpath+\"ftv2node.png\";\n"
-"    domNode.appendChild(imgNode);\n"
+"    var span = document.createElement(\"span\");\n"
+"    span.style.display = 'inline-block';\n"
+"    span.style.width   = 16*(level+1)+'px';\n"
+"    span.style.height  = '22px';\n"
+"    span.innerHTML = '&nbsp;';\n"
+"    domNode.appendChild(span);\n"
 "  } \n"
 "}\n"
 "\n"
 "      if (!node.childrenVisited) {\n"
 "        getNode(o, node);\n"
 "      }\n"
-"      $(node.getChildrenUL()).show();\n"
+"      $(node.getChildrenUL()).css({'display':'block'});\n"
 "      if (node.isLast) {\n"
 "        node.plus_img.src = node.relpath+\"ftv2mlastnode.png\";\n"
 "      } else {\n"
 "  }\n"
 "}\n"
 "\n"
+"function removeToInsertLater(element) {\n"
+"  var parentNode = element.parentNode;\n"
+"  var nextSibling = element.nextSibling;\n"
+"  parentNode.removeChild(element);\n"
+"  return function() {\n"
+"    if (nextSibling) {\n"
+"      parentNode.insertBefore(element, nextSibling);\n"
+"    } else {\n"
+"      parentNode.appendChild(element);\n"
+"    }\n"
+"  };\n"
+"}\n"
+"\n"
 "function getNode(o, po)\n"
 "{\n"
+"  var insertFunction = removeToInsertLater(po.li);\n"
 "  po.childrenVisited = true;\n"
 "  var l = po.childrenData.length-1;\n"
 "  for (var i in po.childrenData) {\n"
 "    po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],\n"
 "      i==l);\n"
 "  }\n"
+"  insertFunction();\n"
 "}\n"
 "\n"
 "function gotoNode(o,subIndex,root,hash,relpath)\n"
 "    navSync.click(function(){ toggleSyncButton(relpath); });\n"
 "  }\n"
 "\n"
-"  navTo(o,toroot,window.location.hash,relpath);\n"
+"  $(window).load(function(){\n"
+"    navTo(o,toroot,window.location.hash,relpath);\n"
+"    showRoot();\n"
+"  });\n"
 "\n"
 "  $(window).bind('hashchange', function(){\n"
 "     if (window.location.hash && window.location.hash.length>1){\n"
 "       navTo(o,toroot,window.location.hash,relpath);\n"
 "     }\n"
 "  })\n"
-"\n"
-"  $(window).load(showRoot);\n"
 "}\n"
 "\n"
index 989811a..3a538a3 100644 (file)
@@ -19,7 +19,7 @@
 #include <assert.h>
 #include <qglobal.h>
 #include "objcache.h"
-#if !defined(_OS_WIN32_)
+#if !defined(_OS_WIN32_) || defined(__MINGW32__)
 #include <stdint.h>
 #endif
 
index 2a959e4..95c467d 100644 (file)
@@ -37,13 +37,31 @@ class GroupDef;
 class Definition;
 class QFile;
 
+struct DocLinkInfo
+{
+  QCString name;
+  QCString ref;
+  QCString url;
+  QCString anchor;
+};
+
+struct SourceLinkInfo
+{
+  QCString file;
+  int line;
+  QCString ref;
+  QCString url;
+  QCString anchor;
+};
+
 /** Output interface for code parser. 
  */
 class CodeOutputInterface
 {
   public:
     virtual ~CodeOutputInterface() {}
-    /*! Writes an ASCII string to the output. This function should keep 
+
+    /*! Writes an code fragment to the output. This function should keep 
      *  spaces visible, should break lines at a newline and should convert 
      *  tabs to the right number of spaces.
      */
@@ -62,15 +80,50 @@ class CodeOutputInterface
                                const char *anchor,const char *name,
                                const char *tooltip) = 0;
 
+    /*! Writes the line number of a source listing
+     *  \param ref        External reference (when imported from a tag file)
+     *  \param file       The file part of the URL pointing to the docs.
+     *  \param anchor     The anchor part of the URL pointing to the docs.
+     *  \param lineNumber The line number to write
+     */
     virtual void writeLineNumber(const char *ref,const char *file,
                                  const char *anchor,int lineNumber) = 0;
+
+    /*! Writes a tool tip definition 
+     *  \param id       unique identifier for the tooltip
+     *  \param docInfo  Info about the symbol's documentation.
+     *  \param decl     full declaration of the symbol (for functions)
+     *  \param desc     brief description for the symbol
+     *  \param defInfo  Info about the symbol's definition in the source code
+     *  \param declInfo Info about the symbol's declaration in the source code
+     */
+    virtual void writeTooltip(const char *id, 
+                              const DocLinkInfo &docInfo,
+                              const char *decl,
+                              const char *desc,
+                              const SourceLinkInfo &defInfo,
+                              const SourceLinkInfo &declInfo
+                             ) = 0;
+                              
     virtual void startCodeLine(bool hasLineNumbers) = 0;
+
+    /*! Ends a line of code started with startCodeLine() */
     virtual void endCodeLine() = 0;
-    virtual void startCodeAnchor(const char *label) = 0;
-    virtual void endCodeAnchor() = 0;
-    virtual void startFontClass(const char *) = 0;
+
+    /*! Starts a block with a certain meaning. Used for syntax highlighting,
+     *  which elements of the same type are rendered using the same 'font class'.
+     *  \param clsName The category name.
+     */
+    virtual void startFontClass(const char *clsName) = 0;
+
+    /*! Ends a block started with startFontClass() */
     virtual void endFontClass() = 0;
+
+    /*! Write an anchor to a source listing.
+     *  \param name The name of the anchor.
+     */
     virtual void writeCodeAnchor(const char *name) = 0;
+
     virtual void setCurrentDoc(Definition *context,const char *anchor,bool isSourceFile) = 0;
     virtual void addWord(const char *word,bool hiPriority) = 0;
 };
index 2928400..f5df477 100644 (file)
@@ -291,6 +291,31 @@ void OutputList::forall(void (OutputGenerator::*func)(a1,a2,a3,a4,a5,a6),a1,a2,a
   }                                                                                   \
 }                     
 
+// seven arguments
+#define FORALL7(a1,a2,a3,a4,a5,a6,a7,p1,p2,p3,p4,p5,p6,p7)                      \
+void OutputList::forall(void (OutputGenerator::*func)(a1,a2,a3,a4,a5,a6,a7),a1,a2,a3,a4,a5,a6,a7) \
+{                                                                                     \
+  OutputGenerator *og=outputs->first();                                               \
+  while (og)                                                                          \
+  {                                                                                   \
+    if (og->isEnabled()) (og->*func)(p1,p2,p3,p4,p5,p6,p7);                           \
+    og=outputs->next();                                                               \
+  }                                                                                   \
+}                     
+
+
+// eight arguments
+#define FORALL8(a1,a2,a3,a4,a5,a6,a7,a8,p1,p2,p3,p4,p5,p6,p7,p8)                      \
+void OutputList::forall(void (OutputGenerator::*func)(a1,a2,a3,a4,a5,a6,a7,a8),a1,a2,a3,a4,a5,a6,a7,a8) \
+{                                                                                     \
+  OutputGenerator *og=outputs->first();                                               \
+  while (og)                                                                          \
+  {                                                                                   \
+    if (og->isEnabled()) (og->*func)(p1,p2,p3,p4,p5,p6,p7,p8);                        \
+    og=outputs->next();                                                               \
+  }                                                                                   \
+}                     
+
 // now instantiate only the ones we need.
 
 FORALL1(const char *a1,a1)
@@ -332,6 +357,7 @@ FORALL4(const char *a1,const char *a2,const char *a3,int a4,a1,a2,a3,a4)
 FORALL5(const char *a1,const char *a2,const char *a3,const char *a4,const char *a5,a1,a2,a3,a4,a5)
 FORALL5(const char *a1,const char *a2,const char *a3,const char *a4,bool a5,a1,a2,a3,a4,a5)
 FORALL6(const char *a1,const char *a2,const char *a3,const char *a4,const char *a5,const char *a6,a1,a2,a3,a4,a5,a6)
+FORALL6(const char *a1,const DocLinkInfo &a2,const char *a3,const char *a4,const SourceLinkInfo &a5,const SourceLinkInfo &a6,a1,a2,a3,a4,a5,a6)
 
 
 //--------------------------------------------------------------------------
index b328056..a12d9f5 100644 (file)
   void forall(void (OutputGenerator::*func)(arg1,arg2,arg3,arg4,arg5),arg1,arg2,arg3,arg4,arg5)
 #define FORALLPROTO6(arg1,arg2,arg3,arg4,arg5,arg6) \
   void forall(void (OutputGenerator::*func)(arg1,arg2,arg3,arg4,arg5,arg6),arg1,arg2,arg3,arg4,arg5,arg6)
+#define FORALLPROTO7(arg1,arg2,arg3,arg4,arg5,arg6,arg7) \
+  void forall(void (OutputGenerator::*func)(arg1,arg2,arg3,arg4,arg5,arg6,arg7),arg1,arg2,arg3,arg4,arg5,arg6,arg7)
+#define FORALLPROTO8(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) \
+  void forall(void (OutputGenerator::*func)(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8),arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8)
   
 class ClassDiagram;
 class DotClassGraph;
@@ -149,6 +153,9 @@ class OutputList : public OutputDocInterface
                        const char *anchor,const char *name,
                        const char *tooltip)
     { forall(&OutputGenerator::writeCodeLink,ref,file,anchor,name,tooltip); }
+    void writeTooltip(const char *id, const DocLinkInfo &docInfo, const char *decl,
+                      const char *desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo)
+    { forall(&OutputGenerator::writeTooltip,id,docInfo,decl,desc,defInfo,declInfo); }
     void startTextLink(const char *file,const char *anchor)
     { forall(&OutputGenerator::startTextLink,file,anchor); }
     void endTextLink()
@@ -262,10 +269,6 @@ class OutputList : public OutputDocInterface
     { forall(&OutputGenerator::startDoxyAnchor,fName,manName,anchor,name,args); }
     void endDoxyAnchor(const char *fn,const char *anchor)
     { forall(&OutputGenerator::endDoxyAnchor,fn,anchor); }
-    void startCodeAnchor(const char *label)
-    { forall(&OutputGenerator::startCodeAnchor,label); }
-    void endCodeAnchor()
-    { forall(&OutputGenerator::endCodeAnchor); }
     void writeLatexSpacing() 
     { forall(&OutputGenerator::writeLatexSpacing); }
     void startDescription() 
@@ -542,6 +545,7 @@ class OutputList : public OutputDocInterface
     FORALLPROTO5(const char *,const char *,const char *,const char *,const char *);
     FORALLPROTO5(const char *,const char *,const char *,const char *,bool);
     FORALLPROTO6(const char *,const char *,const char *,const char *,const char *,const char *);
+    FORALLPROTO6(const char *,const DocLinkInfo &,const char *,const char *,const SourceLinkInfo &,const SourceLinkInfo &);
   
     OutputList(const OutputList &ol);
     QList<OutputGenerator> *outputs;
index e93b3fd..0133be1 100644 (file)
@@ -61,6 +61,20 @@ QCString PageDef::getOutputFileBase() const
     return m_fileName; 
 }
 
+void PageDef::setFileName(const char *name) 
+{ 
+  static bool shortNames = Config_getBool("SHORT_NAMES");
+  if (shortNames)
+  {
+    m_fileName = convertNameToFile(name);
+  }
+  else
+  {
+    m_fileName = name; 
+  }
+}
+
+
 void PageDef::addInnerCompound(Definition *def)
 {
   if (def->definitionType()==Definition::TypePage)
index 4670ecd..f0e96c2 100644 (file)
@@ -32,7 +32,7 @@ class PageDef : public Definition
    ~PageDef();
 
     // setters
-    void setFileName(const char *name) { m_fileName = name; }
+    void setFileName(const char *name);
     void setShowToc(bool b);
 
     // getters
index 0274c13..40c82dc 100644 (file)
@@ -21,6 +21,8 @@
 #include <qdict.h>
 #include <qstrlist.h>
 
+#include "types.h"
+
 class Entry;
 class FileDef;
 class CodeOutputInterface;
@@ -79,6 +81,7 @@ class ParserInterface
     /** Parses a source file or fragment with the goal to produce
      *  highlighted and cross-referenced output.
      *  @param[in] codeOutIntf Abstract interface for writing the result.
+     *  @param[in] lang The programming language of the code fragment.
      *  @param[in] scopeName Name of scope to which the code belongs.
      *  @param[in] input Actual code in the form of a string
      *  @param[in] isExampleBlock TRUE iff the code is part of an example.
@@ -99,6 +102,7 @@ class ParserInterface
     virtual void parseCode(CodeOutputInterface &codeOutIntf,
                            const char *scopeName,
                            const QCString &input,
+                           SrcLangExt lang,
                            bool isExampleBlock,
                            const char *exampleName=0,
                            FileDef *fileDef=0,
index 2083cbf..7b78439 100644 (file)
@@ -30,7 +30,7 @@ extern char **environ;
 static double  g_sysElapsedTime;
 static QTime   g_time;
 
-int  portable_system(const char *command,const char *args,bool commandHasConsole)
+int portable_system(const char *command,const char *args,bool commandHasConsole)
 {
 
   if (command==0) return 1;
@@ -130,20 +130,23 @@ int  portable_system(const char *command,const char *args,bool commandHasConsole
     // For that case COM is initialized as follows
     CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);
 
+    QString commandw = QString::fromUtf8( command );
+    QString argsw = QString::fromUtf8( args );
+
     // gswin32 is a GUI api which will pop up a window and run
     // asynchronously. To prevent both, we use ShellExecuteEx and
     // WaitForSingleObject (thanks to Robert Golias for the code)
 
-    SHELLEXECUTEINFO sInfo = {
-      sizeof(SHELLEXECUTEINFO),   /* structure size */
+    SHELLEXECUTEINFOW sInfo = {
+      sizeof(SHELLEXECUTEINFOW),   /* structure size */
       SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI,  /* tell us the process
                                                        *  handle so we can wait till it's done | 
                                                        *  do not display msg box if error 
                                                        */
       NULL,                       /* window handle */
       NULL,                       /* action to perform: open */
-      command,                    /* file to execute */
-      args,                       /* argument list */ 
+      (LPCWSTR)commandw.ucs2(),   /* file to execute */
+      (LPCWSTR)argsw.ucs2(),      /* argument list */ 
       NULL,                       /* use current working dir */
       SW_HIDE,                    /* minimize on start-up */
       0,                          /* application instance handle */
@@ -154,7 +157,8 @@ int  portable_system(const char *command,const char *args,bool commandHasConsole
       NULL,                       /* ignored: icon */
       NULL                        /* resulting application handle */
     };
-    if (!ShellExecuteEx(&sInfo))
+
+    if (!ShellExecuteExW(&sInfo))
     {
       return -1;
     }
index ae2f43d..a54db2c 100644 (file)
--- a/src/pre.l
+++ b/src/pre.l
 #define DBG_CTX(x) do { } while(0)
 
 #define YY_NEVER_INTERACTIVE 1
+
+struct CondCtx
+{
+  CondCtx(int line,QCString id,bool b) 
+    : lineNr(line),sectionId(id), skip(b) {}
+  int lineNr;
+  QCString sectionId;
+  bool skip;
+};
+
 struct FileState
 {
   FileState(int size) : fileBuf(size), 
@@ -222,6 +232,7 @@ class DefineManager
     Define *isDefined(const char *name) const
     {
       Define *d = m_contextDefines.find(name);
+      if (d && d->undef) d=0;
       //printf("isDefined(%s)=%p\n",name,d);
       return d;
     }
@@ -360,7 +371,7 @@ static bool               g_isImported;
 static QCString           g_blockName;
 static int                g_condCtx;
 static bool               g_skip;
-static QStack<bool>       g_condStack;
+static QStack<CondCtx>    g_condStack;
 static bool               g_insideCS; // C# has simpler preprocessor
 static bool               g_isSource;
 
@@ -1613,7 +1624,7 @@ static void startCondSection(const char *sectId)
   //printf("startCondSection: skip=%d stack=%d\n",g_skip,g_condStack.count());
   CondParser prs;
   bool expResult = prs.parse(g_yyFileName,g_yyLineNr,sectId);
-  g_condStack.push(new bool(g_skip));
+  g_condStack.push(new CondCtx(g_yyLineNr,sectId,g_skip));
   if (!expResult)
   {
     g_skip=TRUE;
@@ -1629,8 +1640,8 @@ static void endCondSection()
   }
   else
   {
-    bool *ctx = g_condStack.pop();
-    g_skip=*ctx;
+    CondCtx *ctx = g_condStack.pop();
+    g_skip=ctx->skip;
   }
   //printf("endCondSection: skip=%d stack=%d\n",g_skip,g_condStack.count());
 }
@@ -1694,7 +1705,7 @@ static int yyread(char *buf,int max_size)
 
 %}
 
-ID     [a-z_A-Z][a-z_A-Z0-9]*
+ID     [a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF]*
 B       [ \t]
 BN     [ \t\r\n]
 CHARLIT   (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
@@ -1750,7 +1761,7 @@ CHARLIT   (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
                                          outputArray(yytext,(int)yyleng);
                                          BEGIN(CopyLine); 
                                        }
-<Start>^{B}*[_A-Z][_A-Z0-9]*{B}*"("[^\)\n]*")"/{BN}{1,10}*[:{] { // constructors?
+<Start>^{B}*[a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF]+{B}*"("[^\)\n]*")"/{BN}{1,10}*[:{] { // constructors?
                                          int i;
                                          for (i=(int)yyleng-1;i>=0;i--)
                                          {
@@ -1758,8 +1769,8 @@ CHARLIT   (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
                                          }
                                          BEGIN(CopyLine);
                                         }
-<Start>^{B}*[_A-Z][_A-Z0-9]*{B}*"("[^\(\)\n]*"("[^\)\n]*")"[^\)\n]*")"{B}*\n | // function list macro with one (...) argument, e.g. for K_GLOBAL_STATIC_WITH_ARGS
-<Start>^{B}*[_A-Z][_A-Z0-9]*{B}*"("[^\)\n]*")"{B}*\n { // function like macro
+<Start>^{B}*[a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF]+{B}*"("[^\(\)\n]*"("[^\)\n]*")"[^\)\n]*")"{B}*\n | // function list macro with one (...) argument, e.g. for K_GLOBAL_STATIC_WITH_ARGS
+<Start>^{B}*[a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF]+{B}*"("[^\)\n]*")"{B}*\n { // function like macro
                                          static bool skipFuncMacros = Config_getBool("SKIP_FUNCTION_MACROS");
                                          QCString name(yytext);
                                          name=name.left(name.find('(')).stripWhiteSpace();
@@ -2031,7 +2042,7 @@ CHARLIT   (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
                                            BEGIN(SkipCPPBlock);
                                          }
                                        }
-<Command>"else"/[^a-z_A-Z0-9         {
+<Command>"else"/[^a-z_A-Z0-9\x80-\xFF]         {
                                          //printf("else g_levelGuard[%d]=%d\n",g_level-1,g_levelGuard[g_level-1]);
                                          if (otherCaseDone())
                                          {
@@ -2054,7 +2065,7 @@ CHARLIT   (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
                                            BEGIN(Guard);
                                          }
                                        }
-<Command>"endif"/[^a-z_A-Z0-9]         {
+<Command>"endif"/[^a-z_A-Z0-9\x80-\xFF]                {
                                          //printf("Pre.l: #endif\n");
                                          decrLevel();
                                        }
@@ -2457,6 +2468,9 @@ CHARLIT   (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
                                          }
                                          BEGIN(SkipVerbatim);
                                        }
+<SkipCComment,SkipCPPComment>[\\@][\\@]"cond"[ \t]+ { // escaped @cond
+                                         outputArray(yytext,(int)yyleng);
+                                        }
 <SkipCPPComment>[\\@]"cond"[ \t]+      { // conditional section
                                           g_ccomment=TRUE;  
                                           g_condCtx=YY_START;
@@ -2467,7 +2481,7 @@ CHARLIT   (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
                                           g_condCtx=YY_START;
                                          BEGIN(CondLineC);
                                        }
-<CondLineC,CondLineCpp>[!()&| \ta-z_A-Z0-9.\-]+      {
+<CondLineC,CondLineCpp>[!()&| \ta-z_A-Z0-9\x80-\xFF.\-]+      {
                                          startCondSection(yytext);
                                           if (g_skip)
                                           {
@@ -2530,7 +2544,13 @@ CHARLIT   (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
 <SkipCond>[^\/\!*\\@\n]+                { }
 <SkipCond>"//"[/!]                      { g_ccomment=FALSE; }
 <SkipCond>"/*"[*!]                      { g_ccomment=TRUE; }
-<SkipCond>[\\@]"endcond"/[^a-z_A-Z0-9]  { 
+<SkipCond,SkipCComment,SkipCPPComment>[\\@][\\@]"endcond"/[^a-z_A-Z0-9\x80-\xFF] {
+                                          if (!g_skip)
+                                          {
+                                           outputArray(yytext,(int)yyleng);
+                                          }
+                                        }
+<SkipCond>[\\@]"endcond"/[^a-z_A-Z0-9\x80-\xFF]  { 
                                           bool oldSkip = g_skip;
                                           endCondSection(); 
                                           if (oldSkip && !g_skip)
@@ -2542,7 +2562,7 @@ CHARLIT   (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
                                             BEGIN(g_condCtx);
                                           }
                                         }
-<SkipCComment,SkipCPPComment>[\\@]"endcond"/[^a-z_A-Z0-9] {
+<SkipCComment,SkipCPPComment>[\\@]"endcond"/[^a-z_A-Z0-9\x80-\xFF] {
                                           bool oldSkip = g_skip;
                                          endCondSection();
                                           if (oldSkip && !g_skip) 
@@ -2581,7 +2601,7 @@ CHARLIT   (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
 <SkipCComment,SkipVerbatim>.           {
                                          outputChar(*yytext);
                                        }
-<CopyCComment>[^*a-z_A-Z\n]+           {
+<CopyCComment>[^*a-z_A-Z\x80-\xFF\n]+          {
                                          g_defLitText+=yytext;
                                          g_defText+=escapeAt(yytext);
                                        }
@@ -2982,7 +3002,7 @@ void preprocessFile(const char *fileName,BufStr &input,BufStr &output)
         ) // predefined function macro definition
       {
        //printf("predefined function macro '%s'\n",defStr);
-       QRegExp reId("[a-z_A-Z][a-z_A-Z0-9]*"); // regexp matching an id
+       QRegExp reId("[a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF]*"); // regexp matching an id
        QDict<int> argDict(17);
        argDict.setAutoDelete(TRUE);
        int i=i_obrace+1,p,l,count=0;
@@ -3088,6 +3108,14 @@ void preprocessFile(const char *fileName,BufStr &input,BufStr &output)
   preYYlex();
   g_lexInit=TRUE;
 
+  while (!g_condStack.isEmpty())
+  {
+    CondCtx *ctx = g_condStack.pop();
+    QCString sectionInfo = " ";
+    if (ctx->sectionId!=" ") sectionInfo.sprintf(" with label %s ",ctx->sectionId.data()); 
+    warn(fileName,ctx->lineNr,"Conditional section%sdoes not have "
+       "a corresponding \\endcond command within this file.",sectionInfo.data());
+  }
   // make sure we don't extend a \cond with missing \endcond over multiple files (see bug 624829)
   forceEndCondSection();
 
index ef9d47c..bdaef55 100644 (file)
 #ifndef PYCODE_H
 #define PYCODE_H
 
+#include "types.h"
+
 class CodeOutputInterface;
 class FileDef;
 class MemberDef;
 class QCString;
 class Definition;
 
-extern void parsePythonCode(CodeOutputInterface &,const char *,const QCString &, 
+extern void parsePythonCode(CodeOutputInterface &,const char *,const QCString &,
              bool ,const char *,FileDef *fd,
             int startLine,int endLine,bool inlineFragment,
              MemberDef *memberDef,bool showLineNumbers,Definition *searchCtx);
index c87f5bb..36d8d35 100644 (file)
@@ -42,6 +42,7 @@
 #include "classlist.h"
 #include "filedef.h"
 #include "namespacedef.h"
+#include "tooltip.h"
 
 // Toggle for some debugging info
 //#define DBG_CTX(x) fprintf x
@@ -429,10 +430,19 @@ static void nextCodeLine()
  * split into multiple links with the same destination, one for each line.
  */
 static void writeMultiLineCodeLink(CodeOutputInterface &ol,
-                  const char *ref,const char *file,
-                  const char *anchor,const char *text,
-                  const char *tooltip)
+                  Definition *d,
+                  const char *text)
 {
+  static bool sourceTooltips = Config_getBool("SOURCE_TOOLTIPS");
+  TooltipManager::instance()->addTooltip(d);
+  QCString ref  = d->getReference();
+  QCString file = d->getOutputFileBase();
+  QCString anchor = d->anchor();
+  QCString tooltip; 
+  if (!sourceTooltips) // fall back to simple "title" tooltips
+  {
+    tooltip = d->briefDescriptionAsTooltip();
+  }
   bool done=FALSE;
   char *p=(char *)text;
   while (!done)
@@ -549,11 +559,7 @@ static bool getLinkInScope(const QCString &c,  // scope
       }
       //printf("d->getReference()=`%s' d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getReference().data(),d->getOutputFileBase().data(),d->name().data(),md->name().data());
      
-      writeMultiLineCodeLink(ol,md->getReference(),
-                               md->getOutputFileBase(),
-                               md->anchor(),
-                               text ? text : memberText,
-                                md->briefDescriptionAsTooltip());
+      writeMultiLineCodeLink(ol,md, text ? text : memberText);
       addToSearchIndex(text ? text : memberText);
       return TRUE;
     } 
@@ -617,7 +623,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
       NamespaceDef *nd = getResolvedNamespace(scope);
       if (nd)
       {
-        writeMultiLineCodeLink(ol,nd->getReference(),nd->getOutputFileBase(),nd->anchor(),clName,nd->briefDescriptionAsTooltip());
+        writeMultiLineCodeLink(ol,nd,clName);
         addToSearchIndex(className);
         return;
       }
@@ -639,7 +645,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
 
   if (cd && cd->isLinkable()) // is it a linkable class
   {
-    writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),cd->anchor(),clName,cd->briefDescriptionAsTooltip());
+    writeMultiLineCodeLink(ol,cd,clName);
     addToSearchIndex(className);
     if (md)
     {
@@ -667,7 +673,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
        if (md)
        {
           g_theCallContext.setClass(stripClassName(md->typeString(),md->getOuterScope()));
-          writeMultiLineCodeLink(ol,md->getReference(),md->getOutputFileBase(),md->anchor(),clName,md->briefDescriptionAsTooltip());
+          writeMultiLineCodeLink(ol,md,clName);
           addToSearchIndex(className);
          Definition *d = md->getOuterScope()==Doxygen::globalScope ?
                          md->getBodyDef() : md->getOuterScope();
@@ -689,7 +695,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
           {
            //printf("name=%s scope=%s\n",locName.data(),scope.data());
            g_theCallContext.setClass(stripClassName(md->typeString(),md->getOuterScope()));
-            writeMultiLineCodeLink(ol,md->getReference(),md->getOutputFileBase(),md->anchor(),clName,md->briefDescriptionAsTooltip());
+            writeMultiLineCodeLink(ol,md,clName);
             addToSearchIndex(className);
            Definition *d = md->getOuterScope()==Doxygen::globalScope ?
                            md->getBodyDef() : md->getOuterScope();
@@ -765,7 +771,6 @@ static bool findMemberLink(CodeOutputInterface &ol,Definition *sym,const char *s
   {
     ClassDef *cd = (ClassDef*)sym->getOuterScope();
     ClassDef *thisCd = (ClassDef *)g_currentDefinition;
-    QCString anchor=sym->anchor();
     if (sym->definitionType()==Definition::TypeMember)
     {
       if (g_currentMemberDef)
@@ -779,11 +784,7 @@ static bool findMemberLink(CodeOutputInterface &ol,Definition *sym,const char *s
     // thisCd 
     if (cd==thisCd || (thisCd && thisCd->isBaseClass(cd,TRUE)))
     {
-      writeMultiLineCodeLink(ol,sym->getReference(),
-          sym->getOutputFileBase(),
-          anchor,
-          symName,
-          sym->briefDescriptionAsTooltip());
+      writeMultiLineCodeLink(ol,sym,symName);
       return TRUE;
     }
   }
@@ -1458,6 +1459,7 @@ void parsePythonCode(CodeOutputInterface &od,const char * /*className*/,
   
   //--------------------------------------
   if (s.isEmpty()) return;
+  TooltipManager::instance()->clearTooltips();
   g_code = &od;
   g_inputString   = s;
   g_inputPosition = 0;
@@ -1506,6 +1508,10 @@ void parsePythonCode(CodeOutputInterface &od,const char * /*className*/,
   {
     endCodeLine();
   }
+  if (fd)
+  {
+    TooltipManager::instance()->writeTooltips(*g_code);
+  }
   if (cleanupSourceDef)
   {
     // delete the temporary file definition used for this example
index 707edbd..5cc69d9 100644 (file)
@@ -46,6 +46,7 @@ class PythonLanguageScanner : public ParserInterface
     void parseCode(CodeOutputInterface &codeOutIntf,
                    const char *scopeName,
                    const QCString &input,
+                   SrcLangExt lang,
                    bool isExampleBlock,
                    const char *exampleName=0,
                    FileDef *fileDef=0,
index 69b7558..69523d2 100644 (file)
@@ -1700,6 +1700,7 @@ bool PythonLanguageScanner::needsPreprocessing(const QCString &)
 void PythonLanguageScanner::parseCode(CodeOutputInterface &codeOutIntf,
     const char *scopeName,
     const QCString &input,
+    SrcLangExt /*lang*/,
     bool isExampleBlock,
     const char *exampleName,
     FileDef *fileDef,
index 2d07957..9489145 100644 (file)
@@ -420,6 +420,7 @@ void RTFDocVisitor::visit(DocVerbatim *s)
   {
     lang = s->language();
   }
+  SrcLangExt langExt = getLanguageFromFileName(lang);
   switch(s->type())
   {
     case DocVerbatim::Code: // fall though
@@ -427,7 +428,7 @@ void RTFDocVisitor::visit(DocVerbatim *s)
       m_t << "\\par" << endl;
       m_t << rtf_Style_Reset << getStyle("CodeExample");
       Doxygen::parserManager->getParser(lang)
-                            ->parseCode(m_ci,s->context(),s->text(),
+                            ->parseCode(m_ci,s->context(),s->text(),langExt,
                                         s->isExample(),s->exampleFile());
       //m_t << "\\par" << endl; 
       m_t << "}" << endl;
@@ -527,6 +528,7 @@ void RTFDocVisitor::visit(DocAnchor *anc)
 void RTFDocVisitor::visit(DocInclude *inc)
 {
   if (m_hide) return;
+  SrcLangExt langExt = getLanguageFromFileName(inc->extension());
   DBG_RTF("{\\comment RTFDocVisitor::visit(DocInclude)}\n");
   switch(inc->type())
   {
@@ -540,6 +542,7 @@ void RTFDocVisitor::visit(DocInclude *inc)
          Doxygen::parserManager->getParser(inc->extension())
                                ->parseCode(m_ci,inc->context(),
                                            inc->text(),
+                                           langExt,
                                            inc->isExample(),
                                            inc->exampleFile(), &fd);
          m_t << "\\par";
@@ -552,7 +555,7 @@ void RTFDocVisitor::visit(DocInclude *inc)
       m_t << rtf_Style_Reset << getStyle("CodeExample");
       Doxygen::parserManager->getParser(inc->extension())
                             ->parseCode(m_ci,inc->context(),
-                                        inc->text(),inc->isExample(),
+                                        inc->text(),langExt,inc->isExample(),
                                         inc->exampleFile());
       m_t << "\\par";
       m_t << "}" << endl;
@@ -577,6 +580,7 @@ void RTFDocVisitor::visit(DocInclude *inc)
                             ->parseCode(m_ci,
                                         inc->context(),
                                         extractBlock(inc->text(),inc->blockId()),
+                                        langExt,
                                         inc->isExample(),
                                         inc->exampleFile()
                                        );
@@ -591,6 +595,7 @@ void RTFDocVisitor::visit(DocIncOperator *op)
   //printf("DocIncOperator: type=%d first=%d, last=%d text=`%s'\n",
   //    op->type(),op->isFirst(),op->isLast(),op->text().data());
   DBG_RTF("{\\comment RTFDocVisitor::visit(DocIncOperator)}\n");
+  SrcLangExt langExt = getLanguageFromFileName(m_langExt);
   if (op->isFirst()) 
   {
     if (!m_hide)
@@ -608,7 +613,7 @@ void RTFDocVisitor::visit(DocIncOperator *op)
     if (!m_hide) 
     {
       Doxygen::parserManager->getParser(m_langExt)
-                            ->parseCode(m_ci,op->context(),op->text(),
+                            ->parseCode(m_ci,op->context(),op->text(),langExt,
                                         op->isExample(),op->exampleFile());
     }
     pushEnabled();
index 6c3393f..6206311 100644 (file)
@@ -84,6 +84,9 @@ class RTFGenerator : public OutputGenerator
     void writeCodeLink(const char *ref, const char *file,
                        const char *anchor,const char *name,
                        const char *tooltip);
+    void writeTooltip(const char *, const DocLinkInfo &, const char *,
+                      const char *, const SourceLinkInfo &, const SourceLinkInfo &
+                     ) {}
     void startTextLink(const char *f,const char *anchor);
     void endTextLink();
     void startHtmlLink(const char *url);
@@ -139,8 +142,6 @@ class RTFGenerator : public OutputGenerator
     void endMemberDoc(bool);
     void startDoxyAnchor(const char *,const char *,const char *,const char *,const char *);
     void endDoxyAnchor(const char *,const char *);
-    void startCodeAnchor(const char *) {};
-    void endCodeAnchor() {};
     void writeChar(char c);
     void writeLatexSpacing() {};//{ t << "\\hspace{0.3cm}"; }
     void writeStartAnnoItem(const char *type,const char *file, 
index 54a3c1c..f26accb 100644 (file)
@@ -41,6 +41,7 @@ class CLanguageScanner : public ParserInterface
     void parseCode(CodeOutputInterface &codeOutIntf,
                    const char *scopeName,
                    const QCString &input,
+                   SrcLangExt lang,
                    bool isExampleBlock,
                    const char *exampleName=0,
                    FileDef *fileDef=0,
index 6bbf1c4..40f653a 100644 (file)
 
 #include "clangparser.h"
 
-// Toggle for some debugging info
-#define DBG_CTX(x) fprintf x
-//#define DBG_CTX(x) do { } while(0)
-
 #define YY_NEVER_INTERACTIVE 1
 #define YY_NO_INPUT 1
 
@@ -526,7 +522,6 @@ static void splitKnRArg(QCString &oldStyleArgPtr,QCString &oldStyleArgName)
       oldStyleArgName=current->args.copy().stripWhiteSpace();
     }
   }
-  DBG_CTX((stderr,"type=%s ptr=%s name=%s\n",oldStyleArgType.data(),oldStyleArgPtr.data(),oldStyleArgName.data()));
 }
 
 //-----------------------------------------------------------------------------
@@ -624,6 +619,11 @@ IDLATTR   ("["[^\]]*"]"){BN}*
 TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
 RAWBEGIN  (u|U|L|u8)?R\"[^ \t\(\)\\]{0,16}"("
 RAWEND    ")"[^ \t\(\)\\]{0,16}\"
+ARITHOP   "+"|"-"|"/"|"*"|"%"|"--"|"++"
+ASSIGNOP  "="|"*="|"/="|"%="|"+="|"-="|"<<="|">>="|"&="|"^="|"|="
+LOGICOP   "=="|"!="|">"|"<"|">="|"<="|"&&"|"||"|"!"
+BITOP     "&"|"|"|"^"|"<<"|">>"|"~"
+OPERATOR  "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP})
 
 %option noyywrap
 
@@ -666,6 +666,7 @@ RAWEND    ")"[^ \t\(\)\\]{0,16}\"
 %x     ReadBodyIntf
 %x     Using
 %x     UsingAlias
+%x     UsingAliasEnd
 %x     UsingDirective
 %x     SkipCurly
 %x     SkipCurlyCpp
@@ -1938,7 +1939,7 @@ RAWEND    ")"[^ \t\(\)\\]{0,16}\"
                                           BEGIN(Using); 
                                         }
 <Using>"namespace"{BN}+                        { lineCount(); BEGIN(UsingDirective); }
-<Using>{ID}{BN}*({BN}*("::"|"."){BN}*{ID})*    {
+<Using>({ID}{BN}*("::"|"."){BN}*)*({ID}|{OPERATOR}) {
                                           lineCount();
                                          current->name=yytext;
                                           current->fileName = yyFileName; 
@@ -1976,6 +1977,28 @@ RAWEND    ")"[^ \t\(\)\\]{0,16}\"
                                           previous->spec |= Entry::Alias;
                                           BEGIN(FindMembers); 
                                         }
+<UsingAlias>";"{BN}*("/**"|"//!"|"/*!"|"///")"<" {
+                                         docBlockContext   = UsingAliasEnd;
+                                         docBlockInBody    = FALSE;
+                                         docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
+                                                             ( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
+                                          QCString indent;
+                                          indent.fill(' ',computeIndent(yytext,g_column));
+                                          docBlock=indent;
+                                         lineCount();
+
+                                         docBlockTerm = ';';
+                                         if (yytext[yyleng-3]=='/')
+                                         {
+                                           startCommentBlock(TRUE);
+                                           BEGIN( DocLine );
+                                         }
+                                         else
+                                         {
+                                           startCommentBlock(FALSE);
+                                           BEGIN( DocBlock );
+                                         }
+                                       }
 <UsingAlias>.                           {
                                           previous->args+=yytext;
                                         }
@@ -1983,6 +2006,14 @@ RAWEND    ")"[^ \t\(\)\\]{0,16}\"
                                           previous->args+=yytext;
                                           lineCount();
                                         }
+<UsingAliasEnd>";"                      {
+                                          previous->doc   = current->doc;
+                                          previous->brief = current->brief;
+                                          current->doc.resize(0);
+                                          current->brief.resize(0);
+                                          unput(';');
+                                          BEGIN(UsingAlias);
+                                        }
 <UsingDirective>{SCOPENAME}            { current->name=removeRedundantWhiteSpace(yytext);
                                           current->fileName = yyFileName; 
                                          current->section=Entry::USINGDIR_SEC;
@@ -2171,7 +2202,7 @@ RAWEND    ")"[^ \t\(\)\\]{0,16}\"
                                          unput(';');
                                          BEGIN(FindMembers);
                                        }
-<QtPropType>"const"|"volatile"         {
+<QtPropType>"const"|"volatile"|"unsigned"|"signed"|"long"|"short" {
                                          current->type+=yytext;
                                        }
 <QtPropType>{B}+                       {
@@ -4651,7 +4682,6 @@ RAWEND    ")"[^ \t\(\)\\]{0,16}\"
                                          }
                                          else if (checkForKnRstyleC())
                                          {
-                                           DBG_CTX((stderr,"===> got a K&R style function\n"));
                                             current->args = yytext; 
                                            oldStyleArgType.resize(0);
                                            BEGIN(OldStyleArgs);
@@ -6210,12 +6240,12 @@ RAWEND    ")"[^ \t\(\)\\]{0,16}\"
                                             docBlock+=indent;
                                           }
                                        }
-<DocCopyBlock>^{B}*"*"+/{BN}*          { // start of a comment line
+<DocCopyBlock>^{B}*+"*"/{BN}*          { // start of a comment line
                                          if (docBlockName=="code")
                                           {
                                             QCString indent;
-                                            indent.fill(' ',computeIndent(yytext,0));
-                                            docBlock+=indent;
+                                            indent.fill(' ',computeIndent(yytext,0)-1);
+                                            docBlock+=indent+"*";
                                           }
                                           else
                                          {
@@ -6822,6 +6852,7 @@ void CLanguageScanner::parseInput(const char *fileName,
 void CLanguageScanner::parseCode(CodeOutputInterface & codeOutIntf,
                    const char * scopeName,
                    const QCString & input,
+                   SrcLangExt lang,
                    bool isExampleBlock,
                    const char * exampleName,
                    FileDef * fileDef,
@@ -6833,7 +6864,7 @@ void CLanguageScanner::parseCode(CodeOutputInterface & codeOutIntf,
                    Definition *searchCtx
                   )
 {
-  ::parseCCode(codeOutIntf,scopeName,input,isExampleBlock,exampleName,
+  ::parseCCode(codeOutIntf,scopeName,input,lang,isExampleBlock,exampleName,
                fileDef,startLine,endLine,inlineFragment,memberDef,
               showLineNumbers,searchCtx);
 }
index 931341d..a59a3d0 100644 (file)
 #include "docparser.h"
 #include "language.h"
 
+#include "dot.h"
 #include "arguments.h"
 #include "classlist.h"
 #include "filedef.h"
 #include "namespacedef.h"
 #include "filename.h"
+#include "groupdef.h"
+#include "pagedef.h"
+#include "dirdef.h"
 
 #include <qdir.h>
 #include <string.h>
 //#define DBG_CTX(x) printf x
 #define DBG_CTX(x) do { } while(0)
 
+static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def);
+
 //////////////////////////////////////////////////////
 const char *i_q_includes="INSERT OR REPLACE INTO includes "
-                            "( refid, local, name ) "
+                            "( local, id_src, dst ) "
                             "VALUES "
-                            "(:refid,:local,:name )" ;
-const char *c_q_includes="SELECT count(*) from includes where refid=:refid and local=:local and name=:name";
-static sqlite3_stmt *i_s_includes=0;
+                            "(:local,:id_src,:dst )" ;
+const char *c_q_includes="SELECT count(*) FROM includes WHERE local=:local and id_src=:id_src and dst=:dst";
 static sqlite3_stmt *c_s_includes=0;
+static sqlite3_stmt *i_s_includes=0;
 //////////////////////////////////////////////////////
 const char *i_q_innerclass="INSERT OR REPLACE INTO innerclass "
                             "( refid, prot, name )"
@@ -60,7 +66,7 @@ const char *i_q_files="INSERT OR REPLACE INTO files "
                             "( name )"
                             "VALUES "
                             "(:name )";
-const char *id_q_files="SELECT id from files where name=:name";
+const char *id_q_files="SELECT id FROM files WHERE name=:name";
 static sqlite3_stmt *id_s_files=0;
 static sqlite3_stmt *i_s_files=0;
 //////////////////////////////////////////////////////
@@ -71,10 +77,10 @@ const char *i_q_xrefs="INSERT OR REPLACE INTO xrefs "
 static sqlite3_stmt *i_s_xrefs=0;
 //////////////////////////////////////////////////////
 const char *i_q_memberdef="INSERT OR REPLACE INTO memberdef "
-                            "( refid, prot, static, const, explicit, inline, final, sealed, new, optional, required, virt, mutable, initonly, readable, writable, gettable, settable, accessor, addable, removable, raisable, name, type, definition, argsstring, scope, kind, id_bfile, bline, bcolumn, id_file, line, column)"
+                            "( refid, prot, static, const, explicit, inline, final, sealed, new, optional, required, virt, mutable, initonly, readable, writable, gettable, settable, accessor, addable, removable, raisable, name, type, definition, argsstring, scope, initializer, kind, id_bfile, bline, bcolumn, id_file, line, column)"
                             "VALUES "
-                            "(:refid,:prot,:static,:const,:explicit,:inline,:final,:sealed,:new,:optional,:required,:virt,:mutable,:initonly,:readable,:writable,:gettable,:settable,:accessor,:addable,:removable,:raisable,:name,:type,:definition,:argsstring,:scope,:kind,:id_bfile,:bline,:bcolumn,:id_file,:line,:column)";
-const char *id_q_memberdef="SELECT id from memberdef where refid=:refid and id is not null";
+                            "(:refid,:prot,:static,:const,:explicit,:inline,:final,:sealed,:new,:optional,:required,:virt,:mutable,:initonly,:readable,:writable,:gettable,:settable,:accessor,:addable,:removable,:raisable,:name,:type,:definition,:argsstring,:scope,:initializer,:kind,:id_bfile,:bline,:bcolumn,:id_file,:line,:column)";
+const char *id_q_memberdef="SELECT id FROM memberdef WHERE refid=:refid and id is not null";
 static sqlite3_stmt *id_s_memberdef=0;
 static sqlite3_stmt *i_s_memberdef=0;
 //////////////////////////////////////////////////////
@@ -97,7 +103,7 @@ const char *i_q_derivedcompoundref="INSERT OR REPLACE INTO  derivedcompoundref "
 static sqlite3_stmt *i_s_derivedcompoundref=0;
 //////////////////////////////////////////////////////
 
-const char * schema_queries[][2] = 
+const char * schema_queries[][2] =
 {
   {
     "compounddef",
@@ -135,9 +141,9 @@ const char * schema_queries[][2] =
     "includes",
     "CREATE TABLE IF NOT EXISTS includes ("
       "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "
-      "refid TEXT NOT NULL,"
       "local INTEGER NOT NULL,"
-      "name TEXT NOT NULL)"
+      "id_src INTEGER NOT NULL,"
+      "dst TEXT NOT NULL)"
   },
   {
     "innerclass",
@@ -172,6 +178,7 @@ const char * schema_queries[][2] =
       "type TEXT,"
       "argsstring TEXT,"
       "scope TEXT,"
+      "initializer TEXT,"
       "prot INTEGER NOT NULL,"
       "static INTEGER NOT NULL,"
       "const INTEGER,"
@@ -234,13 +241,11 @@ class TextGeneratorSqlite3Impl : public TextGeneratorIntf
     // the list is filled by linkifyText and consumed by the caller
 };
 
-static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def);
-
 
-static void bindTextParameter(sqlite3_stmt *stmt,const char *name,const char *value)
+static void bindTextParameter(sqlite3_stmt *stmt,const char *name,const char *value, bool _static=TRUE)
 {
   int idx = sqlite3_bind_parameter_index(stmt, name);
-  sqlite3_bind_text(id_s_files, idx, value, -1, SQLITE_STATIC);
+  sqlite3_bind_text(stmt, idx, value, -1, _static==TRUE?SQLITE_STATIC:SQLITE_TRANSIENT);
 }
 
 static void bindIntParameter(sqlite3_stmt *stmt,const char *name,int value)
@@ -253,35 +258,24 @@ static int step(sqlite3 *db, sqlite3_stmt *stmt,bool getRowId=FALSE)
 {
   int id=-1;
   int rc = sqlite3_step(stmt);
-  if (rc!=SQLITE_DONE && rc!=SQLITE_ROW) 
+  if (rc!=SQLITE_DONE && rc!=SQLITE_ROW)
   {
-    msg("failed count files: %s\n", sqlite3_errmsg(db));
+    msg("sqlite3_step failed: %s\n", sqlite3_errmsg(db));
+    return -1;
   }
   if (getRowId) id = sqlite3_column_int(stmt, 0);
   sqlite3_reset(stmt);
   return id;
 }
 
-#if 0
-static QCString memberOutputFileBase(MemberDef *md)
-{
-  //static bool inlineGroupedClasses = Config_getBool("INLINE_GROUPED_CLASSES");
-  //if (inlineGroupedClasses && md->getClassDef() && md->getClassDef()->partOfGroups()!=0)
-  //  return md->getClassDef()->getXmlOutputFileBase();
-  //else
-  //  return md->getOutputFileBase();
-  return md->getOutputFileBase();
-}
-#endif
-
 static int insertFile(sqlite3 *db, const char* name)
 {
   int id=-1;
   if (name==0) return -1;
-  // see if it's already in DB
 
+  // see if it's already in DB
   bindTextParameter(id_s_files,":name",name);
-  id=step(db,i_s_files,TRUE);
+  id=step(db,id_s_files,TRUE);
   if (id==0)
   {
     // insert it
@@ -293,32 +287,17 @@ static int insertFile(sqlite3 *db, const char* name)
   return id;
 }
 
-static void insertMemberReference(sqlite3 *db, const char*src, const char*dst, const char *file, int line, int column)
+static int insertMemberReference(sqlite3 *db, const char*src, const char*dst, const char *file, int line, int column)
 {
-#if 0
-  QCString scope = dst->getScopeString();
-  QCString src_name = src->name();
-  QCString dst_name = dst->name();
-  if (!dst->getScopeString().isEmpty() && dst->getScopeString()!=def->name())
-  {
-    dst_name.prepend(scope+getLanguageSpecificSeparator(dst->getLanguage()));
-  }
-  if (!src->getScopeString().isEmpty() && src->getScopeString()!=def->name())
-  {
-    src_name.prepend(scope+getLanguageSpecificSeparator(src->getLanguage()));
-  }
-#endif
-    //
+  int id_file = insertFile(db,file);
   bindTextParameter(i_s_xrefs,":src",src);
   bindTextParameter(i_s_xrefs,":dst",dst);
 
-  int id_file = insertFile(db,file);
-
   bindIntParameter(i_s_xrefs,":id_file",id_file);
   bindIntParameter(i_s_xrefs,":line",line);
   bindIntParameter(i_s_xrefs,":column",column);
 
-  step(db,i_s_xrefs);
+return step(db,i_s_xrefs);
 }
 
 static void insertMemberReference(sqlite3 *db, MemberDef *src, MemberDef *dst, const char*floc)
@@ -348,200 +327,34 @@ static void stripQualifiers(QCString &typeStr)
   }
 }
 
-////////////////////////////////////////////
-static void writeInnerClasses(sqlite3*db,const ClassSDict *cl)
-{
-  if (!cl) return;
-
-  ClassSDict::Iterator cli(*cl);
-  ClassDef *cd;
-  for (cli.toFirst();(cd=cli.current());++cli)
-  {
-    if (!cd->isHidden() && cd->name().find('@')==-1) // skip anonymous scopes
-    {
-      bindTextParameter(i_s_innerclass,":refid",cd->getOutputFileBase());
-      bindIntParameter(i_s_innerclass,":prot",cd->protection());
-      bindTextParameter(i_s_innerclass,":name",cd->name());
-      step(db,i_s_innerclass);
-    }
-  }
-}
-
-static void writeInnerNamespaces(sqlite3 * /*db*/,const NamespaceSDict *nl)
-{
-  if (nl)
-  {
-    NamespaceSDict::Iterator nli(*nl);
-    NamespaceDef *nd;
-    for (nli.toFirst();(nd=nli.current());++nli)
-    {
-      if (!nd->isHidden() && nd->name().find('@')==-1) // skip anonymouse scopes
-      {
-//        t << "    <innernamespace refid=\"" << nd->getOutputFileBase()
-//          << "\">" << convertToXML(nd->name()) << "</innernamespace>" << endl;
-      }
-    }
-  }
-}
-
-static void writeTemplateArgumentList(sqlite3* /*db*/,
-                                      ArgumentList * /*al*/,
-                                      Definition * /*scope*/,
-                                      FileDef * /*fileScope*/,
-                                      int /*indent*/)
-{
-#if 0
-  QCString indentStr;
-  indentStr.fill(' ',indent);
-  if (al)
-  {
-    t << indentStr << "<templateparamlist>" << endl;
-    ArgumentListIterator ali(*al);
-    Argument *a;
-    for (ali.toFirst();(a=ali.current());++ali)
-    {
-      t << indentStr << "  <param>" << endl;
-      if (!a->type.isEmpty())
-      {
-        t << indentStr <<  "    <type>";
-        linkifyText(TextGeneratorXMLImpl(t),scope,fileScope,0,a->type);
-        t << "</type>" << endl;
-      }
-      if (!a->name.isEmpty())
-      {
-        t << indentStr <<  "    <declname>" << a->name << "</declname>" << endl;
-        t << indentStr <<  "    <defname>" << a->name << "</defname>" << endl;
-      }
-      if (!a->defval.isEmpty())
-      {
-        t << indentStr << "    <defval>";
-        linkifyText(TextGeneratorXMLImpl(t),scope,fileScope,0,a->defval);
-        t << "</defval>" << endl;
-      }
-      t << indentStr << "  </param>" << endl;
-    }
-    t << indentStr << "</templateparamlist>" << endl;
-  }
-#endif
-}
-
-static void writeTemplateList(sqlite3*db,ClassDef *cd)
+static int prepareStatement(sqlite3 *db, const char* query, sqlite3_stmt **statement)
 {
-  writeTemplateArgumentList(db,cd->templateArguments(),cd,0,4);
-}
-
-static void generateSqlite3Section(sqlite3*db,
-                      Definition *d,
-                      MemberList *ml,const char * /*kind*/,const char * /*header*/=0,
-                      const char * /*documentation*/=0)
-{
-  if (ml==0) return;
-  MemberListIterator mli(*ml);
-  MemberDef *md;
-  int count=0;
-  for (mli.toFirst();(md=mli.current());++mli)
-  {
-    // namespace members are also inserted in the file scope, but
-    // to prevent this duplication in the XML output, we filter those here.
-    if (d->definitionType()!=Definition::TypeFile || md->getNamespaceDef()==0)
-    {
-      count++;
-    }
-  }
-  if (count==0) return; // empty list
-#if 0
-
-  t << "      <sectiondef kind=\"" << kind << "\">" << endl;
-  if (header)
-  {
-    t << "      <header>" << convertToXML(header) << "</header>" << endl;
-  }
-  if (documentation)
-  {
-    t << "      <description>";
-    writeXMLDocBlock(t,d->docFile(),d->docLine(),d,0,documentation);
-    t << "</description>" << endl;
-  }
-#endif
-  for (mli.toFirst();(md=mli.current());++mli)
+  int rc;
+  rc = sqlite3_prepare_v2(db,query,-1,statement,0);
+  if (rc!=SQLITE_OK)
   {
-    // namespace members are also inserted in the file scope, but
-    // to prevent this duplication in the XML output, we filter those here.
-    //if (d->definitionType()!=Definition::TypeFile || md->getNamespaceDef()==0)
-    {
-      generateSqlite3ForMember(db,md,d);
-    }
+    msg("prepare failed for %s\n%s\n", query, sqlite3_errmsg(db));
+    return -1;
   }
-  //t << "      </sectiondef>" << endl;
+  return rc;
 }
 
 static int prepareStatements(sqlite3 *db)
 {
-  int rc;
-  rc = sqlite3_prepare_v2(db,id_q_memberdef,-1,&id_s_memberdef,0);
-  if (rc!=SQLITE_OK) 
+  if (
+  -1==prepareStatement(db, id_q_memberdef, &id_s_memberdef) ||
+  -1==prepareStatement(db, id_q_files, &id_s_files) ||
+  -1==prepareStatement(db, i_q_files, &i_s_files) ||
+  -1==prepareStatement(db, i_q_xrefs, &i_s_xrefs) ||
+  -1==prepareStatement(db, i_q_innerclass, &i_s_innerclass) ||
+  -1==prepareStatement(db, i_q_memberdef, &i_s_memberdef) ||
+  -1==prepareStatement(db, i_q_compounddef, &i_s_compounddef) ||
+  -1==prepareStatement(db, i_q_basecompoundref, &i_s_basecompoundref) ||
+  -1==prepareStatement(db, i_q_derivedcompoundref, &i_s_derivedcompoundref) ||
+  -1==prepareStatement(db, i_q_includes, &i_s_includes)||
+  -1==prepareStatement(db, c_q_includes, &c_s_includes)
+  )
   {
-    msg("prepare failed for %s\n%s\n", id_q_memberdef, sqlite3_errmsg(db));
-    return -1;
-  }
-  rc = sqlite3_prepare_v2(db,id_q_files,-1,&id_s_files,0);
-  if (rc!=SQLITE_OK) 
-  {
-    msg("prepare failed for %s\n%s\n", id_q_files, sqlite3_errmsg(db));
-    return -1;
-  }
-  rc = sqlite3_prepare_v2(db,i_q_files,-1,&i_s_files,0);
-  if (rc!=SQLITE_OK) 
-  {
-    msg("prepare failed for %s\n%s\n",i_q_files,sqlite3_errmsg(db));
-    return -1;
-  }
-  rc = sqlite3_prepare_v2(db,i_q_xrefs,-1,&i_s_xrefs,0);
-  if (rc!=SQLITE_OK) 
-  {
-    msg("prepare failed for %s\n%s\n", i_q_xrefs, sqlite3_errmsg(db));
-    return -1;
-  }
-  rc = sqlite3_prepare_v2(db, i_q_innerclass, -1, &i_s_innerclass, 0);
-  if (rc!=SQLITE_OK) 
-  {
-    msg("prepare failed for %s\n%s\n", i_q_innerclass, sqlite3_errmsg(db));
-    return -1;
-  }
-  rc = sqlite3_prepare_v2(db,i_q_memberdef,-1,&i_s_memberdef,0);
-  if (rc!=SQLITE_OK) 
-  {
-    msg("prepare failed for %s\n%s\n",i_q_memberdef,sqlite3_errmsg(db));
-    return -1;
-  }
-  rc = sqlite3_prepare_v2(db,i_q_compounddef,-1,&i_s_compounddef,0);
-  if (rc!=SQLITE_OK) 
-  {
-    msg("prepare failed for %s\n%s\n",i_q_compounddef,sqlite3_errmsg(db));
-    return -1;
-  }
-  rc = sqlite3_prepare_v2(db,i_q_basecompoundref,-1,&i_s_basecompoundref,0);
-  if (rc!=SQLITE_OK) 
-  {
-    msg("prepare failed for %s\n%s\n",i_q_basecompoundref,sqlite3_errmsg(db));
-    return -1;
-  }
-  rc = sqlite3_prepare_v2(db,i_q_derivedcompoundref,-1,&i_s_derivedcompoundref,0);
-  if (rc!=SQLITE_OK) 
-  {
-    msg("prepare failed for %s\n%s\n",i_q_derivedcompoundref,sqlite3_errmsg(db));
-    return -1;
-  }
-  rc = sqlite3_prepare_v2(db, i_q_includes, -1, &i_s_includes, 0);
-  if (rc!=SQLITE_OK) 
-  {
-    msg("prepare failed for %s\n%s\n", i_q_includes, sqlite3_errmsg(db));
-    return -1;
-  }
-  rc = sqlite3_prepare_v2(db, c_q_includes, -1, &c_s_includes, 0);
-  if (rc!=SQLITE_OK) 
-  {
-    msg("prepare failed for %s\n%s\n", c_q_includes, sqlite3_errmsg(db));
     return -1;
   }
   return 0;
@@ -566,272 +379,88 @@ static void pragmaTuning(sqlite3 *db)
   sqlite3_exec(db, "PRAGMA journal_mode = MEMORY", NULL, NULL, &sErrMsg);
 }
 
-static void initializeSchema(sqlite3* db) 
+static int initializeSchema(sqlite3* db)
 {
   int rc;
   sqlite3_stmt *stmt = 0;
 
   msg("Initializing DB schema...\n");
-  for (unsigned int k = 0; k < sizeof(schema_queries) / sizeof(schema_queries[0]); k++) 
+  for (unsigned int k = 0; k < sizeof(schema_queries) / sizeof(schema_queries[0]); k++)
   {
     //const char *tname = schema_queries[k][0];
     const char *q = schema_queries[k][1];
     // create table
     rc = sqlite3_prepare_v2(db, q, -1, &stmt, 0);
-    if (rc != SQLITE_OK) 
+    if (rc != SQLITE_OK)
     {
       msg("failed to prepare query: %s\n\t%s\n", q, sqlite3_errmsg(db));
-      exit(-1);
+      return -1;
     }
     rc = sqlite3_step(stmt);
-    if (rc != SQLITE_DONE) 
+    if (rc != SQLITE_DONE)
     {
       msg("failed to execute query: %s\n\t%s\n", q, sqlite3_errmsg(db));
-      exit(-1);
+      return -1;
     }
     sqlite3_finalize(stmt);
-
   }
+  return 0;
 }
 
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-static void generateSqlite3ForNamespace(sqlite3 *db, NamespaceDef *nd)
+////////////////////////////////////////////
+static void writeInnerClasses(sqlite3*db,const ClassSDict *cl)
 {
-  // + contained class definitions
-  // + contained namespace definitions
-  // + member groups
-  // + normal members
-  // + brief desc
-  // + detailed desc
-  // + location
-  // - files containing (parts of) the namespace definition
-
-  if (nd->isReference() || nd->isHidden()) return; // skip external references
-#if 0
-  ti << "  <compound refid=\"" << nd->getOutputFileBase()
-     << "\" kind=\"namespace\"" << "><name>"
-     << convertToXML(nd->name()) << "</name>" << endl;
-
-  QCString outputDirectory = Config_getString("XML_OUTPUT");
-  QCString fileName=outputDirectory+"/"+nd->getOutputFileBase()+".xml";
-  QFile f(fileName);
-  if (!f.open(IO_WriteOnly))
-  {
-    err("Cannot open file %s for writing!\n",fileName.data());
-    return;
-  }
-  FTextStream t(&f);
-  //t.setEncoding(FTextStream::UnicodeUTF8);
-
-  writeXMLHeader(t);
-  t << "  <compounddef id=\""
-    << nd->getOutputFileBase() << "\" kind=\"namespace\">" << endl;
-  t << "    <compoundname>";
-  writeXMLString(t,nd->name());
-  t << "</compoundname>" << endl;
-#endif
-  writeInnerClasses(db,nd->getClassSDict());
-  writeInnerNamespaces(db,nd->getNamespaceSDict());
-
-  if (nd->getMemberGroupSDict())
-  {
-    MemberGroupSDict::Iterator mgli(*nd->getMemberGroupSDict());
-    MemberGroup *mg;
-    for (;(mg=mgli.current());++mgli)
-    {
-      generateSqlite3Section(db,nd,mg->members(),"user-defined",mg->header(),
-          mg->documentation());
-    }
-  }
+  if (!cl) return;
 
-  QListIterator<MemberList> mli(nd->getMemberLists());
-  MemberList *ml;
-  for (mli.toFirst();(ml=mli.current());++mli)
+  ClassSDict::Iterator cli(*cl);
+  ClassDef *cd;
+  for (cli.toFirst();(cd=cli.current());++cli)
   {
-    if ((ml->listType()&MemberListType_declarationLists)!=0)
+    if (!cd->isHidden() && cd->name().find('@')==-1) // skip anonymous scopes
     {
-      generateSqlite3Section(db,nd,ml,"user-defined");//g_xmlSectionMapper.find(ml->listType()));
+      bindTextParameter(i_s_innerclass,":refid",cd->getOutputFileBase(),FALSE);
+      bindIntParameter(i_s_innerclass,":prot",cd->protection());
+      bindTextParameter(i_s_innerclass,":name",cd->name());
+      if (-1==step(db,i_s_innerclass))
+          return;
     }
   }
-#if 0
-  generateXMLSection(nd,ti,t,&nd->decDefineMembers,"define");
-  generateXMLSection(nd,ti,t,&nd->decProtoMembers,"prototype");
-  generateXMLSection(nd,ti,t,&nd->decTypedefMembers,"typedef");
-  generateXMLSection(nd,ti,t,&nd->decEnumMembers,"enum");
-  generateXMLSection(nd,ti,t,&nd->decFuncMembers,"func");
-  generateXMLSection(nd,ti,t,&nd->decVarMembers,"var");
-
-  t << "    <briefdescription>" << endl;
-  writeXMLDocBlock(t,nd->briefFile(),nd->briefLine(),nd,0,nd->briefDescription());
-  t << "    </briefdescription>" << endl;
-  t << "    <detaileddescription>" << endl;
-  writeXMLDocBlock(t,nd->docFile(),nd->docLine(),nd,0,nd->documentation());
-  t << "    </detaileddescription>" << endl;
-  t << "    <location file=\""
-    << nd->getDefFileName() << "\" line=\""
-    << nd->getDefLine() << "\"" << " column=\""
-    << nd->getDefColumn() << "\"/>" << endl ;
-  t << "  </compounddef>" << endl;
-  t << "</doxygen>" << endl;
-
-  ti << "  </compound>" << endl;
-#endif
 }
 
-
-static void generateSqlite3ForFile(sqlite3 *db, FileDef *fd)
+static void writeInnerNamespaces(sqlite3 * /*db*/,const NamespaceSDict *nl)
 {
-  // + includes files
-  // + includedby files
-  // + include graph
-  // + included by graph
-  // + contained class definitions
-  // + contained namespace definitions
-  // + member groups
-  // + normal members
-  // + brief desc
-  // + detailed desc
-  // + source code
-  // + location
-  // - number of lines
-
-  if (fd->isReference()) return; // skip external references
-#if 0
-  ti << "  <compound refid=\"" << fd->getOutputFileBase()
-     << "\" kind=\"file\"><name>" << convertToXML(fd->name())
-     << "</name>" << endl;
-
-  QCString outputDirectory = Config_getString("XML_OUTPUT");
-  QCString fileName=outputDirectory+"/"+fd->getOutputFileBase()+".xml";
-  QFile f(fileName);
-  if (!f.open(IO_WriteOnly))
-  {
-    err("Cannot open file %s for writing!\n",fileName.data());
-    return;
-  }
-  FTextStream t(&f);
-  //t.setEncoding(FTextStream::UnicodeUTF8);
-
-  writeXMLHeader(t);
-  t << "  <compounddef id=\""
-    << fd->getOutputFileBase() << "\" kind=\"file\">" << endl;
-  t << "    <compoundname>";
-  writeXMLString(t,fd->name());
-  t << "</compoundname>" << endl;
-
-  IncludeInfo *inc;
-
-  if (fd->includeFileList())
-  {
-    QListIterator<IncludeInfo> ili1(*fd->includeFileList());
-    for (ili1.toFirst();(inc=ili1.current());++ili1)
-    {
-      t << "    <includes";
-      if (inc->fileDef && !inc->fileDef->isReference()) // TODO: support external references
-      {
-        t << " refid=\"" << inc->fileDef->getOutputFileBase() << "\"";
-      }
-      t << " local=\"" << (inc->local ? "yes" : "no") << "\">";
-      t << inc->includeName;
-      t << "</includes>" << endl;
-    }
-  }
-
-  if (fd->includedByFileList())
+#warning WorkInProgress
+  if (nl)
   {
-    QListIterator<IncludeInfo> ili2(*fd->includedByFileList());
-    for (ili2.toFirst();(inc=ili2.current());++ili2)
+    NamespaceSDict::Iterator nli(*nl);
+    NamespaceDef *nd;
+    for (nli.toFirst();(nd=nli.current());++nli)
     {
-      t << "    <includedby";
-      if (inc->fileDef && !inc->fileDef->isReference()) // TODO: support external references
+      if (!nd->isHidden() && nd->name().find('@')==-1) // skip anonymouse scopes
       {
-        t << " refid=\"" << inc->fileDef->getOutputFileBase() << "\"";
+//        t << "    <innernamespace refid=\"" << nd->getOutputFileBase()
+//          << "\">" << convertToXML(nd->name()) << "</innernamespace>" << endl;
       }
-      t << " local=\"" << (inc->local ? "yes" : "no") << "\">";
-      t << inc->includeName;
-      t << "</includedby>" << endl;
-    }
-  }
-
-  DotInclDepGraph incDepGraph(fd,FALSE);
-  if (!incDepGraph.isTrivial())
-  {
-    t << "    <incdepgraph>" << endl;
-    incDepGraph.writeXML(t);
-    t << "    </incdepgraph>" << endl;
-  }
-
-  DotInclDepGraph invIncDepGraph(fd,TRUE);
-  if (!invIncDepGraph.isTrivial())
-  {
-    t << "    <invincdepgraph>" << endl;
-    invIncDepGraph.writeXML(t);
-    t << "    </invincdepgraph>" << endl;
-  }
-#endif
-  if (fd->getClassSDict())
-  {
-    writeInnerClasses(db,fd->getClassSDict());
-  }
-  if (fd->getNamespaceSDict())
-  {
-    writeInnerNamespaces(db,fd->getNamespaceSDict());
-  }
-
-  if (fd->getMemberGroupSDict())
-  {
-    MemberGroupSDict::Iterator mgli(*fd->getMemberGroupSDict());
-    MemberGroup *mg;
-    for (;(mg=mgli.current());++mgli)
-    {
-      generateSqlite3Section(db,fd,mg->members(),"user-defined",mg->header(),
-          mg->documentation());
     }
   }
-
-  QListIterator<MemberList> mli(fd->getMemberLists());
-  MemberList *ml;
-  for (mli.toFirst();(ml=mli.current());++mli)
-  {
-    if ((ml->listType()&MemberListType_declarationLists)!=0)
-    {
-      generateSqlite3Section(db,fd,ml,"user-defined");//g_xmlSectionMapper.find(ml->listType()));
-    }
-  }
-#if 0
-  generateXMLSection(fd,ti,t,fd->decDefineMembers,"define");
-  generateXMLSection(fd,ti,t,fd->decProtoMembers,"prototype");
-  generateXMLSection(fd,ti,t,fd->decTypedefMembers,"typedef");
-  generateXMLSection(fd,ti,t,fd->decEnumMembers,"enum");
-  generateXMLSection(fd,ti,t,fd->decFuncMembers,"func");
-  generateXMLSection(fd,ti,t,fd->decVarMembers,"var");
-#endif
-#if 0
-  t << "    <briefdescription>" << endl;
-  writeXMLDocBlock(t,fd->briefFile(),fd->briefLine(),fd,0,fd->briefDescription());
-  t << "    </briefdescription>" << endl;
-  t << "    <detaileddescription>" << endl;
-  writeXMLDocBlock(t,fd->docFile(),fd->docLine(),fd,0,fd->documentation());
-  t << "    </detaileddescription>" << endl;
-  if (Config_getBool("XML_PROGRAMLISTING"))
-  {
-    t << "    <programlisting>" << endl;
-    writeXMLCodeBlock(t,fd);
-    t << "    </programlisting>" << endl;
-  }
-  t << "    <location file=\"" << fd->getDefFileName() << "\"/>" << endl;
-  t << "  </compounddef>" << endl;
-  t << "</doxygen>" << endl;
-
-  ti << "  </compound>" << endl;
-#endif
 }
 
+static void writeTemplateArgumentList(sqlite3* /*db*/,
+                                      ArgumentList * /*al*/,
+                                      Definition * /*scope*/,
+                                      FileDef * /*fileScope*/,
+                                      int /*indent*/)
+{
+#warning WorkInProgress
+}
 
+static void writeTemplateList(sqlite3*db,ClassDef *cd)
+{
+  writeTemplateArgumentList(db,cd->templateArguments(),cd,0,4);
+}
+////////////////////////////////////////////
 
-
+//////////////////////////////////////////////////////////////////////////////
 static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
 {
   // + declaration/definition arg lists
@@ -847,6 +476,7 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
   // + template arguments
   //     (templateArguments(), definitionTemplateParameterLists())
   // - call graph
+  msg("=====%s\n",md->name().data());
 
   // enum values are written as part of the enum
   if (md->memberType()==MemberType_EnumValue) return;
@@ -856,19 +486,8 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
   // group members are only visible in their group
   //if (def->definitionType()!=Definition::TypeGroup && md->getGroupDef()) return;
   QCString memType;
-#if 0
-  // member
-  idx = sqlite3_bind_parameter_index(stmt, ":refid");
-  sqlite3_bind_text(stmt, idx, memberOutputFileBase(md).data(),-1,SQLITE_TRANSIENT);
-
-  idx = sqlite3_bind_parameter_index(stmt,":kind");
-  sqlite3_bind_int(stmt, idx, md->memberType());
-
-  idx = sqlite3_bind_parameter_index(stmt, ":name");
-  sqlite3_bind_text(stmt, idx, md->name().data(),-1,SQLITE_TRANSIENT);
-#endif
   // memberdef
-  bindTextParameter(i_s_memberdef,":refid",md->anchor());
+  bindTextParameter(i_s_memberdef,":refid",md->anchor().data(),FALSE);
   bindIntParameter(i_s_memberdef,":kind",md->memberType());
   bindIntParameter(i_s_memberdef,":prot",md->protection());
   bindIntParameter(i_s_memberdef,":static",md->isStatic());
@@ -880,16 +499,16 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
     case MemberType_Signal:   // fall through
     case MemberType_Friend:   // fall through
     case MemberType_DCOP:     // fall through
-    case MemberType_Slot:        
-      isFunc=TRUE; 
+    case MemberType_Slot:
+      isFunc=TRUE;
       break;
-    default: 
+    default:
       break;
   }
   if (isFunc)
   {
-    LockingPtr<ArgumentList> al = md->argumentList();
-    if (al!=0 && al->constSpecifier) 
+    ArgumentList *al = md->argumentList();
+    if (al!=0 && al->constSpecifier)
     {
       bindIntParameter(i_s_memberdef,":const",al->constSpecifier);
     }
@@ -932,6 +551,7 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
     bindIntParameter(i_s_memberdef,":raisable",md->isRaisable());
   }
 
+  // + declaration/definition arg lists
   if (md->memberType()!=MemberType_Define &&
       md->memberType()!=MemberType_Enumeration
      )
@@ -940,17 +560,17 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
     stripQualifiers(typeStr);
     StringList l;
     linkifyText(TextGeneratorSqlite3Impl(l),def,md->getBodyDef(),md,typeStr);
-    if (typeStr.data()) 
+    if (typeStr.data())
     {
-      bindTextParameter(i_s_memberdef,":type",typeStr);
+      bindTextParameter(i_s_memberdef,":type",typeStr.data(),FALSE);
     }
 
-    if (md->definition()) 
+    if (md->definition())
     {
       bindTextParameter(i_s_memberdef,":definition",md->definition());
     }
 
-    if (md->argsString()) 
+    if (md->argsString())
     {
       bindTextParameter(i_s_memberdef,":argsstring",md->argsString());
     }
@@ -969,37 +589,10 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
       DBG_CTX(("<write>\n"));
     }
   }
-#if 0
-  if (md->memberType()==MemberType_Variable && md->bitfieldString())
-  {
-    QCString bitfield = md->bitfieldString();
-    if (bitfield.at(0)==':') bitfield=bitfield.mid(1);
-    t << "        <bitfield>" << bitfield << "</bitfield>" << endl;
-  }
-
-  MemberDef *rmd = md->reimplements();
-  if (rmd)
-  {
-    t << "        <reimplements refid=\""
-      << memberOutputFileBase(rmd) << "_1" << rmd->anchor() << "\">"
-      << convertToXML(rmd->name()) << "</reimplements>" << endl;
-  }
-  LockingPtr<MemberList> rbml = md->reimplementedBy();
-  if (rbml!=0)
-  {
-    MemberListIterator mli(*rbml);
-    for (mli.toFirst();(rmd=mli.current());++mli)
-    {
-      t << "        <reimplementedby refid=\""
-        << memberOutputFileBase(rmd) << "_1" << rmd->anchor() << "\">"
-        << convertToXML(rmd->name()) << "</reimplementedby>" << endl;
-    }
-  }
-#endif
   if (isFunc) //function
   {
-    LockingPtr<ArgumentList> declAl = md->declArgumentList();
-    LockingPtr<ArgumentList> defAl = md->argumentList();
+    ArgumentList *declAl = md->declArgumentList();
+    ArgumentList *defAl = md->argumentList();
     if (declAl!=0 && declAl->count()>0)
     {
       ArgumentListIterator declAli(*declAl);
@@ -1019,7 +612,7 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
           linkifyText(TextGeneratorSqlite3Impl(l),def,md->getBodyDef(),md,a->type);
 
           QCString *s=l.first();
-          while (s) 
+          while (s)
           {
             insertMemberReference(db,md->anchor().data(),s->data(),def->getDefFileName().data(),md->getDefLine(),1);
             s=l.next();
@@ -1072,46 +665,50 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
   // drm_mod_register_buffer,
   if (!md->initializer().isEmpty() && md->initializer().length()<2000)
   {
+    bindTextParameter(i_s_memberdef,":initializer",md->initializer().data());
+
     StringList l;
     linkifyText(TextGeneratorSqlite3Impl(l),def,md->getBodyDef(),md,md->initializer());
     QCString *s=l.first();
-    while (s) 
+    while (s)
     {
-      DBG_CTX(("initializer:%s %s %s %d\n",
+      if (md->getBodyDef())
+      {
+        DBG_CTX(("initializer:%s %s %s %d\n",
               md->anchor().data(),
-              s->data(), 
-              md->getBodyDef()->getDefFileName().data(), 
+              s->data(),
+              md->getBodyDef()->getDefFileName().data(),
               md->getStartBodyLine()));
-      insertMemberReference(db,md->anchor().data(),s->data(),md->getBodyDef()->getDefFileName().data(),md->getStartBodyLine(),1);
+        insertMemberReference(db,md->anchor().data(),s->data(),md->getBodyDef()->getDefFileName().data(),md->getStartBodyLine(),1);
+      }
       s=l.next();
     }
   }
 
-#if 0
-  if (md->excpString())
+  if ( md->getScopeString() )
   {
-    linkifyText(TextGeneratorXMLImpl(t),def,md->getBodyDef(),md,md->excpString());
-  }
-#endif
-  if ( md->getScopeString() ) 
-  {
-    bindTextParameter(i_s_memberdef,":scope",md->getScopeString());
+    bindTextParameter(i_s_memberdef,":scope",md->getScopeString().data(),FALSE);
   }
 
   // File location
   if (md->getDefLine() != -1)
   {
     int id_file = insertFile(db,md->getDefFileName());
-    if (id_file!=-1) 
+    if (id_file!=-1)
     {
       bindIntParameter(i_s_memberdef,":id_file",id_file);
       bindIntParameter(i_s_memberdef,":line",md->getDefLine());
       bindIntParameter(i_s_memberdef,":column",md->getDefColumn());
 
-      if (md->getStartBodyLine()!=-1) 
+      if (md->getStartBodyLine()!=-1)
       {
         int id_bfile = insertFile(db,md->getBodyDef()->absFilePath());
-        if (id_bfile == -1) exit(-1);
+        if (id_bfile == -1)
+        {
+            sqlite3_clear_bindings(i_s_memberdef);
+            return;
+        }
+
         bindIntParameter(i_s_memberdef,":id_ibfile",id_bfile);
         bindIntParameter(i_s_memberdef,":bline",md->getStartBodyLine());
 
@@ -1121,15 +718,16 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
     }
   }
 
-
-  step(db,i_s_memberdef);
+  if (-1==step(db,i_s_memberdef))
+  {
+      sqlite3_clear_bindings(i_s_memberdef);
+  }
   /*int id_src =*/ sqlite3_last_insert_rowid(db);
 
-  // + cross-references
+  // + source references
   // The cross-references in initializers only work when both the src and dst
   // are defined.
-  LockingPtr<MemberSDict> mdict = md->getReferencesMembers();
-  // references
+  MemberSDict *mdict = md->getReferencesMembers();
   if (mdict!=0)
   {
     MemberSDict::IteratorDict mdi(*mdict);
@@ -1140,8 +738,8 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
     }
   }
 
+  // + source referenced by
   mdict = md->getReferencedByMembers();
-  // referencedby
   if (mdict!=0)
   {
     MemberSDict::IteratorDict mdi(*mdict);
@@ -1153,22 +751,54 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
   }
 }
 
+static void generateSqlite3Section(sqlite3*db,
+                      Definition *d,
+                      MemberList *ml,const char * /*kind*/,const char * /*header*/=0,
+                      const char * /*documentation*/=0)
+{
+  if (ml==0) return;
+  MemberListIterator mli(*ml);
+  MemberDef *md;
+  int count=0;
+  for (mli.toFirst();(md=mli.current());++mli)
+  {
+    msg("I:%s\n",md->name().data());
+    // namespace members are also inserted in the file scope, but
+    // to prevent this duplication in the XML output, we filter those here.
+    if (d->definitionType()!=Definition::TypeFile || md->getNamespaceDef()==0)
+    {
+      count++;
+    }
+  }
+  if (count==0) return; // empty list
+  for (mli.toFirst();(md=mli.current());++mli)
+  {
+    // namespace members are also inserted in the file scope, but
+    // to prevent this duplication in the XML output, we filter those here.
+    //if (d->definitionType()!=Definition::TypeFile || md->getNamespaceDef()==0)
+    {
+      generateSqlite3ForMember(db,md,d);
+    }
+  }
+}
+
+
 static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd)
 {
-  // + brief description
-  // + detailed description
-  // + template argument list(s)
-  // - include file
-  // + member groups
-  // + inheritance diagram
   // + list of direct super classes
   // + list of direct sub classes
+  // + include file
   // + list of inner classes
-  // + collaboration diagram
+  // - template argument list(s)
+  // + member groups
   // + list of all members
-  // + user defined member sections
-  // + standard member sections
-  // + detailed member documentation
+  // - brief description
+  // - detailed description
+  // - inheritance DOT diagram
+  // - collaboration DOT diagram
+  // - user defined member sections
+  // - standard member sections
+  // - detailed member documentation
   // - examples using the class
 
   if (cd->isReference())        return; // skip external references.
@@ -1185,20 +815,19 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd)
   //stmt = i_s_compounddef;
 
   bindTextParameter(i_s_compounddef,":name",cd->name());
-  bindTextParameter(i_s_compounddef,":kind",cd->compoundTypeString());
+  bindTextParameter(i_s_compounddef,":kind",cd->compoundTypeString(),FALSE);
   bindIntParameter(i_s_compounddef,":prot",cd->protection());
-  bindTextParameter(i_s_compounddef,":refid",cd->getOutputFileBase());
+  bindTextParameter(i_s_compounddef,":refid",cd->getOutputFileBase(),FALSE);
 
   int id_file = insertFile(db,cd->getDefFileName().data());
   bindIntParameter(i_s_compounddef,":id_file",id_file);
   bindIntParameter(i_s_compounddef,":line",cd->getDefLine());
   bindIntParameter(i_s_compounddef,":column",cd->getDefColumn());
 
-  step(db,i_s_compounddef);
-  sqlite3_int64 id_compound=0 ;
-  id_compound = sqlite3_last_insert_rowid(db);
+  if (-1==step(db,i_s_compounddef))
+    return;
 
-  // + basecompoundref
+  // + list of direct super classes
   if (cd->baseClasses())
   {
     BaseClassListIterator bcli(*cd->baseClasses());
@@ -1218,11 +847,12 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd)
         bindTextParameter(i_s_basecompoundref,":base",bcd->classDef->displayName());
       }
       bindTextParameter(i_s_basecompoundref,":derived",cd->displayName());
-      step(db,i_s_basecompoundref);
+      if (-1==step(db,i_s_basecompoundref))
+        continue;
     }
   }
 
-  // + derivedcompoundref
+  // + list of direct sub classes
   if (cd->subClasses())
   {
     BaseClassListIterator bcli(*cd->subClasses());
@@ -1234,12 +864,12 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd)
       bindTextParameter(i_s_derivedcompoundref,":refid",bcd->classDef->getOutputFileBase());
       bindIntParameter(i_s_derivedcompoundref,":prot",bcd->prot);
       bindIntParameter(i_s_derivedcompoundref,":virt",bcd->virt);
-      step(db,i_s_derivedcompoundref);
+      if (-1==step(db,i_s_derivedcompoundref))
+        continue;
     }
   }
 
-  ///////////////////////////////////////////////////////////////////
-  // INCLUDEINFO
+  // + include file
   IncludeInfo *ii=cd->includeInfo();
   if (ii)
   {
@@ -1247,23 +877,28 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd)
     if (nm.isEmpty() && ii->fileDef) nm = ii->fileDef->docName();
     if (!nm.isEmpty())
     {
-      bindTextParameter(c_s_includes,":refid",ii->fileDef->getOutputFileBase());
       bindIntParameter(c_s_includes,":local",ii->local);
-      bindTextParameter(c_s_includes,":name",nm);
+      bindIntParameter(c_s_includes,":id_src",id_file);
+      bindTextParameter(c_s_includes,":dst",nm);
       int count=step(db,c_s_includes,TRUE);
-      if ( count==0 ) 
+      if (count==0)
       {
-        bindTextParameter(i_s_includes,":refid",ii->fileDef->getOutputFileBase());
         bindIntParameter(i_s_includes,":local",ii->local);
-        bindTextParameter(i_s_includes,":name",nm);
-        step(db,i_s_includes);
+        bindIntParameter(i_s_includes,":id_src",id_file);
+        bindTextParameter(i_s_includes,":dst",nm);
+        if (-1==step(db,i_s_includes))
+          return;
       }
     }
   }
-  ///////////////////////////////////////////////////////////////////
+
+  // + list of inner classes
   writeInnerClasses(db,cd->getClassSDict());
+
+  // - template argument list(s)
   writeTemplateList(db,cd);
 
+  // + member groups
   if (cd->getMemberGroupSDict())
   {
     MemberGroupSDict::Iterator mgli(*cd->getMemberGroupSDict());
@@ -1275,6 +910,7 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd)
     }
   }
 
+  // + list of all members
   QListIterator<MemberList> mli(cd->getMemberLists());
   MemberList *ml;
   for (mli.toFirst();(ml=mli.current());++mli)
@@ -1286,6 +922,148 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd)
   }
 }
 
+static void generateSqlite3ForNamespace(sqlite3 *db, NamespaceDef *nd)
+{
+  // + contained class definitions
+  // + contained namespace definitions
+  // + member groups
+  // + normal members
+  // - brief desc
+  // - detailed desc
+  // - location
+  // - files containing (parts of) the namespace definition
+
+  if (nd->isReference() || nd->isHidden()) return; // skip external references
+
+  // + contained class definitions
+  writeInnerClasses(db,nd->getClassSDict());
+
+  // + contained namespace definitions
+  writeInnerNamespaces(db,nd->getNamespaceSDict());
+
+  // + member groups
+  if (nd->getMemberGroupSDict())
+  {
+    MemberGroupSDict::Iterator mgli(*nd->getMemberGroupSDict());
+    MemberGroup *mg;
+    for (;(mg=mgli.current());++mgli)
+    {
+      generateSqlite3Section(db,nd,mg->members(),"user-defined",mg->header(),
+          mg->documentation());
+    }
+  }
+
+  // + normal members
+  QListIterator<MemberList> mli(nd->getMemberLists());
+  MemberList *ml;
+  for (mli.toFirst();(ml=mli.current());++mli)
+  {
+    if ((ml->listType()&MemberListType_declarationLists)!=0)
+    {
+      generateSqlite3Section(db,nd,ml,"user-defined");//g_xmlSectionMapper.find(ml->listType()));
+    }
+  }
+}
+
+static void generateSqlite3ForFile(sqlite3 *db, FileDef *fd)
+{
+  // + includes files
+  // + includedby files
+  // - include graph
+  // - included by graph
+  // + contained class definitions
+  // + contained namespace definitions
+  // + member groups
+  // + normal members
+  // - brief desc
+  // - detailed desc
+  // - source code
+  // - location
+  // - number of lines
+
+  if (fd->isReference()) return; // skip external references
+
+  // + includes files
+  IncludeInfo *ii;
+  if (fd->includeFileList())
+  {
+    QListIterator<IncludeInfo> ili(*fd->includeFileList());
+    for (ili.toFirst();(ii=ili.current());++ili)
+    {
+      int id_file=insertFile(db,fd->absFilePath().data());
+      bindIntParameter(i_s_includes,":local",ii->local);
+      bindIntParameter(i_s_includes,":id_src",id_file);
+      bindTextParameter(i_s_includes,":dst",ii->includeName.data(),FALSE);
+      if (-1==step(db,i_s_includes))
+        continue;
+    }
+  }
+
+  // + includedby files
+  if (fd->includedByFileList())
+  {
+    QListIterator<IncludeInfo> ili(*fd->includedByFileList());
+    for (ili.toFirst();(ii=ili.current());++ili)
+    {
+      int id_file=insertFile(db,ii->includeName);
+      bindIntParameter(i_s_includes,":local",ii->local);
+      bindIntParameter(i_s_includes,":id_src",id_file);
+      bindTextParameter(i_s_includes,":dst",fd->absFilePath().data(),FALSE);
+      if (-1==step(db,i_s_includes))
+        continue;
+
+    }
+  }
+
+  // + contained class definitions
+  if (fd->getClassSDict())
+  {
+    writeInnerClasses(db,fd->getClassSDict());
+  }
+
+  // + contained namespace definitions
+  if (fd->getNamespaceSDict())
+  {
+    writeInnerNamespaces(db,fd->getNamespaceSDict());
+  }
+
+  // + member groups
+  if (fd->getMemberGroupSDict())
+  {
+    MemberGroupSDict::Iterator mgli(*fd->getMemberGroupSDict());
+    MemberGroup *mg;
+    for (;(mg=mgli.current());++mgli)
+    {
+      generateSqlite3Section(db,fd,mg->members(),"user-defined",mg->header(),
+          mg->documentation());
+    }
+  }
+
+  // + normal members
+  QListIterator<MemberList> mli(fd->getMemberLists());
+  MemberList *ml;
+  for (mli.toFirst();(ml=mli.current());++mli)
+  {
+    if ((ml->listType()&MemberListType_declarationLists)!=0)
+    {
+      generateSqlite3Section(db,fd,ml,"user-defined");//g_xmlSectionMapper.find(ml->listType()));
+    }
+  }
+}
+
+static void generateSqlite3ForGroup(sqlite3*db,GroupDef *gd)
+{
+    db=db;
+    gd=gd;
+}
+
+static void generateSqlite3ForDir(sqlite3 *db,DirDef *dd)
+{
+}
+
+static void generateSqlite3ForPage(sqlite3 *db,PageDef *pd,bool isExample)
+{
+}
 //////////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////////
 void generateSqlite3()
@@ -1293,25 +1071,28 @@ void generateSqlite3()
   // + classes
   // + namespaces
   // + files
-  // - groups
-  // - related pages
-  // - examples
-  //QCString outputDirectory = Config_getString("SQLITE3_OUTPUT");
+  // + groups
+  // + related pages
+  // + examples
+  // + main page
+
   QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY");
   QDir sqlite3Dir(outputDirectory);
   sqlite3 *db;
   sqlite3_initialize();
   int rc = sqlite3_open_v2(outputDirectory+"/doxygen_sqlite3.db", &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, 0);
-  if (rc != SQLITE_OK) 
+  if (rc != SQLITE_OK)
   {
     sqlite3_close(db);
     msg("database open failed: %s\n", "doxygen_sqlite3.db");
-    exit(-1);
+    return;
   }
   beginTransaction(db);
   pragmaTuning(db);
 
-  initializeSchema(db);
+  if (-1==initializeSchema(db))
+    return;
+
   if ( -1 == prepareStatements(db) )
   {
     err("sqlite generator: prepareStatements failed!");
@@ -1349,6 +1130,56 @@ void generateSqlite3()
       generateSqlite3ForFile(db,fd);
     }
   }
+
+  // + groups
+  GroupSDict::Iterator gli(*Doxygen::groupSDict);
+  GroupDef *gd;
+  for (;(gd=gli.current());++gli)
+  {
+    msg("Generating Sqlite3 output for group %s\n",gd->name().data());
+    generateSqlite3ForGroup(db,gd);
+  }
+
+  // + page
+  {
+    PageSDict::Iterator pdi(*Doxygen::pageSDict);
+    PageDef *pd=0;
+    for (pdi.toFirst();(pd=pdi.current());++pdi)
+    {
+      msg("Generating Sqlite3 output for page %s\n",pd->name().data());
+      generateSqlite3ForPage(db,pd,FALSE);
+    }
+  }
+
+  // + dirs
+  {
+    DirDef *dir;
+    DirSDict::Iterator sdi(*Doxygen::directories);
+    for (sdi.toFirst();(dir=sdi.current());++sdi)
+    {
+      msg("Generating Sqlite3 output for dir %s\n",dir->name().data());
+      generateSqlite3ForDir(db,dir);
+    }
+  }
+
+  // + examples
+  {
+    PageSDict::Iterator pdi(*Doxygen::exampleSDict);
+    PageDef *pd=0;
+    for (pdi.toFirst();(pd=pdi.current());++pdi)
+    {
+      msg("Generating Sqlite3 output for example %s\n",pd->name().data());
+      generateSqlite3ForPage(db,pd,TRUE);
+    }
+  }
+
+  // + main page
+  if (Doxygen::mainPage)
+  {
+    msg("Generating Sqlite3 output for the main page\n");
+    generateSqlite3ForPage(db,Doxygen::mainPage,FALSE);
+  }
+
   endTransaction(db);
 }
 
index 8b59c05..03cc020 100644 (file)
@@ -61,11 +61,22 @@ class TagAnchorInfoList : public QList<TagAnchorInfo>
     virtual ~TagAnchorInfoList() {}
 };
 
+/** Container for enum values that are scoped within an enum */
+class TagEnumValueInfo
+{
+  public:
+    QCString name;
+    QCString file;
+    QCString anchor;
+    QCString clangid;
+};
+
 /** Container for member specific info that can be read from a tagfile */
 class TagMemberInfo
 {
   public:
-    TagMemberInfo() : prot(Public), virt(Normal), isStatic(FALSE) {}
+    TagMemberInfo() : prot(Public), virt(Normal), isStatic(FALSE) 
+    { enumValues.setAutoDelete(TRUE); }
     QCString type;
     QCString name;
     QCString anchorFile;
@@ -77,6 +88,7 @@ class TagMemberInfo
     Protection prot;
     Specifier virt;
     bool isStatic; 
+    QList<TagEnumValueInfo> enumValues;
 };
 
 /** Container for class specific info that can be read from a tagfile */
@@ -205,6 +217,7 @@ class TagFileParser : public QXmlDefaultHandler
                  InGroup,
                  InPage,
                  InMember,
+                 InEnumValue,
                  InPackage,
                  InDir,
                  InTempArgList
@@ -416,6 +429,36 @@ class TagFileParser : public QXmlDefaultHandler
       }
     }
 
+    void startEnumValue( const QXmlAttributes& attrib)
+    {
+      if (m_state==InMember)
+      {
+        m_curString = "";
+        m_curEnumValue = new TagEnumValueInfo;
+        m_curEnumValue->file = attrib.value("file").utf8();
+        m_curEnumValue->anchor = attrib.value("anchor").utf8();
+        m_curEnumValue->clangid = attrib.value("clangid").utf8();
+        m_stateStack.push(new State(m_state));
+        m_state = InEnumValue;
+      }
+      else
+      {
+        warn("Found enumvalue tag outside of member tag\n");
+      }
+    }
+
+    void endEnumValue()
+    {
+      m_curEnumValue->name = m_curString.stripWhiteSpace(); 
+      m_state = *m_stateStack.top();
+      m_stateStack.remove();
+      if (m_state==InMember)
+      {
+        m_curMember->enumValues.append(m_curEnumValue);
+        m_curEnumValue=0;
+      }
+    }
+
     void endDocAnchor()
     {
       switch(m_state)
@@ -745,6 +788,7 @@ class TagFileParser : public QXmlDefaultHandler
 
       m_startElementHandlers.insert("compound",    new StartElementHandler(this,&TagFileParser::startCompound));
       m_startElementHandlers.insert("member",      new StartElementHandler(this,&TagFileParser::startMember));
+      m_startElementHandlers.insert("enumvalue",   new StartElementHandler(this,&TagFileParser::startEnumValue));
       m_startElementHandlers.insert("name",        new StartElementHandler(this,&TagFileParser::startStringValue));
       m_startElementHandlers.insert("base",        new StartElementHandler(this,&TagFileParser::startBase));
       m_startElementHandlers.insert("filename",    new StartElementHandler(this,&TagFileParser::startStringValue));
@@ -768,6 +812,7 @@ class TagFileParser : public QXmlDefaultHandler
 
       m_endElementHandlers.insert("compound",    new EndElementHandler(this,&TagFileParser::endCompound));
       m_endElementHandlers.insert("member",      new EndElementHandler(this,&TagFileParser::endMember));
+      m_endElementHandlers.insert("enumvalue",   new EndElementHandler(this,&TagFileParser::endEnumValue));
       m_endElementHandlers.insert("name",        new EndElementHandler(this,&TagFileParser::endName));
       m_endElementHandlers.insert("base",        new EndElementHandler(this,&TagFileParser::endBase));
       m_endElementHandlers.insert("filename",    new EndElementHandler(this,&TagFileParser::endFilename));
@@ -853,6 +898,7 @@ class TagFileParser : public QXmlDefaultHandler
     TagPageInfo               *m_curPage;
     TagDirInfo                *m_curDir;
     TagMemberInfo             *m_curMember;
+    TagEnumValueInfo          *m_curEnumValue;
     TagIncludeInfo            *m_curIncludes;
     QCString                   m_curString;
     QCString                   m_tagName;
@@ -1102,6 +1148,26 @@ void TagFileParser::buildMemberList(Entry *ce,QList<TagMemberInfo> &members)
       me->argList = new ArgumentList;
       stringToArgumentList(me->args,me->argList);
     }
+    if (tmi->enumValues.count()>0)
+    {
+      me->spec |= Entry::Strong;
+      QListIterator<TagEnumValueInfo> evii(tmi->enumValues);
+      TagEnumValueInfo *evi;
+      for (evii.toFirst();(evi=evii.current());++evii)
+      {
+        Entry *ev      = new Entry;
+        ev->type       = "@";
+        ev->name       = evi->name;
+        ev->id         = evi->clangid;
+        ev->section    = Entry::VARIABLE_SEC;
+        TagInfo *ti    = new TagInfo;
+        ti->tagName    = m_tagName;
+        ti->anchor     = evi->anchor;
+        ti->fileName   = evi->file;
+        ev->tagInfo    = ti;
+        me->addSubEntry(ev);
+      }
+    }
     me->protection = tmi->prot;
     me->virt       = tmi->virt;
     me->stat       = tmi->isStatic;
index a7c0dde..7cd93b9 100644 (file)
@@ -40,6 +40,7 @@ class TclLanguageScanner : public ParserInterface
     void parseCode(CodeOutputInterface &codeOutIntf,
                    const char *scopeName,
                    const QCString &input,
+                   SrcLangExt lang,
                    bool isExampleBlock,
                    const char *exampleName=0,
                    FileDef *fileDef=0,
index 73b2b58..2129bf0 100644 (file)
@@ -2560,6 +2560,7 @@ tcl_inf("%s\n",fileName);
 void TclLanguageScanner::parseCode(CodeOutputInterface & codeOutIntf,
                    const char * scopeName,
                    const QCString & input,
+                   SrcLangExt lang,
                    bool isExampleBlock,
                    const char * exampleName,
                    FileDef * fileDef,
@@ -2572,6 +2573,7 @@ void TclLanguageScanner::parseCode(CodeOutputInterface & codeOutIntf,
                   )
 {
   (void)scopeName;
+  (void)lang;
   (void)exampleName;
   (void)fileDef;
   (void)endLine;
diff --git a/src/tooltip.cpp b/src/tooltip.cpp
new file mode 100644 (file)
index 0000000..041aa16
--- /dev/null
@@ -0,0 +1,132 @@
+/******************************************************************************
+ *
+ * Copyright (C) 1997-2013 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby 
+ * granted. No representations are made about the suitability of this software 
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ * Documents produced by Doxygen are derivative works derived from the
+ * input used in their production; they are not affected by this license.
+ *
+ */
+
+#include <qdict.h>
+
+#include "tooltip.h"
+#include "definition.h"
+#include "outputgen.h"
+#include "util.h"
+#include "filedef.h"
+#include "doxygen.h"
+#include "config.h"
+
+class TooltipManager::Private
+{
+  public:
+    Private() : tooltipInfo(10007) {}
+    QDict<Definition> tooltipInfo;
+};
+
+TooltipManager *TooltipManager::s_theInstance = 0;
+
+TooltipManager::TooltipManager() 
+{
+  p = new Private;
+}
+
+TooltipManager::~TooltipManager()
+{
+  delete p;
+}
+
+TooltipManager *TooltipManager::instance()
+{
+  if (!s_theInstance)
+  {
+    s_theInstance = new TooltipManager;
+  }
+  return s_theInstance;
+}
+
+void TooltipManager::clearTooltips()
+{
+  p->tooltipInfo.clear();
+}
+
+static QCString escapeId(const char *s)
+{
+  QCString res=s;
+  char *p=res.data();
+  while (*p)
+  {
+    if (!isId(*p)) *p='_';
+    p++;
+  }
+  return res;
+}
+
+void TooltipManager::addTooltip(Definition *d)
+{
+  static bool sourceTooltips = Config_getBool("SOURCE_TOOLTIPS");
+  if (!sourceTooltips) return;
+  QCString id = d->getOutputFileBase();
+  int i=id.findRev('/');
+  if (i!=-1)
+  {
+    id = id.right(id.length()-i-1); // strip path (for CREATE_SUBDIRS=YES)
+  }
+  id+=escapeId(Doxygen::htmlFileExtension);
+  QCString anc = d->anchor();
+  if (!anc.isEmpty())
+  {
+    id+="_"+anc;
+  }
+  if (p->tooltipInfo.find(id)==0)
+  {
+    p->tooltipInfo.insert(id,d);
+  }
+}
+
+void TooltipManager::writeTooltips(CodeOutputInterface &ol)
+{
+  QDictIterator<Definition> di(p->tooltipInfo);
+  Definition *d;
+  for (di.toFirst();(d=di.current());++di)
+  {
+    DocLinkInfo docInfo;
+    docInfo.name   = d->qualifiedName();
+    docInfo.ref    = d->getReference();
+    docInfo.url    = d->getOutputFileBase();
+    docInfo.anchor = d->anchor();
+    SourceLinkInfo defInfo;
+    if (d->getBodyDef() && d->getStartBodyLine()!=-1)
+    {
+      defInfo.file    = d->getBodyDef()->name();
+      defInfo.line    = d->getStartBodyLine();
+      defInfo.url     = d->getSourceFileBase();
+      defInfo.anchor  = d->getSourceAnchor();
+    }
+    SourceLinkInfo declInfo; // TODO: fill in...
+    QCString decl;
+    if (d->definitionType()==Definition::TypeMember)
+    {
+      MemberDef *md = (MemberDef*)d;
+      decl = md->declaration();
+      if (!decl.isEmpty() && decl.at(0)=='@') // hide enum values
+      {
+        decl.resize(0);
+      }
+    }
+    ol.writeTooltip(di.currentKey(),                 // id
+                    docInfo,                         // symName
+                    decl,                            // decl
+                    d->briefDescriptionAsTooltip(),  // desc
+                    defInfo,
+                    declInfo
+                   );
+  }
+}
+
diff --git a/src/tooltip.h b/src/tooltip.h
new file mode 100644 (file)
index 0000000..b4a4af4
--- /dev/null
@@ -0,0 +1,37 @@
+/******************************************************************************
+ *
+ * Copyright (C) 1997-2013 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby 
+ * granted. No representations are made about the suitability of this software 
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ * Documents produced by Doxygen are derivative works derived from the
+ * input used in their production; they are not affected by this license.
+ *
+ */
+#ifndef TOOLTIP_H
+#define TOOLTIP_H
+
+class Definition;
+class CodeOutputInterface;
+
+class TooltipManager
+{
+  public:
+    static TooltipManager *instance();
+    void clearTooltips();
+    void addTooltip(Definition *d);
+    void writeTooltips(CodeOutputInterface &ol);
+
+  private:
+    class Private;
+    Private *p;
+    TooltipManager();
+   ~TooltipManager();
+    static TooltipManager *s_theInstance;
+};
+
+#endif
diff --git a/src/translator.cpp b/src/translator.cpp
deleted file mode 100644 (file)
index b161345..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-/*! \file translator.cpp 
- *  \brief Implementation of generally used translator methods.
- * 
- * This file contains implementation of the translator methods that
- * are not expected to be reimplemented by derived translator classes.
- * It also contains static data tables used by the methods.
- *  
- */
-#include "translator.h"
-#include <stdio.h>
-
-/*! The translation table used by Win1250ToISO88592() method. */
-const char Translator::Win1250ToISO88592Tab[] = 
-{
-  '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87',
-  '\x88', '\x89', '\xA9', '\x8B', '\xA6', '\xAB', '\xAE', '\xAC',
-  '\x90', '\x91', '\x92', '\x93', '\x94', '\x2E', '\x96', '\x97',
-  '\x98', '\x99', '\xB9', '\x9B', '\xB6', '\xBB', '\xBE', '\xBC',
-  '\xA0', '\x20', '\x20', '\xA3', '\xA4', '\xA1', '\xA6', '\xA7',
-  '\x22', '\xA9', '\xAA', '\x3C', '\xAC', '\x2D', '\xAE', '\xAF',
-  '\x2E', '\x2B', '\x20', '\xB3', '\x27', '\x75', '\xB6', '\xB7',
-  '\x20', '\xB1', '\xBA', '\x3E', '\xA5', '\x22', '\xB5', '\xBF',
-  '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7',
-  '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF',
-  '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7',
-  '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF',
-  '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7',
-  '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF',
-  '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\x2D',
-  '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF',
-  '\0'
-};
-
-
-/*! The translation table used by ISO88592ToWin1250() method. */
-const char Translator::ISO88592ToWin1250Tab[] = {
-  '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87',
-  '\x88', '\x89', '\x8A', '\x8B', '\x8C', '\x8D', '\x8E', '\x8F',
-  '\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97',
-  '\x98', '\x99', '\x9A', '\x9B', '\x9C', '\x9D', '\x9E', '\x9F',
-  '\xA0', '\xA5', '\xA2', '\xA3', '\xA4', '\xBC', '\x8C', '\xA7',
-  '\xA8', '\x8A', '\xAA', '\x8D', '\x8F', '\xAD', '\x8E', '\xAF',
-  '\xB0', '\xB9', '\xB2', '\xB3', '\xB4', '\xBE', '\x9C', '\xB7',
-  '\xB8', '\x9A', '\xBA', '\x9D', '\x9F', '\xBD', '\x9E', '\xBF',
-  '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7',
-  '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF',
-  '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7',
-  '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF',
-  '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7',
-  '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF',
-  '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\xF7',
-  '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF',
-  '\0'
-};
-
-
-/*! The translation table used by Koi8RToWindows1251() method. */
-const unsigned char Translator::Koi8RToWindows1251Tab[128] =
-{ 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
-  144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
-  160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
-  176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
-  254,224,225,246,228,229,244,227,245,232,233,234,235,236,237,238,
-  239,255,240,241,242,243,230,226,252,251,231,248,253,249,247,250,
-  222,192,193,214,196,197,212,195,213,200,201,202,203,204,205,206,
-  207,223,208,209,210,211,198,194,220,219,199,216,221,217,215,218 
-};
-
-
-/*! The translation table used by Windows1251ToKoi8R() method. */
-const unsigned char Translator::Windows1251ToKoi8RTab[128] =
-{ 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
-  144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
-  160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
-  176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
-  225,226,247,231,228,229,246,250,233,234,235,236,237,238,239,240,
-  242,243,244,245,230,232,227,254,251,253,255,249,248,252,224,241,
-  193,194,215,199,196,197,214,218,201,202,203,204,205,206,207,208,
-  210,211,212,213,198,200,195,222,219,221,223,217,216,220,192,209
-};
-
-/*! Returns the string converted from windows-1250 to iso-8859-2. */
-/* The method was designed initially for translator_cz.h. 
- * It is used for on-line encoding conversion related to
- * conditional compilation in Unix/MS Windows environments
- * (both use different encoding).  Later, the translator_hr.h
- * (by Boris Bralo) used and improved the same style. As the
- * method with the translation table was the same, the
- * decision to move it to this base class was made. The same
- * holds for ISO88592ToWin1250() method. 
- * 
- * Alexandr Chelpanov used the same approach for
- * Koi8RToWindows1251() and Windows1251ToKoi8R() methods.  Notice,
- * that he uses Unicode tables.
- * 
- * It is recommended for possibly other similar methods in future.
- */
-QCString Translator::Win1250ToISO88592(const QCString & sInput)
-{
-  // The conversion table for characters >127
-  // 
-  
-  QCString result;
-  int len = sInput.length();
-
-  for (int i = 0; i < len; ++i)
-  {
-    unsigned int c = sInput[i];  
-    result += (c > 127) ? Win1250ToISO88592Tab[c & 0x7F] : c;
-  }
-  return result;
-}
-
-
-/*! returns the string converted from iso-8859-2 to windows-1250 */
-/* See the comments of the Win1250ToISO88592() method for details. */
-QCString Translator::ISO88592ToWin1250(const QCString & sInput)
-{
-  // The conversion table for characters >127
-  // 
-  QCString result;
-  int len = sInput.length();
-
-  for (int i = 0; i < len; ++i)
-  {
-    unsigned int c = sInput[i];  
-    result += (c > 127) ? ISO88592ToWin1250Tab[c & 0x7F] : c;
-  }
-  return result;
-}
-
-
-/*! Returns the string converted from koi8-r to windows-1251. */
-/* The method was designed initially for translator_cz.h. 
-   It is used for on-line encoding conversion related to conditional
-   compilation in Unix/MS Windows environments (both use different
-   encoding). Encoding table got from QT:qtextcodec.cpp
- */
-QCString Translator::Koi8RToWindows1251( const QCString & sInput )
-{
-
-  QCString result(sInput);
-  int len = sInput.length();
-
-  const unsigned char * c = (const unsigned char *)(const char*)sInput;
-  unsigned char *dc = (unsigned char*)(const char*)result;
-  for( int i=0; i<len; i++ ) {
-    if ( c[i] > 127 )
-      dc[i] = Koi8RToWindows1251Tab[c[i]-128];
-  }
-  return result;
-}
-
-
-/*! returns the string converted from Windows-1251 to koi8-r */
-/* See the comments of the Koi8RToWindows1251() method for details.
-   Encoding table got from QT:qtextcodec.cpp */
-QCString Translator::Windows1251ToKoi8R( const QCString & sInput )
-{
-  QCString result(sInput);
-  int len = sInput.length();
-
-  const unsigned char * c = (const unsigned char *)(const char*)sInput;
-  unsigned char *dc = (unsigned char*)(const char*)result;
-  for( int i=0; i<len; i++ ) {
-    if ( c[i] > 127 )
-      dc[i] = Windows1251ToKoi8RTab[c[i]-128];
-  }
-  return result;
-}
-
-/*! returns the caracter converted from hankaku-kana to zenkakukana. 
-  Thanks Yongmao Ni http://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/ */
-unsigned int hankaku2zen(int hankaku)
-{
-    static unsigned int z[64] = {
-        0x2121,0x2123,0x2156,0x2157,0x2122,0x2126,0x2572,0x2521,
-        0x2523,0x2525,0x2527,0x2529,0x2563,0x2565,0x2567,0x2543,
-        0x213c,0x2522,0x2524,0x2526,0x2528,0x252a,0x252b,0x252d,
-        0x252f,0x2531,0x2533,0x2535,0x2537,0x2539,0x253b,0x253d,
-        0x253f,0x2541,0x2544,0x2546,0x2548,0x254a,0x254b,0x254c,
-        0x254d,0x254e,0x254f,0x2552,0x2555,0x2558,0x255b,0x255e,
-        0x255f,0x2560,0x2561,0x2562,0x2564,0x2566,0x2568,0x2569,
-        0x256a,0x256b,0x256c,0x256d,0x256f,0x2573,0x212b,0x212c };
-
-    if (hankaku < 0xa0 || hankaku > 0xdf) return 0;
-    return z[hankaku - 0xa0];
-}
-
-/*! returns the character converted from japaneseEUC to SJIS
-  Thanks Yongmao Ni http://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/ */
-unsigned int euc2sjis(unsigned int euc)
-{
-    unsigned int jis;
-    unsigned int hib, lob;
-
-    if ((euc & 0xff00) == 0x8e00)
-        jis = hankaku2zen(euc & 0xff);
-    else jis = euc & ~0x8080;
-    
-    hib = (jis >> 8) & 0xff;
-    lob = jis & 0xff;
-    lob += (hib & 1) ? 0x1f : 0x7d;
-    if (lob >= 0x7f) lob++;
-    hib = ((hib - 0x21) >> 1) + 0x81;
-    if (hib > 0x9f) hib += 0x40;
-
-    return (hib << 8) | lob;
-}
-
-
-/*! returns the string converted from Japanese-EUC to SJIS */
-
-QCString Translator::JapaneseEucToSjis( const QCString & sInput )
-{
-  QString result;
-  int len = sInput.length();
-  int c1,c2,sj;
-
-  result.setUnicode(0, len);
-  QChar* uc = (QChar*)result.unicode(); // const_cast
-  const unsigned char * c = (const unsigned char *)(const char*)sInput;
-  
-  for( int i=0; i<len;)
-    {
-      c1 = c[i];
-
-      if( c1 == EOF ) break;
-      
-      /* if MSB=0 then the character is ascii */
-      if(!( c1 & 0x80))
-       {
-         uc[i] = c[i];
-         i=i+1;
-       }
-      else
-       {
-         c2 = c[i+1];
-         if( c2 == EOF ) break;
-         sj     = euc2sjis( (c1 << 8) + c2 );
-         uc[i]   = sj >> 8;
-         uc[i+1] = sj & 0xff;
-         i+=2;
-       }
-    }
-
-  return result.latin1();
-
-}
index 4de5da7..49a8135 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
 /** Abstract base class for all translatable text fragments. */
 class Translator
 {
-  private:
-    /* Tables for encoding conversions. */
-    static const char Win1250ToISO88592Tab[];
-    static const char ISO88592ToWin1250Tab[];
-    static const unsigned char Koi8RToWindows1251Tab[128];
-    static const unsigned char Windows1251ToKoi8RTab[128];
-
-  protected:
-    /*! Returns the string converted from windows-1250 to iso-8859-2. */
-    QCString Win1250ToISO88592(const QCString & sInput);
-    
-    /*! Returns the string converted from iso-8859-2 to windows-1250. */
-    QCString ISO88592ToWin1250(const QCString & sInput);
-    
-    /*! Returns the string converted from koi8-r to windows-1251. */
-    QCString Koi8RToWindows1251( const QCString & sInput );
-
-    /*! Returns the string converted from windows-1251 to koi8-r. */
-    QCString Windows1251ToKoi8R( const QCString & sInput );
-    
-    /*! Returns the string converted from Japanese-EUC to SJIS. */
-    QCString JapaneseEucToSjis( const QCString & sInput );
-
   public:
 
     /*! This method is used to provide warning message that is displayed
-     *  if the user chooses a language whose translation is not up to date. 
+     *  if the user chooses a language whose translation is not up to date.
      *  It is implemented by the adapter classes.
      */
     virtual QCString updateNeededMessage() { return ""; }
     virtual ~Translator() {}
-   
+
     // Please, have a look at comments inside the translator_en.h file
     // to learn the meaning of the following methods.  The translator_en.h
-    // file contains the TranslatorEnglish implementation, which is 
+    // file contains the TranslatorEnglish implementation, which is
     // always up-to-date (by definition).
-   
+
     // --- Language control methods -------------------
-    
+
     virtual QCString idLanguage() = 0;
     virtual QCString latexLanguageSupportCommand() = 0;
-    virtual QCString idLanguageCharset() = 0;
 
     // --- Language translation methods -------------------
 
@@ -107,14 +83,14 @@ class Translator
     virtual QCString trRelatedPagesDescription() = 0;
     virtual QCString trModulesDescription() = 0;
     //virtual QCString trNoDescriptionAvailable() = 0;
-    
-    // index titles (the project name is prepended for these) 
+
+    // index titles (the project name is prepended for these)
 
     virtual QCString trDocumentation() = 0;
     virtual QCString trModuleIndex() = 0;
     virtual QCString trHierarchicalIndex() = 0;
     virtual QCString trCompoundIndex() = 0;
-    virtual QCString trFileIndex() = 0; 
+    virtual QCString trFileIndex() = 0;
     virtual QCString trModuleDocumentation() = 0;
     virtual QCString trClassDocumentation() = 0;
     virtual QCString trFileDocumentation() = 0;
@@ -122,21 +98,21 @@ class Translator
     virtual QCString trPageDocumentation() = 0;
     virtual QCString trReferenceManual() = 0;
     virtual QCString trDefines() = 0;
-    virtual QCString trFuncProtos() = 0;
+    //virtual QCString trFuncProtos() = 0;
     virtual QCString trTypedefs() = 0;
     virtual QCString trEnumerations() = 0;
     virtual QCString trFunctions() = 0;
     virtual QCString trVariables() = 0;
     virtual QCString trEnumerationValues() = 0;
     virtual QCString trDefineDocumentation() = 0;
-    virtual QCString trFunctionPrototypeDocumentation() = 0;
+    //virtual QCString trFunctionPrototypeDocumentation() = 0;
     virtual QCString trTypedefDocumentation() = 0;
     virtual QCString trEnumerationTypeDocumentation() = 0;
     virtual QCString trFunctionDocumentation() = 0;
     virtual QCString trVariableDocumentation() = 0;
     virtual QCString trCompounds() = 0;
     virtual QCString trGeneratedAt(const char *date,const char *projName) = 0;
-    virtual QCString trWrittenBy() = 0;
+    //virtual QCString trWrittenBy() = 0;
     virtual QCString trClassDiagram(const char *clName) = 0;
     virtual QCString trForInternalUseOnly() = 0;
     //virtual QCString trReimplementedForInternalReasons() = 0;
@@ -153,17 +129,17 @@ class Translator
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNamespaceList() = 0;
     virtual QCString trNamespaceListDescription(bool extractAll) = 0;
     virtual QCString trFriends() = 0;
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trRelatedFunctionDocumentation() = 0;
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -174,7 +150,7 @@ class Translator
 
     virtual QCString trFileReference(const char *fileName) = 0;
     virtual QCString trNamespaceReference(const char *namespaceName) = 0;
-    
+
     virtual QCString trPublicMembers() = 0;
     virtual QCString trPublicSlots() = 0;
     virtual QCString trSignals() = 0;
@@ -207,7 +183,7 @@ class Translator
 
     virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
                                           bool single) = 0;
-    virtual QCString trAlphabeticalList() = 0;
+    //virtual QCString trAlphabeticalList() = 0;
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
@@ -254,7 +230,7 @@ class Translator
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote() = 0;
     virtual QCString trPublicTypes() = 0;
     virtual QCString trPublicAttribs() = 0;
@@ -282,7 +258,7 @@ class Translator
     virtual QCString trAttention() = 0;
     virtual QCString trInclByDepGraph() = 0;
     virtual QCString trSince() = 0;
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -290,11 +266,11 @@ class Translator
     virtual QCString trLegendTitle() = 0;
     virtual QCString trLegendDocs() = 0;
     virtual QCString trLegend() = 0;
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trTest() = 0;
     virtual QCString trTestList() = 0;
 
@@ -302,7 +278,7 @@ class Translator
 // new since 1.2.1
 //////////////////////////////////////////////////////////////////////////
 
-    virtual QCString trDCOPMethods() = 0;
+    //virtual QCString trDCOPMethods() = 0;
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
@@ -323,11 +299,11 @@ class Translator
     virtual QCString trPackages() = 0;
     //virtual QCString trPackageDocumentation() = 0;
     virtual QCString trDefineValue() = 0;
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trBug() = 0;
     virtual QCString trBugList() = 0;
 
@@ -388,12 +364,12 @@ class Translator
      * 222 — Thai
      * 238 — Eastern European
      * 254 — PC 437
-     * 255 — OEM 
+     * 255 — OEM
      * </pre>
      */
     virtual QCString trRTFCharSet() = 0;
     virtual QCString trRTFGeneralIndex() = 0;
-   
+
     // Translation of the word
 
     virtual QCString trClass(bool first_capital, bool singular) = 0;
@@ -408,7 +384,7 @@ class Translator
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.7
 //////////////////////////////////////////////////////////////////////////
-        
+
     virtual QCString trAuthor(bool first_capital, bool singular) = 0;
 
 //////////////////////////////////////////////////////////////////////////
@@ -423,7 +399,7 @@ class Translator
 
     virtual QCString trImplementedFromList(int numEntries) = 0;
     virtual QCString trImplementedInList(int numEntries) = 0;
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.16
 //////////////////////////////////////////////////////////////////////////
@@ -435,7 +411,7 @@ class Translator
 //////////////////////////////////////////////////////////////////////////
 
     virtual QCString trDeprecatedList() = 0;
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
@@ -452,7 +428,7 @@ class Translator
     virtual QCString trStaticPackageMembers() = 0;
     virtual QCString trPackageAttribs() = 0;
     virtual QCString trStaticPackageAttribs() = 0;
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
@@ -464,7 +440,7 @@ class Translator
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    virtual QCString trSearchForIndex() = 0;
+    //virtual QCString trSearchForIndex() = 0;
     virtual QCString trSearchResultsTitle() = 0;
     virtual QCString trSearchResults(int numDocuments) = 0;
     virtual QCString trSearchMatches() = 0;
@@ -495,14 +471,14 @@ class Translator
 //////////////////////////////////////////////////////////////////////////
 // new since 1.4.6
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trCallerGraph() = 0;
     virtual QCString trEnumerationValueDocumentation() = 0;
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trMemberFunctionDocumentationFortran() = 0;
     virtual QCString trCompoundListFortran() = 0;
     virtual QCString trCompoundMembersFortran() = 0;
@@ -543,13 +519,13 @@ class Translator
 // new since 1.6.3
 //////////////////////////////////////////////////////////////////////////
 
-    virtual QCString trDirDependency(const char *name) = 0;
+    //virtual QCString trDirDependency(const char *name) = 0;
     virtual QCString trFileIn(const char *name) = 0;
     virtual QCString trIncludesFileIn(const char *name) = 0;
     virtual QCString trDateTime(int year,int month,int day,int dayOfWeek,
                                 int hour,int minutes,int seconds,
                                 bool includeTime) = 0;
-                       
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.7.5
 //////////////////////////////////////////////////////////////////////////
index ad89b4b..254876a 100644 (file)
@@ -161,8 +161,6 @@ class TranslatorAdapter_1_6_3 : public TranslatorAdapter_1_7_5
     virtual QCString updateNeededMessage()
     { return createUpdateNeededMessage(idLanguage(),"release 1.6.3"); }
 
-    virtual QCString trDirDependency(const char *name)
-    { return english.trDirDependency(name); }
     virtual QCString trFileIn(const char *name)
     { return english.trFileIn(name); }
     virtual QCString trIncludesFileIn(const char *name)
index d8ab0fd..fd8b1dd 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************\r
  *\r
- * \r
+ *\r
  *\r
  * Copyright (C) 1997-2013 by Dimitri van Heesch.\r
  *\r
  * Permission to use, copy, modify, and distribute this software and its\r
- * documentation under the terms of the GNU General Public License is hereby \r
- * granted. No representations are made about the suitability of this software \r
+ * documentation under the terms of the GNU General Public License is hereby\r
+ * granted. No representations are made about the suitability of this software\r
  * for any purpose. It is provided "as is" without express or implied warranty.\r
  * See the GNU General Public License for more details.\r
  *\r
@@ -33,13 +33,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     virtual QCString latexLanguageSupportCommand()\r
     {\r
         return "<pre>\\usepackage[latin]{armtex}\n"\r
-                          "\\usepackage[armscii8]{inputenc}\n</pre>"; \r
-    }\r
-\r
-    /*! return the language charset. This will be used for the HTML output */\r
-    virtual QCString idLanguageCharset()\r
-    {\r
-        return "utf-8"; \r
+                          "\\usepackage[armscii8]{inputenc}\n</pre>";\r
     }\r
 \r
     // --- Language translation methods -------------------\r
@@ -132,7 +126,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
 \r
     // quick reference sections\r
 \r
-    /*! This is put above each page as a link to the list of all groups of \r
+    /*! This is put above each page as a link to the list of all groups of\r
      *  compounds or files (see the \\group command).\r
      */\r
     virtual QCString trModules()\r
@@ -178,11 +172,11 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     {\r
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))\r
       {\r
-        return "Գլոբալներ"; \r
+        return "Գլոբալներ";\r
       }\r
       else\r
       {\r
-        return "Ֆայլի անդամներ"; \r
+        return "Ֆայլի անդամներ";\r
       }\r
     }\r
 \r
@@ -291,26 +285,26 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     virtual QCString trModulesDescription()\r
     { return "Բոլոր մոդուլների ցուցակը."; }\r
 \r
-    // index titles (the project name is prepended for these) \r
+    // index titles (the project name is prepended for these)\r
 \r
 \r
     /*! This is used in HTML as the title of index.html. */\r
     virtual QCString trDocumentation()\r
     { return " - Փաստագրություն"; }\r
 \r
-    /*! This is used in LaTeX as the title of the chapter with the \r
+    /*! This is used in LaTeX as the title of the chapter with the\r
      * index of all groups.\r
      */\r
     virtual QCString trModuleIndex()\r
     { return "Մոդուլներ"; }\r
 \r
-    /*! This is used in LaTeX as the title of the chapter with the \r
+    /*! This is used in LaTeX as the title of the chapter with the\r
      * class hierarchy.\r
      */\r
     virtual QCString trHierarchicalIndex()\r
     { return "Դասակարգումներ"; }\r
 \r
-    /*! This is used in LaTeX as the title of the chapter with the \r
+    /*! This is used in LaTeX as the title of the chapter with the\r
      * annotated compound index.\r
      */\r
     virtual QCString trCompoundIndex()\r
@@ -374,43 +368,37 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     virtual QCString trReferenceManual()\r
     { return "Հղումների ձեռնարկ"; }\r
 \r
-    /*! This is used in the documentation of a file as a header before the \r
+    /*! This is used in the documentation of a file as a header before the\r
      *  list of defines\r
      */\r
     virtual QCString trDefines()\r
     { return "Մակրոսներ"; }\r
 \r
-    /*! This is used in the documentation of a file as a header before the \r
-     *  list of function prototypes\r
-     */\r
-    virtual QCString trFuncProtos()\r
-    { return "Ֆունկցիաների նախատիպեր"; }\r
-\r
-    /*! This is used in the documentation of a file as a header before the \r
+    /*! This is used in the documentation of a file as a header before the\r
      *  list of typedefs\r
      */\r
     virtual QCString trTypedefs()\r
     { return "Տիպի սահմանումներ (typedef)"; }\r
 \r
-    /*! This is used in the documentation of a file as a header before the \r
+    /*! This is used in the documentation of a file as a header before the\r
      *  list of enumerations\r
      */\r
     virtual QCString trEnumerations()\r
     { return "Համարակալումներ"; }\r
 \r
-    /*! This is used in the documentation of a file as a header before the \r
+    /*! This is used in the documentation of a file as a header before the\r
      *  list of (global) functions\r
      */\r
     virtual QCString trFunctions()\r
     { return "Ֆունկցիաներ"; }\r
 \r
-    /*! This is used in the documentation of a file as a header before the \r
+    /*! This is used in the documentation of a file as a header before the\r
      *  list of (global) variables\r
      */\r
     virtual QCString trVariables()\r
     { return "Փոփոխականներ"; }\r
 \r
-    /*! This is used in the documentation of a file as a header before the \r
+    /*! This is used in the documentation of a file as a header before the\r
      *  list of (global) variables\r
      */\r
     virtual QCString trEnumerationValues()\r
@@ -422,37 +410,31 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     virtual QCString trDefineDocumentation()\r
     { return "Մակրոսներ"; }\r
 \r
-    /*! This is used in the documentation of a file/namespace before the list \r
-     *  of documentation blocks for function prototypes\r
-     */\r
-    virtual QCString trFunctionPrototypeDocumentation()\r
-    { return "Ֆունկցիաների նախատիպեր"; }\r
-\r
-    /*! This is used in the documentation of a file/namespace before the list \r
+    /*! This is used in the documentation of a file/namespace before the list\r
      *  of documentation blocks for typedefs\r
      */\r
     virtual QCString trTypedefDocumentation()\r
     { return "Տիպի սահմանումներ (typedef)"; }\r
 \r
-    /*! This is used in the documentation of a file/namespace before the list \r
+    /*! This is used in the documentation of a file/namespace before the list\r
      *  of documentation blocks for enumeration types\r
      */\r
     virtual QCString trEnumerationTypeDocumentation()\r
     { return "Համարակալման տիպեր"; }\r
 \r
-    /*! This is used in the documentation of a file/namespace before the list \r
+    /*! This is used in the documentation of a file/namespace before the list\r
      *  of documentation blocks for functions\r
      */\r
     virtual QCString trFunctionDocumentation()\r
     { return "Ֆունկցիաներ"; }\r
 \r
-    /*! This is used in the documentation of a file/namespace before the list \r
+    /*! This is used in the documentation of a file/namespace before the list\r
      *  of documentation blocks for variables\r
      */\r
     virtual QCString trVariableDocumentation()\r
     { return "Փոփոխականներ"; }\r
 \r
-    /*! This is used in the documentation of a file/namespace/group before \r
+    /*! This is used in the documentation of a file/namespace/group before\r
      *  the list of links to documented compounds\r
      */\r
     virtual QCString trCompounds()\r
@@ -462,31 +444,24 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
         return "Տվյալների կառուցվածք";\r
       }\r
       else\r
-      { \r
+      {\r
         return "Դասեր";\r
       }\r
-\r
     }\r
 \r
-    /*! This is used in the documentation of a group before the list of \r
+    /*! This is used in the documentation of a group before the list of\r
      *  links to documented files\r
      */\r
-    /*! This is used in the standard footer of each page and indicates when \r
-     *  the page was generated \r
+    /*! This is used in the standard footer of each page and indicates when\r
+     *  the page was generated\r
      */\r
     virtual QCString trGeneratedAt(const char *date,const char *projName)\r
-    { \r
+    {\r
       QCString result=(QCString)"Ստեղծվել է "+date;\r
       if (projName) result+=projName+QCString(" -ի համար,");\r
       result+=(QCString)" հետևյալ համակարգով.";\r
       return result;\r
     }\r
-    /*! This is part of the sentence used in the standard footer of each page.\r
-     */\r
-    virtual QCString trWrittenBy()\r
-    {\r
-      return "Հեղինակ - ";\r
-    }\r
 \r
     /*! this text is put before a class diagram */\r
     virtual QCString trClassDiagram(const char *clName)\r
@@ -529,11 +504,11 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     /*! this text is used in the title page of a LaTeX document. */\r
     virtual QCString trGeneratedBy()\r
     { return "Ստեղծված է հետևյալ համակարգի կողմից"; }\r
-    \r
+\r
 //////////////////////////////////////////////////////////////////////////\r
-// new since 0.49-990307 \r
+// new since 0.49-990307\r
 //////////////////////////////////////////////////////////////////////////\r
-    \r
+\r
     /*! used as the title of page containing all the index of all namespaces. */\r
     virtual QCString trNamespaceList()\r
     { return "Անունների տարածությունների ցուցակ"; }\r
@@ -556,13 +531,13 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
 //////////////////////////////////////////////////////////////////////////\r
 // new since 0.49-990405\r
 //////////////////////////////////////////////////////////////////////////\r
-    \r
+\r
     /*! used in the class documentation as a header before the list of all\r
-     * related classes \r
+     * related classes\r
      */\r
     virtual QCString trRelatedFunctionDocumentation()\r
     { return "Դասի ընկերներ և կապված ֆունկցիաներ"; }\r
-    \r
+\r
 //////////////////////////////////////////////////////////////////////////\r
 // new since 0.49-990425\r
 //////////////////////////////////////////////////////////////////////////\r
@@ -574,7 +549,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     {\r
       QCString result=(QCString)clName;\r
       if (isTemplate)\r
-      {                  \r
+      {\r
         switch(compType)\r
         {\r
           case ClassDef::Class:      result+=" Դասի"; break;\r
@@ -618,7 +593,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
       result+=" անունների տարածություններ";\r
       return result;\r
     }\r
-    \r
+\r
     virtual QCString trPublicMembers()\r
     { return "Բաց անդամ ֆունկցիաներ"; }\r
     virtual QCString trPublicSlots()\r
@@ -639,7 +614,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     { return "Փակ սլոթեր"; }\r
     virtual QCString trStaticPrivateMembers()\r
     { return "Փակ ստատիկ անդամ ֆունկցիաներ"; }\r
-    \r
+\r
     /*! this function is used to produce a comma-separated list of items.\r
      *  use generateMarker(i) to indicate where item i should be put.\r
      */\r
@@ -648,23 +623,23 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
       QCString result;\r
       int i;\r
       // the inherits list contain `numEntries' classes\r
-      for (i=0;i<numEntries;i++) \r
+      for (i=0;i<numEntries;i++)\r
       {\r
         // use generateMarker to generate placeholders for the class links!\r
-        result+=generateMarker(i); // generate marker for entry i in the list \r
+        result+=generateMarker(i); // generate marker for entry i in the list\r
                                    // (order is left to right)\r
-        \r
+\r
         if (i!=numEntries-1)  // not the last entry, so we need a separator\r
         {\r
-          if (i<numEntries-2) // not the fore last entry \r
+          if (i<numEntries-2) // not the fore last entry\r
             result+=", ";\r
           else                // the fore last entry\r
             result+=" և ";\r
         }\r
       }\r
-      return result; \r
+      return result;\r
     }\r
-    \r
+\r
     /*! used in class documentation to produce a list of base classes,\r
      *  if class diagrams are disabled.\r
      */\r
@@ -681,7 +656,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
       return "Ժառանգորդ դասեր - "+trWriteList(numEntries)+":";\r
     }\r
 \r
-    /*! used in member documentation blocks to produce a list of \r
+    /*! used in member documentation blocks to produce a list of\r
      *  members that are hidden by this one.\r
      */\r
     virtual QCString trReimplementedFromList(int numEntries)\r
@@ -708,14 +683,14 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
       if (!extractAll) result+="փաստագրված ";\r
       result+="անունների տարածության անդամների ցուցակը` "\r
                        "հղումներով դեպի ";\r
-      if (extractAll) \r
+      if (extractAll)\r
         result+="բոլոր անդամների անունների տարածության փաստագրությունը.";\r
-      else \r
+      else\r
         result+="անունների տարածությունը, որին նրանք պատկանում են.";\r
       return result;\r
     }\r
 \r
-    /*! This is used in LaTeX as the title of the chapter with the \r
+    /*! This is used in LaTeX as the title of the chapter with the\r
      *  index of all namespaces.\r
      */\r
     virtual QCString trNamespaceIndex()\r
@@ -746,7 +721,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
      */\r
     virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,\r
         bool single)\r
-    { \r
+    {\r
       QCString result = (QCString)"Այս ";\r
       switch(compType)\r
       {\r
@@ -764,12 +739,6 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
       return result;\r
     }\r
 \r
-    /*! This is in the (quick) index as a link to the alphabetical compound\r
-     * list.\r
-     */\r
-    virtual QCString trAlphabeticalList()\r
-    { return "Այբբենական ցուցակ"; }\r
-\r
 //////////////////////////////////////////////////////////////////////////\r
 // new since 0.49-990901\r
 //////////////////////////////////////////////////////////////////////////\r
@@ -783,7 +752,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     virtual QCString trMainPage()\r
     { return "Գլխավոր էջ"; }\r
 \r
-    /*! This is used in references to page that are put in the LaTeX \r
+    /*! This is used in references to page that are put in the LaTeX\r
      *  documentation. It should be an abbreviation of the word page.\r
      */\r
     virtual QCString trPageAbbreviation()\r
@@ -828,7 +797,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     /*! header that is put before the list of constructor/destructors. */\r
     virtual QCString trConstructorDocumentation()\r
     {\r
-      return "Կառուցիչներ"; \r
+      return "Կառուցիչներ";\r
     }\r
     /*! Used in the file documentation to point to the corresponding sources. */\r
     virtual QCString trGotoSourceCode()\r
@@ -885,7 +854,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
 //////////////////////////////////////////////////////////////////////////\r
 // new since 1.1.0\r
 //////////////////////////////////////////////////////////////////////////\r
-    \r
+\r
     virtual QCString trNote()\r
     {\r
       return "Նշում";\r
@@ -978,7 +947,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     {\r
       return "Սկսած";\r
     }\r
-    \r
+\r
 //////////////////////////////////////////////////////////////////////////\r
 // new since 1.1.5\r
 //////////////////////////////////////////////////////////////////////////\r
@@ -988,12 +957,12 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     {\r
       return "Լեգենդ";\r
     }\r
-    /*! page explaining how the dot graph's should be interpreted \r
+    /*! page explaining how the dot graph's should be interpreted\r
      *  The %A in the text below are to prevent link to classes called "A".\r
      */\r
     virtual QCString trLegendDocs()\r
     {\r
-      return \r
+      return\r
                "Այս էջը նկարագրում է, թե ինչպես մեկնաբանել doxygen-ի ստեղծած գրաֆները:<p>\n"\r
         "Դիտարկենք հետևյալ օրինակը.\n"\r
         "\\code\n"\r
@@ -1059,7 +1028,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
 //////////////////////////////////////////////////////////////////////////\r
 // new since 1.2.0\r
 //////////////////////////////////////////////////////////////////////////\r
-    \r
+\r
     /*! Used as a marker that is put before a test item */\r
     virtual QCString trTest()\r
     {\r
@@ -1072,16 +1041,6 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     }\r
 \r
 //////////////////////////////////////////////////////////////////////////\r
-// new since 1.2.1\r
-//////////////////////////////////////////////////////////////////////////\r
-\r
-    /*! Used as a section header for KDE-2 IDL methods */\r
-    virtual QCString trDCOPMethods()\r
-    {\r
-      return "DCOP անդամ ֆունկցիաներ";\r
-    }\r
-\r
-//////////////////////////////////////////////////////////////////////////\r
 // new since 1.2.2\r
 //////////////////////////////////////////////////////////////////////////\r
 \r
@@ -1141,7 +1100,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
 //////////////////////////////////////////////////////////////////////////\r
 // new since 1.2.5\r
 //////////////////////////////////////////////////////////////////////////\r
-    \r
+\r
     /*! Used as a marker that is put before a \\bug item */\r
     virtual QCString trBug()\r
     {\r
@@ -1173,15 +1132,15 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     }\r
 \r
     /*! This is used for translation of the word that will possibly\r
-     *  be followed by a single name or by a list of names \r
+     *  be followed by a single name or by a list of names\r
      *  of the category.\r
      */\r
     virtual QCString trClass(bool first_capital, bool singular)\r
-    { \r
+    {\r
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))\r
       {\r
         QCString result((first_capital ? "Տվյալների կառուցվածք" : "տվյալների կառուցվածք"));\r
-        return result; \r
+        return result;\r
       }\r
       else\r
       {\r
@@ -1192,69 +1151,69 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     }\r
 \r
     /*! This is used for translation of the word that will possibly\r
-     *  be followed by a single name or by a list of names \r
+     *  be followed by a single name or by a list of names\r
      *  of the category.\r
      */\r
     virtual QCString trFile(bool first_capital, bool singular)\r
-    { \r
+    {\r
       QCString result((first_capital ? "Ֆայլ" : "ֆայլ"));\r
       if (!singular)  result+="եր";\r
-      return result; \r
+      return result;\r
     }\r
 \r
     /*! This is used for translation of the word that will possibly\r
-     *  be followed by a single name or by a list of names \r
+     *  be followed by a single name or by a list of names\r
      *  of the category.\r
      */\r
     virtual QCString trNamespace(bool first_capital, bool singular)\r
-    { \r
+    {\r
       QCString result((first_capital ? "Անունների տարածություն" : "անունների տարածություն"));\r
       if (!singular)  result+="ներ";\r
-      return result; \r
+      return result;\r
     }\r
 \r
     /*! This is used for translation of the word that will possibly\r
-     *  be followed by a single name or by a list of names \r
+     *  be followed by a single name or by a list of names\r
      *  of the category.\r
      */\r
     virtual QCString trGroup(bool first_capital, bool singular)\r
-    { \r
+    {\r
       QCString result((first_capital ? "Խ" : "խ"));\r
       result+=(singular ? "ումբ" : "մբեր");\r
-      return result; \r
+      return result;\r
     }\r
 \r
     /*! This is used for translation of the word that will possibly\r
-     *  be followed by a single name or by a list of names \r
+     *  be followed by a single name or by a list of names\r
      *  of the category.\r
      */\r
     virtual QCString trPage(bool first_capital, bool singular)\r
-    { \r
+    {\r
       QCString result((first_capital ? "Էջ" : "էջ"));\r
       if (!singular)  result+="եր";\r
       return result;\r
     }\r
 \r
     /*! This is used for translation of the word that will possibly\r
-     *  be followed by a single name or by a list of names \r
+     *  be followed by a single name or by a list of names\r
      *  of the category.\r
      */\r
     virtual QCString trMember(bool first_capital, bool singular)\r
-    { \r
+    {\r
       QCString result((first_capital ? "Անդամ" : "անդամ"));\r
       if (!singular)  result+="ներ";\r
-      return result; \r
+      return result;\r
     }\r
-   \r
+\r
     /*! This is used for translation of the word that will possibly\r
-     *  be followed by a single name or by a list of names \r
+     *  be followed by a single name or by a list of names\r
      *  of the category.\r
      */\r
     virtual QCString trGlobal(bool first_capital, bool singular)\r
-    { \r
+    {\r
       QCString result((first_capital ? "Գլոբալ" : "գլոբալ"));\r
       if (!singular)  result+="ներ";\r
-      return result; \r
+      return result;\r
     }\r
 \r
 //////////////////////////////////////////////////////////////////////////\r
@@ -1264,7 +1223,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     /*! This text is generated when the \\author command is used and\r
      *  for the author section in man pages. */\r
     virtual QCString trAuthor(bool first_capital, bool singular)\r
-    {                                                                         \r
+    {\r
       QCString result((first_capital ? "Հեղինակ" : "հեղինակ"));\r
       if (!singular) result+="ներ";\r
       return result;\r
@@ -1285,7 +1244,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
 // new since 1.2.13\r
 //////////////////////////////////////////////////////////////////////////\r
 \r
-    /*! used in member documentation blocks to produce a list of \r
+    /*! used in member documentation blocks to produce a list of\r
      *  members that are implemented by this one.\r
      */\r
     virtual QCString trImplementedFromList(int numEntries)\r
@@ -1317,8 +1276,8 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
 // new since 1.2.17\r
 //////////////////////////////////////////////////////////////////////////\r
 \r
-    /*! Used as the header of the list of item that have been \r
-     *  flagged deprecated \r
+    /*! Used as the header of the list of item that have been\r
+     *  flagged deprecated\r
      */\r
     virtual QCString trDeprecatedList()\r
     {\r
@@ -1329,7 +1288,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
 // new since 1.2.18\r
 //////////////////////////////////////////////////////////////////////////\r
 \r
-    /*! Used as a header for declaration section of the events found in \r
+    /*! Used as a header for declaration section of the events found in\r
      * a C# program\r
      */\r
     virtual QCString trEvents()\r
@@ -1349,43 +1308,43 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     /*! Used as a heading for a list of Java class types with package scope.\r
      */\r
     virtual QCString trPackageTypes()\r
-    { \r
+    {\r
       return "Փաթեթի տիպեր";\r
     }\r
-    /*! Used as a heading for a list of Java class functions with package \r
-     * scope. \r
+    /*! Used as a heading for a list of Java class functions with package\r
+     * scope.\r
      */\r
     virtual QCString trPackageMembers()\r
-    { \r
+    {\r
       return "Փաթեթի ֆունկցիաներ";\r
     }\r
-    /*! Used as a heading for a list of static Java class functions with \r
+    /*! Used as a heading for a list of static Java class functions with\r
      *  package scope.\r
      */\r
     virtual QCString trStaticPackageMembers()\r
-    { \r
+    {\r
       return "Փաթեթի ստատիկ ֆունկցիաներ";\r
     }\r
-    /*! Used as a heading for a list of Java class variables with package \r
+    /*! Used as a heading for a list of Java class variables with package\r
      * scope.\r
      */\r
     virtual QCString trPackageAttribs()\r
-    { \r
+    {\r
       return "Փաթեթի ատրիբուտներ";\r
     }\r
-    /*! Used as a heading for a list of static Java class variables with \r
+    /*! Used as a heading for a list of static Java class variables with\r
      * package scope.\r
      */\r
     virtual QCString trStaticPackageAttribs()\r
-    { \r
+    {\r
       return "Փաթեթի ստատիկ ատրիբուտներ";\r
     }\r
-    \r
+\r
 //////////////////////////////////////////////////////////////////////////\r
 // new since 1.3.1\r
 //////////////////////////////////////////////////////////////////////////\r
 \r
-    /*! Used in the quick index of a class/file/namespace member list page \r
+    /*! Used in the quick index of a class/file/namespace member list page\r
      *  to link to the unfiltered list of all members.\r
      */\r
     virtual QCString trAll()\r
@@ -1402,14 +1361,6 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
 // new since 1.3.3\r
 //////////////////////////////////////////////////////////////////////////\r
 \r
-    /*! When the search engine is enabled this text is put in the header \r
-     *  of each page before the field where one can enter the text to search \r
-     *  for. \r
-     */\r
-    virtual QCString trSearchForIndex()\r
-    {\r
-      return "Որոնում";\r
-    }\r
     /*! This string is used as the title for the page listing the search\r
      *  results.\r
      */\r
@@ -1421,7 +1372,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
      *  text can be different depending on the number of documents found.\r
      *  Inside the text you can put the special marker $num to insert\r
      *  the number representing the actual number of search results.\r
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the \r
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the\r
      *  value 2 represents 2 or more matches. HTML markup is allowed inside\r
      *  the returned string.\r
      */\r
@@ -1435,13 +1386,13 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
       {\r
         return "Հայտնաբերվել է 1 փաստաթուղթ:";\r
       }\r
-      else \r
+      else\r
       {\r
         return "Հայտնաբերվել է <b>$num</b> փաստաթուղթ:"\r
           "Փաստաթղթերը դասակարգված են ըստ համապասխանության";\r
       }\r
     }\r
-    /*! This string is put before the list of matched words, for each search \r
+    /*! This string is put before the list of matched words, for each search\r
      *  result. What follows is the list of words that matched the query.\r
      */\r
     virtual QCString trSearchMatches()\r
@@ -1482,12 +1433,12 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     virtual QCString trDirectories()\r
     { return "Ֆայլադրաններ"; }\r
 \r
-    /*! This returns a sentences that introduces the directory hierarchy. \r
+    /*! This returns a sentences that introduces the directory hierarchy.\r
      *  and the fact that it is sorted alphabetically per level\r
      */\r
     virtual QCString trDirDescription()\r
     { return "Այս ֆայլադարանների հիերարխիան կարգավորված է կոպտորեն, "\r
-                       "բայց ոչ ամբողջապես, այբբենական կարգով."; \r
+                       "բայց ոչ ամբողջապես, այբբենական կարգով.";\r
        }\r
 \r
     /*! This returns the title of a directory page. The name of the\r
@@ -1500,10 +1451,10 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
      *  (\a first_capital) and in sigular or plural form (\a singular).\r
      */\r
     virtual QCString trDir(bool first_capital, bool singular)\r
-    { \r
+    {\r
       QCString result((first_capital ? "Ֆայլադարան" : "ֆայլադարան"));\r
       if (!singular) result+="ներ";\r
-      return result; \r
+      return result;\r
     }\r
 \r
 //////////////////////////////////////////////////////////////////////////\r
@@ -1529,7 +1480,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
       return "Այս ֆունկցիայի կանչերի գրաֆը.";\r
     }\r
 \r
-    /*! This is used in the documentation of a file/namespace before the list \r
+    /*! This is used in the documentation of a file/namespace before the list\r
      *  of documentation blocks for enumeration values\r
      */\r
     virtual QCString trEnumerationValueDocumentation()\r
@@ -1543,7 +1494,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     virtual QCString trMemberFunctionDocumentationFortran()\r
     { return "Անդամ ֆունցիաներ/ենթածրագրեր"; }\r
 \r
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    \r
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */\r
     virtual QCString trCompoundListFortran()\r
     { return "Տվյալների տիպերի ցուցակը"; }\r
 \r
@@ -1564,18 +1515,18 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
         result+="փաստագրված ";\r
       }\r
       result+="տվյալների տիպերի անդամների ցուցակը` հղումներով դեպի ";\r
-      if (!extractAll) \r
+      if (!extractAll)\r
       {\r
                result+="բոլոր անդամների տվյալների կառուցվածքի փաստագրությունը";\r
       }\r
-      else \r
+      else\r
       {\r
         result+="տվյալների տիպերը, որոնց նրանք պատկանում են";\r
       }\r
       return result;\r
     }\r
 \r
-    /*! This is used in LaTeX as the title of the chapter with the \r
+    /*! This is used in LaTeX as the title of the chapter with the\r
      * annotated compound index (Fortran).\r
      */\r
     virtual QCString trCompoundIndexFortran()\r
@@ -1587,24 +1538,24 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     virtual QCString trTypeDocumentation()\r
     { return "Տվյալների տիպեր"; }\r
 \r
-    /*! This is used in the documentation of a file as a header before the \r
+    /*! This is used in the documentation of a file as a header before the\r
      *  list of (global) subprograms (Fortran).\r
      */\r
     virtual QCString trSubprograms()\r
     { return "Ֆունկցիաներ/ենթածրագրեր"; }\r
 \r
-    /*! This is used in the documentation of a file/namespace before the list \r
+    /*! This is used in the documentation of a file/namespace before the list\r
      *  of documentation blocks for subprograms (Fortran)\r
      */\r
     virtual QCString trSubprogramDocumentation()\r
     { return "Ֆունկցիաներ/ենթածրագրեր"; }\r
 \r
-    /*! This is used in the documentation of a file/namespace/group before \r
+    /*! This is used in the documentation of a file/namespace/group before\r
      *  the list of links to documented compounds (Fortran)\r
      */\r
      virtual QCString trDataTypes()\r
     { return "Տվյալների տիպեր"; }\r
-    \r
+\r
     /*! used as the title of page containing all the index of all modules (Fortran). */\r
     virtual QCString trModulesList()\r
     { return "Մոդուլների ցուցակ"; }\r
@@ -1624,7 +1575,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
                                     bool isTemplate)\r
     {\r
       QCString result=(QCString)clName;\r
-      if (!isTemplate) \r
+      if (!isTemplate)\r
       {\r
         switch(compType)\r
         {\r
@@ -1660,43 +1611,43 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
     {\r
       return QCString("Մոդուլ ") + namespaceName;\r
     }\r
-    \r
+\r
     /*! This is put above each page as a link to all members of modules. (Fortran) */\r
     virtual QCString trModulesMembers()\r
     { return "Մոդուլի անդամներ"; }\r
 \r
     /*! This is an introduction to the page with all modules members (Fortran) */\r
     virtual QCString trModulesMemberDescription(bool extractAll)\r
-    { \r
+    {\r
       QCString result="Մոդուլի բոլոր ";\r
       if (!extractAll) result+="փաստագրված ";\r
       result+="անդամների ցուցակը` հղումներով դեպի ";\r
-      if (extractAll) \r
+      if (extractAll)\r
       {\r
         result+="բոլոր անդամների փաստագրությունները.";\r
       }\r
-      else \r
+      else\r
       {\r
         result+="մոդուլները, որոնց նրանք պատկանում են.";\r
       }\r
       return result;\r
     }\r
 \r
-    /*! This is used in LaTeX as the title of the chapter with the \r
+    /*! This is used in LaTeX as the title of the chapter with the\r
      *  index of all modules (Fortran).\r
      */\r
     virtual QCString trModulesIndex()\r
     { return "Մոդուլներ"; }\r
-    \r
+\r
     /*! This is used for translation of the word that will possibly\r
-     *  be followed by a single name or by a list of names \r
+     *  be followed by a single name or by a list of names\r
      *  of the category.\r
      */\r
     virtual QCString trModule(bool first_capital, bool singular)\r
-    {       \r
+    {\r
       QCString result((first_capital ? "Մոդուլ" : "մոդուլ"));\r
-      if (!singular)  result+="ներ"; \r
-      return result; \r
+      if (!singular)  result+="ներ";\r
+      return result;\r
     }\r
     /*! This is put at the bottom of a module documentation page and is\r
      *  followed by a list of files that were used to generate the page.\r
@@ -1722,24 +1673,24 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
       return result;\r
     }\r
     /*! This is used for translation of the word that will possibly\r
-     *  be followed by a single name or by a list of names \r
+     *  be followed by a single name or by a list of names\r
      *  of the category.\r
      */\r
     virtual QCString trType(bool first_capital, bool singular)\r
-    { \r
+    {\r
       QCString result((first_capital ? "Տիպ" : "տիպ"));\r
       if (!singular)  result+="եր";\r
-      return result; \r
+      return result;\r
     }\r
     /*! This is used for translation of the word that will possibly\r
-     *  be followed by a single name or by a list of names \r
+     *  be followed by a single name or by a list of names\r
      *  of the category.\r
      */\r
     virtual QCString trSubprogram(bool first_capital, bool singular)\r
-    { \r
+    {\r
       QCString result((first_capital ? "Ե" : "ե"));\r
-      if (singular)  result+="նթածրագիր"; else result+="նթածրագրեր"; \r
-      return result; \r
+      if (singular)  result+="նթածրագիր"; else result+="նթածրագրեր";\r
+      return result;\r
     }\r
 \r
     /*! C# Type Constraint list */\r
@@ -1785,12 +1736,6 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
 // new since 1.6.3 (missing items for the directory pages)\r
 //////////////////////////////////////////////////////////////////////////\r
 \r
-    /*! introduction text for the directory dependency graph */\r
-    virtual QCString trDirDependency(const char *name)\r
-    {\r
-      return (QCString)name + " -ի կախվածությունների գծագիր";\r
-    }\r
-\r
     /*! when clicking a directory dependency label, a page with a\r
      *  table is shown. The heading for the first column mentions the\r
      *  source file that has a relation to another file.\r
index 89be422..143170d 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -21,7 +21,7 @@
  * Please send your comments on this translation to moazreyad@yahoo.com
  *
  * Note : consider this file as Beta version for testing Arabic output with Doxygen.
- * 
+ *
  * Revision history :
  *
  * 6/2006 : Created initial version of Arabic translation.
@@ -39,19 +39,19 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "arabic"; }
-    
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -59,7 +59,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -68,12 +68,6 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
       return "";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -91,30 +85,30 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
     { return "توثيق تعريفات النوع الأعضاء"; }
-    
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
     { return "توثيق العدديات الأعضاء"; }
-    
+
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
     { return "توثيق الدوال الأعضاء"; }
-    
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "توثيق الحقل"; 
+        return "توثيق الحقل";
       }
       else
       {
-        return "توثيق البيان العضو"; 
+        return "توثيق البيان العضو";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
+    virtual QCString trMore()
     { return "المزيد ..."; }
 
     /*! put in the class documentation */
@@ -132,54 +126,54 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
     { return ", متضمنة كل الأعضاء الموروثة"; }
-    
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result="تم تكوينها آليا بواسطة Doxygen";
       if (s) result+=(QCString)" لـ "+s;
-      result+=" من ملفات المصدر."; 
+      result+=" من ملفات المصدر.";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
     { return "الإسم العددي"; }
-    
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
     { return "القيمة العددية"; }
-    
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
     { return "معرف في"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
     { return "مكونات"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
     { return "الشكل الهرمي للفئة"; }
-    
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "هياكل البيانات";
       }
       else
       {
-        return "قائمة الفئات"; 
+        return "قائمة الفئات";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
     { return "قائمة الملفات"; }
@@ -190,27 +184,27 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "حقول البيانات"; 
+        return "حقول البيانات";
       }
       else
       {
-        return "أعضاء الفئة"; 
+        return "أعضاء الفئة";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "العوام"; 
+        return "العوام";
       }
       else
       {
-        return "أعضاء الملف"; 
+        return "أعضاء الملف";
       }
     }
 
@@ -243,16 +237,16 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "هذه هي هياكل البيانات مع وصف مختصر:"; 
+        return "هذه هي هياكل البيانات مع وصف مختصر:";
       }
       else
       {
         return "هذه هي الفئات ، البناءات ،"
-                       "الإتحادات والواجهات مع وصف مختصر:"; 
+                       "الإتحادات والواجهات مع وصف مختصر:";
       }
     }
 
@@ -260,7 +254,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     virtual QCString trCompoundMembersDescription(bool extractAll)
     {
       QCString result="هذه قائمة بكل ";
-      
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         result+="حقول البناءات والإتحادات";
@@ -274,7 +268,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
         result+=" الموثقة ";
       }
       result+=" مع وصلات إلى ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -285,7 +279,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
           result+="توثيق الفئة لكل عضو:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -304,7 +298,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     {
       QCString result="Here is a list of all ";
       if (!extractAll) result+="documented ";
-      
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         result+="functions, variables, defines, enums, and typedefs";
@@ -314,9 +308,9 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
         result+="file members";
       }
       result+=" with links to ";
-      if (extractAll) 
+      if (extractAll)
         result+="the files they belong to:";
-      else 
+      else
         result+="the documentation:";
       return result;
     }
@@ -338,49 +332,49 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     { return "هذه قائمة بكل المكونات:"; }
 
     /*! This sentences is used in the annotated class/file lists if no brief
-     * description is given. 
+     * description is given.
      */
     virtual QCString trNoDescriptionAvailable()
     { return "لا يوجد وصف متاح"; }
-    
-    // index titles (the project name is prepended for these) 
+
+    // index titles (the project name is prepended for these)
 
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
     { return "التوثيق"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "فهرس المكونات"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "الفهرس الهرمي"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "فهرس هيكل البيانات";
       }
       else
       {
-        return "فهرس الفئة"; 
+        return "فهرس الفئة";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "فهرس الملفات"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
@@ -393,14 +387,14 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "فهرس هيكل البيانات"; 
+        return "فهرس هيكل البيانات";
       }
       else
       {
-        return "فهرس الفئة"; 
+        return "فهرس الفئة";
       }
     }
 
@@ -425,129 +419,111 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
     { return "الكتيب المرجعي"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "التعريفات"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Function Prototypes"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "Typedefs"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
     { return "العدديات"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "الدوال"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "المتغيرات"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
     { return "Enumerator"; }
-    
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
     { return "Define Documentation"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Function Prototype Documentation"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
     { return "Typedef Documentation"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
     { return "Enumeration Type Documentation"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
     { return "Enumerator Documentation"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
     { return "توثيق الدالة"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
     { return "توثيق المتغير"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "هياكل البيانات"; 
+        return "هياكل البيانات";
       }
       else
       {
-        return "الفئات"; 
+        return "الفئات";
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"Generated on "+date;
       if (projName) result+=(QCString)" for "+projName;
       result+=(QCString)" by";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "كتب بواسطة";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
       return (QCString)"Inheritance diagram for "+clName+":";
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
     { return "للاستخدام الداخلي فقط."; }
@@ -587,7 +563,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
     { return "استثناءات"; }
-    
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
     { return "انتجت بواسطة"; }
@@ -595,7 +571,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
     { return "قائمة مجالات الأسماء"; }
@@ -614,17 +590,17 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
      */
     virtual QCString trFriends()
     { return "Friends"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
     { return "Friends And Related Function Documentation"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -655,7 +631,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     virtual QCString trFileReference(const char *fileName)
     {
       QCString result=fileName;
-      result+=" File Reference"; 
+      result+=" File Reference";
       return result;
     }
 
@@ -666,7 +642,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
       result+=" Namespace Reference";
       return result;
     }
-    
+
     virtual QCString trPublicMembers()
     { return "Public Member Functions"; }
     virtual QCString trPublicSlots()
@@ -687,7 +663,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     { return "Private Slots"; }
     virtual QCString trStaticPrivateMembers()
     { return "Static Private Member Functions"; }
-    
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -696,23 +672,23 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=", and ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -729,7 +705,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
       return "Inherited by "+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
@@ -751,17 +727,17 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Here is a list of all ";
       if (!extractAll) result+="documented ";
       result+="namespace members with links to ";
-      if (extractAll) 
+      if (extractAll)
         result+="the namespace documentation for each member:";
-      else 
+      else
         result+="the namespaces they belong to:";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -811,12 +787,6 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "قائمة أبجدية"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -830,7 +800,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     virtual QCString trMainPage()
     { return "الصفحة الرئيسية"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -879,7 +849,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "توثيق دوال البناء والهدم"; 
+      return "توثيق دوال البناء والهدم";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
@@ -936,7 +906,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
       return "ملاحظات";
@@ -1025,7 +995,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     {
       return "منذ";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -1035,12 +1005,12 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     {
       return "Graph Legend";
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "This page explains how to interpret the graphs that are generated "
         "by doxygen.<p>\n"
         "Consider the following example:\n"
@@ -1105,11 +1075,11 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     {
       return "legend";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1122,16 +1092,6 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP Member Functions";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1180,7 +1140,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     /*! The description of the package index page */
     virtual QCString trPackageListDescription()
     {
-               return "هذه هي الحزم مع وصف مختصر لكل منها )إن وجد( :";   
+               return "هذه هي الحزم مع وصف مختصر لكل منها )إن وجد( :";
     }
     /*! The link name in the Quick links header for each page */
     virtual QCString trPackages()
@@ -1197,11 +1157,11 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     {
                return "القيمة:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1217,9 +1177,9 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1240,15 +1200,15 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1256";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1261,93 +1221,93 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     {
       return "فهرس";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool /*first_capital*/, bool singular)
-    { 
+    {
       QCString result("فئة");
       if (!singular)  result="فئات";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool /*first_capital*/, bool singular)
-    { 
+    {
       QCString result("ملف");
       if (!singular)  result="ملفات";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool /*first_capital*/, bool singular)
-    { 
+    {
       QCString result("مجال أسماء");
       if (!singular)  result="مجالات أسماء";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool /*first_capital*/, bool singular)
-    { 
+    {
       QCString result("مجموعة");
       if (!singular)  result="مجموعات";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool /*first_capital*/, bool singular)
-    { 
+    {
       QCString result("صفحة");
       if (!singular)  result="صفحات";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool /*first_capital*/, bool singular)
-    { 
+    {
       QCString result("عضو");
       if (!singular)  result="أعضاء";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trField(bool /*first_capital*/, bool singular)
-    { 
+    {
       QCString result("حقل");
       if (!singular)  result="حقول";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool /*first_capital*/, bool singular)
-    { 
+    {
       QCString result("عام");
       if (!singular)  result="عوام";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1357,10 +1317,10 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool /*first_capital*/, bool singular)
-    {                                                                         
+    {
       QCString result("المؤلف");
       if (!singular)  result="المؤلفون";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1378,7 +1338,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1410,8 +1370,8 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1422,7 +1382,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1442,43 +1402,43 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "أنواع الحزمة";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "دوال الحزمة";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "دوال ساكنة للحزمة";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "خصائص الحزمة";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "خصائص ساكنة للحزمة";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1495,14 +1455,6 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "بحث عن";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1514,7 +1466,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1528,13 +1480,13 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
       {
         return "وثيقة مناسبة لما بحثت عنه. <b>1</b> تم العثور على.";
       }
-      else 
+      else
       {
         return "وثيقة مطابقة لما بحثت عنه <b>$num</b> تم إيجاد ."
                "وتم ترتيبهم بحيث يكون الأقرب لنتيجة البحث أولا.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1575,7 +1527,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
     virtual QCString trDirectories()
     { return "الأدلة"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1593,10 +1545,10 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Director" : "director"));
       if (singular) result+="y"; else result+="ies";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
index e67ad9f..b136f59 100644 (file)
@@ -28,7 +28,7 @@
  *   20080206:
  *      - Method trTypeContraints() renamed to trTypeConstraints().
  *   20071216:
- *     - New methods since 1.5.4 updated. 
+ *     - New methods since 1.5.4 updated.
  *   Previous history removed from this version.
  */
 #ifndef TRANSLATOR_BR_H
@@ -62,12 +62,6 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
       return "\\usepackage[brazil]{babel}";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -247,7 +241,7 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
     virtual QCString trCompoundMembersDescription(bool extractAll)
     {
       QCString result="Esta é a lista de ";
-      
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         result+="todas as estruturas e campos de uniões ";
@@ -411,12 +405,6 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
     { return "Definições e Macros"; }
 
     /*! This is used in the documentation of a file as a header before the
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Protótipos de Funções"; }
-
-    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
@@ -453,12 +441,6 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
     { return "Definições e macros"; }
 
     /*! This is used in the documentation of a file/namespace before the list
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Protótipos das funções"; }
-
-    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
@@ -507,12 +489,6 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
       result+=(QCString)" por";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "escrito por";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
@@ -775,12 +751,6 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Lista Alfabética"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -1079,16 +1049,6 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "Métodos DCOP";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1439,14 +1399,6 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header
-     *  of each page before the field where one can enter the text to search
-     *  for.
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Procurar por";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1485,7 +1437,7 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
     {
       return "Resultados:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.8
 //////////////////////////////////////////////////////////////////////////
@@ -1519,7 +1471,7 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
     virtual QCString trDirectories()
     { return "Diretórios"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1539,10 +1491,10 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Diretório" : "diretório"));
       if (!singular) result+="s";
-      return result; 
+      return result;
     }
 //////////////////////////////////////////////////////////////////////////
 // new since 1.4.1
@@ -1556,7 +1508,7 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
        return "Este é um método provido por conveniência. "
                        "Ele difere do método acima apenas na lista de "
                        "argumentos que devem ser utilizados.";
-    }    
+    }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.4.6
@@ -1568,22 +1520,22 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
       return "Este é o diagrama das funções que utilizam esta função:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
     { return "Documentação da enumeração"; }
 
-  
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Documentação de Função Membro/Subrotina"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Lista de Tipos de Dados"; }
 
@@ -1601,18 +1553,18 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
       QCString result="Esta é a lista de todos os membros ";
       if (!extractAll) result+="documentados ";
       result+="dos tipos de dados com links para ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="a documentação dos tipos de dados para cada membro:";
       }
-      else 
+      else
       {
         result+="os tipos de dados a que pertencem:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1624,24 +1576,24 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
     virtual QCString trTypeDocumentation()
     { return "Documentação dos Tipos de Dados"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Funções/Subrotinas"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Documentação da Função/Subrotina"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Tipos de Dados"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Lista de Módulos"; }
@@ -1663,7 +1615,7 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
       QCString result = (QCString)"Referência ";
 
       if (isTemplate) result+="da Template ";
-      
+
       switch(compType)
       {
         case ClassDef::Class:      result+="do Modulo "; break;
@@ -1675,54 +1627,54 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
         case ClassDef::Exception:  result+="da Exceção "; break;
         default: break;
       }
-      result += clName; 
-     
+      result += clName;
+
       return result;
     }
     /*! used as the title of the HTML page of a module (Fortran) */
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result = "Referência do Módulo ";
-      result += namespaceName;        
+      result += namespaceName;
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Membros do Módulo"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Esta é a lista de todos os membros ";
       if (!extractAll) result+="documentados ";
       result+="dos módulos com links para ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="a documentação dos módulos para cada membro:";
       }
-      else 
+      else
       {
         result+="os módulos a que pertencem:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Índice dos Módulos"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Modulo" : "modulo"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1743,41 +1695,41 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
         case ClassDef::Exception:  result+="esta exceção "; break;
         default: break;
       }
-      
+
       result+=" foi gerada a partir do";
-      if (single) 
+      if (single)
        result+=" seguinte arquivo:";
       else
        result+="s seguintes arquivos:";
-      
+
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Tipo" : "tipo"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Subprograma" : "subprograma"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! C# Type Contraint list */
     virtual QCString trTypeConstraints()
     {
       return "Restrições do Tipo";
-    }    
+    }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.6.0 (mainly for the new search engine)
@@ -1818,12 +1770,6 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Grafo de dependência de diretórios para "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1842,7 +1788,7 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
       return (QCString)"Inclui arquivo em "+name;
     }
 
-    /** Compiles a date string. 
+    /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
      *  @param day Day of the Month: 1..31
@@ -1868,7 +1814,7 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
       }
       return sdate;
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.7.5
 //////////////////////////////////////////////////////////////////////////
@@ -1887,6 +1833,6 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
 
     /*! Header for the graph showing the directory dependencies */
     virtual QCString trDirDepGraph(const char *name)
-    { return QCString("Grafo de dependências do diretório ")+name+":"; }    
+    { return QCString("Grafo de dependências do diretório ")+name+":"; }
 };
 #endif
index f888dc1..1291a8c 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -18,7 +18,7 @@
 #ifndef TRANSLATOR_CA_H
 #define TRANSLATOR_CA_H
 
-/*! 
+/*!
  When defining a translator class for the new language, follow
  the description in the documentation.  One of the steps says
  that you should copy the translator_en.h (this) file to your
@@ -45,19 +45,19 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "catalan"; }
-    
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -65,7 +65,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -75,12 +75,6 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
       return "\\usepackage[catalan]{babel}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -98,30 +92,30 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
     { return "Documentació de les Definicions de Tipus Membre"; }
-    
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
     { return "Documentació de les Enumeracions Membre"; }
-    
+
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
     { return "Documentació de les Funcions Membre"; }
-    
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Documentació dels Camps"; 
+        return "Documentació dels Camps";
       }
       else
       {
-        return "Documentació de les Dades Membre"; 
+        return "Documentació de les Dades Membre";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
+    virtual QCString trMore()
     { return "Més..."; }
 
     /*! put in the class documentation */
@@ -139,77 +133,77 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
     { return ", incloent tots els membres heretats."; }
-    
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result="Generat automàticament per Doxygen";
       if (s) result+=(QCString)" per a "+s;
-      result+=" a partir del codi font."; 
+      result+=" a partir del codi font.";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
     { return "nom de la enum"; }
-    
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
     { return "valors de la enum"; }
-    
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
     { return "definit a"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
     { return "Mòduls"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
     { return "Jerarquia de Classes"; }
-    
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Estructures de Dades";
       }
       else
       {
-        return "Llista de Classes"; 
+        return "Llista de Classes";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
     { return "Llista dels Fitxers"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Camps de Dades"; 
+        return "Camps de Dades";
       }
       else
       {
-        return "Membres de Classes"; 
+        return "Membres de Classes";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Globals"; 
+        return "Globals";
       }
       else
       {
@@ -246,16 +240,16 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Aquestes són les estructures de dades acompanyades amb breus descripcions:"; 
+        return "Aquestes són les estructures de dades acompanyades amb breus descripcions:";
       }
       else
       {
         return "Aquestes són les classes, estructures, "
-               "unions i interfícies acompanyades amb breus descripcions:"; 
+               "unions i interfícies acompanyades amb breus descripcions:";
       }
     }
 
@@ -276,7 +270,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
         result+=" documentats";
       }
       result+=" amb enllaços a ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -287,7 +281,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
           result+="la documentació de la classe per a cada membre:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -315,9 +309,9 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
         if (!extractAll) result+=" documentats";
       }
       result+=" amb enllaços ";
-      if (extractAll) 
+      if (extractAll)
         result+="als fitxers als quals corresponen:";
-      else 
+      else
         result+="a la documentació:";
       return result;
     }
@@ -333,45 +327,45 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     /*! This is an introduction to the page with the list of class/file groups */
     virtual QCString trModulesDescription()
     { return "Aquesta és la llista de mòduls:"; }
-    
-    // index titles (the project name is prepended for these) 
+
+    // index titles (the project name is prepended for these)
 
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
     { return ": Documentació"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "Índex de Mòduls"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "Índex Jeràrquic"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "Índex d'Estructures de Dades";
       }
       else
       {
-        return "Índex de Classes"; 
+        return "Índex de Classes";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "Índex de Fitxers"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
@@ -384,14 +378,14 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Documentació de les Estructures de Dades";
       }
       else
       {
-        return "Documentació de les Classes"; 
+        return "Documentació de les Classes";
       }
     }
 
@@ -416,93 +410,81 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
     { return "Manual de Referència"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "Definicions"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Prototipus de Funcions"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "Definicions de Tipus"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
     { return "Enumeracions"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "Funcions"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "Variables"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
     { return "Valors de les Enumeracions"; }
-    
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
     { return "Documentació de les Definicions"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Documentació de les Funcions Prototipus"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
     { return "Documentació de les Definicions de Tipus"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
     { return "Documentació dels Tipus de les Enumeracions"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
     { return "Documentació de les Funcions"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
     { return "Documentació de les Variables"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Estructures de Dades"; 
+        return "Estructures de Dades";
       }
       else
       {
@@ -510,29 +492,23 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"Generat a "+date;
       if (projName) result+=(QCString)" per a "+projName;
       result+=(QCString)" per";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "escrit per";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
       return (QCString)"Diagrama d'Herència per a "+clName+":";
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
     { return "Tan sols per a ús intern."; }
@@ -564,7 +540,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
     { return "Excepcions"; }
-    
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
     { return "Generat per"; }
@@ -572,7 +548,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
     { return "Llista dels Espais de Noms"; }
@@ -591,17 +567,17 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
      */
     virtual QCString trFriends()
     { return "Classes Amigues"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
     { return "Documentació de funcions amigues i relacionades"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -632,7 +608,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     virtual QCString trFileReference(const char *fileName)
     {
       QCString result="Referència del Fitxer ";
-      result+=fileName; 
+      result+=fileName;
       return result;
     }
 
@@ -643,7 +619,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
       result+=namespaceName;
       return result;
     }
-    
+
     virtual QCString trPublicMembers()
     { return "Mètodes públics"; }
     virtual QCString trPublicSlots()
@@ -664,7 +640,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     { return "Slots Privats"; }
     virtual QCString trStaticPrivateMembers()
     { return "Mètodes Privats Estàtics"; }
-    
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -673,23 +649,23 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=" i ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -706,7 +682,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
       return "Heretat per "+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
@@ -728,17 +704,17 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Aquesta és la llista de tots els membres de l'espai de noms ";
       if (!extractAll) result+="documentats ";
       result+="amb enllaços a ";
-      if (extractAll) 
+      if (extractAll)
         result+="la documentació de l'espai de noms de cada membre:";
-      else 
+      else
         result+="l'espai de noms al qual corresponen:";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -792,12 +768,6 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Llista Alfabètica"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -811,7 +781,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     virtual QCString trMainPage()
     { return "Pàgina principal"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -856,7 +826,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Documentació del Constructor i el Destructor"; 
+      return "Documentació del Constructor i el Destructor";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
@@ -913,7 +883,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
       return "Nota";
@@ -1002,7 +972,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     {
       return "Des de";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -1012,12 +982,12 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     {
       return "Llegenda del Gràfic";
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "Aquesta pàgina explica com s'interpreten els gràfics generats per doxygen.<p>\n"
         "Considera aquest exemple:\n"
         "\\code\n"
@@ -1075,11 +1045,11 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     {
       return "llegenda";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1092,16 +1062,6 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "Mètodes DCOP";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1157,11 +1117,11 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     {
       return "Valor:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1177,9 +1137,9 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1200,15 +1160,15 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1252";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1221,82 +1181,82 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     {
       return "Índex";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Classe" : "classe"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Fitxer" : "fitxer"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Namespace" : "namespace"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Grup" : "grup"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Pàgin" : "pàgin"));
       if (!singular)  result+="es"; else result+="a";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Membre" : "membre"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Global" : "global"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1306,10 +1266,10 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Autor" : "autor"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1327,7 +1287,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1359,8 +1319,8 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1371,7 +1331,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1391,43 +1351,43 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Tipus de paquets";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Funcions de Paquet";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Funcions Estàtiques de Paquet";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Atributs de Paquet";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Atributs Estàtics de Paquet";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1444,14 +1404,6 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Buscar";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1463,7 +1415,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1477,13 +1429,13 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
       {
         return "Trobat <b>1</b> document.";
       }
-      else 
+      else
       {
         return "Trobats <b>$num</b> documents. "
                "Mostrant els millors resultats primer.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1524,7 +1476,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     virtual QCString trDirectories()
     { return "Directoris"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1542,10 +1494,10 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Directori" : "directori"));
       if (!singular) result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1572,7 +1524,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
       return "Gràfic de crides a aquesta funció:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
@@ -1581,12 +1533,12 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Documentació de les Funcions/Subrutines Membre"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Llista de Tipus de Dades"; }
 
@@ -1607,18 +1559,18 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
         result+=" documentats";
       }
       result+=" amb enllaços a ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         result+="la documentació del tipus de dades per a cada membre:";
       }
-      else 
+      else
       {
         result+="els tipus de dades a que pertanyen:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1630,24 +1582,24 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     virtual QCString trTypeDocumentation()
     { return "Documentació dels Tipus de Dades"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Funcions/Subrutines"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Documentació de les Funcions/Subrutines"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Tipus de Dades"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Llista de Mòduls"; }
@@ -1690,7 +1642,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
       result+=namespaceName;
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Membres del Mòdul"; }
@@ -1704,32 +1656,32 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
         result+=" documentats";
       }
       result+=" amb enllaços a ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         result+="la documentació del mòdul per a cada membre:";
       }
-      else 
+      else
       {
         result+="els mòduls a que pertanyen:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Índex de Mòduls"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Mòdul" : "mòdul"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1760,25 +1712,25 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool)
-    { 
+    {
       QCString result((first_capital ? "Tipus" : "tipus"));
       //if (!singular)  result+="s";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Subprogram" : "subprogram"));
       if (!singular)  result+="es";
       else            result+="a";
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
@@ -1825,12 +1777,6 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Graf de dependència de directoris per a "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1849,7 +1795,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
       return (QCString)"Inclou fitxer a "+name;
     }
 
-    /** Compiles a date string. 
+    /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
      *  @param day Day of the Month: 1..31
index ba6e078..f8e03c5 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -33,13 +33,13 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
      * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in the language.cpp.
      */
-    
+
     virtual QCString idLanguage()
     { return "chinese"; }
 
-    /*! Used to get the LaTeX command(s) for the language support. 
+    /*! Used to get the LaTeX command(s) for the language support.
      * This method should return string with commands that switch
-     * LaTeX to the desired language.  For example 
+     * LaTeX to the desired language.  For example
      * <pre>"\\usepackage[german]{babel}\n"
      * </pre>
      * or
@@ -47,7 +47,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
      * "\\usepackage[latin2]{inputenc}\n"
      * "\\usepackage[T1]{fontenc}\n"
      * </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -56,12 +56,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
       return "";
     }
 
-
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    { return "UTF-8"; }
-
-    /*! used in the compound documentation before a list of related functions. 
+    /*! used in the compound documentation before a list of related functions.
      */
     virtual QCString trRelatedFunctions()
     { return "相关函数"; }
@@ -70,8 +65,8 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     virtual QCString trRelatedSubscript()
     { return "(请注意: 这些不是成员函数.)"; }
 
-    /*! header that is put before the detailed description of files, 
-     * classes and namespaces. 
+    /*! header that is put before the detailed description of files,
+     * classes and namespaces.
      */
     virtual QCString trDetailedDescription()
     { return "详细描述"; }
@@ -90,14 +85,14 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
 
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "结构体成员变量说明"; 
+        return "结构体成员变量说明";
       }
       else
       {
-        return "类成员变量说明"; 
+        return "类成员变量说明";
       }
     }
 
@@ -128,7 +123,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     { QCString result;
       result = "由"CN_SPC"Doyxgen"CN_SPC"通过分析"CN_SPC;
       if (s) result += ((QCString)s+CN_SPC"的"CN_SPC);
-      result+= "源代码自动生成."; 
+      result+= "源代码自动生成.";
       return result;
     }
 
@@ -146,7 +141,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
@@ -158,12 +153,12 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
 
     /*! This is put above each page as a link to the list of annotated class */
      virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
-        return "结构体"; 
+        return "结构体";
       }
       else {
-        return "类列表"; 
+        return "类列表";
       }
     }
 
@@ -173,22 +168,22 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
-      if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { 
-        return "成员变量"; 
+    {
+      if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
+        return "成员变量";
       }
       else {
-        return "类成员"; 
+        return "类成员";
       }
     }
 
     /*! This is put above each page as a link to all member of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
-        return "全局定义"; 
+        return "全局定义";
       } else {
-        return "文件成员"; 
+        return "文件成员";
       }
     }
 
@@ -215,14 +210,14 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     }
 
     virtual QCString trCompoundListDescription()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "这里列出了所有结构体,并附带简要说明:"; 
+        return "这里列出了所有结构体,并附带简要说明:";
       }
       else
       {
-        return "这里列出了所有类、结构、联合以及接口定义等,并附带简要说明:"; 
+        return "这里列出了所有类、结构、联合以及接口定义等,并附带简要说明:";
       }
     }
 
@@ -261,18 +256,18 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     virtual QCString trFileMembersDescription(bool extractAll)
     {
       QCString result="这里列出了所有";
-      if (!extractAll) 
+      if (!extractAll)
         result +="文档化的";
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
         result +="函数,变量,宏,枚举和类型定义等,并附带";
-      } 
+      }
       else {
         result +="文件成员,并附带";
       }
 
-      if (extractAll) 
+      if (extractAll)
         result+="其所属的文件:";
-      else 
+      else
         result+="其详细说明:";
       return result;
     }
@@ -296,30 +291,30 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     { return "继承关系索引"; }
 
     virtual QCString trCompoundIndex()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "结构体索引"; 
-      } 
+        return "结构体索引";
+      }
       else {
-        return "类索引"; 
+        return "类索引";
       }
     }
 
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "文件索引"; }
 
     virtual QCString trModuleDocumentation()
     { return "模块说明"; }
 
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "结构体说明";
       }
       else {
-        return "类说明"; 
+        return "类说明";
       }
     }
 
@@ -338,9 +333,6 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     virtual QCString trDefines()
     { return "宏定义"; }
 
-    virtual QCString trFuncProtos()
-    { return "函数原型"; }
-
     virtual QCString trTypedefs()
     { return "类型定义"; }
 
@@ -360,9 +352,6 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     virtual QCString trDefineDocumentation()
     { return "宏定义说明"; }
 
-     virtual QCString trFunctionPrototypeDocumentation()
-    { return "函数原型说明"; }
-
     virtual QCString trTypedefDocumentation()
     { return "类型定义说明"; }
 
@@ -376,13 +365,13 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     { return "变量说明"; }
 
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "结构体";
       }
       else {
-        return "类"; 
+        return "类";
       }
     }
 
@@ -393,11 +382,6 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
       return result;
     }
 
-    virtual QCString trWrittenBy()
-    {
-      return "作者";
-    }
-
     virtual QCString trClassDiagram(const char *clName)
     {
       return (QCString)"类"CN_SPC+clName+CN_SPC"继承关系图:";
@@ -429,11 +413,11 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
 
      virtual QCString trGeneratedBy()
     { return "制作者"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
-// new since 0.49-990307 
+// new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
      virtual QCString trNamespaceList()
     { return "命名空间列表"; }
 
@@ -451,10 +435,10 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
      virtual QCString trRelatedFunctionDocumentation()
     { return "友元及相关函数文档"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -485,7 +469,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     virtual QCString trFileReference(const char *fileName)
     {
       QCString result=fileName;
-      result+=CN_SPC"文件参考"; 
+      result+=CN_SPC"文件参考";
       return result;
     }
 
@@ -495,8 +479,8 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
       result+=CN_SPC"命名空间参考";
       return result;
     }
-    
-    // these are for the member sections of a class, struct or union 
+
+    // these are for the member sections of a class, struct or union
     virtual QCString trPublicMembers()
     { return "Public 成员函数"; }
 
@@ -517,17 +501,17 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
 
     virtual QCString trStaticProtectedMembers()
     { return "静态 Protected 成员函数"; }
-    
+
     virtual QCString trPrivateMembers()
     { return "Private 成员函数"; }
-    
+
     virtual QCString trPrivateSlots()
     { return "Private 槽"; }
-    
+
     virtual QCString trStaticPrivateMembers()
     { return "静态 Private 成员函数"; }
-    
-    // end of member sections 
+
+    // end of member sections
     virtual QCString trWriteList(int numEntries)
     {
       // this function is used to produce a comma-separated list of items.
@@ -535,23 +519,23 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=","CN_SPC;
           else                // the fore last entry
             result+=CN_SPC", 以及"CN_SPC;
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -565,15 +549,15 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     {
       return "被"CN_SPC+trWriteList(numEntries)+CN_SPC"继承.";
     }
-    
-    /*! used in member documentation blocks to produce a list of 
+
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
     {
       return "重载"CN_SPC+trWriteList(numEntries)+CN_SPC".";
     }
-    
+
     /*! used in member documentation blocks to produce a list of
      *  all member that overwrite the implementation of this member.
      */
@@ -585,21 +569,21 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     /*! This is put above each page as a link to all members of namespaces. */
     virtual QCString trNamespaceMembers()
     { return "命名空间成员"; }
-    
+
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
        QCString result="这里列出了所有";
       if (!extractAll) result+="文档化的";
       result+="命名空间成员,并附带";
-      if (extractAll) 
+      if (extractAll)
         result+="其说明文档:";
-      else 
+      else
         result+="其所属的文件:";
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -650,12 +634,6 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "按字典顺序排序的列表"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -669,7 +647,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     virtual QCString trMainPage()
     { return "首页"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -717,7 +695,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "构造及析构函数说明"; 
+      return "构造及析构函数说明";
     }
 
     /*! Used in the file documentation to point to the corresponding sources. */
@@ -785,7 +763,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
       return "注解";
@@ -799,7 +777,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     virtual QCString trPublicAttribs()
     {
        if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-       { 
+       {
          return "成员变量";
        }
        else {
@@ -887,7 +865,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     {
       return "自从";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -954,7 +932,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
         "<li>%黄色虚线箭头表示模板类实例和模板类之间的关系. 箭头旁边标明了模板类实例化的参数.</li>\n"
         "</ul>\n";
     }
-    
+
     /*! text for the link to the legend page */
     virtual QCString trLegend()
     {
@@ -964,7 +942,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -978,15 +956,6 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     }
 
 //////////////////////////////////////////////////////////////////////////
-//// new since 1.2.1
-////////////////////////////////////////////////////////////////////////////
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP"CN_SPC"成员函数";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 //// new since 1.2.2
 ////////////////////////////////////////////////////////////////////////////
 
@@ -1024,7 +993,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     {
       return (QCString)"包"CN_SPC+name;
     }
-    
+
     /*! Title of the package index page */
     virtual QCString trPackageList()
     {
@@ -1034,7 +1003,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     /*! The description of the package index page */
     virtual QCString trPackageListDescription()
     {
-       return "这里列出所有的包,附带简要说明(如果有的话):"; 
+       return "这里列出所有的包,附带简要说明(如果有的话):";
     }
 
     /*! The link name in the Quick links header for each page */
@@ -1066,9 +1035,9 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1089,14 +1058,14 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "936";
     }
 
-    /*! Used as ansicpg for RTF fcharset 
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1111,102 +1080,102 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
       return "索引";
     }
 
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool /*first_capital*/, bool /*singular*/)
-    { 
+    {
       /*
        QCString result((first_capital ? "Class" : "class"));
       if (!singular)  result+="es";
-      return result; 
+      return result;
       */
       return "类";
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool /*first_capital*/, bool /*singular*/)
-    { 
+    {
       /*
        QCString result((first_capital ? "File" : "file"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
       */
       return "文件";
 
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool /*first_capital*/, bool /*singular*/)
-    { 
+    {
       /*
        QCString result((first_capital ? "Namespace" : "namespace"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
       */
       return "命名空间";
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool /*first_capital*/, bool /*singular*/)
-    { 
+    {
       /*
        QCString result((first_capital ? "Group" : "group"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
       */
       return "组";
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool /*first_capital*/, bool /*singular*/)
-    { 
+    {
       /*
        QCString result((first_capital ? "Page" : "page"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
       */
       return "页";
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool /*first_capital*/, bool /*singular*/)
-    { 
+    {
       /*
        QCString result((first_capital ? "Member" : "member"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
       */
       return "成员";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool /*first_capital*/, bool /*singular*/)
-    { 
+    {
       /*
        QCString result((first_capital ? "Global" : "global"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
       */
       return "全局";
     }
@@ -1218,11 +1187,11 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool /*first_capital*/, bool /*singular*/)
-    {                                                                         
+    {
       /*
        QCString result((first_capital ? "Author" : "author"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
       */
       return "作者";
     }
@@ -1242,7 +1211,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1277,8 +1246,8 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1289,14 +1258,14 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
     {
       return "事件";
     }
-    
+
     /*! Header used for the documentation section of a class' events. */
     virtual QCString trEventDocumentation()
     {
@@ -1310,54 +1279,54 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "包类型";
     }
-    
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "包函数";
     }
-    
-    /*! Used as a heading for a list of static Java class functions with 
+
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "静态包函数";
     }
-    
-    /*! Used as a heading for a list of Java class variables with package 
+
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "包属性";
     }
-    
-    /*! Used as a heading for a list of static Java class variables with 
+
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
     {
       return "静态包属性";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
     {
       return "全部";
     }
-    
+
     /*! Put in front of the call graph for a function. */
     virtual QCString trCallGraph()
     {
@@ -1368,14 +1337,6 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "搜索"CN_SPC;
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1383,12 +1344,12 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     {
       return "搜索结果";
     }
-    
+
     /*! This string is put just before listing the search results. The
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1402,13 +1363,13 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
       {
         return "找到<b>1</b>篇与您查询相符的文档.";
       }
-      else 
+      else
       {
         return "找到<b>$num</b>篇与您查询相符的文档."
                "优先显示最符合的文档.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1453,7 +1414,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     virtual QCString trDirectories()
     { return "目录"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1467,7 +1428,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     virtual QCString trDirReference(const char *dirName)
     {
       QCString result=dirName;
-      result+=CN_SPC"目录参考"; 
+      result+=CN_SPC"目录参考";
       return result;
     }
 
@@ -1475,10 +1436,10 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool /*first_capital*/, bool /*singular*/)
-    { 
+    {
       return "目录";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.4.1
 //////////////////////////////////////////////////////////////////////////
@@ -1502,23 +1463,23 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
       return "这是这个函数的调用关系图:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
-    { 
+    {
       return "枚举变量说明";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "成员函数/子程序说明"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "数据类型列表"; }
 
@@ -1540,18 +1501,18 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
       }
       result+="数据类型成员,并附带";
       //result+=" with links to ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         result+="其说明文档:";
       }
-      else 
+      else
       {
         result+="其所属的文件:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1564,25 +1525,25 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     virtual QCString trTypeDocumentation()
     { return "数据类型文档"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "函数/子程序"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "函数/子程序说明"; }
 
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "数据类型"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "模块列表"; }
@@ -1617,30 +1578,30 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
       result+="参考手册";
       return result;
     }
-    
+
     /*! used as the title of the HTML page of a module (Fortran) */
     virtual QCString trModuleReference(const char *namespaceName)
     {
-      QCString result=namespaceName;  
+      QCString result=namespaceName;
       result += CN_SPC"模块参考手册";
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "模块成员"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       // QCString result="Here is a list of all ";
       // if (!extractAll) result+="documented ";
       // result+="module members with links to ";
-      // if (extractAll) 
+      // if (extractAll)
       // {
       //   result+="the module documentation for each member:";
       // }
-      // else 
+      // else
       // {
       //   result+="the modules they belong to:";
       // }
@@ -1652,22 +1613,22 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
       }
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     // { return "Modules Index"; }
     { return "模块索引"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool, bool)
-    {       
+    {
       // QCString result((first_capital ? "Module" : "module"));
       // if (!singular)  result+="s";
-      // return result; 
+      // return result;
       return "模块";
     }
     /*! This is put at the bottom of a module documentation page and is
@@ -1675,7 +1636,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
      */
     virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
         bool)
-    { 
+    {
       QCString result="该";
       switch(compType)
       {
@@ -1691,22 +1652,22 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
       result+=CN_SPC"的文档由以下文件生成:";
       return result;
     }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool, bool)
-    { 
+    {
       return "类型";
     }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool, bool)
-    { 
+    {
       return "子程序";
     }
 
@@ -1715,7 +1676,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     {
       return "类型限制";
     }
-  
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.6.0
 //////////////////////////////////////////////////////////////////////////
@@ -1725,22 +1686,22 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     // unsure
     return QCString(name)+CN_SPC"关系";
   }
-  
+
     virtual QCString trLoading()
   {
     return "载入中...";
   }
-    
+
   virtual QCString trGlobalNamespace()
   {
     return "全局命名空间";
   }
-  
+
     virtual QCString trSearching()
   {
     return "搜索中...";
   }
-    
+
   virtual QCString trNoMatches()
   {
     return "未找到";
@@ -1750,16 +1711,11 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
 // new since 1.6.3
 //////////////////////////////////////////////////////////////////////////
 
-  virtual QCString trDirDependency(const char *name)
-  {
-    return QCString(name)+CN_SPC"的目录依赖关系图";
-  }
-    
   virtual QCString trFileIn(const char *name)
   {
     return (QCString)"文件在"+CN_SPC+name;
   }
-  
+
   virtual QCString trIncludesFileIn(const char *name)
   {
     return (QCString)"在"CN_SPC+name+CN_SPC"中引用";
@@ -1771,11 +1727,11 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
   {
     static const char *days[]   = { "一","二","三","四","五","六","日" };
       static const char *months[] = { "一","二","三","四","五","六","七","八","九","十","十一","十二" };
-      
+
     QCString sdate;
-      
+
     sdate.sprintf("%d年"CN_SPC"%s月"CN_SPC"%d日"CN_SPC"星期%s",year, months[month-1], day, days[dayOfWeek-1]);
-      
+
     if (includeTime)
     {
       QCString stime;
@@ -1784,7 +1740,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     }
     return sdate;
   }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.7.5
 //////////////////////////////////////////////////////////////////////////
@@ -1801,11 +1757,11 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     virtual QCString trDirDepGraph(const char *name)
     {
       return QCString(name)+CN_SPC"的目录依赖关系图";
-    } 
-    
+    }
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.8.0
-//////////////////////////////////////////////////////////////////////////  
+//////////////////////////////////////////////////////////////////////////
 
     /*! Detail level selector shown for hierarchical indices */
     virtual QCString trDetailLevel()
@@ -1831,8 +1787,8 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
     virtual QCString trInheritedFrom(const char *members,const char *what)
     { return QCString(members)+CN_SPC"继承自"CN_SPC+what; }
 
-    /*! Header of the sections with inherited members specific for the 
-     *  base class(es) 
+    /*! Header of the sections with inherited members specific for the
+     *  base class(es)
      */
     virtual QCString trAdditionalInheritedMembers()
     { return "额外继承的成员函数"; }
index 31d645f..2793519 100644 (file)
@@ -20,6 +20,7 @@
 
 // Updates:
 // --------
+// 2013/04/11 - Updates for "new since 1.8.4".
 // 2012/07/31 - Updates for "new since 1.8.2".
 // 2012/04/10 - Updates for "new since 1.8.0".
 // 2011/07/28 - Updates for "new since 1.7.5".
@@ -84,7 +85,7 @@
 //    something else.  It is difficult to find the general translation
 //    for all kinds in the Czech language.
 
-class TranslatorCzech : public TranslatorAdapter_1_8_2
+class TranslatorCzech : public Translator
 {
   public:
     // --- Language control methods -------------------
@@ -98,12 +99,6 @@ class TranslatorCzech : public TranslatorAdapter_1_8_2
              "\\usepackage[czech]{babel}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-        return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -459,12 +454,6 @@ class TranslatorCzech : public TranslatorAdapter_1_8_2
     { return "Definice maker"; }
 
     /*! This is used in the documentation of a file as a header before the
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Prototypy"; }
-
-    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
@@ -501,12 +490,6 @@ class TranslatorCzech : public TranslatorAdapter_1_8_2
     { return "Dokumentace k definicím maker"; }
 
     /*! This is used in the documentation of a file/namespace before the list
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Dokumentace prototypů"; }
-
-    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
@@ -557,12 +540,6 @@ class TranslatorCzech : public TranslatorAdapter_1_8_2
       result += " programem";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return " -- autor ";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
@@ -838,12 +815,6 @@ class TranslatorCzech : public TranslatorAdapter_1_8_2
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Rejstřík tříd"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -1157,16 +1128,6 @@ class TranslatorCzech : public TranslatorAdapter_1_8_2
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "Metody DCOP";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1476,13 +1437,6 @@ class TranslatorCzech : public TranslatorAdapter_1_8_2
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the index
-     *  of each page before the search field.
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Vyhledat";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1861,12 +1815,6 @@ class TranslatorCzech : public TranslatorAdapter_1_8_2
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Graf závislosti adresářů pro "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -2032,6 +1980,62 @@ class TranslatorCzech : public TranslatorAdapter_1_8_2
     }
 
 //////////////////////////////////////////////////////////////////////////
+// new since 1.8.4
+//////////////////////////////////////////////////////////////////////////
+
+    /** old style UNO IDL services: implemented interfaces */
+    virtual QCString trInterfaces()
+    { return "Exportovaná rozhraní"; }
+
+    /** old style UNO IDL services: inherited services */
+    virtual QCString trServices()
+    { return "Začleněné služby"; }
+
+    /** UNO IDL constant groups */
+    virtual QCString trConstantGroups()
+    { return "Konstantní skupiny"; }
+
+    /** UNO IDL constant groups */
+    virtual QCString trConstantGroupReference(const char *namespaceName)
+    {
+      QCString result="Konstantní skupiny z ";
+      result += namespaceName;
+      return result;
+    }
+    /** UNO IDL service page title */
+    virtual QCString trServiceReference(const char *sName)
+    {
+      QCString result="Popis služby ";
+      result += sName;
+      return result;
+    }
+    /** UNO IDL singleton page title */
+    virtual QCString trSingletonReference(const char *sName)
+    {
+      QCString result="Popis singletonu ";
+      result += sName;
+      return result;
+    }
+    /** UNO IDL service page */
+    virtual QCString trServiceGeneratedFromFiles(bool single)
+    {
+      // single is true implies a single file
+      QCString result="Dokumentace k této službě byla generována ";
+      if (single) result+="z následujícího souboru:";
+      else        result+="z následujících souborů:";
+      return result;
+    }
+    /** UNO IDL singleton page */
+    virtual QCString trSingletonGeneratedFromFiles(bool single)
+    {
+      // single is true implies a single file
+      QCString result="Dokumentace k tomuto singletonu byla generována ";
+      if (single) result+="z následujícího souboru:";
+      else        result+="z následujících souborů:";
+      return result;
+    }
+
+//////////////////////////////////////////////////////////////////////////
 
 };
 
index ed9bf29..d13d99c 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -36,7 +36,7 @@
 //   2001/04/17 Jens Seidel (jensseidel@users.sourceforge.net)
 //    - fixed typos ("Vererbunsbeziehung", "gesch&uumltzter")
 //    - use umlauts instead of html code ("&auml;",...)
-//      this makes it easier to read and fixes three problems (two in 
+//      this makes it easier to read and fixes three problems (two in
 //      \code segment)
 //
 //   2001/04/23 Jens Seidel (jensseidel@users.sourceforge.net)
 //
 //   2003/09/11 Jens Seidel (jensseidel@users.sourceforge.net)
 //    - Updated for "new since 1.3.1" version
-//  
+//
 //   2003/09/24 Jens Seidel (jensseidel@users.sourceforge.net)
 //    - Updated a few strings which changed in CVS revision 1.22
 //      ("compound" vs. "class")
-//    
+//
 //   2004/08/01 Jens Seidel (jensseidel@users.sourceforge.net)
 //    - Updated for "new since 1.3.8" version
-//    
+//
 //   2004/09/19 Jens Seidel (jensseidel@users.sourceforge.net)
 //    - Updated for "new since 1.3.9" version
-//    
+//
 //   2004/09/25 Jens Seidel (jensseidel@users.sourceforge.net)
 //    - changed "Typendefinitionen" to "Typdefinitionen" in
 //      trFileMembersDescription() and trTypedefs()
 //    - added a dash after (file, ...) names and in front of description
 //    - changed "Eigenschaften" to "Propertys" (yeah, not ..."ies")
-//    
+//
 //   2005/03/20 Jens Seidel (jensseidel@users.sourceforge.net)
 //    - Updated for "new since 1.4.1" version
-//    
+//
 //   2005/04/09 Jens Seidel (jensseidel@users.sourceforge.net)
 //    - Changed Todo list translation as suggested in
 //      http://bugzilla.gnome.org/show_bug.cgi?id=172818
-//    
+//
 //   2005/05/09 Jens Seidel (jensseidel@users.sourceforge.net)
 //    - Updated for "new since 1.4.3" version (removed unused methods)
 //
 #ifndef TRANSLATOR_DE_H
 #define TRANSLATOR_DE_H
 
-class TranslatorGerman : public TranslatorAdapter_1_8_2
+class TranslatorGerman : public TranslatorAdapter_1_8_4
 {
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
@@ -156,12 +156,6 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
       return "\\usepackage[ngerman]{babel}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -179,15 +173,15 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
     { return "Dokumentation der benutzerdefinierten Datentypen"; }
-    
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
     { return "Dokumentation der Aufzählungstypen"; }
-    
+
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
     { return "Dokumentation der Elementfunktionen"; }
-    
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
     { /* No difference if "OPTIMIZE_OUTPUT_FOR_C" is set! */
@@ -195,7 +189,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
+    virtual QCString trMore()
     { return "Mehr ..."; }
 
     /*! put in the class documentation */
@@ -213,7 +207,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
     { return " einschließlich aller geerbten Elemente."; }
-    
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
@@ -227,30 +221,30 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
     { return "enum-Bezeichner"; }
-    
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
     { return "enum-Wert"; }
-    
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
     { return "Definiert in"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
     { return "Module"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
     { return "Klassenhierarchie"; }
-    
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Datenstrukturen";
@@ -260,14 +254,14 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
         return "Auflistung der Klassen";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
     { return "Auflistung der Dateien"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Datenstruktur-Elemente";
@@ -312,7 +306,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
        return "Hier folgt die Aufzählung aller Datenstrukturen "
@@ -342,7 +336,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
         result+="Klassenelemente";
       }
       result+=" mit Verweisen auf ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -381,7 +375,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
         result+="Dateielemente";
       }
       result+=" mit Verweisen auf ";
-      if (extractAll) 
+      if (extractAll)
         result+="die Dokumentation zu jedem Element:";
       else
         result+="die zugehörigen Dateien:";
@@ -400,25 +394,25 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     virtual QCString trModulesDescription()
     { return "Hier folgt die Aufzählung aller Module:"; }
 
-    // index titles (the project name is prepended for these) 
+    // index titles (the project name is prepended for these)
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
     { return "Dokumentation"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "Modul-Verzeichnis"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "Hierarchie-Verzeichnis"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
@@ -432,7 +426,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "Datei-Verzeichnis"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
@@ -445,10 +439,10 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Datenstruktur-Dokumentation"; 
+        return "Datenstruktur-Dokumentation";
       }
       else
       {
@@ -477,90 +471,78 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
     { return "Nachschlagewerk"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "Makrodefinitionen"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Funktionsprototypen"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "Typdefinitionen"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
     { return "Aufzählungen"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "Funktionen"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "Variablen"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
     { return "Aufzählungswerte"; }
-    
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
     { return "Makro-Dokumentation"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Funktionsprototypen Dokumentation"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
     { return "Dokumentation der benutzerdefinierten Typen"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
     { return "Dokumentation der Aufzählungstypen"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
     { return "Dokumentation der Funktionen"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
     { return "Variablen-Dokumentation"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Datenstrukturen";
@@ -571,8 +553,8 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
     {
@@ -582,19 +564,12 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
       return result;
     }
 
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "geschrieben von";
-    }
-
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
       return (QCString)"Klassendiagramm für "+clName+":";
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
     { return "Nur für den internen Gebrauch."; }
@@ -626,7 +601,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
     { return "Ausnahmebehandlung"; }
-    
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
     { return "Erzeugt von"; }
@@ -634,7 +609,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
     { return "Liste aller Namensbereiche"; }
@@ -653,17 +628,17 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
      */
     virtual QCString trFriends()
     { return "Freundbeziehungen"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
     { return "Freundbeziehungen und Funktionsdokumentation"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -682,7 +657,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
         case ClassDef::Union:  result+="Varianten"; break;
         case ClassDef::Interface:  result+="Schnittstellen"; break;
         case ClassDef::Protocol:  result+="Protokoll"; break;
-        case ClassDef::Category:  result+="Kategorie"; break; 
+        case ClassDef::Category:  result+="Kategorie"; break;
         case ClassDef::Exception:  result+="Ausnahmen"; break;
         default: break;
       }
@@ -705,7 +680,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
       result+="-Namensbereichsreferenz";
       return result;
     }
-    
+
     virtual QCString trPublicMembers()
     { return "Öffentliche Methoden"; }
 
@@ -744,23 +719,23 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=" und ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -777,7 +752,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
       return "Basisklasse für "+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
@@ -810,7 +785,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -849,7 +824,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
         case ClassDef::Struct:     result+=" Struktur"; break;
         case ClassDef::Union:      result+=" Variante"; break;
         case ClassDef::Interface:  result+=" Schnittstelle"; break;
-        case ClassDef::Protocol:   result+="s Protokoll"; break; 
+        case ClassDef::Protocol:   result+="s Protokoll"; break;
         case ClassDef::Category:   result+=" Kategorie"; break;
         case ClassDef::Exception:  result+=" Ausnahme"; break;
         default: break;
@@ -859,12 +834,6 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Alphabetische Liste"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -878,7 +847,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     virtual QCString trMainPage()
     { return "Hauptseite"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -926,7 +895,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Beschreibung der Konstruktoren und Destruktoren"; 
+      return "Beschreibung der Konstruktoren und Destruktoren";
     }
 
     /*! Used in the file documentation to point to the corresponding sources. */
@@ -1098,7 +1067,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     {
       return "Seit";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -1109,12 +1078,12 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
       return "Erklärung des Graphen";
     }
 
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "Diese Seite erklärt die Interpretation der von doxygen "
         "erzeugten Graphen.<p>\n"
         "Beispiel:\n"
@@ -1186,11 +1155,11 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     {
       return "Legende";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1204,16 +1173,6 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP Methoden";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1271,11 +1230,11 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     {
       return "Wert:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1298,7 +1257,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
       return "1252";
     }
 
-    /*! Used as ansicpg for RTF fcharset 
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1317,7 +1276,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool, bool singular)
@@ -1328,7 +1287,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool, bool singular)
@@ -1339,7 +1298,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool, bool singular)
@@ -1350,7 +1309,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool, bool singular)
@@ -1361,7 +1320,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool, bool singular)
@@ -1372,7 +1331,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool, bool singular)
@@ -1381,9 +1340,9 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
       if (!singular)  result+="e";
       return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
@@ -1398,7 +1357,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 
     /*! This text is generated when the \\author command is used and
-     *  for the author section in man pages. 
+     *  for the author section in man pages.
      */
     virtual QCString trAuthor(bool, bool singular)
     {
@@ -1422,7 +1381,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1454,8 +1413,8 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1466,7 +1425,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1487,47 +1446,47 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Pakettypen";
     }
 
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Paketfunktionen";
     }
 
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Statische Paketfunktionen";
     }
-    
-    /*! Used as a heading for a list of Java class variables with package 
+
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
     {
       return "Paketattribute";
     }
-    
-    /*! Used as a heading for a list of static Java class variables with 
+
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
     {
       return "Statische Paketattribute";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1544,14 +1503,6 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Suchen nach";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1563,7 +1514,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1577,13 +1528,13 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
       {
         return "Es wurde <b>1</b> Dokument zu Ihrer Suchanfrage gefunden.";
       }
-      else 
+      else
       {
         return "Es wurden <b>$num</b> Dokumente zu Ihrer Suchanfrage "
               "gefunden. Die besten Treffer werden zuerst angezeigt.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1624,7 +1575,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     virtual QCString trDirectories()
     { return "Verzeichnisse"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1642,10 +1593,10 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool, bool singular)
-    { 
+    {
       QCString result("Verzeichnis");
       if (!singular) result+="se";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1672,7 +1623,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
       return "Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
@@ -1681,12 +1632,12 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Elementfunktionen/Unterroutinen-Dokumentation"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Datentyp-Liste"; }
 
@@ -1708,18 +1659,18 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
       }
       result+="Datentypelemente";
       result+=" mit Links ";
-      if (!extractAll) 
+      if (!extractAll)
       {
          result+="zur Datenstruktur-Dokumentation für jedes Element";
       }
-      else 
+      else
       {
          result+="zu den Datentypen, zu denen sie gehören:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1731,24 +1682,24 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     virtual QCString trTypeDocumentation()
     { return "Datentyp-Dokumentation"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Funktionen/Unterroutinen"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Funktionen/Unterroutinen-Dokumentation"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Datentypen"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Modulliste"; }
@@ -1791,43 +1742,43 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
       result+="-Modul-Referenz";
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Modul-Elemente"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Hier folgt eine Liste aller ";
       if (!extractAll) result+="dokumentierten ";
       result+="Modulelemente mit Links ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="zur Moduldokumentation für jedes Element:";
       }
-      else 
+      else
       {
         result+="zu den Modulen, zu denen sie gehören:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Modul-Index"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool /*first_capital*/, bool singular)
-    {       
+    {
       QCString result("Modul");
       if (!singular)  result+="e";
-      return result; 
+      return result;
     }
 
     /*! This is put at the bottom of a module documentation page and is
@@ -1857,25 +1808,25 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool /*first_capital*/, bool singular)
-    { 
+    {
       QCString result("Typ");
       if (!singular)  result+="en";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool /*first_capital*/, bool singular)
-    { 
+    {
       QCString result("Unterprogramm");
       if (!singular)  result+="e";
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
@@ -1921,13 +1872,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Diagramm der Verzeichnisabhängigkeiten für "+name;
-    }
+
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1936,7 +1881,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     {
       return (QCString)"Datei in "+name;
     }
+
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the second column mentions the
      *  destination file that is included.
@@ -1945,7 +1890,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     {
       return (QCString)"Include-Dateien in "+name;
     }
+
     /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
@@ -2024,8 +1969,8 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
     virtual QCString trInheritedFrom(const char *members,const char *what)
     { return QCString(members)+" geerbt von "+what; }
 
-    /*! Header of the sections with inherited members specific for the 
-     *  base class(es) 
+    /*! Header of the sections with inherited members specific for the
+     *  base class(es)
      */
     virtual QCString trAdditionalInheritedMembers()
     { return "Weitere Geerbte Elemente"; }
@@ -2035,7 +1980,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 
     /*! Used as a tooltip for the toggle button thatappears in the
-     *  navigation tree in the HTML output when GENERATE_TREEVIEW is 
+     *  navigation tree in the HTML output when GENERATE_TREEVIEW is
      *  enabled. This tooltip explains the meaning of the button.
      */
     virtual QCString trPanelSynchronisationTooltip(bool enable)
index 6d17df5..16ffae4 100644 (file)
@@ -21,7 +21,7 @@
 
 /*
  * Danish translation by
- * Erik Søe Sørensen <eriksoe@daimi.au.dk>
+ * Erik Søe Sørensen <eriksoe@daimi.au.dk>
  *
  * First version (not complete) for Doxygen 1.2.7
  * Extended and revised for Doxygen 1.3
 
 /*  Translator's notes:
 
-       Oversættelseskonventioner:
+       Oversættelseskonventioner:
        (Konventioner for konventioner:
-         '?'    angiver oversættelser, jeg har været i tvivl om
-         '??'   angiver tvivlsomme oversættelser
-         '..?'  angiver ord, der endnu ikke er fundet en oversættelse til
+         '?'    angiver oversættelser, jeg har været i tvivl om
+         '??'   angiver tvivlsomme oversættelser
+         '..?'  angiver ord, der endnu ikke er fundet en oversættelse til
          '(do.)' angiver ord, der med vilje ikke er oversat, idet jeg selv
              overvejende bruger det engelske udtryk
-         '(-> _)' angiver ord, der er fundet en oversættelse til, men som jeg
-               vægrer mig ved at oversætte.
-          'KLID:_' angiver ord, hvor jeg med overlæg har rettet mig efter
-               KLID.dk's oversættelsesguide (enig eller ej).
+         '(-> _)' angiver ord, der er fundet en oversættelse til, men som jeg
+               vægrer mig ved at oversætte.
+          'KLID:_' angiver ord, hvor jeg med overlæg har rettet mig efter
+               KLID.dk's oversættelsesguide (enig eller ej).
        )
        bug -> 'kendt fejl'
        class -> klasse
        compound -> 'sammensat type'
-       constructor -> konstruktør ?
-       destructor -> destruktør ?
-       directory -> KLID:katalog (kunne også være 'bibliotek','mappe','folder')
+       constructor -> konstruktør ?
+       destructor -> destruktør ?
+       directory -> KLID:katalog (kunne også være 'bibliotek','mappe','folder')
        event -> begivenhed ?
        exception (-> undtagelse ?)
        friend ..?
-       interface -> grænseflade ?
+       interface -> grænseflade ?
        member -> medlem (TODO)
        namespace -> (do.)
        overloaded -> KLID:overdefineret
        union ..?
 
        Specielle forbindelser:
-       'Inheritance diagram' -> Stamtræ  (selvom Nedarvningsdiagram også gik an)
-        
+       'Inheritance diagram' -> Stamtræ  (selvom Nedarvningsdiagram også gik an)
+
 
        -----
 
-       (Konstruktivt) input modtages med glæde!
-       -- Erik Søe Sørensen <eriksoe@daimi.au.dk>
+       (Konstruktivt) input modtages med glæde!
+       -- Erik Søe Sørensen <eriksoe@daimi.au.dk>
 
 
        links -> (links.)
@@ -120,12 +120,6 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
        "\\usepackage[T1]{fontenc}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "iso-8859-1";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -134,7 +128,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
 
     /*! subscript for the related functions. */
     virtual QCString trRelatedSubscript()
-    { return "(Bemærk at disse ikke er medlems-funktioner.)"; }
+    { return "(Bemærk at disse ikke er medlems-funktioner.)"; }
 
     /*! header that is put before the detailed description of files,
         * classes and namespaces. */
@@ -200,7 +194,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
 
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
-    { return "enumerationsværdi"; }
+    { return "enumerationsværdi"; }
 
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
@@ -263,12 +257,12 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
 
     /*! This is put above each page as a link to the search engine. */
     virtual QCString trSearch()
-    { return "Søg"; }
+    { return "Søg"; }
 
     /*! This is an introduction to the class hierarchy. */
     virtual QCString trClassHierarchyDescription()
-    { return "Denne nedarvningsliste er sorteret næsten - "
-             "men ikke nødvendigvis helt - alfabetisk:";
+    { return "Denne nedarvningsliste er sorteret næsten - "
+             "men ikke nødvendigvis helt - alfabetisk:";
     }
 
     /*! This is an introduction to the list with all files. */
@@ -288,7 +282,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
         return "Her er datastrukturerne med korte beskrivelser:";
       } else {
         return "Her er klasserne, datastrukturerne, "
-               "unionerne og grænsefladerne med korte beskrivelser:";
+               "unionerne og grænsefladerne med korte beskrivelser:";
       }
     }
 
@@ -313,9 +307,9 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
         }
       } else {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
-          result+="de datastrukturer/unioner, de hører til:";
+          result+="de datastrukturer/unioner, de hører til:";
         } else {
-          result+="de klasser, de hører til:";
+          result+="de klasser, de hører til:";
         }
       }
       return result;
@@ -335,7 +329,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
       }
       result+=", med links til ";
       if (extractAll)
-        result+="de filer, de tilhører:";
+        result+="de filer, de tilhører:";
       else
         result+="deres dokumentation:";
       return result;
@@ -434,12 +428,6 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
     { return "#Defines"; }
 
     /*! This is used in the documentation of a file as a header before the
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Funktionsprototyper"; }
-
-    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
@@ -467,7 +455,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
-    { return "Enumerationsværdier"; }
+    { return "Enumerationsværdier"; }
 
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
@@ -476,12 +464,6 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
     { return "#Define-dokumentation"; }
 
     /*! This is used in the documentation of a file/namespace before the list
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Dokumentation af funktionsprototyper"; }
-
-    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
@@ -497,7 +479,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
-    { return "Dokumentation af enumerations-værdier"; }
+    { return "Dokumentation af enumerations-værdier"; }
 
     /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
@@ -533,15 +515,11 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
       result+=(QCString)" af";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    { return "skrevet af"; }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
-      return (QCString)"Stamtræ for "+clName+":";
+      return (QCString)"Stamtræ for "+clName+":";
     }
 
     /*! this text is generated when the \\internal command is used. */
@@ -566,7 +544,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
 
     /*! this text is generated when the \\sa command is used. */
     virtual QCString trSeeAlso()
-    { return "Se også"; }
+    { return "Se også"; }
 
     /*! this text is generated when the \\param command is used. */
     virtual QCString trParameters()
@@ -628,7 +606,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
         case ClassDef::Class:      result+=" Klasse-"; break;
         case ClassDef::Struct:     result+=" Datastruktur-"; break;
         case ClassDef::Union:      result+=" Union-"; break;
-        case ClassDef::Interface:  result+=" Grænseflade-"; break;
+        case ClassDef::Interface:  result+=" Grænseflade-"; break;
         case ClassDef::Protocol:   result+=" Protokol-"; break;
         case ClassDef::Category:   result+=" Kategori-"; break; // " Category-"
         case ClassDef::Exception:  result+=" Undtagelse-"; break;   //  " Exception"
@@ -744,7 +722,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
       if (extractAll)
         result+="namespace-dokumentationen for hvert medlem:";
       else
-        result+="det namespace, de hører til:";
+        result+="det namespace, de hører til:";
       return result;
     }
     /*! This is used in LaTeX as the title of the chapter with the
@@ -786,7 +764,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
         case ClassDef::Class:      result+="klasse"; break;
         case ClassDef::Struct:     result+="datastruktur"; break;
         case ClassDef::Union:      result+="union"; break;
-        case ClassDef::Interface:  result+="grænseflade"; break;
+        case ClassDef::Interface:  result+="grænseflade"; break;
         case ClassDef::Protocol:   result+="protokol"; break; // "protocol"
         case ClassDef::Category:   result+="kategori"; break; // "category"
         case ClassDef::Exception:  result+="undtagelse"; break;  // "exception"
@@ -797,19 +775,13 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Alfabetisk oversigt"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
 
     /*! This is used as the heading text for the retval command. */
     virtual QCString trReturnValues()
-    { return "Returværdier"; }
+    { return "Returværdier"; }
 
     /*! This is in the (quick) index as a link to the main page (index.html)
      */
@@ -828,7 +800,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
 
     virtual QCString trDefinedAtLineInSourceFile()
     {
-      return "Defineret på linje @0 i filen @1.";
+      return "Defineret på linje @0 i filen @1.";
     }
 
     virtual QCString trDefinedInSourceFile()
@@ -842,7 +814,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
 
     virtual QCString trDeprecated()
     {
-      return "Frarådes - fortidslevn"; // ?? - What is the context?
+      return "Frarådes - fortidslevn"; // ?? - What is the context?
          // "Ugleset" :)
     }
 
@@ -858,12 +830,12 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
     /*! this text is put before an include dependency graph */
     virtual QCString trInclDepGraph(const char *fName)
     {
-      return (QCString)"Inklusions-afhængighedsgraf for "+fName+":";
+      return (QCString)"Inklusions-afhængighedsgraf for "+fName+":";
     }
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Dokumentation af konstruktører og destruktører";
+      return "Dokumentation af konstruktører og destruktører";
       // "Constructor & Destructor dokumentation";
     }
 
@@ -876,7 +848,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
 
     /*! Text for the \\pre command */
     virtual QCString trPrecondition()
-    { return "Forudsætninger (precondition)"; }
+    { return "Forudsætninger (precondition)"; }
     /*! Text for the \\post command */
     virtual QCString trPostcondition()
     { return "Resultat (postcondition)"; }
@@ -886,7 +858,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
 
     /*! Text shown before a multi-line variable/enum initialization */
     virtual QCString trInitialValue()
-    { return "Startværdi:"; }
+    { return "Startværdi:"; }
 
     /*! Text used the source code in the file index */
     virtual QCString trCode()
@@ -958,7 +930,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
     }
     virtual QCString trRemarks()
     {
-      return "Bemærkninger";
+      return "Bemærkninger";
     }
     virtual QCString trAttention()
     {
@@ -990,11 +962,11 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
       return
                "Denne side forklarer, hvordan man skal fortolke de grafer, "
                "der genereres af doxygen.<p>\n"
-        "Tag følgende eksempel:\n"
+        "Tag følgende eksempel:\n"
         "\\code\n"
-        "/*! Klasse der er usynlig pg.a. beskæring */\n"
+        "/*! Klasse der er usynlig pg.a. beskæring */\n"
         "class Invisible { };\n\n"
-        "/*! Beskåret klasse: nedarvningsrelation er skjult */\n"
+        "/*! Beskåret klasse: nedarvningsrelation er skjult */\n"
         "class Truncated : public Invisible { };\n\n"
         "/* Klasse der ikke er dokumenteret med doxygen-kommentarer */\n"
         "class Undocumented { };\n\n"
@@ -1020,36 +992,36 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
         "};\n"
         "\\endcode\n"
         "Hvis \\c MAX_DOT_GRAPH_HEIGHT i konfigurationsfilen "
-        "er sat til 240, vil dette resultere i følgende graf:"
+        "er sat til 240, vil dette resultere i følgende graf:"
         "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
         "<p>\n"
-        "De forskellige slags kasser i ovenstående graf har følgende "
+        "De forskellige slags kasser i ovenstående graf har følgende "
                "betydninger:\n"
         "<ul>\n"
-        "<li>%En udfyldt sort kasse repræsenterer den datastruktur eller "
+        "<li>%En udfyldt sort kasse repræsenterer den datastruktur eller "
                "klasse, grafen er genereret for.\n"
         "<li>%En kasse med sort kant betegner en dokumenteret datastruktur "
                " eller klasse.\n"
-        "<li>%En kasse med grå kant betegner en udokumenteret datastruktur "
+        "<li>%En kasse med grå kant betegner en udokumenteret datastruktur "
                " eller klasse.\n"
-        "<li>%En kasse med rød kant betegner en dokumenteret datastruktur "
+        "<li>%En kasse med rød kant betegner en dokumenteret datastruktur "
                " eller klasse, for hvilken ikke alle "
                "nedarvnings- og indeholdelses-relationer er vist. "
-        "%Grafer beskæres, hvis de fylder mere end de specificerede dimensioner.\n "
+        "%Grafer beskæres, hvis de fylder mere end de specificerede dimensioner.\n "
         "</ul>\n"
-        "Pilene har følgende betydninger:\n"
+        "Pilene har følgende betydninger:\n"
         "<ul>\n"
-        "<li>%En mørkeblå pil viser en offentlig nedarvningsrelation "
+        "<li>%En mørkeblå pil viser en offentlig nedarvningsrelation "
                "mellem to klasser.\n"
-        "<li>%En mørkegrøn pil viser en beskyttet nedarvningsrelation.\n"
-        "<li>%En mørkerød pil viser en privat nedarvningsrelation.\n"
-        "<li>%En lilla, stiplet pil bruges, når en klasse er indeholdt i "
+        "<li>%En mørkegrøn pil viser en beskyttet nedarvningsrelation.\n"
+        "<li>%En mørkerød pil viser en privat nedarvningsrelation.\n"
+        "<li>%En lilla, stiplet pil bruges, når en klasse er indeholdt i "
                "eller benyttes af en anden klasse. "
-        "Ved pilen står navnet på den eller de variable, gennem hvilke(n) "
-               "den klasse, pilen peger på, er tilgængelig.\n"
+        "Ved pilen står navnet på den eller de variable, gennem hvilke(n) "
+               "den klasse, pilen peger på, er tilgængelig.\n"
         "<li>%En gul, stiplet pil viser forholdet mellem en template-instans "
                "og den template-klasse, den er instantieret fra."
-        "Ved pilen står template-parametrene brugt ved instantieringen.\n"
+        "Ved pilen står template-parametrene brugt ved instantieringen.\n"
         "</ul>\n";
     }
     /*! text for the link to the legend page */
@@ -1074,16 +1046,6 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP-metoder";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1126,7 +1088,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
     {
       return
        "Her er en liste over pakkerne, med korte beskrivelser "
-       "(hvor en sådan findes):";
+       "(hvor en sådan findes):";
     }
     /*! The link name in the Quick links header for each page */
     virtual QCString trPackages()
@@ -1136,7 +1098,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
     /*! Text shown before a multi-line define */
     virtual QCString trDefineValue()
     {
-      return "Værdi:";
+      return "Værdi:";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1309,7 +1271,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
      */
     virtual QCString trDeprecatedList()
     {
-      return "Liste over fortidslevn, hvis brug frarådes";
+      return "Liste over fortidslevn, hvis brug frarådes";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1367,21 +1329,12 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header
-     *  of each page before the field where one can enter the text to search
-     *  for.
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Søg efter";
-    }
-
     /*! This string is used as the title for the page listing the search
      *  results.
      */
     virtual QCString trSearchResultsTitle()
     {
-      return "Søgeresultater";
+      return "Søgeresultater";
     }
 
     /*! This string is put just before listing the search results. The
@@ -1395,13 +1348,13 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
     virtual QCString trSearchResults(int numDocuments)
     {
       if (numDocuments==0) {
-        return "Beklager - ingen dokumenter passede til din forespørgsel.";
+        return "Beklager - ingen dokumenter passede til din forespørgsel.";
       } else if (numDocuments==1) {
-        return "Fandt <b>1</b> dokument, der passer til din forespørgsel.";
+        return "Fandt <b>1</b> dokument, der passer til din forespørgsel.";
       } else {
         return
-         "Fandt <b>$num</b> dokumenter, der passer til din forespørgsel. "
-         "De, der passer bedst, vises først.";
+         "Fandt <b>$num</b> dokumenter, der passer til din forespørgsel. "
+         "De, der passer bedst, vises først.";
       }
     }
 
@@ -1448,12 +1401,12 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
     virtual QCString trDirectories()
     { return "Kataloger"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
-    { return "Denne katalogstruktur er sorteret næsten - "
-             "men ikke nødvendigvis helt - alfabetisk:";
+    { return "Denne katalogstruktur er sorteret næsten - "
+             "men ikke nødvendigvis helt - alfabetisk:";
     }
 
     /*! This returns the title of a directory page. The name of the
@@ -1466,7 +1419,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       return createNoun(first_capital, singular, "katalog", "er");
     }
 
@@ -1481,7 +1434,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
     {
        return "Dette er en overdefineret medlemsfunktion, "
               "defineret af bekvemmelighedshensyn. "
-             "Den adskiller sig kun fra den ovenstående funktion i, "
+             "Den adskiller sig kun fra den ovenstående funktion i, "
              "hvilke argumenter den tager.";
     }
 
@@ -1502,7 +1455,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Medlem Funktion/Subroutine Dokumentation"; }  // "Member Function/Subroutine Documentation"
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     /*
@@ -1543,7 +1496,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
       }
       else
       {
-         result+="de datatyper som de tilhører:";  // "the data types they belong to:"
+         result+="de datatyper som de tilhører:";  // "the data types they belong to:"
       }
       return result;
     }
@@ -1602,7 +1555,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
         case ClassDef::Class:      result+=" Modul"; break;     // " Module"
         case ClassDef::Struct:     result+=" Type"; break;      // " Type"
         case ClassDef::Union:      result+=" Union"; break;     // " Union"
-        case ClassDef::Interface:  result+=" Grænseflade"; break; // " Interface"
+        case ClassDef::Interface:  result+=" Grænseflade"; break; // " Interface"
         case ClassDef::Protocol:   result+=" Protocol"; break;      // " Protocol"
         case ClassDef::Category:   result+=" Kategori"; break;      // " Category"
         case ClassDef::Exception:  result+=" Undtagelse"; break; // " Exception"
@@ -1637,7 +1590,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
       }
       else
       {
-        result+="moduler de tilhøre:";  // "the modules they belong to:"
+        result+="moduler de tilhøre:";  // "the modules they belong to:"
       }
       return result;
     }
@@ -1672,13 +1625,13 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
         case ClassDef::Class:      result+="modul"; break;        // "module"
         case ClassDef::Struct:     result+="type"; break;         // "type"
         case ClassDef::Union:      result+="union"; break;        // "union"
-        case ClassDef::Interface:  result+="grænseflade"; break;  // "interface"
+        case ClassDef::Interface:  result+="grænseflade"; break;  // "interface"
         case ClassDef::Protocol:   result+="protokol"; break;     // "protocol"
         case ClassDef::Category:   result+="kategori"; break;     // "category"
         case ClassDef::Exception:  result+="undtagelse"; break;   // "exception"
         default: break;
       }
-      result+=" var lavet udfra følgende file";                   // " was generated from the following file"
+      result+=" var lavet udfra følgende file";                   // " was generated from the following file"
       if (single) result+=":"; else result+="r:";                 // ":" / "s:"
       return result;
     }
@@ -1708,7 +1661,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
     /*! C# Type Constraint list */
     virtual QCString trTypeConstraints()
     {
-      return "typebegrænsninger";        // "Type Constraints"
+      return "typebegrænsninger";        // "Type Constraints"
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1724,7 +1677,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
     /*! Loading message shown when loading search results */
     virtual QCString trLoading()
     {
-      return "Indlæser...";          // "Loading..."
+      return "Indlæser...";          // "Loading..."
     }
 
     /*! Label used for search results in the global namespace */
@@ -1736,7 +1689,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
     /*! Message shown while searching */
     virtual QCString trSearching()
     {
-      return "Søger...";    // "Searching..."
+      return "Søger...";    // "Searching..."
     }
 
     /*! Text shown when no search results are found */
@@ -1749,12 +1702,6 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Afhængighedsgraf for "+name;  // "Directory dependency graph for "
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1787,7 +1734,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
                                 int hour,int minutes,int seconds,
                                 bool includeTime)
     {
-      static const char *days[]   = { "Man","Tir","Ons","Tor","Fre","Lør","Søn" }; // { "Mon","Tue","Wed","Thu","Fri","Sat","Sun" };
+      static const char *days[]   = { "Man","Tir","Ons","Tor","Fre","Lør","Søn" }; // { "Mon","Tue","Wed","Thu","Fri","Sat","Sun" };
       static const char *months[] = { "Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec" };    //  { "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec" };
       QCString sdate;
       sdate.sprintf("%s %s %d %d",days[dayOfWeek-1],months[month-1],day,year);
@@ -1806,7 +1753,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
 
     virtual QCString trCiteReferences()
     {
-      return "Bibliografiske referencer"; 
+      return "Bibliografiske referencer";
     }
 
     virtual QCString trCopyright()
@@ -1816,7 +1763,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
 
     virtual QCString trDirDepGraph(const char *name)
     {
-      return QCString("Afhængighedsgraf for katalog ")+name+":"; 
+      return QCString("Afhængighedsgraf for katalog ")+name+":";
     }
 
 
index 1ab9921..cb933df 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -18,7 +18,7 @@
 #ifndef TRANSLATOR_EN_H
 #define TRANSLATOR_EN_H
 
-/*! 
+/*!
  When defining a translator class for the new language, follow
  the description in the documentation.  One of the steps says
  that you should copy the translator_en.h (this) file to your
@@ -45,19 +45,19 @@ class TranslatorEnglish : public Translator
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "english"; }
-    
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -65,7 +65,7 @@ class TranslatorEnglish : public Translator
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -74,13 +74,6 @@ class TranslatorEnglish : public Translator
       return "";
     }
 
-    /*! return the language charset. This will be used 
-        when transcoding the translatable strings in this file to UTF-8 */
-    virtual QCString idLanguageCharset()
-    {
-      return "iso-8859-1";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -98,30 +91,30 @@ class TranslatorEnglish : public Translator
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
     { return "Member Typedef Documentation"; }
-    
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
     { return "Member Enumeration Documentation"; }
-    
+
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
     { return "Member Function Documentation"; }
-    
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Field Documentation"; 
+        return "Field Documentation";
       }
       else
       {
-        return "Member Data Documentation"; 
+        return "Member Data Documentation";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
+    virtual QCString trMore()
     { return "More..."; }
 
     /*! put in the class documentation */
@@ -139,81 +132,81 @@ class TranslatorEnglish : public Translator
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
     { return ", including all inherited members."; }
-    
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result="Generated automatically by Doxygen";
       if (s) result+=(QCString)" for "+s;
-      result+=" from the source code."; 
+      result+=" from the source code.";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
     { return "enum name"; }
-    
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
     { return "enum value"; }
-    
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
     { return "defined in"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
     { return "Modules"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
     { return "Class Hierarchy"; }
-    
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Data Structures";
       }
       else
       {
-        return "Class List"; 
+        return "Class List";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
     { return "File List"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Data Fields"; 
+        return "Data Fields";
       }
       else
       {
-        return "Class Members"; 
+        return "Class Members";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Globals"; 
+        return "Globals";
       }
       else
       {
-        return "File Members"; 
+        return "File Members";
       }
     }
 
@@ -246,16 +239,16 @@ class TranslatorEnglish : public Translator
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Here are the data structures with brief descriptions:"; 
+        return "Here are the data structures with brief descriptions:";
       }
       else
       {
         return "Here are the classes, structs, "
-               "unions and interfaces with brief descriptions:"; 
+               "unions and interfaces with brief descriptions:";
       }
     }
 
@@ -276,7 +269,7 @@ class TranslatorEnglish : public Translator
         result+="class members";
       }
       result+=" with links to ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -287,7 +280,7 @@ class TranslatorEnglish : public Translator
           result+="the class documentation for each member:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -306,7 +299,7 @@ class TranslatorEnglish : public Translator
     {
       QCString result="Here is a list of all ";
       if (!extractAll) result+="documented ";
-      
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         result+="functions, variables, defines, enums, and typedefs";
@@ -316,9 +309,9 @@ class TranslatorEnglish : public Translator
         result+="file members";
       }
       result+=" with links to ";
-      if (extractAll) 
+      if (extractAll)
         result+="the files they belong to:";
-      else 
+      else
         result+="the documentation:";
       return result;
     }
@@ -335,43 +328,43 @@ class TranslatorEnglish : public Translator
     virtual QCString trModulesDescription()
     { return "Here is a list of all modules:"; }
 
-    // index titles (the project name is prepended for these) 
+    // index titles (the project name is prepended for these)
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
     { return "Documentation"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "Module Index"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "Hierarchical Index"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "Data Structure Index";
       }
       else
       {
-        return "Class Index"; 
+        return "Class Index";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "File Index"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
@@ -384,14 +377,14 @@ class TranslatorEnglish : public Translator
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Data Structure Documentation"; 
+        return "Data Structure Documentation";
       }
       else
       {
-        return "Class Documentation"; 
+        return "Class Documentation";
       }
     }
 
@@ -416,123 +409,105 @@ class TranslatorEnglish : public Translator
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
     { return "Reference Manual"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "Macros"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Function Prototypes"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "Typedefs"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
     { return "Enumerations"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "Functions"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "Variables"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
     { return "Enumerator"; }
-    
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
     { return "Macro Definition Documentation"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Function Prototype Documentation"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
     { return "Typedef Documentation"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
     { return "Enumeration Type Documentation"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
     { return "Function Documentation"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
     { return "Variable Documentation"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Data Structures"; 
+        return "Data Structures";
       }
       else
       {
-        return "Classes"; 
+        return "Classes";
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"Generated on "+date;
       if (projName) result+=(QCString)" for "+projName;
       result+=(QCString)" by";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "written by";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
       return (QCString)"Inheritance diagram for "+clName+":";
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
     { return "For internal use only."; }
@@ -564,7 +539,7 @@ class TranslatorEnglish : public Translator
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
     { return "Exceptions"; }
-    
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
     { return "Generated by"; }
@@ -572,7 +547,7 @@ class TranslatorEnglish : public Translator
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
     { return "Namespace List"; }
@@ -591,17 +566,17 @@ class TranslatorEnglish : public Translator
      */
     virtual QCString trFriends()
     { return "Friends"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
     { return "Friends And Related Function Documentation"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -632,7 +607,7 @@ class TranslatorEnglish : public Translator
     virtual QCString trFileReference(const char *fileName)
     {
       QCString result=fileName;
-      result+=" File Reference"; 
+      result+=" File Reference";
       return result;
     }
 
@@ -643,7 +618,7 @@ class TranslatorEnglish : public Translator
       result+=" Namespace Reference";
       return result;
     }
-    
+
     virtual QCString trPublicMembers()
     { return "Public Member Functions"; }
     virtual QCString trPublicSlots()
@@ -664,7 +639,7 @@ class TranslatorEnglish : public Translator
     { return "Private Slots"; }
     virtual QCString trStaticPrivateMembers()
     { return "Static Private Member Functions"; }
-    
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -673,23 +648,23 @@ class TranslatorEnglish : public Translator
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=", and ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -706,7 +681,7 @@ class TranslatorEnglish : public Translator
       return "Inherited by "+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
@@ -728,17 +703,17 @@ class TranslatorEnglish : public Translator
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Here is a list of all ";
       if (!extractAll) result+="documented ";
       result+="namespace members with links to ";
-      if (extractAll) 
+      if (extractAll)
         result+="the namespace documentation for each member:";
-      else 
+      else
         result+="the namespaces they belong to:";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -787,12 +762,6 @@ class TranslatorEnglish : public Translator
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Alphabetical List"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -806,7 +775,7 @@ class TranslatorEnglish : public Translator
     virtual QCString trMainPage()
     { return "Main Page"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -851,7 +820,7 @@ class TranslatorEnglish : public Translator
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Constructor & Destructor Documentation"; 
+      return "Constructor & Destructor Documentation";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
@@ -908,7 +877,7 @@ class TranslatorEnglish : public Translator
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
       return "Note";
@@ -997,7 +966,7 @@ class TranslatorEnglish : public Translator
     {
       return "Since";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -1007,12 +976,12 @@ class TranslatorEnglish : public Translator
     {
       return "Graph Legend";
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "This page explains how to interpret the graphs that are generated "
         "by doxygen.<p>\n"
         "Consider the following example:\n"
@@ -1079,11 +1048,11 @@ class TranslatorEnglish : public Translator
     {
       return "legend";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1096,16 +1065,6 @@ class TranslatorEnglish : public Translator
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP Member Functions";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1161,11 +1120,11 @@ class TranslatorEnglish : public Translator
     {
       return "Value:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1181,9 +1140,9 @@ class TranslatorEnglish : public Translator
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1204,15 +1163,15 @@ class TranslatorEnglish : public Translator
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1252";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1225,82 +1184,82 @@ class TranslatorEnglish : public Translator
     {
       return "Index";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Class" : "class"));
       if (!singular)  result+="es";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "File" : "file"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Namespace" : "namespace"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Group" : "group"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Page" : "page"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Member" : "member"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Global" : "global"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1310,10 +1269,10 @@ class TranslatorEnglish : public Translator
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Author" : "author"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1331,7 +1290,7 @@ class TranslatorEnglish : public Translator
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1363,8 +1322,8 @@ class TranslatorEnglish : public Translator
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1375,7 +1334,7 @@ class TranslatorEnglish : public Translator
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1395,43 +1354,43 @@ class TranslatorEnglish : public Translator
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Package Types";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Package Functions";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Static Package Functions";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Package Attributes";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Static Package Attributes";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1448,14 +1407,6 @@ class TranslatorEnglish : public Translator
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Search for";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1467,7 +1418,7 @@ class TranslatorEnglish : public Translator
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1481,13 +1432,13 @@ class TranslatorEnglish : public Translator
       {
         return "Found <b>1</b> document matching your query.";
       }
-      else 
+      else
       {
         return "Found <b>$num</b> documents matching your query. "
                "Showing best matches first.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1528,7 +1479,7 @@ class TranslatorEnglish : public Translator
     virtual QCString trDirectories()
     { return "Directories"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1546,10 +1497,10 @@ class TranslatorEnglish : public Translator
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Director" : "director"));
       if (singular) result+="y"; else result+="ies";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1576,7 +1527,7 @@ class TranslatorEnglish : public Translator
       return "Here is the caller graph for this function:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
@@ -1585,12 +1536,12 @@ class TranslatorEnglish : public Translator
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Member Function/Subroutine Documentation"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Data Types List"; }
 
@@ -1612,18 +1563,18 @@ class TranslatorEnglish : public Translator
       }
       result+="data types members";
       result+=" with links to ";
-      if (!extractAll) 
+      if (!extractAll)
       {
          result+="the data structure documentation for each member";
       }
-      else 
+      else
       {
          result+="the data types they belong to:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1635,24 +1586,24 @@ class TranslatorEnglish : public Translator
     virtual QCString trTypeDocumentation()
     { return "Data Type Documentation"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Functions/Subroutines"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Function/Subroutine Documentation"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Data Types"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Modules List"; }
@@ -1691,46 +1642,46 @@ class TranslatorEnglish : public Translator
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" Module Reference";        
+      result+=" Module Reference";
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Module Members"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Here is a list of all ";
       if (!extractAll) result+="documented ";
       result+="module members with links to ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="the module documentation for each member:";
       }
-      else 
+      else
       {
         result+="the modules they belong to:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Modules Index"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Module" : "module"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is put at the bottom of a module documentation page and is
@@ -1758,25 +1709,25 @@ class TranslatorEnglish : public Translator
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Type" : "type"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Subprogram" : "subprogram"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
@@ -1823,12 +1774,6 @@ class TranslatorEnglish : public Translator
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Directory dependency graph for "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1847,7 +1792,7 @@ class TranslatorEnglish : public Translator
       return (QCString)"Includes file in "+name;
     }
 
-    /** Compiles a date string. 
+    /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
      *  @param day Day of the Month: 1..31
@@ -1922,8 +1867,8 @@ class TranslatorEnglish : public Translator
     virtual QCString trInheritedFrom(const char *members,const char *what)
     { return QCString(members)+" inherited from "+what; }
 
-    /*! Header of the sections with inherited members specific for the 
-     *  base class(es) 
+    /*! Header of the sections with inherited members specific for the
+     *  base class(es)
      */
     virtual QCString trAdditionalInheritedMembers()
     { return "Additional Inherited Members"; }
@@ -1933,7 +1878,7 @@ class TranslatorEnglish : public Translator
 //////////////////////////////////////////////////////////////////////////
 
     /*! Used as a tooltip for the toggle button that appears in the
-     *  navigation tree in the HTML output when GENERATE_TREEVIEW is 
+     *  navigation tree in the HTML output when GENERATE_TREEVIEW is
      *  enabled. This tooltip explains the meaning of the button.
      */
     virtual QCString trPanelSynchronisationTooltip(bool enable)
index 9c08d4c..3c5b9a5 100644 (file)
@@ -42,7 +42,7 @@
  Translator class (by the local maintainer) when the localized
  translator is made up-to-date again.
 */
-class TranslatorEsperanto : public TranslatorAdapter_1_8_2
+class TranslatorEsperanto : public TranslatorAdapter_1_8_4
 {
   public:
 
@@ -76,12 +76,6 @@ class TranslatorEsperanto : public TranslatorAdapter_1_8_2
       return "\\usepackage[esperanto]{babel}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -425,12 +419,6 @@ class TranslatorEsperanto : public TranslatorAdapter_1_8_2
     { return "Difinoj"; }
 
     /*! This is used in the documentation of a file as a header before the
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Funkciaj Prototipoj"; }
-
-    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
@@ -467,12 +455,6 @@ class TranslatorEsperanto : public TranslatorAdapter_1_8_2
     { return "Difina Dokumentado"; }
 
     /*! This is used in the documentation of a file/namespace before the list
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Dokumentado de Funkciaj Prototipoj"; }
-
-    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
@@ -521,12 +503,6 @@ class TranslatorEsperanto : public TranslatorAdapter_1_8_2
       result+=(QCString)" de";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "skribita de";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
@@ -789,12 +765,6 @@ class TranslatorEsperanto : public TranslatorAdapter_1_8_2
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Alfabeta Listo"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -1095,16 +1065,6 @@ class TranslatorEsperanto : public TranslatorAdapter_1_8_2
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP Membraj Funkcioj";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1447,14 +1407,6 @@ class TranslatorEsperanto : public TranslatorAdapter_1_8_2
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header
-     *  of each page before the field where one can enter the text to search
-     *  for.
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Serĉi";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1819,12 +1771,6 @@ class TranslatorEsperanto : public TranslatorAdapter_1_8_2
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Diagramo de dependecoj dosierujaj por "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1877,7 +1823,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_8_2
       }
       return sdate;
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.7.5
 //////////////////////////////////////////////////////////////////////////
@@ -1926,8 +1872,8 @@ class TranslatorEsperanto : public TranslatorAdapter_1_8_2
     virtual QCString trInheritedFrom(const char *members,const char *what)
     { return QCString(members)+" heredita el "+what; }
 
-    /*! Header of the sections with inherited members specific for the 
-     *  base class(es) 
+    /*! Header of the sections with inherited members specific for the
+     *  base class(es)
      */
     virtual QCString trAdditionalInheritedMembers()
     { return "Kromaj Hereditaj Membroj"; }
@@ -1937,7 +1883,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 
     /*! Used as a tooltip for the toggle button that appears in the
-     *  navigation tree in the HTML output when GENERATE_TREEVIEW is 
+     *  navigation tree in the HTML output when GENERATE_TREEVIEW is
      *  enabled. This tooltip explains the meaning of the button.
      */
     virtual QCString trPanelSynchronisationTooltip(bool enable)
index 9d3ba1d..d6738e0 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
 #ifndef TRANSLATOR_ES_H
 #define TRANSLATOR_ES_H
 
-/*! 
+/*!
  * translator_es.h modified by Lucas Cruz (7-julio-2000)
  * Some notes:
- * - It's posible that some sentences haven't got meaning because  
+ * - It's posible that some sentences haven't got meaning because
  * some words haven't got translate in spanish.
  * Updated from 1.3.8 to 1.4.6 by Guillermo Ballester Valor (May-05-2006)
  * Updated to 1.5.1 by Bartomeu Creus Navarro (22-enero-2007)
  * Updated to 1.6.4 by Bartomeu Creus Navarro (26-mayo-2010) [(16-jun-2010) grabado en UTF-8]
  * Updated to 1.8.0 by Bartomeu Creus Navarro (11-abril-2012)
  * Updated to 1.8.2 by Bartomeu Creus Navarro (01-julio-2012)
+ * Updated to 1.8.4 by Bartomeu Creus Navarro (17-julio-2013)
  */
 
-class TranslatorSpanish : public TranslatorAdapter_1_8_2
+class TranslatorSpanish : public Translator
 {
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "spanish"; }
-    
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -58,7 +59,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -67,12 +68,6 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
       return "\\usepackage[spanish]{babel}";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -90,30 +85,30 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
     { return "Documentación de los 'Typedef' miembros de la clase"; }
-    
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
     { return "Documentación de las enumeraciones miembro de la clase"; }
-    
+
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
     { return "Documentación de las funciones miembro"; }
-    
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Documentación de los campos"; 
+        return "Documentación de los campos";
       }
       else
       {
-        return "Documentación de los datos miembro"; 
+        return "Documentación de los datos miembro";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
+    virtual QCString trMore()
     { return "Más..."; }
 
     /*! put in the class documentation */
@@ -131,77 +126,77 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
     { return ", incluyendo todos los heredados:"; }
-    
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result="Generado automáticamente por Doxygen";
       if (s) result+=(QCString)" para "+s;
-      result+=" del código fuente."; 
+      result+=" del código fuente.";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
     { return "nombre de la enumeración"; }
-    
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
     { return "valor enumerado"; }
-    
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
     { return "definido en"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
     { return "Módulos"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
     { return "Jerarquía de la clase"; }
-    
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Estructura de datos";
       }
       else
       {
-        return "Lista de clases"; 
+        return "Lista de clases";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
     { return "Lista de archivos"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
     if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Campos de datos"; 
+        return "Campos de datos";
       }
       else
       {
-        return "Miembros de las clases"; 
+        return "Miembros de las clases";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Globales"; 
+        return "Globales";
       }
       else
       {
@@ -241,12 +236,12 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Lista de estructuras con una breve descripción:"; 
+        return "Lista de estructuras con una breve descripción:";
       }
       else
       {
        return "Lista de las clases, estructuras, "
-             "uniones e interfaces con una breve descripción:"; 
+             "uniones e interfaces con una breve descripción:";
       }
     }
 
@@ -267,7 +262,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
         result+=" documentados";
       }
       result+=" con enlaces a ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -278,7 +273,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
           result+="la documentación de la clase para cada miembro:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -306,9 +301,9 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
       }
       if (!extractAll) result+=" documentados";
       result+=" con enlaces ";
-      if (extractAll) 
+      if (extractAll)
         result+="a los ficheros a los que corresponden:";
-      else 
+      else
         result+="a la documentación:";
       return result;
     }
@@ -325,43 +320,43 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     virtual QCString trModulesDescription()
     { return "Lista de todos los módulos:"; }
 
-    // index titles (the project name is prepended for these) 
+    // index titles (the project name is prepended for these)
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
     { return "Documentación"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "Indice de módulos"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "Indice jerárquico"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "Índice de estructura de datos";
       }
       else
       {
-        return "Índice de clases"; 
+        return "Índice de clases";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "Indice de archivos"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
@@ -381,7 +376,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
       }
       else
       {
-        return "Documentación de las clases"; 
+        return "Documentación de las clases";
       }
     }
 
@@ -406,93 +401,81 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
     { return "Manual de referencia"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "'defines'"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Funciones prototipo"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "'typedefs'"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
     { return "Enumeraciones"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "Funciones"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "Variables"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
     { return "Valores de enumeraciones"; }
-    
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
     { return "Documentación de los 'defines'"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Documentación de las funciones prototipo"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
     { return "Documentación de los 'typedefs'"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
     { return "Documentación de las enumeraciones"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
     { return "Documentación de las funciones"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
     { return "Documentación de las variables"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Estructuras de datos"; 
+        return "Estructuras de datos";
       }
       else
       {
@@ -500,30 +483,23 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"Generado el "+date;
       if (projName) result+=(QCString)" para "+projName;
       result+=(QCString)" por";
       return result;
     }
 
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "escrito por";
-    }
-
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
       return (QCString)"Diagrama de herencias de "+clName;
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
     { return "Sólo para uso interno."; }
@@ -588,7 +564,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
     { return "Documentación de las funciones relacionadas y clases amigas"; }
@@ -673,21 +649,21 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=" y ";
         }
       }
-      return result; 
+      return result;
     }
 
     /*! used in class documentation to produce a list of base classes,
@@ -706,7 +682,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
       return "Heredado por "+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
@@ -728,17 +704,17 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Lista de ";
       if (!extractAll) result+="toda la documentación de ";
       result+="los miembros del namespace con enlace a ";
-      if (extractAll) 
+      if (extractAll)
         result+="los namespace de cada miembro:";
-      else 
+      else
         result+="la documentación de los namespaces pertenecientes a:";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -784,17 +760,11 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
         default: break;
       }
       result+=" fue generada a partir de";
-      if (single) result+="l siguiente fichero:"; 
+      if (single) result+="l siguiente fichero:";
       else result+=" los siguientes ficheros:";
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Lista alfabética"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -808,7 +778,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     virtual QCString trMainPage()
     { return "Página principal"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -833,7 +803,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
 
     virtual QCString trDeprecated()
     {
-    return "Obsoleto"; 
+    return "Obsoleto";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -855,7 +825,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Documentación del constructor y destructor"; 
+      return "Documentación del constructor y destructor";
     }
 
     /*! Used in the file documentation to point to the corresponding sources. */
@@ -1037,17 +1007,17 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
       return "Colores y flechas del Gráfico";
     }
 
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "Esta página explica como interpretar los gráficos que son generados "
         "por doxygen.<p>\n"
         "Considere el siguiente ejemplo:\n"
         "\\code\n"
-        "/*! Clase invisible por truncamiento */\n"  
+        "/*! Clase invisible por truncamiento */\n"
         "class Invisible { };\n\n"
         "/*! Clase truncada, relación de herencia escondida */\n"
         "class Truncated : public Invisible { };\n\n"
@@ -1098,7 +1068,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
         "<li>Una flecha rojo oscuro es usada para herencia privada.\n"
         "<li>Una flecha segmentada púrpura se usa si la clase es contenida o "
         "usada por otra clase. La flecha está etiquetada por la variable "
-        "con que se accede a la clase o estructura apuntada. \n"  
+        "con que se accede a la clase o estructura apuntada. \n"
         "<li>Una flecha segmentada amarilla indica la relación entre una instancia template y la clase template de la que se ha instanciado."
         " La flecha se etiqueta con los parámetros con que se llama al template.\n"
         "</ul>\n";
@@ -1109,7 +1079,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     {
       return "significado de colores y flechas";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
@@ -1127,16 +1097,6 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "Métodos DCOP";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1219,9 +1179,9 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1242,15 +1202,15 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1252";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1265,80 +1225,80 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Clase" : "clase"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Archivo" : "archivo"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Namespace" : "namespace"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Grupo" : "grupo"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Página" : "página"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Miembro" : "miembro"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Global" : "global"));
       if (!singular)  result+="es";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1348,10 +1308,10 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Autor" : "autor"));
       if (!singular)  result+="es";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1369,7 +1329,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1401,8 +1361,8 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1413,7 +1373,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1434,39 +1394,39 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Tipos del 'package'";
     }
 
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Funciones del 'package'";
     }
 
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Funciones estáticas del 'package'";
     }
 
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Atributos del 'package'";
     }
 
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Atributos Estáticos del 'package'";
     }
 
@@ -1474,7 +1434,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1492,15 +1452,6 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Buscar";
-    }
-
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1513,7 +1464,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1527,14 +1478,14 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
       {
         return "Se encontró <b>1</b> documento que coincide con su búsqueda.";
       }
-      else 
+      else
       {
         return "Se encontraron <b>$num</b> documentos que coinciden con su búsqueda. "
                 "Se muestran los mejores resultados primero.";
       }
     }
 
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1575,7 +1526,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     virtual QCString trDirectories()
     { return "Directorios"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1597,10 +1548,10 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Directorio" : "directorio"));
       if (!singular) result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1627,7 +1578,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
       return "Gráfico de llamadas a esta función:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
@@ -1647,7 +1598,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Documetación de miembros Function/Subroutine"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Lista de tipos de datos"; }
 
@@ -1669,18 +1620,18 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
         result+="documentados ";
       }
       result+="con enlaces a ";
-      if (!extractAll) 
+      if (!extractAll)
       {
          result+="la documentación de la estructura de datos para cada miembro";
       }
-      else 
+      else
       {
          result+="los tipos de dato a que pertenece:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1692,19 +1643,19 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     virtual QCString trTypeDocumentation()
     { return "Documentación de tipos de datos"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Funciones/Subprogramas"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Documentación de Funciones/Subprogramas"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
@@ -1749,7 +1700,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result="Referencia módulo ";
-      result+=namespaceName;        
+      result+=namespaceName;
       return result;
     }
 
@@ -1759,33 +1710,33 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Lista de todos los miembros del módulo ";
       if (!extractAll) result+="documentados ";
       result+="con enlaces ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="a la documentación del módulo para cada uno:";
       }
-      else 
+      else
       {
         result+="al módulo al que pertenecen:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Índice de módulos"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Módulo" : "módulo"));
       if (!singular)  result+="s";
       return result;
@@ -1824,18 +1775,18 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     {
       QCString result((first_capital ? "Tipo" : "tipo"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Subprograma" : "subprograma"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
@@ -1843,7 +1794,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     {
       return "Restriciones de tipo";
     }
-       
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.6.0 (mainly for the new search engine)
 //////////////////////////////////////////////////////////////////////////
@@ -1882,12 +1833,6 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Gráfico de dependencias para el directorio "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1906,7 +1851,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
       return (QCString)"Incluye ficheros en "+name;
     }
 
-    /** Compiles a date string. 
+    /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
      *  @param day Day of the Month: 1..31
@@ -1986,8 +1931,8 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     virtual QCString trInheritedFrom(const char *members,const char *what)
     { return QCString(members)+" heredados desde "+what; }
 
-    /*! Header of the sections with inherited members specific for the 
-     *  base class(es) 
+    /*! Header of the sections with inherited members specific for the
+     *  base class(es)
      */
     virtual QCString trAdditionalInheritedMembers()
     { return "Otros miembros heredados"; }
@@ -1997,7 +1942,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 
     /*! Used as a tooltip for the toggle button that appears in the
-     *  navigation tree in the HTML output when GENERATE_TREEVIEW is 
+     *  navigation tree in the HTML output when GENERATE_TREEVIEW is
      *  enabled. This tooltip explains the meaning of the button.
      */
     virtual QCString trPanelSynchronisationTooltip(bool enable)
@@ -2056,6 +2001,62 @@ class TranslatorSpanish : public TranslatorAdapter_1_8_2
     }
 
 //////////////////////////////////////////////////////////////////////////
+// new since 1.8.4
+//////////////////////////////////////////////////////////////////////////
+
+    /** old style UNO IDL services: implemented interfaces */
+    virtual QCString trInterfaces()
+    { return "Interface exportada"; }
+
+    /** old style UNO IDL services: inherited services */
+    virtual QCString trServices()
+    { return "Servicios incluidos"; }
+
+    /** UNO IDL constant groups */
+    virtual QCString trConstantGroups()
+    { return "Grupos constantes"; }
+
+    /** UNO IDL constant groups */
+    virtual QCString trConstantGroupReference(const char *namespaceName)
+    {
+      QCString result=namespaceName;
+      result+=" referencia de grupos constantes";
+      return result;
+    }
+    /** UNO IDL service page title */
+    virtual QCString trServiceReference(const char *sName)
+    {
+      QCString result=(QCString)sName;
+      result+=" Referencia servicio";
+      return result;
+    }
+    /** UNO IDL singleton page title */
+    virtual QCString trSingletonReference(const char *sName)
+    {
+      QCString result=(QCString)sName;
+      result+=" referencia Singleton";
+      return result;
+    }
+    /** UNO IDL service page */
+    virtual QCString trServiceGeneratedFromFiles(bool single)
+    {
+      // single is true implies a single file
+      QCString result=(QCString)"La documentacion para este servicio "
+                                "se ha generado desde ";
+      if (single) result+="el siguiente fichero:"; else result+="los siguientes ficheros:";
+      return result;
+    }
+    /** UNO IDL singleton page */
+    virtual QCString trSingletonGeneratedFromFiles(bool single)
+    {
+      // single is true implies a single file
+      QCString result=(QCString)"La documentación para este singleton "
+                                "se ha generado desde ";
+      if (single) result+="el siguiente fichero:"; else result+="los siguientes ficheros:";
+      return result;
+    }
+
+//////////////////////////////////////////////////////////////////////////
 
 };
 
index d3c38a6..b9bbe14 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
  * ChangeLog :
  *   Thu 06 Jul 2006 11:54:09 PM IRDT <nadalizadeh at gmail dot com>
  *   >> First version of persian language support has been completed.
- *   
+ *
  *   Mon 04 Feb 2008 11:52:09 AM IRDT <nadalizadeh at gmail dot com>
  *   >> Obsolete methods removed. Translated more string(s) to persian. Upgraded to 1_5_4 adapter.
- *   
+ *
  *   Fri 04 Jun 2010 04:05:24 PM IRDT <nadalizadeh at gmail dot com>
  *   >> Implement missing new methods since 1.6.0.
  *   >> Add English to Persian digit convertor. (for date/time digits)
@@ -55,26 +55,26 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
                        else
                                output += str.at(i);
                }
-               
+
                return output;
        }
 
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in Persian using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "persian"; }
-    
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -82,7 +82,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The Persian LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -91,12 +91,6 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
       return "";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -114,30 +108,30 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
     { return "مستندات تعریف گونه ها"; }
-    
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
     { return "های عضو Enumeration مستندات"; }
-    
+
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
     { return "توضيحات توابع عضو"; }
-    
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Field مستندات"; 
+        return "Field مستندات";
       }
       else
       {
-        return "مستندات متغيير های عضو"; 
+        return "مستندات متغيير های عضو";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
+    virtual QCString trMore()
     { return "بيشتر..."; }
 
     /*! put in the class documentation */
@@ -155,81 +149,81 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
     { return "شامل همه ی اعضای به ارث برده شده می باشد."; }
-    
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result="تولید شده توسط نرم افزار دی اکسیژن ";
       if (s) result+=(QCString)" برای "+s;
-      result+=" از کد برنامه "; 
+      result+=" از کد برنامه ";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
     { return "enum نام"; }
-    
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
     { return "enum مقدار"; }
-    
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
     { return "تعریف شده در"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
     { return "Modules"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
     { return "سلسله مراتب کلاس ها"; }
-    
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "ساختار های داده ";
       }
       else
       {
-        return "ليست کلاس ها "; 
+        return "ليست کلاس ها ";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
     { return "ليست فايل ها"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "فضاهای داده ها"; 
+        return "فضاهای داده ها";
       }
       else
       {
-        return "اعضاء کلاس ها"; 
+        return "اعضاء کلاس ها";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Globals"; 
+        return "Globals";
       }
       else
       {
-        return "اعضاء پرونده"; 
+        return "اعضاء پرونده";
       }
     }
 
@@ -261,11 +255,11 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "ليست ساختارهای داده به همراه توضيحی کوتاه :"; 
+        return "ليست ساختارهای داده به همراه توضيحی کوتاه :";
       }
       else
       {
@@ -312,7 +306,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     {
       QCString result="ليست همه ی توابع ، متغيير ها، تعاريف و ... ";
       if (!extractAll) result+="(مستند شده) ";
-      
+
       result+=" به همراه ارتباط آنها ";
       result+="با پرونده هايی که به آن مربوط اند :";
       return result;
@@ -330,44 +324,44 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     virtual QCString trModulesDescription()
     { return "لیست تمام ماژول ها:"; }
 
-    // index titles (the project name is prepended for these) 
+    // index titles (the project name is prepended for these)
 
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
     { return "مستندات"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "فهرست ماژول ها"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "فهرست سلسله مراتب"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "فهرست ساختار داده ها";
       }
       else
       {
-        return "فهرست کلاس های"; 
+        return "فهرست کلاس های";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "فهرست پرونده ها"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
@@ -380,14 +374,14 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "مستندات ساختار داده ها"; 
+        return "مستندات ساختار داده ها";
       }
       else
       {
-        return "مستندات کلاس ها"; 
+        return "مستندات کلاس ها";
       }
     }
 
@@ -412,129 +406,111 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
     { return "راهنمای مرجع"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "تعاريف"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "پیش تعریف های توابع"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "تعریف گونه ها"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
     { return "تعاريف"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "توابع"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "متغيير ها"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
     { return "معرف ها"; }
-    
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
     { return "Define Documentation"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "مستندات تعاریف اولیه توابع"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
     { return "Typedef"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
     { return "مستندات تعريف"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
     { return "مستندات معرف"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
     { return "توضيح تابع"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
     { return "توضيح متغير"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "ساختارهای داده"; 
+        return "ساختارهای داده";
       }
       else
       {
-        return "کلاس ها"; 
+        return "کلاس ها";
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result = HtmlDivEnd + HtmlRightToLeft + QCString("توليد شده در ") +date ;
       if (projName) result+=(QCString)" برای "+projName;
       result+=(QCString)" توسط";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "نوشته شده توسط";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
       return (QCString)""+clName+" نمودار وراثت برای  :";
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
     { return ".فقط برای استعمال داخلی"; }
@@ -566,7 +542,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
     { return "استثناء ها"; }
-    
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
     { return "توليد شده توسط"; }
@@ -574,7 +550,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
     { return "ليست فضاهای نام"; }
@@ -593,17 +569,17 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
      */
     virtual QCString trFriends()
     { return "کلاس های دوست"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
     { return "مستندات توابع مربوط و دوست"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -634,7 +610,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     virtual QCString trFileReference(const char *fileName)
     {
       QCString result=fileName;
-      result+=" مرجع پرونده"; 
+      result+=" مرجع پرونده";
       return result;
     }
 
@@ -645,7 +621,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
       result+=" مرجع فضای نام";
       return result;
     }
-    
+
     virtual QCString trPublicMembers()
     { return "توابع عمومی عضو کلاس"; }
     virtual QCString trPublicSlots()
@@ -666,7 +642,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     { return "های خصوصی Slot"; }
     virtual QCString trStaticPrivateMembers()
     { return "توابع خصوصی ثابت عضو کلاس"; }
-    
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -675,23 +651,23 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=" و ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -708,7 +684,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
       return ".اين کلاس را به ارث برده است "+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
@@ -730,14 +706,14 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="ليست همه اعضای فضای نام  ";
       if (!extractAll) result+="(مستند شده) ";
       result+=" با ارتباطشان با";
       result+="فضاهای نامی که به آن مربوط اند را مشاهده ميکنيد :";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -788,12 +764,6 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "ليست الفبايي"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -807,7 +777,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     virtual QCString trMainPage()
     { return "صفحه ی اصلی"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -851,7 +821,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "مستندات توباع آغازین و پایانی"; 
+      return "مستندات توباع آغازین و پایانی";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
@@ -908,7 +878,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
       return "نکته";
@@ -996,7 +966,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     {
       return "از";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -1006,12 +976,12 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     {
       return "راهنمای نمودار";
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "This page explains how to interpret the graphs that are generated "
         "by doxygen.<p>\n"
         "Consider the following example:\n"
@@ -1076,11 +1046,11 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     {
       return "راهنما";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1093,16 +1063,6 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP توابع عضو";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1158,11 +1118,11 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     {
       return "مقدار:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1178,9 +1138,9 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1201,15 +1161,15 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1256";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1222,82 +1182,82 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     {
       return "فهرست";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "کلاس" : "کلاس"));
       if (!singular)  result+="ها";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool /*first_capital*/, bool singular)
-    { 
+    {
       QCString result("پرونده");
       if (!singular) result=result+" ها";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "فضای نام " : "فضای نام "));
       if (!singular)  result+="ها";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Group" : "group"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "صفحه" : "صفحه"));
       if (!singular)  result+=" ها ";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "عضو" : "عضو"));
       if (!singular)  result+="ها";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Global" : "global"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1307,10 +1267,10 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Author" : "author"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1328,7 +1288,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1360,8 +1320,8 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1372,7 +1332,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1392,43 +1352,43 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "انواع بسته ها";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "توابع بسته ها";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Static Package Functions";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "خواص بسته ها";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Static Package Attributes";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1445,14 +1405,6 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "جستجو برای";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1464,7 +1416,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1478,13 +1430,13 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
       {
         return "یک سند برای این مورد یافت شد.";
       }
-      else 
+      else
       {
         return "Found <b>$num</b> documents matching your query. "
                "Showing best matches first.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1525,7 +1477,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     virtual QCString trDirectories()
     { return "شاخه ها"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1542,10 +1494,10 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool /*first_capital*/, bool singular)
-    { 
+    {
       QCString result("شاخه");
       if (singular) result+=" ها "+result;
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1574,12 +1526,12 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "مستندات توابع عضو"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "لیست ساختار های داده"; }
 
@@ -1597,7 +1549,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
       return "توضیحات اعضا ساختارها به همراه مستندات ساختار داده ی مربوطه";
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1609,24 +1561,24 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     virtual QCString trTypeDocumentation()
     { return "Data Type Documentation"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "توابع و زیربرنامه ها"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "مستندات توابع و زیربرنامه ها"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "ساختار های داده"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "لیست ماژول ها"; }
@@ -1663,36 +1615,36 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" Module Reference";        
+      result+=" Module Reference";
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "اعضاء ماژول"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool)
-    { 
+    {
       QCString result="لیست اعضاء ماژول ها به همراه مستندات ماژول مربوطه";
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Modules Index"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool, bool singular)
-    {       
+    {
       QCString result("ماژول");
       if (!singular)  result+=" ها";
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1718,24 +1670,24 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Type" : "type"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool, bool singular)
-    { 
+    {
       QCString result("زیربرنامه");
       if (!singular)  result+=" ها ";
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
@@ -1782,12 +1734,6 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"نمودار وابستگی دایرکتوری ها برای "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1806,7 +1752,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
       return (QCString)"Includes file in "+name;
     }
 
-    /** Compiles a date string. 
+    /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
      *  @param day Day of the Month: 1..31
index 3a9a890..fa42259 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -23,8 +23,8 @@ Antti Laine   (0.49-990425 -> )     <antti.a.laine@tut.fi>
 1999/10/19
 *  Alustava käännös valmis.
 
-*  Huom: Kaikille termeille on keksitty käännösvastine, mikä ei ehkä ole 
-         kaikissa tapauksissa hyvä ratkaisu, ja parempikin termi voi 
+*  Huom: Kaikille termeille on keksitty käännösvastine, mikä ei ehkä ole
+         kaikissa tapauksissa hyvä ratkaisu, ja parempikin termi voi
          olla vakiintuneessa käytössä.
 
 2008-04-08
@@ -38,7 +38,7 @@ Antti Laine   (0.49-990425 -> )     <antti.a.laine@tut.fi>
 * Enumeraatio -> luettelotyyppi
 * Paranneltu kieltä ja poistettu kirjoitusvirheitä
 
-* Tehtävää: 
+* Tehtävää:
         - Termien kokoaminen listaksi ja suomennosten järkevyyden tarkastelu. (lista on jo melko kattava)
                 Author          = Tekijä
                 Class           = Luokka
@@ -99,21 +99,21 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
              "It was not updated since version 1.0.0.  As a result,\n"
              "some sentences may appear in English.\n\n";
     }*/
-    
+
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "finnish"; }
 
-    /*! Used to get the LaTeX command(s) for the language support. 
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -121,7 +121,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -130,12 +130,6 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
       return "\\usepackage[finnish]{babel}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -165,10 +159,10 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
 
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Kenttien dokumentaatio"; // "Field Documentation"; 
+        return "Kenttien dokumentaatio"; // "Field Documentation";
       }
       else
       {
@@ -225,19 +219,19 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
     { return "Moduulit"; } // "Modules"
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
     { return "Luokkahierarkia"; } // "Class Hierarchy"
-   
-    /*! This is put above each page as a link to the list of annotated classes */ 
+
+    /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Tietueet"; // "Data Structures"
@@ -251,26 +245,26 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
     { return "Tiedostolista"; } // "File List"
-   
-    /*! This is put above each page as a link to all members of compounds. */ 
+
+    /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Tietueen kentät"; // "Data Fields" 
+        return "Tietueen kentät"; // "Data Fields"
       }
       else
       {
         return "Luokan jäsenet"; // "Class Members"
       }
     }
-    
+
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Globaalit"; // "Globals" 
+        return "Globaalit"; // "Globals"
       }
       else
       {
@@ -281,16 +275,16 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     /*! This is put above each page as a link to all related pages. */
     virtual QCString trRelatedPages()
     { return "Liittyvät sivut"; } // "Related Pages"
-   
-    /*! This is put above each page as a link to all examples. */ 
+
+    /*! This is put above each page as a link to all examples. */
     virtual QCString trExamples()
     { return "Esimerkit"; } // "Examples"
-   
-    /*! This is put above each page as a link to the search engine. */ 
+
+    /*! This is put above each page as a link to the search engine. */
     virtual QCString trSearch()
     { return "Etsi"; } // "Search"
-   
-    /*! This is an introduction to the class hierarchy. */ 
+
+    /*! This is an introduction to the class hierarchy. */
     virtual QCString trClassHierarchyDescription()
     { return "Tämä periytymislista on päätasoltaan aakkostettu " // "This inheritance list is sorted roughly, "
              "mutta alijäsenet on aakkostettu itsenäisesti:"; // "but not completely, alphabetically:";
@@ -304,11 +298,11 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
       result+="tiedostoista lyhyen selitteen kanssa:"; // "files with brief descriptions:"
       return result;
     }
-    
+
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
     {
-    
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Tässä ovat tietueet lyhyen selitteen kanssa:"; // "Here are the data structures with brief descriptions:"
@@ -319,7 +313,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
              "yhdisteet lyhyen selitteen kanssa:"; // "unions with brief descriptions:"
       }
     }
-    
+
     /*! This is an introduction to the page with all class members. */
     virtual QCString trCompoundMembersDescription(bool extractAll)
     {
@@ -337,7 +331,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
         result+="luokkien jäsenistä"; // "class members"
       }
       result+=" linkitettyinä "; // " with links to "
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -348,7 +342,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
           result+="jokaisen jäsenen luokkadokumentaatioon:"; // "the class documentation for each member:"
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -367,7 +361,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     {
       QCString result="Tässä on lista kaikista "; // "Here is a list of all "
       if (!extractAll) result+="dokumentoiduista "; // "documented "
-      
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         result+="funktioista, muuttujista, määrittelyistä, luettelotyypeistä ja tyyppimäärittelyistä"; // "functions, variables, defines, enums, and typedefs"
@@ -377,50 +371,50 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
         result+="tiedoston jäsenistä"; // "file members"
       }
       result+=" linkitettyinä "; // " with links to "
-      if (extractAll) 
+      if (extractAll)
         result+="tiedostoihin, joihin ne kuuluvat:"; // "the files they belong to:"
-      else 
+      else
         result+="dokumentaatioon:"; // "the documentation:"
       return result;
     }
-    
+
     /*! This is an introduction to the page with the list of all examples */
     virtual QCString trExamplesDescription()
     { return "Tässä on lista kaikista esimerkeistä:"; } //  "Here is a list of all examples:"
-   
-    /*! This is an introduction to the page with the list of related pages */ 
+
+    /*! This is an introduction to the page with the list of related pages */
     virtual QCString trRelatedPagesDescription()
     { return "Tässä on lista kaikista liittyvistä dokumentaatiosivuista:"; } // "Here is a list of all related documentation pages:"
-   
-    /*! This is an introduction to the page with the list of class/file groups */ 
+
+    /*! This is an introduction to the page with the list of class/file groups */
     virtual QCString trModulesDescription()
     { return "Tässä on lista kaikista moduleista:"; } // "Here is a list of all modules:"
-    
-    // index titles (the project name is prepended for these) 
-    
+
+    // index titles (the project name is prepended for these)
+
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
     { return "Dokumentaatio"; } // "Documentation"
-    
-    /*! This is used in LaTeX as the title of the chapter with the 
+
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "Moduuliluettelo"; } // "Module Index"
-    
-    /*! This is used in LaTeX as the title of the chapter with the 
+
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "Hierarkinen luettelo"; } // "Hierarchical Index"
-    
-    /*! This is used in LaTeX as the title of the chapter with the 
+
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "Tietueluettelo"; // "Data Structure Index"
       }
       else
@@ -428,19 +422,19 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
         return "Luokkaluettelo"; // "Class Index"
       }
     }
-    
+
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "Tiedostoluettelo"; } // "File Index"
-    
+
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all groups.
      */
     virtual QCString trModuleDocumentation()
     { return "Moduulien dokumentaatio"; } // "Module Documentation"
-    
+
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all classes, structs and unions.
      */
@@ -461,60 +455,54 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
      */
     virtual QCString trFileDocumentation()
     { return "Tiedostojen dokumentaatio"; } // "File Documentation"
-    
+
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all examples.
      */
     virtual QCString trExampleDocumentation()
     { return "Esimerkkien dokumentaatio"; } // "Example Documentation"
-    
+
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all related pages.
      */
     virtual QCString trPageDocumentation()
     { return "Sivujen dokumentaatio"; } // "Page Documentation"
-    
+
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
     { return "Käsikirja"; } // "Reference Manual"
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "Määrittelyt"; } // "Defines"
-    
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Funktioiden prototyypit"; } // "Function Prototypes"
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "Tyyppimäärittelyt"; } // "Typedefs"
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
     { return "Luettelotyypit"; } // "Enumerations"
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "Funktiot"; } // "Functions"
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "Muuttujat"; } // "Variables"
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
@@ -525,38 +513,32 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
      */
     virtual QCString trDefineDocumentation()
     { return "Määritysten dokumentointi"; } // "Define Documentation"
-    
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Funktioprototyyppien dokumentaatio"; } // "Function Prototype Documentation"
-    
-    /*! This is used in the documentation of a file/namespace before the list 
+
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
     { return "Tyyppimääritysten dokumentaatio"; } // "Typedef Documentation"
-    
-    /*! This is used in the documentation of a file/namespace before the list 
+
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
     { return "Luettelotyyppien dokumentaatio"; } // "Enumeration Type Documentation"
-    
-    /*! This is used in the documentation of a file/namespace before the list 
+
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
     { return "Funktioiden dokumentaatio"; } // "Function Documentation"
-    
-    /*! This is used in the documentation of a file/namespace before the list 
+
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
     { return "Muuttujien dokumentaatio"; } // "Variable Documentation"
-    
-    /*! This is used in the documentation of a file/namespace/group before 
+
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
@@ -570,12 +552,12 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
         return "Luokat"; // "Classes"
       }
     }
-    
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
         // funktio on hiukan vaikea kääntää prepositioihin sidotun rakenteen vuoksi.
         // Muutetaan siis lauserakennetta suomalaisemmaksi
         // Generated on $date for $project by:
@@ -585,12 +567,6 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
       result+=(QCString)date+" ";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "kirjoittanut"; // "written by"
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
@@ -601,47 +577,47 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
     { return "Vain sisäiseen käyttöön."; } // "For internal use only."
-    
+
     /*! this text is generated when the \\warning command is used. */
     virtual QCString trWarning()
     { return "Varoitus"; } // "Warning"
-    
+
     /*! this text is generated when the \\version command is used. */
     virtual QCString trVersion()
     { return "Versio"; } // "Version"
-    
+
     /*! this text is generated when the \\date command is used. */
     virtual QCString trDate()
     { return "Päiväys"; } // "Date"
-    
+
     /*! this text is generated when the \\return command is used. */
     virtual QCString trReturns()
     { return "Palauttaa"; } // "Returns"
-    
+
     /*! this text is generated when the \\sa command is used. */
     virtual QCString trSeeAlso()
     { return "Katso myös"; } // "See also"
-    
+
     /*! this text is generated when the \\param command is used. */
     virtual QCString trParameters()
     { return "Parametrit"; } // "Parameters"
-    
+
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
     { return "Poikkeukset"; } // "Exceptions"
-    
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
     { return "Generoinut"; } // "Generated by"
-    
+
 //////////////////////////////////////////////////////////////////////////
-// new since 0.49-990307 
+// new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
     { return "Nimiavaruus Lista"; } // "Namespace List"
-    
+
     /*! used as an introduction to the namespace list */
     virtual QCString trNamespaceListDescription(bool extractAll)
     {
@@ -650,7 +626,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
       result+="nimiavaruuksista lyhyen selitteen kanssa:"; // "namespaces with brief descriptions:"
       return result;
     }
-    
+
     /*! used in the class documentation as a header before the list of all
      *  friends of a class
      */
@@ -660,13 +636,13 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
     { return "Ystävät ja niihin liittyvien funktioiden dokumentaatio"; } // "Friends And Related Function Documentation"
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -700,7 +676,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
       result+=" tiedostoreferenssi"; // " File Reference"
       return result;
     }
-    
+
     /*! used as the title of the HTML page of a namespace */
     virtual QCString trNamespaceReference(const char *namespaceName)
     {
@@ -708,7 +684,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
       result+=" nimiavaruusreferenssi"; // " Namespace Reference"
       return result;
     }
-    
+
     virtual QCString trPublicMembers()
     { return "Julkiset jäsenfunktiot"; } // "Public Member Functions"
     virtual QCString trPublicSlots()
@@ -738,23 +714,23 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=" ja "; // ", and "
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -762,7 +738,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     {
       return (QCString)"Periytyy "+(numEntries > 1 ? "luokista " : "luokasta ")+trWriteList(numEntries)+"."; // "Inherits "
     }
-    
+
     /*! used in class documentation to produce a list of super classes,
      *  if class diagrams are disabled.
      */
@@ -770,15 +746,15 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     {
       return (QCString)"Periytetään "+(numEntries > 1 ? "luokissa " : "luokassa ")+trWriteList(numEntries)+"."; // "Inherited by "
     }
-    
-    /*! used in member documentation blocks to produce a list of 
+
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
     {
       return (QCString)"Uudelleentoteuttaa "+(numEntries > 1 ? "luokat " : "luokan  ")+trWriteList(numEntries)+"."; // "Reimplemented from "
     }
-    
+
     /*! used in member documentation blocks to produce a list of
      *  all member that overwrite the implementation of this member.
      */
@@ -790,25 +766,25 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     /*! This is put above each page as a link to all members of namespaces. */
     virtual QCString trNamespaceMembers()
     { return "Nimiavaruuden jäsenet"; } // "Namespace Members"
-    
+
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Tässä on lista kaikista "; // "Here is a list of all "
       if (!extractAll) result+="dokumentoiduista "; // "documented "
       result+="nimiavaruuden jäsenistä linkitettynä "; // "namespace members with links to "
-      if (extractAll) 
+      if (extractAll)
         result+="nimiavaruuden dokumentaatioon johon ne kuuluvat:"; // "the namespace documentation for each member:";
-      else 
+      else
         result+="nimiavaruuksiin joihin ne kuuluvat:"; // "the namespaces they belong to:"
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
-     */ 
+     */
     virtual QCString trNamespaceIndex()
     { return "Nimiavaruuksien luettelo"; } // "Namespace Index"
-    
+
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all namespaces.
      */
@@ -853,12 +829,6 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Aakkosellinen lista"; } // "Alphabetical List"
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -872,7 +842,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     virtual QCString trMainPage()
     { return "Pääsivu"; } // "Main Page"
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -974,7 +944,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
         // FIXME: Missähän merkityksessä tätä käytetään?
@@ -1067,7 +1037,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
         // FIXME: Missä merkityksessä tätä käytetään?
       return "Lähtien"; // "Since"
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -1077,12 +1047,12 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     {
       return "Kaavion selite"; // "Graph Legend"
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "Tämä sivu selittää, kuinka doxygenin luomia kaavioita tulkitaan.<p>\n"
         // "This page explains how to interpret the graphs that are generated "
         // "by doxygen.<p>\n"
@@ -1194,11 +1164,11 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     {
       return "selite"; // "legend"
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1211,16 +1181,6 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP-jäsenfunktiot"; // "DCOP Member Functions"
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1276,11 +1236,11 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     {
       return "Arvo:"; // "Value:"
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1296,9 +1256,9 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1319,15 +1279,15 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1252";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1340,82 +1300,82 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     {
       return "Hakemisto"; // "Index"
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Luokka" : "luokka")); // "Class" / "class"
       if (!singular)  result=(first_capital ? "Luokat" : "luokat"); // "+es" -> "Classes" / "classes"
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Tiedosto" : "tiedosto")); // "File" / "file"
       if (!singular)  result+="t"; // "+s" -> "Files" / "files"
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Nimiavaruus" : "nimiavaruus")); // "Namespace" / "namespace"
       if (!singular)  result=(first_capital ? "Nimiavaruudet" : "nimiavaruudet"); // "+s"
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Ryhmä" : "ryhmä")); // "Group" / "group"
       if (!singular)  result+="t"; // "+s"
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Sivu" : "sivu")); // "Page" / "page"
       if (!singular)  result+="t"; // "+s"
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Jäsen" : "jäsen")); // "Member" / "member"
       if (!singular)  result+="et"; // "+s"
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Globaali" : "globaali")); // "Global" / "global"
       if (!singular)  result+="t"; // "+s"
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1425,10 +1385,10 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Tekijä" : "tekijä")); // "Author" / "author"
       if (!singular)  result+="t"; // "+s"
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1446,7 +1406,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1478,8 +1438,8 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1490,7 +1450,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1510,43 +1470,43 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Paketin tyypit"; // "Package Types"
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Paketin funktiot"; // "Package Functions"
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Paketin staattiset funktiot"; // "Static Package Functions"
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Paketin attribuutit"; // "Package Attributes"
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Paketin staattiset attribuutit"; // "Static Package Attributes"
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1563,14 +1523,6 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Etsi"; // "Search for"
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1582,7 +1534,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1596,13 +1548,13 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
       {
         return "Löytyi <b>1</b> dokumentti, joka vastasi hakuasi."; // "Found <b>1</b> document matching your query.";
       }
-      else 
+      else
       {
         return "Löytyi <b>$num</b> dokumenttia, jotka vastasivat hakuasi. " // "Found <b>$num</b> documents matching your query. "
                 "Parhaat tulokset näytetään ensin."; // "Showing best matches first."
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1643,7 +1595,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     virtual QCString trDirectories()
     { return "Hakemistot"; } // "Directories"
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1663,10 +1615,10 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Hakemisto" : "hakemisto")); // "Director" / "director"
       if (singular) result+=""; else result+="t"; // "+y" / "+ies"
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1696,7 +1648,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
       return "Tässä on kutsukaavio tälle funktiolle:"; // "Here is the caller graph for this function:"
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
@@ -1705,12 +1657,12 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Jäsenfunktioiden/aliohjelmien dokumentaatio"; } // "Member Function/Subroutine Documentation"
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Tietotyyppien lista"; } // "Data Types List"
 
@@ -1732,18 +1684,18 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
       }
       result+="tietotyyppien jäsenistä"; // "data types members"
       result+=", sekä linkit "; // " with links to "
-      if (!extractAll) 
+      if (!extractAll)
       {
          result+="tietueen dokumentaatioon jokaiselle jäsenelle"; // "the data structure documentation for each member"
       }
-      else 
+      else
       {
          result+="tietotyyppeihin, joihin ne kuuluvat:"; // "the data types they belong to:"
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1755,24 +1707,24 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
     virtual QCString trTypeDocumentation()
     { return "Tietotyyppien dokumentaatio"; } // "Data Type Documentation"
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Funktiot/aliohjelmat"; } // "Functions/Subroutines"
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Funktioiden/aliohjelmien dokumentaatio"; } // "Function/Subroutine Documentation"
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Tietotyypit"; } // "Data Types"
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Moduulilista"; } // "Modules List"
@@ -1814,43 +1766,43 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
       result+=" moduulin referenssi"; // " Module Reference"
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Moduulin jäsenet"; } // "Module Members"
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Tässä on lista moduulin kaikista "; // "Here is a list of all "
       if (!extractAll) result+="dokumentoiduista"; // "documented "
       result+="jäsenistä, sekä linkit "; // "module members with links to "
-      if (extractAll) 
+      if (extractAll)
       {
         result+="moduulin dokumentaatioon jokaiselle jäsenelle:"; // "the module documentation for each member:"
       }
-      else 
+      else
       {
         result+="moduuleihin, joihin ne kuuluvat:"; // "the modules they belong to:"
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Moduulien hakemisto"; } // "Modules Index"
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Moduuli" : "moduuli")); // "Module" / "module"
       if (!singular)  result+="t"; // "+s"
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1876,24 +1828,24 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Tyyppi" : "tyyppi")); // "Type" / "type"
       if (!singular)  result=(first_capital ? "Tyypit" : "tyypit"); // "+s"
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Aliohjelma" : "aliohjelma")); // "Subprogram" / "subprogram"
       if (!singular)  result+="t"; // "+s"
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
index 8befead..45ff252 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -16,7 +16,9 @@
  * The translation into French was provided by
  *   Christophe Bordeux (bordeux@lig.di.epfl.ch)
  *   and after version 1.2.0 by Xavier Outhier (xouthier@yahoo.fr)
- *   member of the non for profit association D2SET (http://d2set.free.fr)
+ *   member of the non for profit association D2SET (http://d2set.free.fr).
+ *   Benoît BROSSE (Benoit dot BROSSE at ingenico dot com) was added
+ *   after the 1.8.4 release.
  */
 
 /******************************************************************************
@@ -44,7 +46,7 @@
  * -------------+------------------------------------------------------------
  *  2003-03-29  | Update for new since 1.3
  * -------------+------------------------------------------------------------
- *  2003-03-29  | Changed fonction into méthode. 
+ *  2003-03-29  | Changed fonction into méthode.
  * -------------+------------------------------------------------------------
  *  2003-06-06  | Fixed code page problem appeared between 1.42 and 1.43 in CVS
  * -------------+------------------------------------------------------------
@@ -75,7 +77,7 @@
  *              |   Removed virtual QCString trNoDescriptionAvailable()
  *              |   Corrected some misspelling thanx to Christophe C.
  * -------------+------------------------------------------------------------
- */ 
+ */
 
 #ifndef TRANSLATOR_FR_H
 #define TRANSLATOR_FR_H
 // Translator class (by the local maintainer) when the localized
 // translator is made up-to-date again.
 
-class TranslatorFrench : public TranslatorAdapter_1_8_0
+class TranslatorFrench : public Translator
 {
    public:
-   
+
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
        virtual QCString idLanguage()
       { return "french"; }
-   
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -131,192 +133,185 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
       {
          return "\\usepackage[french]{babel}\n";
       }
-   
-    /*! return the language charset. This will be used 
-        when transcoding the translatable strings in this file to UTF-8 */
-       virtual QCString idLanguageCharset()
-      {
-         return "iso-8859-1";
-      }
-   
+
     // --- Language translation methods -------------------
-   
+
     /*! used in the compound documentation before a list of related functions. */
        virtual QCString trRelatedFunctions()
-      { return "Fonctions associées"; }
-   
+      { return "Fonctions associées"; }
+
     /*! subscript for the related functions. */
        virtual QCString trRelatedSubscript()
       { return "(Notez que ce ne sont pas des fonctions membres)"; }
-   
+
     /*! header that is put before the detailed description of files, classes and namespaces. */
        virtual QCString trDetailedDescription()
-      { return "Description détaillée"; }
-   
+      { return "Description détaillée"; }
+
     /*! header that is put before the list of typedefs. */
        virtual QCString trMemberTypedefDocumentation()
-      { return "Documentation des définitions de type membres"; }
-    
+      { return "Documentation des définitions de type membres"; }
+
     /*! header that is put before the list of enumerations. */
        virtual QCString trMemberEnumerationDocumentation()
-      { return "Documentation des énumérations membres"; }
-    
+      { return "Documentation des énumérations membres"; }
+
     /*! header that is put before the list of member functions. */
        virtual QCString trMemberFunctionDocumentation()
       { return "Documentation des fonctions membres"; }
-    
+
     /*! header that is put before the list of member attributes. */
        virtual QCString trMemberDataDocumentation()
-      { 
+      {
          if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
          {
-            return "Documentation des champs"; 
+            return "Documentation des champs";
          }
          else
          {
-            return "Documentation des données membres";
+            return "Documentation des données membres";
          }
       }
-   
+
     /*! this is the text of a link put after brief descriptions. */
        virtual QCString trMore()
-      { return "Plus de détails..."; }
-   
+      { return "Plus de détails..."; }
+
     /*! put in the class documentation */
        virtual QCString trListOfAllMembers()
       { return "Liste de tous les membres"; }
-   
+
     /*! used as the title of the "list of all members" page of a class */
        virtual QCString trMemberList()
       { return "Liste des membres"; }
-   
+
     /*! this is the first part of a sentence that is followed by a class name */
        virtual QCString trThisIsTheListOfAllMembers()
-      { return "Liste complète des membres de "; }
-   
+      { return "Liste complète des membres de "; }
+
     /*! this is the remainder of the sentence after the class name */
        virtual QCString trIncludingInheritedMembers()
-      { return ", y compris les membres hérités :"; }
-    
+      { return ", y compris les membres hérités :"; }
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
        virtual QCString trGeneratedAutomatically(const char *s)
-      { QCString result="Généré automatiquement par Doxygen"; 
+      { QCString result="Généré automatiquement par Doxygen";
          if (s) result+=(QCString)" pour "+s;
-         result+=" à partir du code source."; 
+         result+=" à partir du code source.";
          return result;
       }
-   
+
     /*! put after an enum name in the list of all members */
        virtual QCString trEnumName()
-      { return "énumération"; }
-    
+      { return "énumération"; }
+
     /*! put after an enum value in the list of all members */
        virtual QCString trEnumValue()
-      { return "valeur énumérée"; }
-    
+      { return "valeur énumérée"; }
+
     /*! put after an undocumented member in the list of all members */
        virtual QCString trDefinedIn()
-      { return "défini dans"; }
-   
+      { return "défini dans"; }
+
     // quick reference sections
-   
-    /*! This is put above each page as a link to the list of all groups of 
+
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
        virtual QCString trModules()
       { return "Modules"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
        virtual QCString trClassHierarchy()
-      { return "Hiérarchie des classes"; }
-    
+      { return "Hiérarchie des classes"; }
+
     /*! This is put above each page as a link to the list of annotated classes */
        virtual QCString trCompoundList()
-      { 
+      {
          if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
          {
-            return "Structures de données";
+            return "Structures de données";
          }
          else
          {
-            return "Liste des classes"; 
+            return "Liste des classes";
          }
       }
-    
+
     /*! This is put above each page as a link to the list of documented files */
        virtual QCString trFileList()
       { return "Liste des fichiers"; }
-   
+
     /*! This is put above each page as a link to all members of compounds. */
        virtual QCString trCompoundMembers()
-      { 
+      {
          if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
          {
-            return "Champs de donnée"; 
+            return "Champs de donnée";
          }
          else
          {
-            return "Membres de classe"; 
+            return "Membres de classe";
          }
       }
-   
+
     /*! This is put above each page as a link to all members of files. */
        virtual QCString trFileMembers()
-      { 
+      {
          if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
          {
-            return "Variables globale"; 
+            return "Variables globale";
          }
          else
          {
-            return "Membres de fichier"; 
+            return "Membres de fichier";
          }
       }
-   
+
     /*! This is put above each page as a link to all related pages. */
        virtual QCString trRelatedPages()
-      { return "Pages associées"; }
-   
+      { return "Pages associées"; }
+
     /*! This is put above each page as a link to all examples. */
        virtual QCString trExamples()
       { return "Exemples"; }
-   
+
     /*! This is put above each page as a link to the search engine. */
        virtual QCString trSearch()
       { return "Recherche"; }
-   
+
     /*! This is an introduction to the class hierarchy. */
        virtual QCString trClassHierarchyDescription()
-      { return "Cette liste d'héritage est classée "
-             "approximativement par ordre alphabétique :";
+      { return "Cette liste d'héritage est classée "
+             "approximativement par ordre alphabétique :";
       }
-   
+
     /*! This is an introduction to the list with all files. */
        virtual QCString trFileListDescription(bool extractAll)
       {
          QCString result="Liste de tous les fichiers ";
-         if (!extractAll) result+="documentés ";
-         result+="avec une brève description :";
+         if (!extractAll) result+="documentés ";
+         result+="avec une brève description :";
          return result;
       }
-   
+
     /*! This is an introduction to the annotated compound list. */
        virtual QCString trCompoundListDescription()
       {
-      
+
          if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
          {
-            return "Liste des structures de données avec une brève description :"; 
+            return "Liste des structures de données avec une brève description :";
          }
          else
          {
             return "Liste des classes, structures, "
-               "unions et interfaces avec une brève description :"; 
+               "unions et interfaces avec une brève description :";
          }
       }
-   
+
     /*! This is an introduction to the page with all class members. */
        virtual QCString trCompoundMembersDescription(bool extractAll)
       {
@@ -331,10 +326,10 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
          }
          if (!extractAll)
          {
-            result+="documentés ";
+            result+="documentés ";
          }
          result+="avec des liens vers ";
-         if (!extractAll) 
+         if (!extractAll)
          {
             if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
             {
@@ -345,7 +340,7 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
                result+="la documentation de classe de chaque membre :";
             }
          }
-         else 
+         else
          {
             if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
             {
@@ -358,317 +353,299 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
          }
          return result;
       }
-   
+
     /*! This is an introduction to the page with all file members. */
        virtual QCString trFileMembersDescription(bool extractAll)
       {
          QCString result="Liste ";
-      
+
          if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
          {
-            result+="de toutes les fonctions, variables, macros, enumérations, et définitions de type ";
+            result+="de toutes les fonctions, variables, macros, enumérations, et définitions de type ";
          }
          else
          {
             result+="de tous les membres de fichier ";
          }
-         if (!extractAll) result+="documentés ";
+         if (!extractAll) result+="documentés ";
          result+="avec des liens vers ";
-         if (extractAll) 
+         if (extractAll)
             result+="les fichiers auxquels ils appartiennent :";
-         else 
+         else
             result+="la documentation :";
          return result;
       }
-   
+
     /*! This is an introduction to the page with the list of all examples */
        virtual QCString trExamplesDescription()
       { return "Liste de tous les exemples :"; }
-   
+
     /*! This is an introduction to the page with the list of related pages */
        virtual QCString trRelatedPagesDescription()
-      { return "Liste de toutes les pages de documentation associées :"; }
-   
+      { return "Liste de toutes les pages de documentation associées :"; }
+
     /*! This is an introduction to the page with the list of class/file groups */
        virtual QCString trModulesDescription()
       { return "Liste de tous les modules :"; }
-   
+
     /*! This is used in HTML as the title of index.html. */
        virtual QCString trDocumentation()
       { return "Documentation"; }
-   
-    /*! This is used in LaTeX as the title of the chapter with the 
+
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
        virtual QCString trModuleIndex()
       { return "Index des modules"; }
-   
-    /*! This is used in LaTeX as the title of the chapter with the 
+
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
        virtual QCString trHierarchicalIndex()
-      { return "Index hiérarchique"; }
-   
-    /*! This is used in LaTeX as the title of the chapter with the 
+      { return "Index hiérarchique"; }
+
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
        virtual QCString trCompoundIndex()
       {
          if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-         { 
-            return "Index des structures de données";
+         {
+            return "Index des structures de données";
          }
          else
          {
-            return "Index des classes"; 
+            return "Index des classes";
          }
       }
-   
+
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-       virtual QCString trFileIndex() 
+       virtual QCString trFileIndex()
       { return "Index des fichiers"; }
-   
+
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all groups.
      */
        virtual QCString trModuleDocumentation()
       { return "Documentation des modules"; }
-   
+
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all classes, structs and unions.
      */
        virtual QCString trClassDocumentation()
-      { 
+      {
          if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
          {
-            return "Documentation des structures de données"; 
+            return "Documentation des structures de données";
          }
          else
          {
-            return "Documentation des classes"; 
+            return "Documentation des classes";
          }
       }
-   
+
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all files.
      */
        virtual QCString trFileDocumentation()
       { return "Documentation des fichiers"; }
-   
+
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all examples.
      */
        virtual QCString trExampleDocumentation()
       { return "Documentation des exemples"; }
-   
+
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all related pages.
      */
        virtual QCString trPageDocumentation()
-      { return "Documentation des pages associées"; }
-   
+      { return "Documentation des pages associées"; }
+
     /*! This is used in LaTeX as the title of the document */
        virtual QCString trReferenceManual()
-      { return "Manuel de référence"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+      { return "Manuel de référence"; }
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
        virtual QCString trDefines()
       { return "Macros"; }
-   
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-       virtual QCString trFuncProtos()
-      { return "Prototypes de fonction"; }
-   
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
        virtual QCString trTypedefs()
-      { return "Définitions de type"; }
-   
-    /*! This is used in the documentation of a file as a header before the 
+      { return "Définitions de type"; }
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
        virtual QCString trEnumerations()
-      { return "Énumérations"; }
-   
-    /*! This is used in the documentation of a file as a header before the 
+      { return "Énumérations"; }
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
        virtual QCString trFunctions()
       { return "Fonctions"; }
-   
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
        virtual QCString trVariables()
       { return "Variables"; }
-   
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
        virtual QCString trEnumerationValues()
-      { return "Valeurs énumérées"; }
-    
+      { return "Valeurs énumérées"; }
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
        virtual QCString trDefineDocumentation()
       { return "Documentation des macros"; }
-   
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-       virtual QCString trFunctionPrototypeDocumentation()
-      { return "Documentation des prototypes de fonction"; }
-   
-    /*! This is used in the documentation of a file/namespace before the list 
+
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
        virtual QCString trTypedefDocumentation()
-      { return "Documentation des définitions de type"; }
-   
-    /*! This is used in the documentation of a file/namespace before the list 
+      { return "Documentation des définitions de type"; }
+
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
        virtual QCString trEnumerationTypeDocumentation()
-      { return "Documentation du type de l'énumération"; }
-   
-    /*! This is used in the documentation of a file/namespace before the list 
+      { return "Documentation du type de l'énumération"; }
+
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
        virtual QCString trFunctionDocumentation()
       { return "Documentation des fonctions"; }
-   
-    /*! This is used in the documentation of a file/namespace before the list 
+
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
        virtual QCString trVariableDocumentation()
       { return "Documentation des variables"; }
-   
-    /*! This is used in the documentation of a file/namespace/group before 
+
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
        virtual QCString trCompounds()
-      { 
+      {
          if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
          {
-            return "Structures de données"; 
+            return "Structures de données";
          }
          else
          {
-            return "Classes"; 
+            return "Classes";
          }
       }
-   
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
        virtual QCString trGeneratedAt(const char *date,const char *projName)
-      { 
-         QCString result=(QCString)"Généré le "+date;
+      {
+         QCString result=(QCString)"Généré le "+date;
          if (projName) result+=(QCString)" pour "+projName;
          result+=(QCString)" par";
          return result;
       }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-       virtual QCString trWrittenBy()
-      {
-         return "écrit par";
-      }
-   
+
     /*! this text is put before a class diagram */
        virtual QCString trClassDiagram(const char *clName)
       {
-         return (QCString)"Graphe d'héritage de "+clName+":";
+         return (QCString)"Graphe d'héritage de "+clName+":";
       }
-    
+
     /*! this text is generated when the \\internal command is used. */
        virtual QCString trForInternalUseOnly()
       { return "Pour un usage interne uniquement."; }
-   
+
     /*! this text is generated when the \\warning command is used. */
        virtual QCString trWarning()
       { return "Avertissement"; }
-   
+
     /*! this text is generated when the \\version command is used. */
        virtual QCString trVersion()
       { return "Version"; }
-   
+
     /*! this text is generated when the \\date command is used. */
        virtual QCString trDate()
       { return "Date"; }
-   
+
     /*! this text is generated when the \\return command is used. */
        virtual QCString trReturns()
       { return "Renvoie"; }
-   
+
     /*! this text is generated when the \\sa command is used. */
        virtual QCString trSeeAlso()
-      { return "Voir également"; }
-   
+      { return "Voir également"; }
+
     /*! this text is generated when the \\param command is used. */
        virtual QCString trParameters()
-      { return "Paramètres"; }
-   
+      { return "Paramètres"; }
+
     /*! this text is generated when the \\exception command is used. */
        virtual QCString trExceptions()
       { return "Exceptions"; }
-    
+
     /*! this text is used in the title page of a LaTeX document. */
        virtual QCString trGeneratedBy()
-      { return "Généré par"; }
-   
+      { return "Généré par"; }
+
    //////////////////////////////////////////////////////////////////////////
    // new since 0.49-990307
    //////////////////////////////////////////////////////////////////////////
-   
+
     /*! used as the title of page containing all the index of all namespaces. */
        virtual QCString trNamespaceList()
       { return "Liste des espaces de nommage"; }
-   
+
     /*! used as an introduction to the namespace list */
        virtual QCString trNamespaceListDescription(bool extractAll)
       {
          QCString result="Liste de tous les espaces de nommage ";
-         if (!extractAll) result+="documentés ";
-         result+="avec une brève description:";
+         if (!extractAll) result+="documentés ";
+         result+="avec une brève description:";
          return result;
       }
-   
+
     /*! used in the class documentation as a header before the list of all
      *  friends of a class
      */
        virtual QCString trFriends()
       { return "Amis"; }
-    
+
    //////////////////////////////////////////////////////////////////////////
    // new since 0.49-990405
    //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
        virtual QCString trRelatedFunctionDocumentation()
-      { return "Documentation des fonctions amies et associées"; }
-    
+      { return "Documentation des fonctions amies et associées"; }
+
    //////////////////////////////////////////////////////////////////////////
    // new since 0.49-990425
    //////////////////////////////////////////////////////////////////////////
-   
+
     /*! used as the title of the HTML page of a class/struct/union */
        virtual QCString trCompoundReference(const char *clName,
                                     ClassDef::CompoundType compType,
                                     bool isTemplate)
       {
-         QCString result="Référence ";
-         if (isTemplate) result+="du modèle ";
+         QCString result="Référence ";
+         if (isTemplate) result+="du modèle ";
          result+="de ";
          switch(compType)
          {
@@ -676,31 +653,31 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
             case ClassDef::Struct:     result+="la structure "; break;
             case ClassDef::Union:      result+="l'union "; break;
             case ClassDef::Interface:  result+="l'interface "; break;
-            case ClassDef::Protocol:   result+="le protocol "; break; 
-            case ClassDef::Category:   result+="la catégorie "; break; 
+            case ClassDef::Protocol:   result+="le protocol "; break;
+            case ClassDef::Category:   result+="la catégorie "; break;
             case ClassDef::Exception:  result+="l'exception "; break;
             default: break;
          }
          result+=(QCString)clName;
          return result;
       }
-   
+
     /*! used as the title of the HTML page of a file */
        virtual QCString trFileReference(const char *fileName)
       {
-         QCString result= "Référence du fichier ";
+         QCString result= "Référence du fichier ";
          result+=fileName;
          return result;
       }
-   
+
     /*! used as the title of the HTML page of a namespace */
        virtual QCString trNamespaceReference(const char *namespaceName)
       {
-         QCString result= "Référence de l'espace de nommage ";
+         QCString result= "Référence de l'espace de nommage ";
          result+=namespaceName;
          return result;
       }
-    
+
        virtual QCString trPublicMembers()
       { return "Fonctions membres publiques"; }
        virtual QCString trPublicSlots()
@@ -710,18 +687,18 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
        virtual QCString trStaticPublicMembers()
       { return "Fonctions membres publiques statiques"; }
        virtual QCString trProtectedMembers()
-      { return "Fonctions membres protégées"; }
+      { return "Fonctions membres protégées"; }
        virtual QCString trProtectedSlots()
-      { return "Connecteurs protégés"; }
+      { return "Connecteurs protégés"; }
        virtual QCString trStaticProtectedMembers()
-      { return "Fonctions membres protégées statiques"; }
+      { return "Fonctions membres protégées statiques"; }
        virtual QCString trPrivateMembers()
-      { return "Fonctions membres privées"; }
+      { return "Fonctions membres privées"; }
        virtual QCString trPrivateSlots()
-      { return "Connecteurs privés"; }
+      { return "Connecteurs privés"; }
        virtual QCString trStaticPrivateMembers()
-      { return "Fonctions membres privées statiques"; }
-    
+      { return "Fonctions membres privées statiques"; }
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -730,12 +707,12 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
          QCString result;
          int i;
       // the inherits list contain `numEntries' classes
-         for (i=0;i<numEntries;i++) 
+         for (i=0;i<numEntries;i++)
          {
          // use generateMarker to generate placeholders for the class links!
             result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-         
+
             if (i!=numEntries-1)  // not the last entry, so we need a separator
             {
                if (i<numEntries-2) // not the fore last entry
@@ -744,83 +721,83 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
                   result+=", et ";
             }
          }
-         return result; 
+         return result;
       }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
        virtual QCString trInheritsList(int numEntries)
       {
-         return "Est dérivée de "+trWriteList(numEntries)+".";
+         return "Est dérivée de "+trWriteList(numEntries)+".";
       }
-   
+
     /*! used in class documentation to produce a list of super classes,
      *  if class diagrams are disabled.
      */
        virtual QCString trInheritedByList(int numEntries)
       {
-         return "Dérivée par "+trWriteList(numEntries)+".";
+         return "Dérivée par "+trWriteList(numEntries)+".";
       }
-   
-    /*! used in member documentation blocks to produce a list of 
+
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
        virtual QCString trReimplementedFromList(int numEntries)
       {
-         return "Réimplémentée à partir de "+trWriteList(numEntries)+".";
+         return "Réimplémentée à partir de "+trWriteList(numEntries)+".";
       }
-   
+
     /*! used in member documentation blocks to produce a list of
      *  all member that overwrite the implementation of this member.
      */
        virtual QCString trReimplementedInList(int numEntries)
       {
-         return "Réimplémentée dans "+trWriteList(numEntries)+".";
+         return "Réimplémentée dans "+trWriteList(numEntries)+".";
       }
-   
+
     /*! This is put above each page as a link to all members of namespaces. */
        virtual QCString trNamespaceMembers()
       { return "Membres de l'espace de nommage"; }
-   
+
     /*! This is an introduction to the page with all namespace members */
        virtual QCString trNamespaceMemberDescription(bool extractAll)
-      { 
+      {
          QCString result="Liste de tous les membres des espaces de nommage ";
-         if (!extractAll) result+="documentés ";
+         if (!extractAll) result+="documentés ";
          result+="avec des liens vers ";
-         if (extractAll) 
+         if (extractAll)
             result+="la documentation de namespace de chaque membre :";
-         else 
+         else
             result+="les espaces de nommage auxquels ils appartiennent :";
          return result;
       }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
        virtual QCString trNamespaceIndex()
       { return "Index des espaces de nommage"; }
-   
+
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all namespaces.
      */
        virtual QCString trNamespaceDocumentation()
       { return "Documentation des espaces de nommage"; }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 0.49-990522
    //////////////////////////////////////////////////////////////////////////
-   
+
     /*! This is used in the documentation before the list of all
      *  namespaces in a file.
      */
        virtual QCString trNamespaces()
       { return "Espaces de nommage"; }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 0.49-990728
    //////////////////////////////////////////////////////////////////////////
-   
+
     /*! This is put at the bottom of a class documentation page and is
      *  followed by a list of files that were used to generate the page.
      */
@@ -837,68 +814,62 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
             case ClassDef::Union:      result+="cette union"; break;
             case ClassDef::Interface:  result+="cette interface"; break;
             case ClassDef::Protocol:   result+="ce protocol"; female = false; break;
-            case ClassDef::Category:   result+="cette catégorie"; break; 
+            case ClassDef::Category:   result+="cette catégorie"; break;
             case ClassDef::Exception:  result+="cette exception"; break;
             default: break;
          }
-         if (female) result+= " a été générée à partir ";
-         else result+=" a été généré à partir ";
-         if (single) result+="du fichier suivant :"; 
+         if (female) result+= " a été générée à partir ";
+         else result+=" a été généré à partir ";
+         if (single) result+="du fichier suivant :";
          else result+="des fichiers suivants :";
          return result;
       }
-   
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-       virtual QCString trAlphabeticalList()
-      { return "Liste alphabétique"; }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 0.49-990901
    //////////////////////////////////////////////////////////////////////////
-   
+
     /*! This is used as the heading text for the retval command. */
        virtual QCString trReturnValues()
-      { return "Valeurs retournées"; }
-   
+      { return "Valeurs retournées"; }
+
     /*! This is in the (quick) index as a link to the main page (index.html)
      */
        virtual QCString trMainPage()
       { return "Page principale"; }
-   
+
     /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
        virtual QCString trPageAbbreviation()
       { return "p."; }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 0.49-991003
    //////////////////////////////////////////////////////////////////////////
-   
+
        virtual QCString trDefinedAtLineInSourceFile()
       {
-         return "Définition à la ligne @0 du fichier @1.";
+         return "Définition à la ligne @0 du fichier @1.";
       }
        virtual QCString trDefinedInSourceFile()
       {
-         return "Définition dans le fichier @0.";
+         return "Définition dans le fichier @0.";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 0.49-991205
    //////////////////////////////////////////////////////////////////////////
-   
+
        virtual QCString trDeprecated()
       {
-         return "Obsolète";
+         return "Obsolète";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.0.0
    //////////////////////////////////////////////////////////////////////////
-   
+
     /*! this text is put before a collaboration diagram */
        virtual QCString trCollaborationDiagram(const char *clName)
       {
@@ -907,12 +878,12 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
     /*! this text is put before an include dependency graph */
        virtual QCString trInclDepGraph(const char *fName)
       {
-         return (QCString)"Graphe des dépendances par inclusion de "+fName+":";
+         return (QCString)"Graphe des dépendances par inclusion de "+fName+":";
       }
     /*! header that is put before the list of constructor/destructors. */
        virtual QCString trConstructorDocumentation()
       {
-         return "Documentation des constructeurs et destructeur"; 
+         return "Documentation des constructeurs et destructeur";
       }
     /*! Used in the file documentation to point to the corresponding sources. */
        virtual QCString trGotoSourceCode()
@@ -922,12 +893,12 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
     /*! Used in the file sources to point to the corresponding documentation. */
        virtual QCString trGotoDocumentation()
       {
-         return "Aller à la documentation de ce fichier.";
+         return "Aller à la documentation de ce fichier.";
       }
     /*! Text for the \\pre command */
        virtual QCString trPrecondition()
       {
-         return "Précondition";
+         return "Précondition";
       }
     /*! Text for the \\post command */
        virtual QCString trPostcondition()
@@ -951,25 +922,25 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
       }
        virtual QCString trGraphicalHierarchy()
       {
-         return "Graphe hiérarchique des classes";
+         return "Graphe hiérarchique des classes";
       }
        virtual QCString trGotoGraphicalHierarchy()
       {
-         return "Aller au graphe hiérarchique des classes";
+         return "Aller au graphe hiérarchique des classes";
       }
        virtual QCString trGotoTextualHierarchy()
       {
-         return "Aller à la hiérarchie des classes en mode texte";
+         return "Aller à la hiérarchie des classes en mode texte";
       }
        virtual QCString trPageIndex()
       {
          return "Index des pages";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.1.0
    //////////////////////////////////////////////////////////////////////////
-    
+
        virtual QCString trNote()
       {
          return "Note";
@@ -982,7 +953,7 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
       {
          if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
          {
-            return "Champs de données";
+            return "Champs de données";
          }
          else
          {
@@ -995,33 +966,33 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
       }
        virtual QCString trProtectedTypes()
       {
-         return "Types protégés";
+         return "Types protégés";
       }
        virtual QCString trProtectedAttribs()
       {
-         return "Attributs protégés";
+         return "Attributs protégés";
       }
        virtual QCString trStaticProtectedAttribs()
       {
-         return "Attributs protégés statiques";
+         return "Attributs protégés statiques";
       }
        virtual QCString trPrivateTypes()
       {
-         return "Types privés";
+         return "Types privés";
       }
        virtual QCString trPrivateAttribs()
       {
-         return "Attributs privés";
+         return "Attributs privés";
       }
        virtual QCString trStaticPrivateAttribs()
       {
-         return "Attributs privés statiques";
+         return "Attributs privés statiques";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.1.3
    //////////////////////////////////////////////////////////////////////////
-   
+
     /*! Used as a marker that is put before a \\todo item */
        virtual QCString trTodo()
       {
@@ -1030,16 +1001,16 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
     /*! Used as the header of the todo list */
        virtual QCString trTodoList()
       {
-         return "Liste des choses à faire";
+         return "Liste des choses à faire";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.1.4
    //////////////////////////////////////////////////////////////////////////
-   
+
        virtual QCString trReferencedBy()
       {
-         return "Référencé par";
+         return "Référencé par";
       }
        virtual QCString trRemarks()
       {
@@ -1058,43 +1029,43 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
       {
          return "Depuis";
       }
-    
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.1.5
    //////////////////////////////////////////////////////////////////////////
-   
+
     /*! title of the graph legend page */
        virtual QCString trLegendTitle()
       {
-         return "Légende du graphe";
+         return "Légende du graphe";
       }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
        virtual QCString trLegendDocs()
       {
-         return 
-            "Cette page explique comment interpréter les graphes générés "
+         return
+            "Cette page explique comment interpréter les graphes générés "
             "par doxygen.<p>\n"
-            "Considérez l'exemple suivant :\n"
+            "Considérez l'exemple suivant :\n"
             "\\code\n"
-            "/*! Classe invisible à cause d'une troncature */\n"
+            "/*! Classe invisible à cause d'une troncature */\n"
             "class Invisible { };\n\n"
-            "/*! Classe tronquée, la relation d'héritage est masquée */\n"
+            "/*! Classe tronquée, la relation d'héritage est masquée */\n"
             "class Truncated : public Invisible { };\n\n"
-            "/*! Classe non documentée avec des commentaires Doxygen */\n"
+            "/*! Classe non documentée avec des commentaires Doxygen */\n"
             "class Undocumented { };\n\n"
-            "/*! Classe dérivée par héritage public */\n"
+            "/*! Classe dérivée par héritage public */\n"
             "class PublicBase : public Truncated { };\n\n"
-            "/*! Un modèle de classe */\n"
+            "/*! Un modèle de classe */\n"
             "template<class T> class Templ { };\n\n"
-            "/*! Classe dérivée par héritage protégé */\n"
+            "/*! Classe dérivée par héritage protégé */\n"
             "class ProtectedBase { };\n\n"
-            "/*! Classe dérivée par héritage privé */\n"
+            "/*! Classe dérivée par héritage privé */\n"
             "class PrivateBase { };\n\n"
-            "/*! Classe utilisée par la classe dérivée */\n"
+            "/*! Classe utilisée par la classe dérivée */\n"
             "class Used { };\n\n"
-            "/*! Super-classe qui hérite de plusieurs autres classes */\n"
+            "/*! Super-classe qui hérite de plusieurs autres classes */\n"
             "class Inherited : public PublicBase,\n"
             "                  protected ProtectedBase,\n"
             "                  private PrivateBase,\n"
@@ -1105,44 +1076,44 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
             "    Used *m_usedClass;\n"
             "};\n"
             "\\endcode\n"
-            "Si la valeur 240 est attribuée au tag \\c MAX_DOT_GRAPH_HEIGHT "
-            "du fichier de configuration, cela génèrera le graphe suivant :"
+            "Si la valeur 240 est attribuée au tag \\c MAX_DOT_GRAPH_HEIGHT "
+            "du fichier de configuration, cela génèrera le graphe suivant :"
             "<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
             "<p>\n"
             "Les rectangles du graphe ci-dessus ont la signification suivante :\n"
             "<ul>\n"
-            "<li>Un rectangle plein noir représente la structure ou la classe pour laquelle "
-            "le graphe est généré.\n"
-            "<li>Un rectangle avec un bord noir indique une classe ou une structure documentée.\n"
-            "<li>Un rectangle avec un bord gris indique une classe ou une structure non documentée.\n"
-            "<li>Un rectangle avec un bord rouge indique une structure ou une classe documentée\n"
-            "pour laquelle des relations d'héritage ou de collaboration manquent. Un graphe est "
-            "tronqué s'il n'entre pas dans les limites spécifiées."
+            "<li>Un rectangle plein noir représente la structure ou la classe pour laquelle "
+            "le graphe est généré.\n"
+            "<li>Un rectangle avec un bord noir indique une classe ou une structure documentée.\n"
+            "<li>Un rectangle avec un bord gris indique une classe ou une structure non documentée.\n"
+            "<li>Un rectangle avec un bord rouge indique une structure ou une classe documentée\n"
+            "pour laquelle des relations d'héritage ou de collaboration manquent. Un graphe est "
+            "tronqué s'il n'entre pas dans les limites spécifiées."
             "</ul>\n"
-            "Les flèches ont la signification suivante :\n"
+            "Les flèches ont la signification suivante :\n"
             "<ul>\n"
-            "<li>Une flèche bleu foncé est utilisée pour visualiser une relation d'héritage publique "
+            "<li>Une flèche bleu foncé est utilisée pour visualiser une relation d'héritage publique "
             "entre deux classes.\n"
-            "<li>Une flèche vert foncé est utilisée pour une relation d'héritage protégée.\n"
-            "<li>Une flèche rouge foncé est utilisée pour une relation d'héritage privée.\n"
-            "<li>Une flèche violette en pointillés est utilisée si une classe est contenue ou "
-            "utilisée par une autre classe. La flèche est étiquetée avec la ou les variable(s) "
-            "qui permettent d'accéder à la classe ou structure pointée. \n"
-            "<li>Une flèche jaune en pointillés indique une relation entre un modèle d'instance et "
-            "le modèle de classe duquel il est instancié. La flèche est étiquetée avec "
-            "les paramètres de modèle de l'instance.\n"
+            "<li>Une flèche vert foncé est utilisée pour une relation d'héritage protégée.\n"
+            "<li>Une flèche rouge foncé est utilisée pour une relation d'héritage privée.\n"
+            "<li>Une flèche violette en pointillés est utilisée si une classe est contenue ou "
+            "utilisée par une autre classe. La flèche est étiquetée avec la ou les variable(s) "
+            "qui permettent d'accéder à la classe ou structure pointée. \n"
+            "<li>Une flèche jaune en pointillés indique une relation entre un modèle d'instance et "
+            "le modèle de classe duquel il est instancié. La flèche est étiquetée avec "
+            "les paramètres de modèle de l'instance.\n"
             "</ul>\n";
       }
     /*! text for the link to the legend page */
        virtual QCString trLegend()
       {
-         return "légende";
+         return "légende";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.2.0
    //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
        virtual QCString trTest()
       {
@@ -1153,42 +1124,32 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
       {
          return "Liste des tests";
       }
-   
-   //////////////////////////////////////////////////////////////////////////
-   // new since 1.2.1
-   //////////////////////////////////////////////////////////////////////////
-   
-    /*! Used as a section header for KDE-2 IDL methods */
-       virtual QCString trDCOPMethods()
-      {
-         return "Fonctions membres DCOP";
-      }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.2.2
    //////////////////////////////////////////////////////////////////////////
-   
+
     /*! Used as a section header for IDL properties */
        virtual QCString trProperties()
       {
-         return "Propriétés";
+         return "Propriétés";
       }
     /*! Used as a section header for IDL property documentation */
        virtual QCString trPropertyDocumentation()
       {
-         return "Documentation des propriétés";
+         return "Documentation des propriétés";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.2.4
    //////////////////////////////////////////////////////////////////////////
-   
+
     /*! Used for Java classes in the summary section of Java packages */
        virtual QCString trClasses()
       {
          if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
          {
-            return "Structures de données";
+            return "Structures de données";
          }
          else
          {
@@ -1208,7 +1169,7 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
     /*! The description of the package index page */
        virtual QCString trPackageListDescription()
       {
-         return "Liste des paquetages avec une brève description (si disponible) :";
+         return "Liste des paquetages avec une brève description (si disponible) :";
       }
     /*! The link name in the Quick links header for each page */
        virtual QCString trPackages()
@@ -1220,11 +1181,11 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
       {
          return "Valeur :";
       }
-    
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.2.5
    //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
        virtual QCString trBug()
       {
@@ -1235,14 +1196,14 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
       {
          return "Liste des bogues";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.2.6
    //////////////////////////////////////////////////////////////////////////
-   
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1263,235 +1224,235 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
        virtual QCString trRTFansicp()
       {
          return "1252";
       }
-    
-   
-    /*! Used as ansicpg for RTF fcharset 
+
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
        virtual QCString trRTFCharSet()
       {
          return "0";
       }
-   
+
     /*! Used as header RTF general index */
        virtual QCString trRTFGeneralIndex()
       {
          return "Index";
       }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
        virtual QCString trClass(bool first_capital, bool singular)
-      { 
+      {
          QCString result((first_capital ? "Classe" : "classe"));
          if (!singular)  result+="s";
-         return result; 
+         return result;
       }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
        virtual QCString trFile(bool first_capital, bool singular)
-      { 
+      {
          QCString result((first_capital ? "Fichier" : "fichier"));
          if (!singular)  result+="s";
-         return result; 
+         return result;
       }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
        virtual QCString trNamespace(bool first_capital, bool singular)
-      { 
+      {
          QCString result((first_capital ? "Espace" : "espace"));
          if (!singular)  result+="s";
          result+=" de nommage";
-         return result; 
+         return result;
       }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
        virtual QCString trGroup(bool first_capital, bool singular)
-      { 
+      {
          QCString result((first_capital ? "Groupe" : "groupe"));
          if (!singular)  result+="s";
-         return result; 
+         return result;
       }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
        virtual QCString trPage(bool first_capital, bool singular)
-      { 
+      {
          QCString result((first_capital ? "Page" : "page"));
          if (!singular)  result+="s";
-         return result; 
+         return result;
       }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
        virtual QCString trMember(bool first_capital, bool singular)
-      { 
+      {
          QCString result((first_capital ? "Membre" : "membre"));
          if (!singular)  result+="s";
-         return result; 
+         return result;
       }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
        virtual QCString trGlobal(bool first_capital, bool singular)
-      { 
+      {
          QCString result((first_capital ? "Globa" : "globa"));
          if (!singular)  result+="ux(ales)"; else result+="l(e)";
-         return result; 
+         return result;
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.2.7
    //////////////////////////////////////////////////////////////////////////
-   
+
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
        virtual QCString trAuthor(bool first_capital, bool singular)
-      {                                                                         
+      {
          QCString result((first_capital ? "Auteur" : "auteur"));
          if (!singular)  result+="s";
-         return result; 
+         return result;
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.2.11
    //////////////////////////////////////////////////////////////////////////
-   
+
     /*! This text is put before the list of members referenced by a member
      */
        virtual QCString trReferences()
       {
-         return "Références";
+         return "Références";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.2.13
    //////////////////////////////////////////////////////////////////////////
-   
-    /*! used in member documentation blocks to produce a list of 
+
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
        virtual QCString trImplementedFromList(int numEntries)
       {
-         return "Implémente "+trWriteList(numEntries)+".";
+         return "Implémente "+trWriteList(numEntries)+".";
       }
-   
+
     /*! used in member documentation blocks to produce a list of
      *  all members that implement this abstract member.
      */
        virtual QCString trImplementedInList(int numEntries)
       {
-         return "Implémenté dans "+trWriteList(numEntries)+".";
+         return "Implémenté dans "+trWriteList(numEntries)+".";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.2.16
    //////////////////////////////////////////////////////////////////////////
-   
+
     /*! used in RTF documentation as a heading for the Table
      *  of Contents.
      */
        virtual QCString trRTFTableOfContents()
       {
-         return "Table des matières";
+         return "Table des matières";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.2.17
    //////////////////////////////////////////////////////////////////////////
-   
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
        virtual QCString trDeprecatedList()
       {
-         return "Liste des éléments obsolètes";
+         return "Liste des éléments obsolètes";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.2.18
    //////////////////////////////////////////////////////////////////////////
-   
-    /*! Used as a header for declaration section of the events found in 
+
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
        virtual QCString trEvents()
       {
-         return "Événements";
+         return "Événements";
       }
     /*! Header used for the documentation section of a class' events. */
        virtual QCString trEventDocumentation()
       {
-         return "Documentation des événements";
+         return "Documentation des événements";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.3
    //////////////////////////////////////////////////////////////////////////
-   
+
     /*! Used as a heading for a list of Java class types with package scope.
      */
        virtual QCString trPackageTypes()
-      { 
+      {
          return "Types de paquetage";
       }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
        virtual QCString trPackageMembers()
-      { 
+      {
          return "Fonctions de paquetage";
       }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
        virtual QCString trStaticPackageMembers()
-      { 
+      {
          return "Fonctions statiques de paquetage";
       }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
        virtual QCString trPackageAttribs()
-      { 
+      {
          return "Attributs de paquetage";
       }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
        virtual QCString trStaticPackageAttribs()
-      { 
+      {
          return "Attributs statiques de paquetage";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.3.1
    //////////////////////////////////////////////////////////////////////////
-   
-    /*! Used in the quick index of a class/file/namespace member list page 
+
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
        virtual QCString trAll()
@@ -1503,31 +1464,23 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
       {
          return "Voici le graphe d'appel pour cette fonction :";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.3.3
    //////////////////////////////////////////////////////////////////////////
-   
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-       virtual QCString trSearchForIndex()
-      {
-         return "Rechercher";
-      }
+
     /*! This string is used as the title for the page listing the search
      *  results.
      */
        virtual QCString trSearchResultsTitle()
       {
-         return "Résultats de la recherche";
+         return "Résultats de la recherche";
       }
     /*! This string is put just before listing the search results. The
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1535,94 +1488,94 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
       {
          if (numDocuments==0)
          {
-            return "Désolé, aucun document ne correspond à votre requête.";
+            return "Désolé, aucun document ne correspond à votre requête.";
          }
          else if (numDocuments==1)
          {
-            return "Trouvé <b>1</b> document correspondant à votre requête.";
+            return "Trouvé <b>1</b> document correspondant à votre requête.";
          }
-         else 
+         else
          {
-            return "Trouvé  <b>$num</b> documents correspondant à votre requête. "
-               "Classé par ordre de pertinence décroissant.";
+            return "Trouvé  <b>$num</b> documents correspondant à votre requête. "
+               "Classé par ordre de pertinence décroissant.";
          }
       }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
        virtual QCString trSearchMatches()
       {
          return "Correspondances :";
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.3.8
    //////////////////////////////////////////////////////////////////////////
-   
+
      /*! This is used in HTML as the title of page with source code for file filename
       */
        virtual QCString trSourceFile(QCString& filename)
       {
          return " Fichier source de " + filename;
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.3.9
    //////////////////////////////////////////////////////////////////////////
-   
+
      /*! This is used as the name of the chapter containing the directory
       *  hierarchy.
       */
        virtual QCString trDirIndex()
-      { return "Hiérarchie de répertoires"; }
-   
+      { return "Hiérarchie de répertoires"; }
+
      /*! This is used as the name of the chapter containing the documentation
       *  of the directories.
       */
        virtual QCString trDirDocumentation()
-      { return "Documentation des répertoires"; }
-   
+      { return "Documentation des répertoires"; }
+
      /*! This is used as the title of the directory index and also in the
       *  Quick links of a HTML page, to link to the directory hierarchy.
       */
        virtual QCString trDirectories()
-      { return "Répertoires"; }
-   
+      { return "Répertoires"; }
+
      /*! This returns a sentences that introduces the directory hierarchy.
       *  and the fact that it is sorted alphabetically per level
       */
        virtual QCString trDirDescription()
-      { return "Cette hiérarchie de répertoire est triée approximativement, "
-              "mais pas complètement, par ordre alphabétique :";
+      { return "Cette hiérarchie de répertoire est triée approximativement, "
+              "mais pas complètement, par ordre alphabétique :";
       }
-   
+
      /*! This returns the title of a directory page. The name of the
       *  directory is passed via \a dirName.
       */
        virtual QCString trDirReference(const char *dirName)
-      { QCString  result="Répertoire de référence de "; result+=dirName; return result; }
-   
+      { QCString  result="Répertoire de référence de "; result+=dirName; return result; }
+
      /*! This returns the word directory with or without starting capital
       *  (\a first_capital) and in sigular or plural form (\a singular).
       */
        virtual QCString trDir(bool first_capital, bool singular)
       {
-         QCString result((first_capital ? "Répertoire" : "répertoire"));
+         QCString result((first_capital ? "Répertoire" : "répertoire"));
          if (singular) result+=""; else result+="s";
          return result;
       }
-   
+
    //////////////////////////////////////////////////////////////////////////
    // new since 1.4.1
    //////////////////////////////////////////////////////////////////////////
-   
+
     /*! This text is added to the documentation when the \\overload command
      *  is used for a overloaded function.
      */
        virtual QCString trOverloadText()
       {
-         return "Ceci est une fonction membre surchargée, "
-              "proposée par commodité. Elle diffère de la fonction "
+         return "Ceci est une fonction membre surchargée, "
+              "proposée par commodité. Elle diffère de la fonction "
               "ci-dessus uniquement par le(s) argument(s) qu'elle accepte.";
       }
 
@@ -1636,82 +1589,82 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
       return "Voici le graphe des appelants de cette fonction :";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
-    { return "Documentation des énumérations"; }
+    { return "Documentation des énumérations"; }
 
     //////////////////////////////////////////////////////////////////////////
     // new since 1.5.4 (mainly for Fortran)
     //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Documentation des fonctions/subroutines membres"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
-    { return "Liste des types de données"; }
+    { return "Liste des types de données"; }
 
     /*! This is put above each page as a link to all members of compounds (Fortran). */
     virtual QCString trCompoundMembersFortran()
-    { return "Champs de données"; }
+    { return "Champs de données"; }
 
     /*! This is an introduction to the annotated compound list (Fortran). */
     virtual QCString trCompoundListDescriptionFortran()
-    { return "Liste des types de données avec une brève description :"; }
+    { return "Liste des types de données avec une brève description :"; }
 
     /*! This is an introduction to the page with all data types (Fortran). */
     virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
     {
-      QCString result="Liste de tous les membres de types de données ";
+      QCString result="Liste de tous les membres de types de données ";
       if (!extractAll)
       {
-        result+="documentés ";
+        result+="documentés ";
       }
       result+="avec des liens vers ";
-      if (!extractAll) 
+      if (!extractAll)
       {
-         result+="la documentation de la structure des données de chaque membre :";
+         result+="la documentation de la structure des données de chaque membre :";
       }
-      else 
+      else
       {
-         result+="les types des données auxquels ils appartiennent :";
+         result+="les types des données auxquels ils appartiennent :";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
-    { return "Index du type de données"; }
+    { return "Index du type de données"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all data types (Fortran).
      */
     virtual QCString trTypeDocumentation()
-    { return "Documentation du type de données"; }
+    { return "Documentation du type de données"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Fonctions/Subroutines"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Documentation de la fonction/subroutine"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
-    { return "Les types de données"; }
-    
+    { return "Les types de données"; }
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Liste des modules"; }
@@ -1720,8 +1673,8 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
     virtual QCString trModulesListDescription(bool extractAll)
     {
       QCString result="Liste de tous les modules ";
-      if (!extractAll) result+="documentés ";
-      result+="avec une brève description :";
+      if (!extractAll) result+="documentés ";
+      result+="avec une brève description :";
       return result;
     }
 
@@ -1730,8 +1683,8 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
                                     ClassDef::CompoundType compType,
                                     bool isTemplate)
     {
-      QCString result="Réference ";
-      if (isTemplate) result+="du modèle ";
+      QCString result="Réference ";
+      if (isTemplate) result+="du modèle ";
       switch(compType)
       {
         case ClassDef::Class:      result+="du module "; break;
@@ -1739,7 +1692,7 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
         case ClassDef::Union:      result+="de l'union "; break;
         case ClassDef::Interface:  result+="de l'interface "; break;
         case ClassDef::Protocol:   result+="du protocole "; break;
-        case ClassDef::Category:   result+="de la catégorie "; break;
+        case ClassDef::Category:   result+="de la catégorie "; break;
         case ClassDef::Exception:  result+="de l'exception "; break;
         default: break;
       }
@@ -1749,47 +1702,47 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
     /*! used as the title of the HTML page of a module (Fortran) */
     virtual QCString trModuleReference(const char *namespaceName)
     {
-      QCString result="Référence du module ";
-      result+= namespaceName;        
+      QCString result="Référence du module ";
+      result+= namespaceName;
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Membres du module"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Liste de tous les membres ";
-      if (!extractAll) result+="documentés ";
+      if (!extractAll) result+="documentés ";
       result+="du module avec des liens vers ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="la documentation du module de chaque membre :";
       }
-      else 
+      else
       {
         result+="les modules auxquels ils appartiennent :";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Index des modules"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Module" : "module"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is put at the bottom of a module documentation page and is
@@ -1807,35 +1760,35 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
         case ClassDef::Union:      result+="cette union"; break;
         case ClassDef::Interface:  result+="cette interface"; break;
         case ClassDef::Protocol:   result+="ce protocole"; break;
-        case ClassDef::Category:   result+="cette catégorie"; break;
+        case ClassDef::Category:   result+="cette catégorie"; break;
         case ClassDef::Exception:  result+="cette exception"; break;
         default: break;
       }
-      result+=" a été générée à partir ";
+      result+=" a été générée à partir ";
       if (single) result+="du fichier suivant :"; else result+="des fichiers suivants :";
       return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Type" : "type"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Sous-programme" : "sous-programme"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
@@ -1882,12 +1835,6 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
 // new since 1.6.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Graphe des dépendances de répertoire pour "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1906,7 +1853,7 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
       return (QCString)"Inclut le fichier dans "+name;
     }
 
-    /** Compiles a date string. 
+    /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
      *  @param day Day of the Month: 1..31
@@ -1921,7 +1868,7 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
                                 bool includeTime)
     {
       static const char *days[]   = { "Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche" };
-      static const char *months[] = { "Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre" };
+      static const char *months[] = { "Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre" };
       QCString sdate;
       sdate.sprintf("%s %s %d %d",days[dayOfWeek-1],months[month-1],day,year);
       if (includeTime)
@@ -1939,7 +1886,7 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
 
     /*! Header for the page with bibliographic citations */
     virtual QCString trCiteReferences()
-    { return "Références bibliographiques"; }
+    { return "Références bibliographiques"; }
 
     /*! Text for copyright paragraph */
     virtual QCString trCopyright()
@@ -1947,7 +1894,167 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
 
     /*! Header for the graph showing the directory dependencies */
     virtual QCString trDirDepGraph(const char *name)
-    { return QCString("Graphe des dépendances de répertoires pour ")+name+":"; }
+    { return QCString("Graphe des dépendances de répertoires pour ")+name+":"; }
+
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.8.0
+//////////////////////////////////////////////////////////////////////////
+
+    /*! Detail level selector shown for hierarchical indices */
+    virtual QCString trDetailLevel()
+    { return "detail level"; }
+
+    /*! Section header for list of template parameters */
+    virtual QCString trTemplateParameters()
+    { return "Template Parameters"; }
+
+    /*! Used in dot graph when UML_LOOK is enabled and there are many fields */
+    virtual QCString trAndMore(const QCString &number)
+    { return "and "+number+" more..."; }
+
+    /*! Used file list for a Java enum */
+    virtual QCString trEnumGeneratedFromFiles(bool single)
+    { QCString result = "The documentation for this enum was generated from the following file";
+      if (!single) result += "s";
+      result+=":";
+      return result;
+    }
+
+    /*! Header of a Java enum page (Java enums are represented as classes). */
+    virtual QCString trEnumReference(const char *name)
+    { return QCString(name)+" Enum Reference"; }
+
+    /*! Used for a section containing inherited members */
+    virtual QCString trInheritedFrom(const char *members,const char *what)
+    { return QCString(members)+" inherited from "+what; }
+
+    /*! Header of the sections with inherited members specific for the
+     *  base class(es)
+     */
+    virtual QCString trAdditionalInheritedMembers()
+    { return "Additional Inherited Members"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.8.2
+//////////////////////////////////////////////////////////////////////////
+
+    /*! Used as a tooltip for the toggle button that appears in the
+     *  navigation tree in the HTML output when GENERATE_TREEVIEW is
+     *  enabled. This tooltip explains the meaning of the button.
+     */
+    virtual QCString trPanelSynchronisationTooltip(bool enable)
+    {
+      QCString opt = enable ? "enable" : "disable";
+      return "click to "+opt+" panel synchronisation";
+    }
+
+    /*! Used in a method of an Objective-C class that is declared in a
+     *  a category. Note that the @1 marker is required and is replaced
+     *  by a link.
+     */
+    virtual QCString trProvidedByCategory()
+    {
+      return "Provided by category @1.";
+    }
+
+    /*! Used in a method of an Objective-C category that extends a class.
+     *  Note that the @1 marker is required and is replaced by a link to
+     *  the class method.
+     */
+    virtual QCString trExtendsClass()
+    {
+      return "Extends class @1.";
+    }
+
+    /*! Used as the header of a list of class methods in Objective-C.
+     *  These are similar to static public member functions in C++.
+     */
+    virtual QCString trClassMethods()
+    {
+      return "Class Methods";
+    }
+
+    /*! Used as the header of a list of instance methods in Objective-C.
+     *  These are similar to public member functions in C++.
+     */
+    virtual QCString trInstanceMethods()
+    {
+      return "Instance Methods";
+    }
+
+    /*! Used as the header of the member functions of an Objective-C class.
+     */
+    virtual QCString trMethodDocumentation()
+    {
+      return "Method Documentation";
+    }
+
+    /*! Used as the title of the design overview picture created for the
+     *  VHDL output.
+     */
+    virtual QCString trDesignOverview()
+    {
+      return "Design Overview";
+    }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.8.4
+//////////////////////////////////////////////////////////////////////////
+
+    /** old style UNO IDL services: implemented interfaces */
+    virtual QCString trInterfaces()
+    { return "Exported Interfaces"; }
+
+    /** old style UNO IDL services: inherited services */
+    virtual QCString trServices()
+    { return "Included Services"; }
+
+    /** UNO IDL constant groups */
+    virtual QCString trConstantGroups()
+    { return "Constant Groups"; }
+
+    /** UNO IDL constant groups */
+    virtual QCString trConstantGroupReference(const char *namespaceName)
+    {
+      QCString result=namespaceName;
+      result+=" Constant Group Reference";
+      return result;
+    }
+    /** UNO IDL service page title */
+    virtual QCString trServiceReference(const char *sName)
+    {
+      QCString result=(QCString)sName;
+      result+=" Service Reference";
+      return result;
+    }
+    /** UNO IDL singleton page title */
+    virtual QCString trSingletonReference(const char *sName)
+    {
+      QCString result=(QCString)sName;
+      result+=" Singleton Reference";
+      return result;
+    }
+    /** UNO IDL service page */
+    virtual QCString trServiceGeneratedFromFiles(bool single)
+    {
+      // single is true implies a single file
+      QCString result=(QCString)"The documentation for this service "
+                                "was generated from the following file";
+      if (single) result+=":"; else result+="s:";
+      return result;
+    }
+    /** UNO IDL singleton page */
+    virtual QCString trSingletonGeneratedFromFiles(bool single)
+    {
+      // single is true implies a single file
+      QCString result=(QCString)"The documentation for this singleton "
+                                "was generated from the following file";
+      if (single) result+=":"; else result+="s:";
+      return result;
+    }
+
+//////////////////////////////////////////////////////////////////////////
 
 };
 
index 636da39..1523445 100644 (file)
@@ -26,7 +26,7 @@
 #ifndef TRANSLATOR_GR_H
 #define TRANSLATOR_GR_H
 
-class TranslatorGreek : public TranslatorAdapter_1_8_2
+class TranslatorGreek : public TranslatorAdapter_1_8_4
 {
   public:
 
@@ -47,12 +47,6 @@ class TranslatorGreek : public TranslatorAdapter_1_8_2
       return "\\usepackage[greek,english]{babel}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-        return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -395,12 +389,6 @@ class TranslatorGreek : public TranslatorAdapter_1_8_2
     { return "Ορισμοί"; }
 
     /*! This is used in the documentation of a file as a header before the
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Πρωτοτυπήσεις Συναρτήσεων"; }
-
-    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
@@ -437,12 +425,6 @@ class TranslatorGreek : public TranslatorAdapter_1_8_2
     { return "Τεκμηρίωση Ορισμών"; }
 
     /*! This is used in the documentation of a file/namespace before the list
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Τεκμηρίωση Πρωτοτυπήσεων των Συναρτήσεων"; }
-
-    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
@@ -491,12 +473,6 @@ class TranslatorGreek : public TranslatorAdapter_1_8_2
       result+=(QCString)" από";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "γραμμένο από τον ";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
@@ -759,12 +735,6 @@ class TranslatorGreek : public TranslatorAdapter_1_8_2
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Αλφαβητική Λίστα"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -1068,16 +1038,6 @@ class TranslatorGreek : public TranslatorAdapter_1_8_2
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "Μέδοδοι DCOP";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1419,14 +1379,6 @@ class TranslatorGreek : public TranslatorAdapter_1_8_2
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header
-     *  of each page before the field where one can enter the text to search
-     *  for.
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Αναζήτηση για";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1792,12 +1744,6 @@ class TranslatorGreek : public TranslatorAdapter_1_8_2
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Διάγραμμα εξάρτησης φακέλου για το "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
index bb124dd..5c79f61 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -17,7 +17,7 @@
 // translation by Boris Bralo <boris.bralo@gmail.com>
 // Updates:
 // --------
-// 2000/08/20 
+// 2000/08/20
 //  - Better handling of ISO-8859-2/ WIN 1250 stuff based on (actually stolen from :-)) Czech translations
 //    implemented by Petr Prikryl (prikrylp@skil.cz).
 //    As opposed to Czech translation this one assumes that Doxygen strings are written in Linux ( it's true,
@@ -27,7 +27,7 @@
 // - Added strings from 1.2.1
 // - Removed unneeeded decode() calls
 // - Changed some CS terminology
-// 
+//
 // 2001/01/22
 // - Added strings from 1.2.4
 //
@@ -40,9 +40,9 @@
 // - Method latexBabelPackage() removed, ude latexLanguageSupportCommand
 //
 // 2001/11/13
-// - inherits from Translator 
+// - inherits from Translator
 // - Added strings for 1.2.11
-// - better output for C documentation (trCompoundMembersDescription(), trClassDocumentation()) 
+// - better output for C documentation (trCompoundMembersDescription(), trClassDocumentation())
 //
 // 2001/11/13
 // - Added strings for 1.2.13
 // 2009/01/09
 // - Updated trLegendDocs
 //
-// 2010/03/04 
+// 2010/03/04
 // - Updates for "new since 1.6.0 (mainly for the new search engine)".
 // - UTF-8
 // - removed decode()
 //
-// 2010/05/27 
-// - Updates for 1.6.3 
-// 2012/04/12 
-// - Updates for 1.8.0 
+// 2010/05/27
+// - Updates for 1.6.3
+// 2012/04/12
+// - Updates for 1.8.0
 #ifndef TRANSLATOR_HR_H
 #define TRANSLATOR_HR_H
 
 class TranslatorCroatian : public TranslatorAdapter_1_8_2
 {
   private:
-  
+
   public:
     QCString idLanguage()
     { return "croatian"; }
-    QCString idLanguageCharset()
-    {
-        return "utf-8";
-    }
     QCString latexLanguageSupportCommand()
     { return "\\usepackage[croatian]{babel}\n"; }
     QCString trRelatedFunctions()
@@ -121,9 +117,9 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     QCString trIncludingInheritedMembers()
     { return ", uključujući naslijeđene članove."; }
     QCString trGeneratedAutomatically(const char *s)
-    { QCString result="napravljeno automatski Doxygen-om"; 
+    { QCString result="napravljeno automatski Doxygen-om";
       if (s) result+=(QCString)" za "+s;
-      result+=" iz programskog koda."; 
+      result+=" iz programskog koda.";
       return result;
     }
     QCString trEnumName()
@@ -144,7 +140,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
                }
                else
                {
-                       return "Sve klase"; 
+                       return "Sve klase";
                }
        }
     QCString trFileList()
@@ -152,9 +148,9 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     QCString trCompoundMembers()
        {
                if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-                       return "Svi članovi struktura"; 
+                       return "Svi članovi struktura";
                else
-                       return "Svi članovi klasa"; 
+                       return "Svi članovi klasa";
        }
     QCString trFileMembers()
     { return "članovi klasa u datoteci"; }
@@ -177,7 +173,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     }
     QCString trCompoundListDescription()
     { return "Popis svih klasa, unija i struktura "
-                 "s kratkim opisom :"; 
+                 "s kratkim opisom :";
     }
     QCString trCompoundMembersDescription(bool extractAll)
     {
@@ -189,7 +185,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
                  result+="članova klasa s linkovima na ";
          else
                  result+="članova struktura s linkovima na ";
-                 
+
       if (!extractAll)
          {
                  result+="dokumentaciju svakog člana:";
@@ -231,7 +227,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "Kazalo struktura podataka";
       }
       else
@@ -239,7 +235,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
                return "Skupno kazalo ";
       }
        }
-    QCString trFileIndex() 
+    QCString trFileIndex()
     { return "Kazalo datoteka"; }
     QCString trModuleDocumentation()
     { return "Dokumentacija modula"; }
@@ -247,7 +243,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     {
                if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
                {
-                       return "Dokumentacija struktura podataka"; 
+                       return "Dokumentacija struktura podataka";
                }
                else
                {
@@ -265,8 +261,6 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
 
     QCString trDefines()
     { return "Definicije"; }
-    QCString trFuncProtos()
-    { return "Prototipi funkcija"; }
     QCString trTypedefs()
     { return "Typedef-ovi"; }
     QCString trEnumerations()
@@ -279,8 +273,6 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     { return "Vrijednosti enumeracija"; }
     QCString trDefineDocumentation()
     { return "Dokumentacija definicija"; }
-    QCString trFunctionPrototypeDocumentation()
-    { return "Dokumentacija prototipa funkcije"; }
     QCString trTypedefDocumentation()
     { return "Dokumentacija typedef-a"; }
     QCString trEnumerationTypeDocumentation()
@@ -292,16 +284,12 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     QCString trCompounds()
     { return "Strukture"; }
     QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"Napravljeno "+date;
       if (projName) result+=(QCString)" projekt: "+projName;
       result+=" generator: ";
       return result;
     }
-    QCString trWrittenBy()
-    {
-      return "napisao ";
-    }
     QCString trClassDiagram(const char *clName)
     {
       return QCString("Dijagram klasa za ")+clName;
@@ -324,11 +312,11 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     { return "Iznimke"; }
     QCString trGeneratedBy()
     { return "Generirao"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
-// new since 0.49-990307 
+// new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     QCString trNamespaceList()
     { return "Popis imenika"; }
     QCString trNamespaceListDescription(bool extractAll)
@@ -344,10 +332,10 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     QCString trRelatedFunctionDocumentation()
     { return "Dokumentacija povezanih funkcija"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -364,8 +352,8 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
         case ClassDef::Struct: result+=" strukture "; break;
         case ClassDef::Union:  result+=" unije "; break;
         case ClassDef::Interface:  result+=" sučelja (interface) "; break;
-        case ClassDef::Protocol:   result+=" protokola "; break; 
-        case ClassDef::Category:   result+=" kategorije "; break; 
+        case ClassDef::Protocol:   result+=" protokola "; break;
+        case ClassDef::Category:   result+=" kategorije "; break;
         case ClassDef::Exception:  result+=" iznimke (exception) "; break;
         default: break;
       }
@@ -375,7 +363,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     QCString trFileReference(const char *fileName)
       // used as the title of the HTML page of a file
     {
-      QCString result="Opis datoteke "; 
+      QCString result="Opis datoteke ";
           result+=fileName;
           return result;
     }
@@ -384,11 +372,11 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     {
       QCString result ="Opis imenika ";
           result+=namespaceName;
-      
+
       return result;
     }
-    
-    // these are for the member sections of a class, struct or union 
+
+    // these are for the member sections of a class, struct or union
     QCString trPublicMembers()
     { return "Public članovi"; }
     QCString trPublicSlots()
@@ -409,8 +397,8 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     { return "Privatni slotovi"; }
     QCString trStaticPrivateMembers()
     { return "Statični privatni članovi"; }
-    // end of member sections 
-    
+    // end of member sections
+
     QCString trWriteList(int numEntries)
     {
       // this function is used to produce a comma-separated list of items.
@@ -418,23 +406,23 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+="";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     QCString trInheritsList(int numEntries)
       // used in class documentation to produce a list of base classes,
       // if class diagrams are disabled.
@@ -448,7 +436,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
       return "Naslijeđena u "+trWriteList(numEntries)+".";
     }
     QCString trReimplementedFromList(int numEntries)
-      // used in member documentation blocks to produce a list of 
+      // used in member documentation blocks to produce a list of
       // members that are hidden by this one.
     {
       return "Reimplementirano od  "+trWriteList(numEntries)+".";
@@ -465,18 +453,18 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     { return "članovi imenika"; }
     QCString trNamespaceMemberDescription(bool extractAll)
       // This is an introduction to the page with all namespace members
-    { 
+    {
       QCString result="Lista svih ";
       if (!extractAll) result+="dokumentiranih ";
       result+="članova imenika s linkovima na ";
-      if (extractAll) 
+      if (extractAll)
         result+="imeničku dokumentaciju svakog člana:";
-      else 
+      else
         result+="imenike kojima pripadaju:";
       return result;
     }
     QCString trNamespaceIndex()
-      // This is used in LaTeX as the title of the chapter with the 
+      // This is used in LaTeX as the title of the chapter with the
       // index of all namespaces.
     { return "Kazalo imenika"; }
     QCString trNamespaceDocumentation()
@@ -514,8 +502,8 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
         case ClassDef::Struct:     result+="strukture"; break;
         case ClassDef::Union:      result+="unije"; break;
         case ClassDef::Interface:  result+="sučelja (interface)"; break;
-        case ClassDef::Protocol:   result+="protokola"; break; 
-        case ClassDef::Category:   result+="kategorije"; break; 
+        case ClassDef::Protocol:   result+="protokola"; break;
+        case ClassDef::Category:   result+="kategorije"; break;
         case ClassDef::Exception:  result+="iznimke (exception)"; break;
         default: break;
       }
@@ -523,12 +511,6 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
          return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    QCString trAlphabeticalList()
-    { return "Abecedni popis"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -542,7 +524,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     QCString trMainPage()
     { return "Glavna stranica"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     QCString trPageAbbreviation()
@@ -587,7 +569,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     /*! header that is put before the list of constructor/destructors. */
     QCString trConstructorDocumentation()
     {
-      return "Dokumentacija konstruktora i destruktora "; 
+      return "Dokumentacija konstruktora i destruktora ";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     QCString trGotoSourceCode()
@@ -644,7 +626,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     QCString trNote()
     {
       return "Primjedba";
@@ -738,7 +720,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     /*! page explaining how the dot graph's should be interpreted */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "Ova stranica objašnjava kako interpretirati grafikone koje je generirao "
         "doxygen.<p>\n"
         "Na primjer:\n"
@@ -803,7 +785,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -816,15 +798,6 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP metode";
-    }
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -877,7 +850,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -907,89 +880,89 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     {
       return "Sadržaj";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Klas" : "klas"));
       result+= (singular ? "a" : "e");
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Datotek" : "datotek"));
       result+= (singular ? "a" : "e");
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
                QCString result;
                if (singular)
                        result = ((first_capital ? "Imenik" : "imenik"));
                else
                        result = ((first_capital ? "Imenici" : "imenici"));
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Grup" : "grup"));
       result+= (singular ? "a" : "e");
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Stranic" : "stranic"));
       result+= (singular ? "a" : "e");
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "član" : "član"));
       if (!singular)  result+="ovi";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "G" : "g"));
          if( singular )
                  result += "lobalna varijabla";
          else
                  result += "lobalne varijable";
 
-         return result; 
+         return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -999,10 +972,10 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Autor" : "autor"));
       if (!singular)  result+="i";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1019,7 +992,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1049,8 +1022,8 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1060,7 +1033,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1079,42 +1052,42 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Tipovi u paketu";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Funkcije u paketu";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Statičke funkcije u paketu";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Atributi u paketu";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Statički atributi u paketu";
     }
        //////////////////////////////////////////////////////////////////////////
        // new since 1.3.1
        //////////////////////////////////////////////////////////////////////////
 
-       /*! Used in the quick index of a class/file/namespace member list page 
+       /*! Used in the quick index of a class/file/namespace member list page
        *  to link to the unfiltered list of all members.
        */
        virtual QCString trAll()
@@ -1131,14 +1104,6 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
        // new since 1.3.3
        //////////////////////////////////////////////////////////////////////////
 
-       /*! When the search engine is enabled this text is put in the header 
-       *  of each page before the field where one can enter the text to search 
-       *  for. 
-       */
-       virtual QCString trSearchForIndex()
-       {
-               return "Traži";
-       }
        /*! This string is used as the title for the page listing the search
        *  results.
        */
@@ -1150,7 +1115,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
        *  text can be different depending on the number of documents found.
        *  Inside the text you can put the special marker $num to insert
        *  the number representing the actual number of search results.
-       *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+       *  The @a numDocuments parameter can be either 0, 1 or 2, where the
        *  value 2 represents 2 or more matches. HTML markup is allowed inside
        *  the returned string.
        */
@@ -1164,20 +1129,20 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
                {
                        return "Nađen <b>1</b> dokument koji odgovara vašem upitu.";
                }
-               else if (numDocuments<5) 
+               else if (numDocuments<5)
                {
-                       // Croatian (AFAIK all Slavic languages except Macedonian and Bulgarian) 
-            // have different plural form for 2,3,4. 
+                       // Croatian (AFAIK all Slavic languages except Macedonian and Bulgarian)
+            // have different plural form for 2,3,4.
                        return "Nađena <b>$num</b> dokumenta koji odgovaraju vašem upitu."
                                "Najbolji su prikazani prvi.";
                }
-               else 
+               else
                {
                        return "Nađeno <b>$num</b> dokumenata koji odgovaraju vašem upitu."
                                "Najbolji su prikazani prvi.";
                }
        }
-       /*! This string is put before the list of matched words, for each search 
+       /*! This string is put before the list of matched words, for each search
        *  result. What follows is the list of words that matched the query.
        */
        virtual QCString trSearchMatches()
@@ -1218,7 +1183,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     virtual QCString trDirectories()
     { return "Direktoriji"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1234,10 +1199,10 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Direktorij" : "direktorij"));
-      if (!singular) result+="i"; 
-      return result; 
+      if (!singular) result+="i";
+      return result;
     }
 //////////////////////////////////////////////////////////////////////////
 // new since 1.4.1
@@ -1263,7 +1228,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
       return "Ovo je graf funkcija koje pozivaju ovu funkciju:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
@@ -1276,7 +1241,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Dokumentacija member funkcija/subrutina"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Lista tipova podataka"; }
 
@@ -1298,18 +1263,18 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
       }
       result+="polja";
       result+=" s linkovima na ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         result+="dokumentaciju struktura podataka za svako polje";
       }
-      else 
+      else
       {
         result+="strukture kojima pripadaju:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
     * annotated compound index (Fortran).
     */
     virtual QCString trCompoundIndexFortran()
@@ -1321,19 +1286,19 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     virtual QCString trTypeDocumentation()
     { return "Dokumentacija tipova podataka"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
     *  list of (global) subprograms (Fortran).
     */
     virtual QCString trSubprograms()
     { return "Funkcije/Subrutine"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
     *  of documentation blocks for subprograms (Fortran)
     */
     virtual QCString trSubprogramDocumentation()
     { return "Documentacija funkcija/subrutina"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
     *  the list of links to documented compounds (Fortran)
     */
     virtual QCString trDataTypes()
@@ -1377,7 +1342,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" - Sadržaj modula";        
+      result+=" - Sadržaj modula";
       return result;
     }
 
@@ -1387,36 +1352,36 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Lista svih ";
       if (!extractAll) result+="dokumentiranih ";
       result+="članova modula s linkovima na ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="dokumentaciju modula za svaki član:";
       }
-      else 
+      else
       {
         result+="modul kojem pripadaju:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
     *  index of all modules (Fortran).
     */
     virtual QCString trModulesIndex()
     { return "Kazalo modula"; }
 
     /*! This is used for translation of the word that will possibly
-    *  be followed by a single name or by a list of names 
+    *  be followed by a single name or by a list of names
     *  of the category.
     */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Modul" : "modul"));
       if (!singular)  result+="i";
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
     *  followed by a list of files that were used to generate the page.
@@ -1441,24 +1406,24 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
       return result;
     }
     /*! This is used for translation of the word that will possibly
-    *  be followed by a single name or by a list of names 
+    *  be followed by a single name or by a list of names
     *  of the category.
     */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Tip" : "tip"));
       if (!singular)  result+="ovi";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-    *  be followed by a single name or by a list of names 
+    *  be followed by a single name or by a list of names
     *  of the category.
     */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Subprogram" : "subprogram"));
       if (!singular)  result+="i";
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
@@ -1504,12 +1469,6 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Graf povezanih direktorija za "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1528,7 +1487,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
       return (QCString)"Uključuje datotake u "+name;
     }
 
-    /** Compiles a date string. 
+    /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
      *  @param day Day of the Month: 1..31
@@ -1602,8 +1561,8 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
     virtual QCString trInheritedFrom(const char *members,const char *what)
     { return QCString(members)+" naslijeđeni od "+what; }
 
-    /*! Header of the sections with inherited members specific for the 
-     *  base class(es) 
+    /*! Header of the sections with inherited members specific for the
+     *  base class(es)
      */
     virtual QCString trAdditionalInheritedMembers()
     { return "Dodatni naslijeđeni članovi"; }
index 58cb0d5..157247c 100644 (file)
@@ -3,8 +3,8 @@
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
  * input used in their production; they are not affected by this license.
  *
  */
+
  /*
   * Original Hungarian translation by
-  * György Földvári  <foldvari@diatronltd.com>
+  * György Földvári  <foldvari@diatronltd.com>
   *
   * Extended, revised and updated by
-  * Ákos Kiss  <akiss@users.sourceforge.net>
+  * Ákos Kiss  <akiss@users.sourceforge.net>
   *
   * Further extended, revised and updated by
-  * Tamási Ferenc <tf551@hszk.bme.hu>
+  * Tamási Ferenc <tf551@hszk.bme.hu>
   */
 
 #ifndef TRANSLATOR_HU_H
@@ -58,58 +58,52 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
              "\\usepackage[magyar]{babel}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "iso-8859-2";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
     virtual QCString trRelatedFunctions()
-    { return "Kapcsolódó függvények"; }
+    { return "Kapcsolódó függvények"; }
 
     /*! subscript for the related functions. */
     virtual QCString trRelatedSubscript()
-    { return "(Figyelem! Ezek a függvények nem tagjai az osztálynak!)"; }
+    { return "(Figyelem! Ezek a függvények nem tagjai az osztálynak!)"; }
 
     /*! header that is put before the detailed description of files, classes and namespaces. */
     virtual QCString trDetailedDescription()
-    { return "Részletes leírás"; }
+    { return "Részletes leírás"; }
 
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
-    { return "Típusdefiníció-tagok dokumentációja"; }
-    
+    { return "Típusdefiníció-tagok dokumentációja"; }
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
-    { return "Enumeráció-tagok dokumentációja"; }
-    
+    { return "Enumeráció-tagok dokumentációja"; }
+
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
-    { return "Tagfüggvények dokumentációja"; }
-    
+    { return "Tagfüggvények dokumentációja"; }
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Adatmezõk dokumentációja"; 
+        return "Adatmezők dokumentációja";
       }
       else
       {
-        return "Adattagok dokumentációja"; 
+        return "Adattagok dokumentációja";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
     virtual QCString trMore()
-    { return "Részletek..."; }
+    { return "Részletek..."; }
 
     /*! put in the class documentation */
     virtual QCString trListOfAllMembers()
-    { return "A tagok teljes listája"; }
+    { return "A tagok teljes listája"; }
 
     /*! used as the title of the "list of all members" page of a class */
     virtual QCString trMemberList()
@@ -121,161 +115,161 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
 
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
-    { return " osztály tagjainak teljes listája, az örökölt tagokkal együtt."; }
-    
+    { return " osztály tagjainak teljes listája, az örökölt tagokkal együtt."; }
+
     virtual QCString trGeneratedAutomatically(const char *s)
-    { QCString result="Ezt a dokumentációt a Doxygen készítette ";
+    { QCString result="Ezt a dokumentációt a Doxygen készítette ";
       if (s) result+=(QCString)" a" + zed(s[0])+s+(QCString)" projekthez";
-      result+=" a forráskódból."; 
+      result+=" a forráskódból.";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
     { return "enum"; }
-    
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
-    { return "enum-érték"; }
-    
+    { return "enum-érték"; }
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
-    { return "definiálja:"; }
+    { return "definiálja:"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
     { return "Modulok"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
-    { return "Osztályhierarchia"; }
-    
+    { return "Osztályhierarchia"; }
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Adatszerkezetek";
       }
       else
       {
-        return "Osztálylista"; 
+        return "Osztálylista";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
-    { return "Fájllista"; }
+    { return "Fájllista"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Adatmezõk"; 
+        return "Adatmezők";
       }
       else
       {
-        return "Osztálytagok"; 
+        return "Osztálytagok";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Globális elemek"; 
+        return "Globális elemek";
       }
       else
       {
-        return "Fájlelemek"; 
+        return "Fájlelemek";
       }
     }
 
     /*! This is put above each page as a link to all related pages. */
     virtual QCString trRelatedPages()
-    { return "Kapcsolódó lapok"; }
+    { return "Kapcsolódó lapok"; }
 
     /*! This is put above each page as a link to all examples. */
     virtual QCString trExamples()
-    { return "Példák"; }
+    { return "Példák"; }
 
     /*! This is put above each page as a link to the search engine. */
     virtual QCString trSearch()
-    { return "Keresés"; }
+    { return "Keresés"; }
 
     /*! This is an introduction to the class hierarchy. */
     virtual QCString trClassHierarchyDescription()
-    { return "Majdnem (de nem teljesen) betûrendbe szedett "
-             "leszármazási lista:";
+    { return "Majdnem (de nem teljesen) betűrendbe szedett "
+             "leszármazási lista:";
     }
 
     /*! This is an introduction to the list with all files. */
     virtual QCString trFileListDescription(bool extractAll)
     {
-      QCString result="Az összes ";
-      if (!extractAll) result+="dokumentált ";
-      result+="fájl listája rövid leírásokkal:";
+      QCString result="Az összes ";
+      if (!extractAll) result+="dokumentált ";
+      result+="fájl listája rövid leírásokkal:";
       return result;
     }
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Az összes adatszerkezet listája rövid leírásokkal:"; 
+        return "Az összes adatszerkezet listája rövid leírásokkal:";
       }
       else
       {
-        return "Az összes osztály, struktúra, unió és interfész "
-               "listája rövid leírásokkal:"; 
+        return "Az összes osztály, struktúra, unió és interfész "
+               "listája rövid leírásokkal:";
       }
     }
 
     /*! This is an introduction to the page with all class members. */
     virtual QCString trCompoundMembersDescription(bool extractAll)
     {
-      QCString result="Az összes ";
+      QCString result="Az összes ";
       if (!extractAll)
       {
-        result+="dokumentált ";
+        result+="dokumentált ";
       }
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        result+="struktúra- és úniómezõ";
+        result+="struktúra- és úniómező";
       }
       else
       {
-        result+="osztálytag";
+        result+="osztálytag";
       }
-      result+=" listája, valamint hivatkozás ";
-      if (!extractAll) 
+      result+=" listája, valamint hivatkozás ";
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
-          result+="a megfelelõ struktúra-/úniódokumentációra minden mezõnél:";
+          result+="a megfelelő struktúra-/úniódokumentációra minden mezőnél:";
         }
         else
         {
-          result+="a megfelelõ osztálydokumentációra minden tagnál:";
+          result+="a megfelelő osztálydokumentációra minden tagnál:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
-          result+="a struktúrákra/úniókra, amikhez tartoznak:";
+          result+="a struktúrákra/úniókra, amikhez tartoznak:";
         }
         else
         {
-          result+="az osztályokra, amikhez tartoznak:";
+          result+="az osztályokra, amikhez tartoznak:";
         }
       }
       return result;
@@ -284,68 +278,68 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
     /*! This is an introduction to the page with all file members. */
     virtual QCString trFileMembersDescription(bool extractAll)
     {
-      QCString result="Az összes ";
-      if (!extractAll) result+="dokumentált ";
-      
+      QCString result="Az összes ";
+      if (!extractAll) result+="dokumentált ";
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        result+="függvény, változó, makródefiníció, enumeráció és típusdefiníció";
+        result+="függvény, változó, makródefiníció, enumeráció és típusdefiníció";
       }
       else
       {
-        result+="fájlelem";
+        result+="fájlelem";
       }
-      result+=" listája, valamint hivatkozás ";
-      if (extractAll) 
-        result+="a fájlokra, amikhez tartoznak:";
-      else 
-        result+="a dokumentációra:";
+      result+=" listája, valamint hivatkozás ";
+      if (extractAll)
+        result+="a fájlokra, amikhez tartoznak:";
+      else
+        result+="a dokumentációra:";
       return result;
     }
 
     /*! This is an introduction to the page with the list of all examples */
     virtual QCString trExamplesDescription()
-    { return "A példák listája:"; }
+    { return "A példák listája:"; }
 
     /*! This is an introduction to the page with the list of related pages */
     virtual QCString trRelatedPagesDescription()
-    { return "A kapcsolódó dokumentációk listája:"; }
+    { return "A kapcsolódó dokumentációk listája:"; }
 
     /*! This is an introduction to the page with the list of class/file groups */
     virtual QCString trModulesDescription()
-    { return "A modulok listája:"; }
+    { return "A modulok listája:"; }
 
-    // index titles (the project name is prepended for these) 
+    // index titles (the project name is prepended for these)
 
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
-    { return "Dokumentáció"; }
+    { return "Dokumentáció"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
-    { return "Modulmutató"; }
+    { return "Modulmutató"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
-    { return "Hierarchikus mutató"; }
+    { return "Hierarchikus mutató"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
-        return "Adatszerkezet-mutató";
+      {
+        return "Adatszerkezet-mutató";
       }
       else
       {
-        return "Osztálymutató"; 
+        return "Osztálymutató";
       }
     }
 
@@ -353,13 +347,13 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
      * list of all files.
      */
     virtual QCString trFileIndex()
-    { return "Fájlmutató"; }
+    { return "Fájlmutató"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all groups.
      */
     virtual QCString trModuleDocumentation()
-    { return "Modulok dokumentációja"; }
+    { return "Modulok dokumentációja"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all classes, structs and unions.
@@ -368,11 +362,11 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Adatszerkezetek dokumentációja";
+        return "Adatszerkezetek dokumentációja";
       }
       else
       {
-        return "Osztályok dokumentációja";
+        return "Osztályok dokumentációja";
       }
     }
 
@@ -380,190 +374,172 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
      *  the documentation of all files.
      */
     virtual QCString trFileDocumentation()
-    { return "Fájlok dokumentációja"; }
+    { return "Fájlok dokumentációja"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all examples.
      */
     virtual QCString trExampleDocumentation()
-    { return "Példák dokumentációja"; }
+    { return "Példák dokumentációja"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all related pages.
      */
     virtual QCString trPageDocumentation()
-    { return "Kapcsolódó dokumentációk"; }
+    { return "Kapcsolódó dokumentációk"; }
 
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
-    { return "Referencia kézikönyv"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+    { return "Referencia kézikönyv"; }
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
-    { return "Makródefiníciók"; }
-
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Függvény-prototípusok"; }
+    { return "Makródefiníciók"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
-    { return "Típusdefiníciók"; }
+    { return "Típusdefiníciók"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
-    { return "Enumerációk"; }
+    { return "Enumerációk"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
-    { return "Függvények"; }
+    { return "Függvények"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
-    { return "Változók"; }
+    { return "Változók"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
-    { return "Enumeráció-értékek"; }
-    
+    { return "Enumeráció-értékek"; }
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
-    { return "Makródefiníciók dokumentációja"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Függvény-prototípusok dokumentációja"; }
+    { return "Makródefiníciók dokumentációja"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
-    { return "Típusdefiníciók dokumentációja"; }
+    { return "Típusdefiníciók dokumentációja"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
-    { return "Enumerációk dokumentációja"; }
+    { return "Enumerációk dokumentációja"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
-    { return "Függvények dokumentációja"; }
+    { return "Függvények dokumentációja"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
-    { return "Változók dokumentációja"; }
+    { return "Változók dokumentációja"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Adatszerkezetek"; 
+        return "Adatszerkezetek";
       }
       else
       {
-        return "Osztályok"; 
+        return "Osztályok";
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"";
       if (projName) result+=(QCString)"Projekt: "+projName;
-      result+=(QCString)" Készült: "+date+" Készítette: ";
+      result+=(QCString)" Készült: "+date+" Készítette: ";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return " melyet írt ";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
-      return (QCString)"A"+zed(clName[0])+clName+" osztály származási diagramja:";
+      return (QCString)"A"+zed(clName[0])+clName+" osztály származási diagramja:";
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
-    { return "CSAK BELSÕ HASZNÁLATRA!"; }
+    { return "CSAK BELSŐ HASZNÁLATRA!"; }
 
     /*! this text is generated when the \\warning command is used. */
     virtual QCString trWarning()
-    { return "Figyelmeztetés"; }
+    { return "Figyelmeztetés"; }
 
     /*! this text is generated when the \\version command is used. */
     virtual QCString trVersion()
-    { return "Verzió"; }
+    { return "Verzió"; }
 
     /*! this text is generated when the \\date command is used. */
     virtual QCString trDate()
-    { return "Dátum"; }
+    { return "Dátum"; }
 
     /*! this text is generated when the \\return command is used. */
     virtual QCString trReturns()
-    { return "Visszatérési érték"; }
+    { return "Visszatérési érték"; }
 
     /*! this text is generated when the \\sa command is used. */
     virtual QCString trSeeAlso()
-    { return "Lásd még"; }
+    { return "Lásd még"; }
 
     /*! this text is generated when the \\param command is used. */
     virtual QCString trParameters()
-    { return "Paraméterek"; }
+    { return "Paraméterek"; }
 
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
-    { return "Kivételek"; }
-    
+    { return "Kivételek"; }
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
-    { return "Készítette"; }
+    { return "Készítette"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
-    { return "Névtérlista"; }
+    { return "Névtérlista"; }
 
     /*! used as an introduction to the namespace list */
     virtual QCString trNamespaceListDescription(bool extractAll)
     {
-      QCString result="Az összes ";
-      if (!extractAll) result+="dokumentált ";
-      result+="névtér listája rövid leírásokkal:";
+      QCString result="Az összes ";
+      if (!extractAll) result+="dokumentált ";
+      result+="névtér listája rövid leírásokkal:";
       return result;
     }
 
@@ -571,18 +547,18 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
      *  friends of a class
      */
     virtual QCString trFriends()
-    { return "Barátok"; }
-    
+    { return "Barátok"; }
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
-    { return "Barát és kapcsolódó függvények dokumentációja"; }
-    
+    { return "Barát és kapcsolódó függvények dokumentációja"; }
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -595,13 +571,13 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
       QCString result=(QCString)clName;
       switch(compType)
       {
-        case ClassDef::Class:      result+=" osztály"; break;
-        case ClassDef::Struct:     result+=" struktúra"; break;
-        case ClassDef::Union:      result+=" unió"; break;
-        case ClassDef::Interface:  result+=" interfész"; break;
+        case ClassDef::Class:      result+=" osztály"; break;
+        case ClassDef::Struct:     result+=" struktúra"; break;
+        case ClassDef::Union:      result+=" unió"; break;
+        case ClassDef::Interface:  result+=" interfész"; break;
         case ClassDef::Protocol:   result+=" protocol"; break; // translate me!
         case ClassDef::Category:   result+=" category"; break; // translate me!
-        case ClassDef::Exception:  result+=" kivétel"; break;
+        case ClassDef::Exception:  result+=" kivétel"; break;
         default: break;
       }
       if (isTemplate) result+="sablon-";
@@ -613,7 +589,7 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
     virtual QCString trFileReference(const char *fileName)
     {
       QCString result=fileName;
-      result+=" fájlreferencia"; 
+      result+=" fájlreferencia";
       return result;
     }
 
@@ -621,31 +597,31 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
     virtual QCString trNamespaceReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" névtér-referencia";
+      result+=" névtér-referencia";
       return result;
     }
-    
+
     virtual QCString trPublicMembers()
-    { return "Publikus tagfüggvények"; }
+    { return "Publikus tagfüggvények"; }
     virtual QCString trPublicSlots()
-    { return "Publikus rések"; }
+    { return "Publikus rések"; }
     virtual QCString trSignals()
-    { return "Szignálok"; }
+    { return "Szignálok"; }
     virtual QCString trStaticPublicMembers()
-    { return "Statikus publikus tagfüggvények"; }
+    { return "Statikus publikus tagfüggvények"; }
     virtual QCString trProtectedMembers()
-    { return "Védett tagfüggvények"; }
+    { return "Védett tagfüggvények"; }
     virtual QCString trProtectedSlots()
-    { return "Védett rések"; }
+    { return "Védett rések"; }
     virtual QCString trStaticProtectedMembers()
-    { return "Statikus védett tagfüggvények"; }
+    { return "Statikus védett tagfüggvények"; }
     virtual QCString trPrivateMembers()
-    { return "Privát tagfüggvények"; }
+    { return "Privát tagfüggvények"; }
     virtual QCString trPrivateSlots()
-    { return "Privát rések"; }
+    { return "Privát rések"; }
     virtual QCString trStaticPrivateMembers()
-    { return "Statikus privát tagfüggvények"; }
-    
+    { return "Statikus privát tagfüggvények"; }
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -654,29 +630,29 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
-            result+=" és ";
+            result+=" és ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
     virtual QCString trInheritsList(int numEntries)
     {
-      return "Õsök: "+trWriteList(numEntries)+".";
+      return "Ősök: "+trWriteList(numEntries)+".";
     }
 
     /*! used in class documentation to produce a list of super classes,
@@ -684,15 +660,15 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
      */
     virtual QCString trInheritedByList(int numEntries)
     {
-      return "Leszármazottak: "+trWriteList(numEntries)+".";
+      return "Leszármazottak: "+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
     {
-      return "Újraimplementált õsök: "+trWriteList(numEntries)+".";
+      return "Újraimplementált ősök: "+trWriteList(numEntries)+".";
     }
 
     /*! used in member documentation blocks to produce a list of
@@ -700,36 +676,36 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
      */
     virtual QCString trReimplementedInList(int numEntries)
     {
-      return "Újraimplementáló leszármazottak: "+trWriteList(numEntries)+".";
+      return "Újraimplementáló leszármazottak: "+trWriteList(numEntries)+".";
     }
 
     /*! This is put above each page as a link to all members of namespaces. */
     virtual QCString trNamespaceMembers()
-    { return "Névtértagok"; }
+    { return "Névtértagok"; }
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
-      QCString result="Az összes ";
-      if (!extractAll) result+="dokumentált ";
-      result+="névtér tagjainak listája, valamint hivatkozás ";
-      if (extractAll) 
-        result+=" a megfelelõ névtér dokumentációra minden tagnál:";
-      else 
-        result+=" a névterekre, amelynek tagjai:";
+    {
+      QCString result="Az összes ";
+      if (!extractAll) result+="dokumentált ";
+      result+="névtér tagjainak listája, valamint hivatkozás ";
+      if (extractAll)
+        result+=" a megfelelő névtér dokumentációra minden tagnál:";
+      else
+        result+=" a névterekre, amelynek tagjai:";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
-    { return "Névtérmutató"; }
+    { return "Névtérmutató"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all namespaces.
      */
     virtual QCString trNamespaceDocumentation()
-    { return "Névterek dokumentációja"; }
+    { return "Névterek dokumentációja"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990522
@@ -739,7 +715,7 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
      *  namespaces in a file.
      */
     virtual QCString trNamespaces()
-    { return "Névterek"; }
+    { return "Névterek"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990728
@@ -752,44 +728,38 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
         bool single)
     { // here s is one of " Class", " Struct" or " Union"
       // single is true implies a single file
-      QCString result=(QCString)"Ez a dokumentáció ";
+      QCString result=(QCString)"Ez a dokumentáció ";
       switch(compType)
       {
-        case ClassDef::Class:      result+="az osztályról"; break;
-        case ClassDef::Struct:     result+="a struktúráról"; break;
-        case ClassDef::Union:      result+="az unióról"; break;
-        case ClassDef::Interface:  result+="az interfészrõl"; break;
+        case ClassDef::Class:      result+="az osztályról"; break;
+        case ClassDef::Struct:     result+="a struktúráról"; break;
+        case ClassDef::Union:      result+="az unióról"; break;
+        case ClassDef::Interface:  result+="az interfészről"; break;
         case ClassDef::Protocol:   result+="protocol"; break; // translate me!
         case ClassDef::Category:   result+="category"; break; // translate me!
-        case ClassDef::Exception:  result+="a kivételrõl"; break;
+        case ClassDef::Exception:  result+="a kivételről"; break;
         default: break;
       }
-      result+=" a következõ fájl";
+      result+=" a következő fájl";
       if (!single) result+="ok";
-      result+=" alapján készült:";
+      result+=" alapján készült:";
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Betûrendes lista"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
 
     /*! This is used as the heading text for the retval command. */
     virtual QCString trReturnValues()
-    { return "Visszatérési értékek"; }
+    { return "Visszatérési értékek"; }
 
     /*! This is in the (quick) index as a link to the main page (index.html)
      */
     virtual QCString trMainPage()
-    { return "Fõoldal"; }
+    { return "Főoldal"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -801,11 +771,11 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
 
     virtual QCString trDefinedAtLineInSourceFile()
     {
-      return "Definíció a(z) @1 fájl @0. sorában.";
+      return "Definíció a(z) @1 fájl @0. sorában.";
     }
     virtual QCString trDefinedInSourceFile()
     {
-      return "Definíció a(z) @0 fájlban.";
+      return "Definíció a(z) @0 fájlban.";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -824,120 +794,120 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
     /*! this text is put before a collaboration diagram */
     virtual QCString trCollaborationDiagram(const char *clName)
     {
-      return (QCString)"A"+zed(clName[0])+clName+" osztály együttmûködési diagramja:";
+      return (QCString)"A"+zed(clName[0])+clName+" osztály együttműködési diagramja:";
     }
     /*! this text is put before an include dependency graph */
     virtual QCString trInclDepGraph(const char *fName)
     {
-      return (QCString)"A"+zed(fName[0])+fName+" definíciós fájl függési gráfja:";
+      return (QCString)"A"+zed(fName[0])+fName+" definíciós fájl függési gráfja:";
     }
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Konstruktorok és destruktorok dokumentációja"; 
+      return "Konstruktorok és destruktorok dokumentációja";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
     {
-      return "Ugrás a fájl forráskódjához.";
+      return "Ugrás a fájl forráskódjához.";
     }
     /*! Used in the file sources to point to the corresponding documentation. */
     virtual QCString trGotoDocumentation()
     {
-      return "Ugrás a fájl dokumentációjához.";
+      return "Ugrás a fájl dokumentációjához.";
     }
     /*! Text for the \\pre command */
     virtual QCString trPrecondition()
     {
-      return "Elõfeltétel";
+      return "Előfeltétel";
     }
     /*! Text for the \\post command */
     virtual QCString trPostcondition()
     {
-      return "Utófeltétel";
+      return "Utófeltétel";
     }
     /*! Text for the \\invariant command */
     virtual QCString trInvariant()
     {
-      return "Invariáns";
+      return "Invariáns";
     }
     /*! Text shown before a multi-line variable/enum initialization */
     virtual QCString trInitialValue()
     {
-      return "Kezdõ érték:";
+      return "Kezdő érték:";
     }
     /*! Text used the source code in the file index */
     virtual QCString trCode()
     {
-      return "forráskód";
+      return "forráskód";
     }
     virtual QCString trGraphicalHierarchy()
     {
-      return "Osztályhierarchia-ábra";
+      return "Osztályhierarchia-ábra";
     }
     virtual QCString trGotoGraphicalHierarchy()
     {
-      return "Ugrás az osztályhierarchia-ábrához";
+      return "Ugrás az osztályhierarchia-ábrához";
     }
     virtual QCString trGotoTextualHierarchy()
     {
-      return "Ugrás az szöveges osztályhierarchiához";
+      return "Ugrás az szöveges osztályhierarchiához";
     }
     virtual QCString trPageIndex()
     {
-      return "Oldalmutató";
+      return "Oldalmutató";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
-      return "Megjegyzés";
+      return "Megjegyzés";
     }
     virtual QCString trPublicTypes()
     {
-      return "Publikus típusok";
+      return "Publikus típusok";
     }
     virtual QCString trPublicAttribs()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Adatmezõk";
+        return "Adatmezők";
       }
       else
       {
-        return "Publikus attribútumok";
+        return "Publikus attribútumok";
       }
     }
     virtual QCString trStaticPublicAttribs()
     {
-      return "Statikus publikus attribútumok";
+      return "Statikus publikus attribútumok";
     }
     virtual QCString trProtectedTypes()
     {
-      return "Védett típusok";
+      return "Védett típusok";
     }
     virtual QCString trProtectedAttribs()
     {
-      return "Védett attribútumok";
+      return "Védett attribútumok";
     }
     virtual QCString trStaticProtectedAttribs()
     {
-      return "Statikus védett attribútumok";
+      return "Statikus védett attribútumok";
     }
     virtual QCString trPrivateTypes()
     {
-      return "Privát típusok";
+      return "Privát típusok";
     }
     virtual QCString trPrivateAttribs()
     {
-      return "Privát attribútumok";
+      return "Privát attribútumok";
     }
     virtual QCString trStaticPrivateAttribs()
     {
-      return "Statikus privát attribútumok";
+      return "Statikus privát attribútumok";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -947,12 +917,12 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
     /*! Used as a marker that is put before a todo item */
     virtual QCString trTodo()
     {
-      return "Tennivaló";
+      return "Tennivaló";
     }
     /*! Used as the header of the todo list */
     virtual QCString trTodoList()
     {
-      return "Tennivalók listája";
+      return "Tennivalók listája";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -961,11 +931,11 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
 
     virtual QCString trReferencedBy()
     {
-      return "Hivatkozások:";
+      return "Hivatkozások:";
     }
     virtual QCString trRemarks()
     {
-      return "Megjegyzések";
+      return "Megjegyzések";
     }
     virtual QCString trAttention()
     {
@@ -973,14 +943,14 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
     }
     virtual QCString trInclByDepGraph()
     {
-      return "Ez az ábra azt mutatja, hogy mely fájlok ágyazzák be "
-             "közvetve vagy közvetlenül ezt a fájlt:";
+      return "Ez az ábra azt mutatja, hogy mely fájlok ágyazzák be "
+             "közvetve vagy közvetlenül ezt a fájlt:";
     }
     virtual QCString trSince()
     {
-      return "Elõször bevezetve";
+      return "Először bevezetve";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -988,33 +958,33 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
     /*! title of the graph legend page */
     virtual QCString trLegendTitle()
     {
-      return "Jelmagyarázat";
+      return "Jelmagyarázat";
     }
     /*! page explaining how the dot graph's should be interpreted */
     virtual QCString trLegendDocs()
     {
-      return 
-        "Ez az oldal elmagyarázza hogyan kell értelmezni a "
-        "doxygen által készített ábrákat.<p>\n"
-        "Vegyük a következõ példát:\n"
+      return
+        "Ez az oldal elmagyarázza hogyan kell értelmezni a "
+        "doxygen által készített ábrákat.<p>\n"
+        "Vegyük a következő példát:\n"
         "\\code\n"
-        "/*! Vágás miatt nem látható osztály */\n"
+        "/*! Vágás miatt nem látható osztály */\n"
         "class Invisible { };\n\n"
-        "/*! Levágott osztály, származása rejtett */\n"
+        "/*! Levágott osztály, származása rejtett */\n"
         "class Truncated : public Invisible { };\n\n"
-        "/* Doxygen kommentekkel nem dokumentált osztály */\n"
+        "/* Doxygen kommentekkel nem dokumentált osztály */\n"
         "class Undocumented { };\n\n"
-        "/*! Publikus származtatásal levezetett osztály */\n"
+        "/*! Publikus származtatásal levezetett osztály */\n"
         "class PublicBase : public Truncated { };\n\n"
-        "/*! Egy sablonosztály */\n"
+        "/*! Egy sablonosztály */\n"
         "template<class T> class Templ { };\n\n"
-        "/*! Védett származtatásal levezetett osztály */\n"
+        "/*! Védett származtatásal levezetett osztály */\n"
         "class ProtectedBase { };\n\n"
-        "/*! Privát származtatásal levezetett osztály */\n"
+        "/*! Privát származtatásal levezetett osztály */\n"
         "class PrivateBase { };\n\n"
-        "/*! Osztály, melyet a származtatott osztály használ */\n"
+        "/*! Osztály, melyet a származtatott osztály használ */\n"
         "class Used { };\n\n"
-        "/*! Osztály, mely több másiknak leszármazottja */\n"
+        "/*! Osztály, mely több másiknak leszármazottja */\n"
         "class Inherited : public PublicBase,\n"
         "                  protected ProtectedBase,\n"
         "                  private PrivateBase,\n"
@@ -1025,42 +995,42 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
         "    Used *m_usedClass;\n"
         "};\n"
         "\\endcode\n"
-        "Ha a konfigurációs fájl \\c MAX_DOT_GRAPH_HEIGHT elemének értékét "
-        "240-re állítjuk, az eredmény a következõ ábra lesz:"
+        "Ha a konfigurációs fájl \\c MAX_DOT_GRAPH_HEIGHT elemének értékét "
+        "240-re állítjuk, az eredmény a következő ábra lesz:"
         "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
         "<p>\n"
-        "Az ábrán levõ dobozok jelentése:\n"
+        "Az ábrán levő dobozok jelentése:\n"
         "<ul>\n"
-        "<li>Kitöltött fekete doboz jelzi azt az osztályt vagy struktúrát,"
-        "amelyrõl az ábra szól.\n"
-        "<li>Fekete keret jelzi a dokumentált osztályokat és struktúrákat.\n"
-        "<li>Szürke keret jelzi a nem dokumentált osztályokat és struktúrákat.\n"
-        "<li>Piros keret jelzi azokat az osztályokat és struktúrákat, amelyeknél vágás miatt nem látható "
-        "az összes leszármaztatási kapcsolat. Egy ábra vágásra kerül, ha nem fér bele "
-        "a megadott tartományba."
+        "<li>Kitöltött fekete doboz jelzi azt az osztályt vagy struktúrát,"
+        "amelyről az ábra szól.\n"
+        "<li>Fekete keret jelzi a dokumentált osztályokat és struktúrákat.\n"
+        "<li>Szürke keret jelzi a nem dokumentált osztályokat és struktúrákat.\n"
+        "<li>Piros keret jelzi azokat az osztályokat és struktúrákat, amelyeknél vágás miatt nem látható "
+        "az összes leszármaztatási kapcsolat. Egy ábra vágásra kerül, ha nem fér bele "
+        "a megadott tartományba."
         "</ul>\n"
-        "A nyilak jelentése:\n"
+        "A nyilak jelentése:\n"
         "<ul>\n"
-        "<li>Sötétkék nyíl jelzi a publikus származtatást.\n"
-        "<li>Sötétzöld nyíl jelzi a védett származtatást.\n"
-        "<li>Sötétvörös nyíl jelzi a privát származtatást.\n"
-        "<li>Lila szaggatott nyíl jelzi, ha az osztály egy másikat használ vagy tartalmaz. "
-        "A nyíl felirata jelzi a változó(k) nevét, amelyeken keresztül a másik osztály kapcsolódik.\n"
-        "<li>Sárga szaggatott nyíl jelzi a kapcsolatot a sablonpéldány és a példányosított "
-        "osztálysablon között. A nyíl felirata jelzi a pélány sablonparamétereit.\n"
+        "<li>Sötétkék nyíl jelzi a publikus származtatást.\n"
+        "<li>Sötétzöld nyíl jelzi a védett származtatást.\n"
+        "<li>Sötétvörös nyíl jelzi a privát származtatást.\n"
+        "<li>Lila szaggatott nyíl jelzi, ha az osztály egy másikat használ vagy tartalmaz. "
+        "A nyíl felirata jelzi a változó(k) nevét, amelyeken keresztül a másik osztály kapcsolódik.\n"
+        "<li>Sárga szaggatott nyíl jelzi a kapcsolatot a sablonpéldány és a példányosított "
+        "osztálysablon között. A nyíl felirata jelzi a pélány sablonparamétereit.\n"
         "</ul>\n";
 
     }
     /*! text for the link to the legend page */
     virtual QCString trLegend()
     {
-      return "Jelmagyarázat";
+      return "Jelmagyarázat";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1073,28 +1043,18 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP tagfüggvények";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
     /*! Used as a section header for IDL properties */
     virtual QCString trProperties()
     {
-      return "Tulajdonságok";
+      return "Tulajdonságok";
     }
     /*! Used as a section header for IDL property documentation */
     virtual QCString trPropertyDocumentation()
     {
-      return "Tulajdonságok dokumentációjka";
+      return "Tulajdonságok dokumentációjka";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1110,7 +1070,7 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
       }
       else
       {
-        return "Osztályok";
+        return "Osztályok";
       }
     }
     /*! Used as the title of a Java package */
@@ -1126,7 +1086,7 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
     /*! The description of the package index page */
     virtual QCString trPackageListDescription()
     {
-      return "A csomagok rövid leírásai (amennyiben léteznek):";
+      return "A csomagok rövid leírásai (amennyiben léteznek):";
     }
     /*! The link name in the Quick links header for each page */
     virtual QCString trPackages()
@@ -1136,13 +1096,13 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
     /*! Text shown before a multi-line define */
     virtual QCString trDefineValue()
     {
-      return "Érték:";
+      return "Érték:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1158,9 +1118,9 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1181,15 +1141,15 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1250";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1200,84 +1160,84 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
     /*! Used as header RTF general index */
     virtual QCString trRTFGeneralIndex()
     {
-      return "Tárgymutató";
+      return "Tárgymutató";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool /*singular*/)
-    { 
-      QCString result((first_capital ? "Osztály" : "osztály"));
+    {
+      QCString result((first_capital ? "Osztály" : "osztály"));
       //if (!singular)  result+="es";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool /*singular*/)
-    { 
-      QCString result((first_capital ? "Fájl" : "fájl"));
+    {
+      QCString result((first_capital ? "Fájl" : "fájl"));
       //if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool /*singular*/)
-    { 
-      QCString result((first_capital ? "Névtér" : "névtér"));
+    {
+      QCString result((first_capital ? "Névtér" : "névtér"));
       //if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool /*singular*/)
-    { 
+    {
       QCString result((first_capital ? "Csoport" : "csoport"));
       //if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool /*singular*/)
-    { 
+    {
       QCString result((first_capital ? "Oldal" : "oldal"));
       //if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool /*singular*/)
-    { 
+    {
       QCString result((first_capital ? "Tag" : "tag"));
       //if (!singular)  result+="s";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool /*singular*/)
-    { 
-      QCString result((first_capital ? "Globális elem" : "globális elem"));
+    {
+      QCString result((first_capital ? "Globális elem" : "globális elem"));
       //if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1287,10 +1247,10 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
-      QCString result((first_capital ? "Szerzõ" : "szerzõ"));
+    {
+      QCString result((first_capital ? "Szerző" : "szerző"));
       if (!singular)  result+="k";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1301,19 +1261,19 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
      */
     virtual QCString trReferences()
     {
-      return "Hivatkozások";
+      return "Hivatkozások";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
     {
-      return "Megvalósítja a következõket: "+trWriteList(numEntries)+".";
+      return "Megvalósítja a következőket: "+trWriteList(numEntries)+".";
     }
 
     /*! used in member documentation blocks to produce a list of
@@ -1321,7 +1281,7 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
      */
     virtual QCString trImplementedInList(int numEntries)
     {
-      return "Megvalósítják a következõk: "+trWriteList(numEntries)+".";
+      return "Megvalósítják a következők: "+trWriteList(numEntries)+".";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1333,36 +1293,36 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
      */
     virtual QCString trRTFTableOfContents()
     {
-      return "Tartalomjegyzék";
+      return "Tartalomjegyzék";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
-      return "Ellenjavallt elemek listája";
+      return "Ellenjavallt elemek listája";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
     {
-      return "Események";
+      return "Események";
     }
     /*! Header used for the documentation section of a class' events. */
     virtual QCString trEventDocumentation()
     {
-      return "Események dokumentációja";
+      return "Események dokumentációja";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1372,79 +1332,71 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
-      return "Csomag típusok";
+    {
+      return "Csomag típusok";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
-      return "Csomag függvények";
+    {
+      return "Csomag függvények";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
-      return "Statikus csomag függvények";
+    {
+      return "Statikus csomag függvények";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
-      return "Csomag attribútumok";
+    {
+      return "Csomag attribútumok";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
-      return "Statikus csomag attribútumok";
+    {
+      return "Statikus csomag attribútumok";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
     {
-      return "Összes";
+      return "Összes";
     }
     /*! Put in front of the call graph for a function. */
     virtual QCString trCallGraph()
     {
-      return "A függvény hívási gráfja:";
+      return "A függvény hívási gráfja:";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Keresési kulcs";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
     virtual QCString trSearchResultsTitle()
     {
-      return "A keresés eredménye";
+      return "A keresés eredménye";
     }
     /*! This string is put just before listing the search results. The
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1452,24 +1404,24 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
     {
       if (numDocuments==0)
       {
-        return "Sajnos egy dokumentum sem felelt meg a keresési feltételeknek.";
+        return "Sajnos egy dokumentum sem felelt meg a keresési feltételeknek.";
       }
       else if (numDocuments==1)
       {
-        return "<b>1</b> dokumentum felelt meg a keresési feltételeknek.";
+        return "<b>1</b> dokumentum felelt meg a keresési feltételeknek.";
       }
-      else 
+      else
       {
-        return "<b>$num</b> dokumentum felelt meg a keresési feltételeknek."
-               "Elsõnek a legjobb találatok vannak feltüntetve.";
+        return "<b>$num</b> dokumentum felelt meg a keresési feltételeknek."
+               "Elsőnek a legjobb találatok vannak feltüntetve.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
     {
-      return "Találatok:";
+      return "Találatok:";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1480,7 +1432,7 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
      */
     virtual QCString trSourceFile(QCString& filename)
     {
-      return filename + " Forrásfájl";
+      return filename + " Forrásfájl";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1491,42 +1443,42 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
      *  hierarchy.
      */
     virtual QCString trDirIndex()
-    { return "Könyvtárhierarchia"; }
+    { return "Könyvtárhierarchia"; }
 
     /*! This is used as the name of the chapter containing the documentation
      *  of the directories.
      */
     virtual QCString trDirDocumentation()
-    { return "Könyvtárak dokumentációja"; }
+    { return "Könyvtárak dokumentációja"; }
 
     /*! This is used as the title of the directory index and also in the
      *  Quick links of a HTML page, to link to the directory hierarchy.
      */
     virtual QCString trDirectories()
-    { return "Könyvtárak"; }
+    { return "Könyvtárak"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
-    { return "Majdnem (de nem teljesen) betûrendbe szedett "
-             "könyvtárhierarchia:";
+    { return "Majdnem (de nem teljesen) betűrendbe szedett "
+             "könyvtárhierarchia:";
     }
 
     /*! This returns the title of a directory page. The name of the
      *  directory is passed via \a dirName.
      */
     virtual QCString trDirReference(const char *dirName)
-    { QCString result=dirName; result+=" könyvtárreferencia"; return result; }
+    { QCString result=dirName; result+=" könyvtárreferencia"; return result; }
 
     /*! This returns the word directory with or without starting capital
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool /*singular*/)
-    { 
-      QCString result((first_capital ? "Könyvtár" : "könyvtár"));
+    {
+      QCString result((first_capital ? "Könyvtár" : "könyvtár"));
       //if (singular) result+="y"; else result+="ies";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1538,8 +1490,8 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
      */
     virtual QCString trOverloadText()
     {
-       return "Ez egy túlterhelt tagfüggvény."
-              "A fenti függvénytõl csak argumentumaiban különbözik.";
+       return "Ez egy túlterhelt tagfüggvény."
+              "A fenti függvénytől csak argumentumaiban különbözik.";
     }
 };
 
index 18e561a..7ecdbe7 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -18,7 +18,7 @@
 #ifndef TRANSLATOR_ID_H
 #define TRANSLATOR_ID_H
 
-/* 
+/*
  * Translasi berikut didasarkan pada versi translator_en.h dalam
  * Doxygen 1.7.5.1.
  *
@@ -30,18 +30,18 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 
     // --- Language control methods -------------------
 
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "indonesian"; }
 
-    /*! Used to get the LaTeX command(s) for the language support. 
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -49,7 +49,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -58,12 +58,6 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
       return "\\usepackage[bahasa]{babel}";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "iso-8859-1";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -92,19 +86,19 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Dokumentasi Variabel"; 
+        return "Dokumentasi Variabel";
       }
       else
       {
-        return "Dokumentasi Anggota: Data"; 
+        return "Dokumentasi Anggota: Data";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
+    virtual QCString trMore()
     { return "Selengkapnya..."; }
 
     /*! put in the class documentation */
@@ -129,7 +123,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result="Dibangkitkan secara otomatis oleh Doxygen";
       if (s) result+=(QCString)" untuk "+s;
-      result+=" dari kode sumber."; 
+      result+=" dari kode sumber.";
       return result;
     }
 
@@ -147,7 +141,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
@@ -159,14 +153,14 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Struktur Data";
       }
       else
       {
-        return "Daftar Kelas"; 
+        return "Daftar Kelas";
       }
     }
 
@@ -176,23 +170,23 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Variabel Data"; 
+        return "Variabel Data";
       }
       else
       {
-        return "Daftar Anggota Kelas"; 
+        return "Daftar Anggota Kelas";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Daftar Definisi Global"; 
+        return "Daftar Definisi Global";
       }
       else
       {
@@ -229,11 +223,11 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
+    {
 
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Berikut ini daftar struktur data, dengan penjelasan singkat:"; 
+        return "Berikut ini daftar struktur data, dengan penjelasan singkat:";
       }
       else
       {
@@ -258,7 +252,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
         result+=" yang didokumentasikan";
       }
       result+=", dengan tautan ke ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -269,7 +263,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
           result+="dokumentasi kelas untuk setiap anggota:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -298,9 +292,9 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
       }
       if (!extractAll) result+=" yang didokumentasikan";
       result+=", dengan tautan ke ";
-      if (extractAll) 
+      if (extractAll)
         result+="file yang memuatnya:";
-      else 
+      else
         result+="dokumentasinya:";
       return result;
     }
@@ -317,43 +311,43 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
     virtual QCString trModulesDescription()
     { return "Berikut ini daftar semua modul:"; }
 
-    // index titles (the project name is prepended for these) 
+    // index titles (the project name is prepended for these)
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
     { return "Dokumentasi"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "Indeks Modul"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "Indeks Hierarki Kelas"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "Indeks Struktur Data";
       }
       else
       {
-        return "Indeks Kelas"; 
+        return "Indeks Kelas";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "Indeks File"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
@@ -366,14 +360,14 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Dokumentasi Struktur Data"; 
+        return "Dokumentasi Struktur Data";
       }
       else
       {
-        return "Dokumentasi Kelas"; 
+        return "Dokumentasi Kelas";
       }
     }
 
@@ -399,43 +393,37 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
     virtual QCString trReferenceManual()
     { return "Dokumen Referensi"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "Makro Definisi"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Prototipe Fungsi"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "Definisi Tipe"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
     { return "Enumerasi"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "Fungsi"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "Variabel"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
@@ -447,67 +435,55 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
     virtual QCString trDefineDocumentation()
     { return "Dokumentasi Makro Definisi"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Dokumentasi Prototipe Fungsi"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
     { return "Dokumentasi Definisi Tipe"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
     { return "Dokumentasi Tipe Enumerasi"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
     { return "Dokumentasi Fungsi"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
     { return "Dokumentasi Variabel"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Struktur Data"; 
+        return "Struktur Data";
       }
       else
       {
-        return "Kelas"; 
+        return "Kelas";
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"Dibangkitkan pada tanggal "+date;
       if (projName) result+=(QCString)" untuk "+projName;
       result+=(QCString)" oleh";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "ditulis oleh";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
@@ -579,7 +555,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 //////////////////////////////////////////////////////////////////////////
 
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
     { return "Dokumentasi Friend Dan Fungsi Terkait"; }
@@ -614,7 +590,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
     virtual QCString trFileReference(const char *fileName)
     {
       QCString result="Referensi File ";
-      result+=fileName; 
+      result+=fileName;
       return result;
     }
 
@@ -655,21 +631,21 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
         // (order is left to right)
 
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=", dan ";
         }
       }
-      return result; 
+      return result;
     }
 
     /*! used in class documentation to produce a list of base classes,
@@ -688,7 +664,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
       return "Diwariskan ke "+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
@@ -710,17 +686,17 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Berikut ini daftar anggota namespace";
       if (!extractAll) result+=" yang didokumentasikan";
       result+=", dengan tautan ke ";
-      if (extractAll) 
+      if (extractAll)
         result+="dokumentasi namespace untuk setiap anggota:";
-      else 
+      else
         result+="namespace yang memuatnya:";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -771,12 +747,6 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Daftar Berdasarkan Abjad"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -790,7 +760,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
     virtual QCString trMainPage()
     { return "Halaman Utama"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -835,7 +805,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Dokumentasi Konstruktor & Destruktor"; 
+      return "Dokumentasi Konstruktor & Destruktor";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
@@ -992,12 +962,12 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
     {
       return "Keterangan Bagan";
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "Halaman ini berisi keterangan cara membaca bagan yang dibangkitkan "
         "oleh doxygen.<p>\n"
         "Contoh:\n"
@@ -1076,16 +1046,6 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "Fungsi Anggota: DCOP";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1161,9 +1121,9 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1184,7 +1144,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
@@ -1192,7 +1152,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
     }
 
 
-    /*! Used as ansicpg for RTF fcharset 
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1207,80 +1167,80 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Kelas" : "kelas"));
       if (!singular) result+="-kelas";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "File" : "file"));
       if (!singular) result+="-file";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool)
-    { 
+    {
       QCString result((first_capital ? "Namespace" : "namespace"));
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Kelompok" : "kelompok"));
       if (!singular) result+="-kelompok";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Halaman" : "halaman"));
       if (!singular) result+="-halaman";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Anggota" : "anggota"));
       if (!singular) result+="-anggota";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Definisi" : "definisi"));
       if (!singular)  result+="-definisi";
       result += " global";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1290,10 +1250,10 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool)
-    {                                                                         
+    {
       QCString result((first_capital ? "Penulis" : "penulis"));
       //if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1311,7 +1271,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1343,8 +1303,8 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1355,7 +1315,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1375,35 +1335,35 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Jenis Paket";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Daftar Fungsi Paket";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Daftar Fungsi Statis Paket";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Daftar Atribut Paket";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Daftar Atribut Statis Paket";
     }
 
@@ -1411,7 +1371,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1428,14 +1388,6 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Cari";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1447,7 +1399,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1461,13 +1413,13 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
       {
         return "Ditemukan <b>1</b> dokumen yang cocok.";
       }
-      else 
+      else
       {
         return "Ditemukan <b>$num</b> documents yang cocok. "
                "Menampilkan hasil terbaik lebih awal.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1508,7 +1460,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
     virtual QCString trDirectories()
     { return "Daftar Direktori"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1525,10 +1477,10 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool)
-    { 
+    {
       QCString result((first_capital ? "Direktori" : "direktori"));
       //if (singular) result+="y"; else result+="ies";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1555,7 +1507,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
       return "Berikut ini bagan fungsi-pemanggil untuk fungsi ini:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
@@ -1564,12 +1516,12 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Dokumentasi Fungsi/Subrutin Anggota"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Daftar Tipe Data"; }
 
@@ -1590,18 +1542,18 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
         result+="terdokumentasi ";
       }
       result+=" dengan tautan ke ";
-      if (!extractAll) 
+      if (!extractAll)
       {
          result+="dokumentasi struktur data untuk setiap anggota:";
       }
-      else 
+      else
       {
          result+="tipe data yang memuatnya:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1613,24 +1565,24 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
     virtual QCString trTypeDocumentation()
     { return "Dokumentasi Tipe Data"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Fungsi/Subrutin"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Dokumentasi Fungsi/Subrutin"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Tipe Data"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Modules List"; }
@@ -1672,43 +1624,43 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
       result+=namespaceName;
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Anggota Modul"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Berikut daftar semua anggota modul ";
       if (!extractAll) result+="terdokumentasi ";
       result+="dengan tautan ke ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="dokumentasi modul untuk setiap anggota:";
       }
-      else 
+      else
       {
         result+="modul yang memuatnya:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Indeks Modul"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Modul" : "modul"));
       if (!singular)  result+="-modul";
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1735,24 +1687,24 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Tipe" : "tipe"));
       if (!singular)  result+="-tipe";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Subprogram" : "subprogram"));
       if (!singular)  result+="-subprogram";
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
@@ -1799,12 +1751,6 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Bagan dependensi direktori untuk "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1823,7 +1769,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
       return (QCString)"Memuat file dalam "+name;
     }
 
-    /** Compiles a date string. 
+    /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
      *  @param day Day of the Month: 1..31
index db8bd81..912f389 100644 (file)
@@ -108,12 +108,6 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
       return "\\usepackage[italian]{babel}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "UTF-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -434,12 +428,6 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
     { return "Definizioni"; }
 
     /*! This is used in the documentation of a file as a header before the
-     *  list of function prototypes
-     */
-    QCString trFuncProtos()
-    { return "Prototipi delle funzioni"; }
-
-    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     QCString trTypedefs()
@@ -476,12 +464,6 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
     { return "Documentazione delle definizioni"; }
 
     /*! This is used in the documentation of a file/namespace before the list
-     *  of documentation blocks for function prototypes
-     */
-    QCString trFunctionPrototypeDocumentation()
-    { return "Documentazione dei prototipi delle funzioni"; }
-
-    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     QCString trTypedefDocumentation()
@@ -530,12 +512,6 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
       result+=(QCString)" da";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    QCString trWrittenBy()
-    {
-      return "scritto da";
-    }
 
     /*! this text is put before a class diagram */
     QCString trClassDiagram(const char *clName)
@@ -803,12 +779,6 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    QCString trAlphabeticalList()
-     { return "Lista in ordine alfabetico";}
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -1103,16 +1073,6 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "Metodi DCOP";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1427,14 +1387,6 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header
-     *  of each page before the field where one can enter the text to search
-     *  for.
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Cerca";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1507,7 +1459,7 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
     virtual QCString trDirectories()
     { return "Directory"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1554,7 +1506,7 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
       return "Questo è il grafo dei chiamanti di questa funzione:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
@@ -1563,12 +1515,12 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Documentazione delle funzioni membro/subroutine"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Elenco dei tipi di dato"; }
 
@@ -1589,18 +1541,18 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
         result+="documentati ";
       }
       result+="dei tipi di dato con collegamenti ";
-      if (!extractAll) 
+      if (!extractAll)
       {
          result+="alla documentazione della struttura dati per ciascun membro:";
       }
-      else 
+      else
       {
          result+="ai tipi dato a cui appartengono:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1612,24 +1564,24 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
     virtual QCString trTypeDocumentation()
     { return "Documentazione dei tipi dato"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Funzioni/Subroutine"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Documentazione funzioni/subroutine"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Tipi di dato"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Elenco dei moduli"; }
@@ -1669,47 +1621,47 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result="Riferimenti per il modulo ";
-      result+=namespaceName;        
+      result+=namespaceName;
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Membri del modulo"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Questo è un elenco di tutti i membri dei moduli ";
       if (!extractAll) result+="documentati ";
       result+="con collegamenti ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="alla documentazione del modulo per ciascun membro:";
       }
-      else 
+      else
       {
         result+="al modulo a cui appartengono:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Indice dei moduli"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Modul" : "modul"));
       if (singular) result+="o";
       else result+="i";
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1735,26 +1687,26 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Tip" : "tip"));
       if (singular) result+="o";
       else result+="i";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Sottoprogramm" : "sottoprogramm"));
       if (singular) result+="a";
       else result+="i";
-      return result; 
+      return result;
     }
 
     /*! C# Type Contraint list */
@@ -1801,12 +1753,6 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Grafo di dipendenza delle directory per "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1901,8 +1847,8 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
     virtual QCString trInheritedFrom(const char *members,const char *what)
     { return QCString(members)+" ereditati da "+what; }
 
-    /*! Header of the sections with inherited members specific for the 
-     *  base class(es) 
+    /*! Header of the sections with inherited members specific for the
+     *  base class(es)
      */
     virtual QCString trAdditionalInheritedMembers()
     { return "Altri membri ereditati"; }
index c6bfdcb..894452a 100644 (file)
@@ -35,20 +35,8 @@ class TranslatorJapaneseEn : public TranslatorEnglish
     virtual QCString idLanguage()
     { return "japanese-en"; }
     virtual QCString latexLanguageSupportCommand()
-      {
-       return "platex";
-      }
-    /*! returns the name of the package that is included by LaTeX */
-    virtual QCString idLanguageCharset()
     {
-      //if (Config_getBool("USE_WINDOWS_ENCODING"))
-      //{
-      //  return "Shift_JIS";
-      //}
-      //else
-      //{
-        return "euc-jp";
-      //}
+      return "platex";
     }
     virtual QCString trRTFansicp()
     {
index 418d6bb..22b9cd7 100644 (file)
@@ -16,7 +16,7 @@
  */
 
 /*
- * translator_jp.h 
+ * translator_jp.h
  * Updates:
  * 1.2.5)
  * First Translation
 
 class TranslatorJapanese : public TranslatorAdapter_1_6_0
 {
- private:
-  /*! The decode() can change euc into sjis */
-  inline QCString decode(const QCString & sInput)
-  {
-    //if (Config_getBool("USE_WINDOWS_ENCODING"))
-    //{
-    //  return JapaneseEucToSjis(sInput);
-    //}
-    //else
-    //{
-      return sInput;
-    //}
-  }
   public:
     virtual QCString idLanguage()
     { return "japanese"; }
+
     virtual QCString latexLanguageSupportCommand()
     {
       return "";
     }
-    /*! returns the name of the package that is included by LaTeX */
-    virtual QCString idLanguageCharset()
-    {
-      //if (Config_getBool("USE_WINDOWS_ENCODING"))
-      //{
-      //  return "Shift_JIS";
-      //}
-      //else
-      //{
-        return "euc-jp";
-      //}
-    }
 
     /*! used in the compound documentation before a list of related functions. */
     virtual QCString trRelatedFunctions()
-    { return decode("´ØÏ¢¤¹¤ë´Ø¿ô"); }
+    { return "関連する関数"; }
 
     /*! subscript for the related functions. */
     virtual QCString trRelatedSubscript()
-    { return decode("¡Ê¤³¤ì¤é¤Ï¥á¥½¥Ã¥É¤Ç¤Ê¤¤¤³¤È¤ËÃí°Õ¡Ë"); }
+    { return "(これらはメソッドでないことに注意)"; }
 
     /*! header that is put before the detailed description of files, classes and namespaces. */
     virtual QCString trDetailedDescription()
-    { return decode("ÀâÌÀ"); }
+    { return "説明"; }
 
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
-    { return decode("·¿ÄêµÁ"); }
+    { return "型定義"; }
 
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
-    { return decode("Îóµó·¿"); }
+    { return "列挙型"; }
 
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
-    { 
+    {
          if( Config_getBool("OPTIMIZE_OUTPUT_JAVA"))
          {
-               return decode("¥á¥½¥Ã¥É");
+               return "メソッド";
          }
          else
          {
-               return decode("´Ø¿ô");
+               return "関数";
          }
        }
 
@@ -105,55 +81,55 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     {
       if( Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
          {
-           return decode("¹½Â¤ÂÎ");
+           return "構造体";
          }
       else
          {
-           return decode("ÊÑ¿ô");
+           return "変数";
          }
     }
 
     /*! this is the text of a link put after brief descriptions. */
        virtual QCString trMore()
-    { return decode("[¾ÜºÙ]"); }
+    { return "[詳細]"; }
 
     /*! put in the class documentation */
     virtual QCString trListOfAllMembers()
-    { return decode("¤¹¤Ù¤Æ¤Î¥á¥ó¥Ð°ìÍ÷"); }
+    { return "すべてのメンバ一覧"; }
 
     /*! used as the title of the "list of all members" page of a class */
     virtual QCString trMemberList()
-    { return decode("¥á¥ó¥Ð°ìÍ÷"); }
+    { return "メンバ一覧"; }
 
     /*! this is the first part of a sentence that is followed by a class name */
     virtual QCString trThisIsTheListOfAllMembers()
-    { return decode("¤³¤ì¤ÏÁ´¥á¥ó¥Ð¤Î°ìÍ÷¤Ç¤¹¡£"); }
+    { return "これは全メンバの一覧です。"; }
 
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
-    { return decode("·Ñ¾µ¥á¥ó¥Ð¤â´Þ¤ó¤Ç¤¤¤Þ¤¹¡£"); }
+    { return "継承メンバも含んでいます。"; }
 
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result;
-      if (s) result=(QCString)s+decode("¤Î");
-      result+=decode("¥½¡¼¥¹¤«¤é Doxygen ¤Ë¤è¤êÀ¸À®¤·¤Þ¤·¤¿¡£");
+      if (s) result=(QCString)s+"の";
+      result+="ソースから Doxygen により生成しました。";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
-    { return decode("Enum"); }
+    { return "Enum"; }
 
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
-    { return decode("Enum ÃÍ"); }
+    { return "Enum 値"; }
 
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
-    { return decode("¼¡¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£"); }
+    { return "次で定義されています。"; }
 
     // quick reference sections
 
@@ -161,43 +137,43 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
-    { return decode("¥â¥¸¥å¡¼¥ë"); }
+    { return "モジュール"; }
 
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
-    { return decode("¥¯¥é¥¹³¬ÁØ"); }
+    { return "クラス階層"; }
 
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
        {
-         return decode("¥Ç¡¼¥¿¹½Â¤");
+         return "データ構造";
        }
       else
        {
-         return decode("¹½À®");
+         return "構成";
        }
     }
 
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
-    { return decode("¥Õ¥¡¥¤¥ë°ìÍ÷"); }
+    { return "ファイル一覧"; }
 
     /*! This is put above each page as a link to the list of all verbatim headers */
     virtual QCString trHeaderFiles()
-    { return decode("¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë"); }
+    { return "ヘッダファイル"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
        {
-         return decode("¥Ç¡¼¥¿¥Õ¥£¡¼¥ë¥É");
+         return "データフィールド";
        }
       else
        {
-         return decode("¹½À®¥á¥ó¥Ð");
+         return "構成メンバ";
        }
     }
 
@@ -206,36 +182,36 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
        {
-         return decode("¥°¥í¡¼¥Ð¥ë");
+         return "グローバル";
        }
       else
        {
-         return decode("¥Õ¥¡¥¤¥ë¥á¥ó¥Ð");
+         return "ファイルメンバ";
        }
     }
     /*! This is put above each page as a link to all related pages. */
     virtual QCString trRelatedPages()
-    { return decode("´ØÏ¢¥Ú¡¼¥¸"); }
+    { return "関連ページ"; }
 
     /*! This is put above each page as a link to all examples. */
     virtual QCString trExamples()
-    { return decode("Îã"); }
+    { return "例"; }
 
     /*! This is put above each page as a link to the search engine. */
     virtual QCString trSearch()
-    { return decode("¸¡º÷"); }
+    { return "検索"; }
 
     /*! This is an introduction to the class hierarchy. */
     virtual QCString trClassHierarchyDescription()
-    { return decode("¤³¤Î·Ñ¾µ°ìÍ÷¤Ï¤ª¤ª¤Þ¤«¤Ë¤Ï¥½¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢"
-             "´°Á´¤Ë¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Ç¥½¡¼¥È¤µ¤ì¤Æ¤Ï¤¤¤Þ¤»¤ó¡£");
+    { return "この継承一覧はおおまかにはソートされていますが、"
+             "完全にアルファベット順でソートされてはいません。";
     }
 
     /*! This is an introduction to the list with all files. */
     virtual QCString trFileListDescription(bool /*extractAll*/)
     {
-      QCString result=decode("¤³¤ì¤Ï");
-      result+=decode("¥Õ¥¡¥¤¥ë°ìÍ÷¤Ç¤¹¡£");
+      QCString result="これは";
+      result+="ファイル一覧です。";
       return result;
     }
 
@@ -244,88 +220,88 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
        {
-         return decode("¥Ç¡¼¥¿¹½Â¤¤ÎÀâÌÀ¤Ç¤¹¡£");
+         return "データ構造の説明です。";
        }
       else
        {
-         return decode("¥¯¥é¥¹¡¢¹½Â¤ÂΡ¢¶¦ÍÑÂΡ¢¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÎÀâÌÀ¤Ç¤¹¡£");
+         return "クラス、構造体、共用体、インタフェースの説明です。";
        }
     }
 
     /*! This is an introduction to the page with all class members. */
     virtual QCString trCompoundMembersDescription(bool extractAll)
     {
-      QCString result=decode("¤³¤ì¤Ï");
+      QCString result="これは";
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
          {
-           result+=decode("¥Õ¥£¡¼¥ë¥É¤Î°ìÍ÷¤Ç¤½¤ì¤¾¤ì");
-           if (extractAll) result+=decode("¤¬Â°¤·¤Æ¤¤¤ë¹½Â¤ÂÎ/¶¦ÍÑÂÎ");
+           result+="フィールドの一覧でそれぞれ";
+           if (extractAll) result+="が属している構造体/共用体";
          }
       else
          {
-           result+=decode("¥¯¥é¥¹¥á¥ó¥Ð¤Î°ìÍ÷¤Ç¡¢¤½¤ì¤¾¤ì");
-           if (extractAll) result+=decode("¤¬Â°¤·¤Æ¤¤¤ë¥¯¥é¥¹");
+           result+="クラスメンバの一覧で、それぞれ";
+           if (extractAll) result+="が属しているクラス";
          }
-      result+=decode("¤ÎÀâÌÀ¤Ø¥ê¥ó¥¯¤·¤Æ¤¤¤Þ¤¹¡£");
+      result+="の説明へリンクしています。";
       return result;
     }
 
     /*! This is an introduction to the page with all file members. */
     virtual QCString trFileMembersDescription(bool /*extractAll*/)
     {
-      QCString result=decode("¤³¤ì¤Ï");
+      QCString result="これは";
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
        {
-         result+=decode("´Ø¿ô¡¢ÊÑ¿ô¡¢¥Þ¥¯¥í¡¢Enum¡¢Typedef ¤Î");
+         result+="関数、変数、マクロ、Enum、Typedef の";
        }
       else
        {
-         result+=decode("¥Õ¥¡¥¤¥ë¥á¥ó¥Ð¤Î");
+         result+="ファイルメンバの";
        }
-      result+=decode("°ìÍ÷¤Ç¤¹¡£¤½¤ì¤¾¤ì¤¬Â°¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ÎÀâÌÀ¤Ø¥ê¥ó¥¯¤·¤Æ¤¤¤Þ¤¹¡£");
+      result+="一覧です。それぞれが属しているファイルの説明へリンクしています。";
       return result;
     }
 
     /*! This is an introduction to the page with the list of all header files. */
     virtual QCString trHeaderFilesDescription()
-    { return decode("API¤ò¹½À®¤¹¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç¤¹¡£"); }
+    { return "APIを構成するヘッダファイルです。"; }
 
     /*! This is an introduction to the page with the list of all examples */
     virtual QCString trExamplesDescription()
-    { return decode("¤¹¤Ù¤Æ¤ÎÎã¤Î°ìÍ÷¤Ç¤¹¡£"); }
+    { return "すべての例の一覧です。"; }
 
     /*! This is an introduction to the page with the list of related pages */
     virtual QCString trRelatedPagesDescription()
-    { return decode("´ØÏ¢¥Ú¡¼¥¸¤Î°ìÍ÷¤Ç¤¹¡£"); }
+    { return "関連ページの一覧です。"; }
 
     /*! This is an introduction to the page with the list of class/file groups */
     virtual QCString trModulesDescription()
-    { return decode("¤¹¤Ù¤Æ¤Î¥â¥¸¥å¡¼¥ë¤Î°ìÍ÷¤Ç¤¹¡£"); }
+    { return "すべてのモジュールの一覧です。"; }
 
     /*! This sentences is used in the annotated class/file lists if no brief
      * description is given.
      */
     virtual QCString trNoDescriptionAvailable()
-    { return decode("¥É¥­¥å¥á¥ó¥È¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"); }
+    { return "ドキュメントが記述されていません。"; }
 
     // index titles (the project name is prepended for these)
 
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
-    { return decode("¥É¥­¥å¥á¥ó¥È"); }
+    { return "ドキュメント"; }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
-    { return decode("¥â¥¸¥å¡¼¥ëº÷°ú"); }
+    { return "モジュール索引"; }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
-    { return decode("³¬Áغ÷°ú"); }
+    { return "階層索引"; }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
@@ -334,11 +310,11 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
        {
-         return decode("¥Ç¡¼¥¿¹½Â¤º÷°ú");
+         return "データ構造索引";
        }
       else
        {
-         return decode("¹½À®º÷°ú");
+         return "構成索引";
        }
     }
 
@@ -346,13 +322,13 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      * list of all files.
      */
     virtual QCString trFileIndex()
-    { return decode("¥Õ¥¡¥¤¥ëº÷°ú"); }
+    { return "ファイル索引"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all groups.
      */
     virtual QCString trModuleDocumentation()
-    { return decode("¥â¥¸¥å¡¼¥ë"); }
+    { return "モジュール"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all classes, structs and unions.
@@ -361,11 +337,11 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
        {
-         return decode("¥Ç¡¼¥¿¹½Â¤");
+         return "データ構造";
        }
       else
        {
-         return decode("¥¯¥é¥¹");
+         return "クラス";
        }
     }
 
@@ -373,100 +349,88 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      *  the documentation of all files.
      */
     virtual QCString trFileDocumentation()
-    { return decode("¥Õ¥¡¥¤¥ë"); }
+    { return "ファイル"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all examples.
      */
     virtual QCString trExampleDocumentation()
-    { return decode("Îã"); }
+    { return "例"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all related pages.
      */
     virtual QCString trPageDocumentation()
-    { return decode("¥Ú¡¼¥¸"); }
+    { return "ページ"; }
 
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
-    { return decode("¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë"); }
+    { return "リファレンスマニュアル"; }
 
     /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
-    { return decode("¥Þ¥¯¥íÄêµÁ"); }
-
-    /*! This is used in the documentation of a file as a header before the
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return decode("´Ø¿ô¥×¥í¥È¥¿¥¤¥×"); }
+    { return "マクロ定義"; }
 
     /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
-    { return decode("·¿ÄêµÁ"); }
+    { return "型定義"; }
 
     /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
-    { return decode("Îóµó·¿"); }
+    { return "列挙型"; }
 
     /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
-    { return decode("´Ø¿ô"); }
+    { return "関数"; }
 
     /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
-    { return decode("ÊÑ¿ô"); }
+    { return "変数"; }
 
     /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
-      { return decode("Îóµó·¿¤ÎÃÍ"); }
+      { return "列挙型の値"; }
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
-    { return decode("¥Þ¥¯¥íÄêµÁ"); }
-
-    /*! This is used in the documentation of a file/namespace before the list
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return decode("´Ø¿ô¥×¥í¥È¥¿¥¤¥×"); }
+    { return "マクロ定義"; }
 
     /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
-    { return decode("·¿ÄêµÁ"); }
+    { return "型定義"; }
 
     /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
-    { return decode("Îóµó·¿"); }
+    { return "列挙型"; }
 
     /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
-    { return decode("´Ø¿ô"); }
+    { return "関数"; }
 
     /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
-    { return decode("ÊÑ¿ô"); }
+    { return "変数"; }
 
     /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
@@ -475,11 +439,11 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
        {
-         return decode("¥Ç¡¼¥¿¹½Â¤");
+         return "データ構造";
        }
       else
        {
-         return decode("¹½À®");
+         return "構成";
        }
     }
     /*! This is used in the standard footer of each page and indicates when
@@ -488,67 +452,61 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     virtual QCString trGeneratedAt(const char *date,const char *projName)
     {
       QCString result;
-      if (projName) result+=(QCString)projName+decode("¤ËÂФ·¤Æ");
-      result+=(QCString)date+decode("¤ËÀ¸À®¤µ¤ì¤Þ¤·¤¿¡£");
+      if (projName) result+=(QCString)projName+"に対して";
+      result+=(QCString)date+"に生成されました。";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return decode("ºî¼Ô");
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
-      return (QCString)clName+decode("¤ËÂФ¹¤ë·Ñ¾µ¥°¥é¥Õ");
+      return (QCString)clName+"に対する継承グラフ";
     }
 
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
-    { return decode("ÆâÉô»ÈÍѤΤߡ£"); }
+    { return "内部使用のみ。"; }
 
     /*! this text is generated when the \\reimp command is used. */
     virtual QCString trReimplementedForInternalReasons()
-    { return decode("ÆâÉôŪ¤ÊÍýͳ¤Ë¤è¤êºÆ¼ÂÁõ¤µ¤ì¤Þ¤·¤¿¤¬¡¢API¤Ë¤Ï±Æ¶Á¤·¤Þ¤»¤ó¡£");
+    { return "内部的な理由により再実装されましたが、APIには影響しません。";
     }
 
     /*! this text is generated when the \\warning command is used. */
     virtual QCString trWarning()
-    { return decode("·Ù¹ð"); }
+    { return "警告"; }
 
     /*! this text is generated when the \\bug command is used. */
     virtual QCString trBugsAndLimitations()
-    { return decode("¥Ð¥°¤ÈÀ©¸Â"); }
+    { return "バグと制限"; }
 
     /*! this text is generated when the \\version command is used. */
     virtual QCString trVersion()
-    { return decode("¥Ð¡¼¥¸¥ç¥ó"); }
+    { return "バージョン"; }
 
     /*! this text is generated when the \\date command is used. */
     virtual QCString trDate()
-    { return decode("ÆüÉÕ"); }
+    { return "日付"; }
 
     /*! this text is generated when the \\return command is used. */
     virtual QCString trReturns()
-    { return decode("Ìá¤êÃÍ"); }
+    { return "戻り値"; }
 
     /*! this text is generated when the \\sa command is used. */
     virtual QCString trSeeAlso()
-    { return decode("»²¾È"); }
+    { return "参照"; }
 
     /*! this text is generated when the \\param command is used. */
     virtual QCString trParameters()
-    { return decode("°ú¿ô"); }
+    { return "引数"; }
 
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
-    { return decode("Îã³°"); }
+    { return "例外"; }
 
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
-    { return decode("ºîÀ®¡§"); }
+    { return "作成:"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
@@ -556,21 +514,19 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
 
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
-    { return decode("¥Í¡¼¥à¥¹¥Ú¡¼¥¹°ìÍ÷"); }
+    { return "ネームスペース一覧"; }
 
     /*! used as an introduction to the namespace list */
     virtual QCString trNamespaceListDescription(bool /*extractAll*/)
     {
-      QCString result=decode("");
-      result+=decode("¥Í¡¼¥à¥¹¥Ú¡¼¥¹¤Î°ìÍ÷¤Ç¤¹¡£");
-      return result;
+      return "ネームスペースの一覧です。";
     }
 
     /*! used in the class documentation as a header before the list of all
      *  friends of a class
      */
     virtual QCString trFriends()
-    { return decode("¥Õ¥ì¥ó¥É"); }
+    { return "フレンド"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
@@ -580,7 +536,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
-    { return decode("¥Õ¥ì¥ó¥É¤È´ØÏ¢¤¹¤ë´Ø¿ô"); }
+    { return "フレンドと関連する関数"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
@@ -594,16 +550,16 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
       QCString result="";
       switch(compType)
       {
-        case ClassDef::Class:      result+=decode("¥¯¥é¥¹ "); break;
-        case ClassDef::Struct:     result+=decode("¹½Â¤ÂΠ"); break;
-        case ClassDef::Union:      result+=decode("¶¦ÍÑÂΠ"); break;
-        case ClassDef::Interface:  result+=decode("¥¤¥ó¥¿¥Õ¥§¡¼¥¹ "); break;
-        case ClassDef::Protocol:   result+=decode("¥×¥í¥È¥³¥ë "); break;
-        case ClassDef::Category:   result+=decode("¥«¥Æ¥´¥ê "); break;
-        case ClassDef::Exception:  result+=decode("Îã³° "); break;
+        case ClassDef::Class:      result+="クラス "; break;
+        case ClassDef::Struct:     result+="構造体 "; break;
+        case ClassDef::Union:      result+="共用体 "; break;
+        case ClassDef::Interface:  result+="インタフェース "; break;
+        case ClassDef::Protocol:   result+="プロトコル "; break;
+        case ClassDef::Category:   result+="カテゴリ "; break;
+        case ClassDef::Exception:  result+="例外 "; break;
         default: break;
       }
-      if (isTemplate) result+=decode("¥Æ¥ó¥×¥ì¡¼¥È ");
+      if (isTemplate) result+="テンプレート ";
       result+=(QCString)clName;
       return result;
     }
@@ -611,38 +567,38 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     /*! used as the title of the HTML page of a file */
     virtual QCString trFileReference(const char *fileName)
     {
-      QCString result=decode("")+(QCString)fileName;
+      QCString result=""+(QCString)fileName;
       return result;
     }
 
     /*! used as the title of the HTML page of a namespace */
     virtual QCString trNamespaceReference(const char *namespaceName)
     {
-      QCString result=decode("¥Í¡¼¥à¥¹¥Ú¡¼¥¹ ")+(QCString)namespaceName;
+      QCString result="ネームスペース "+(QCString)namespaceName;
       return result;
     }
 
     /* these are for the member sections of a class, struct or union */
     virtual QCString trPublicMembers()
-    { return decode("Public ¥á¥½¥Ã¥É"); }
+    { return "Public メソッド"; }
     virtual QCString trPublicSlots()
-    { return decode("Public ¥¹¥í¥Ã¥È"); }
+    { return "Public スロット"; }
     virtual QCString trSignals()
-    { return decode("¥·¥°¥Ê¥ë"); }
+    { return "シグナル"; }
     virtual QCString trStaticPublicMembers()
-    { return decode("Static Public ¥á¥½¥Ã¥É"); }
+    { return "Static Public メソッド"; }
     virtual QCString trProtectedMembers()
-    { return decode("Protected ¥á¥½¥Ã¥É"); }
+    { return "Protected メソッド"; }
     virtual QCString trProtectedSlots()
-    { return decode("Protected ¥¹¥í¥Ã¥È"); }
+    { return "Protected スロット"; }
     virtual QCString trStaticProtectedMembers()
-    { return decode("Static Protected ¥á¥½¥Ã¥É"); }
+    { return "Static Protected メソッド"; }
     virtual QCString trPrivateMembers()
-    { return decode("Private ¥á¥½¥Ã¥É"); }
+    { return "Private メソッド"; }
     virtual QCString trPrivateSlots()
-    { return decode("Private ¥¹¥í¥Ã¥È"); }
+    { return "Private スロット"; }
     virtual QCString trStaticPrivateMembers()
-    { return decode("Static Private ¥á¥½¥Ã¥É"); }
+    { return "Static Private メソッド"; }
 
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
@@ -661,9 +617,9 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
           if (i<numEntries-2) // not the fore last entry
-            result+=decode(", ");
+            result+=", ";
           else                // the fore last entry
-            result+=decode(", ¤È ");
+            result+=", と ";
         }
       }
       return result;
@@ -674,7 +630,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trInheritsList(int numEntries)
     {
-      return trWriteList(numEntries)+decode("¤ò·Ñ¾µ¤·¤Æ¤¤¤Þ¤¹¡£");
+      return trWriteList(numEntries)+"を継承しています。";
     }
 
     /*! used in class documentation to produce a list of super classes,
@@ -682,7 +638,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trInheritedByList(int numEntries)
     {
-      return trWriteList(numEntries)+decode("¤Ë·Ñ¾µ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£");
+      return trWriteList(numEntries)+"に継承されています。";
     }
 
     /*! used in member documentation blocks to produce a list of
@@ -690,7 +646,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trReimplementedFromList(int numEntries)
     {
-      return trWriteList(numEntries)+decode("¤òºÆÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£");
+      return trWriteList(numEntries)+"を再定義しています。";
     }
 
     /*! used in member documentation blocks to produce a list of
@@ -698,36 +654,36 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trReimplementedInList(int numEntries)
     {
-      return trWriteList(numEntries)+decode("¤ÇºÆÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£");
+      return trWriteList(numEntries)+"で再定義されています。";
     }
 
     /*! This is put above each page as a link to all members of namespaces. */
     virtual QCString trNamespaceMembers()
-    { return decode("¥Í¡¼¥à¥¹¥Ú¡¼¥¹¥á¥ó¥Ð"); }
+    { return "ネームスペースメンバ"; }
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
     {
-       QCString result=decode("¤³¤ì¤Ï");
-      result+=decode("¥Í¡¼¥à¥¹¥Ú¡¼¥¹¤Î°ìÍ÷¤Ç¤¹¡£¤½¤ì¤¾¤ì");
+       QCString result="これは";
+      result+="ネームスペースの一覧です。それぞれ";
       if (extractAll)
-         result+=decode("¤Î¥Í¡¼¥à¥¹¥Ú¡¼¥¹");
+         result+="のネームスペース";
       else
-         result+=decode("¤¬Â°¤·¤Æ¤¤¤ë¥Í¡¼¥à¥¹¥Ú¡¼¥¹");
-      result+=decode("¤Ø¥ê¥ó¥¯¤·¤Æ¤¤¤Þ¤¹¡£");
+         result+="が属しているネームスペース";
+      result+="へリンクしています。";
       return result;
     }
     /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
-    { return decode("¥Í¡¼¥à¥¹¥Ú¡¼¥¹º÷°ú"); }
+    { return "ネームスペース索引"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all namespaces.
      */
     virtual QCString trNamespaceDocumentation()
-    { return decode("¥Í¡¼¥à¥¹¥Ú¡¼¥¹"); }
+    { return "ネームスペース"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990522
@@ -737,7 +693,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      *  namespaces in a file.
      */
     virtual QCString trNamespaces()
-    { return decode("¥Í¡¼¥à¥¹¥Ú¡¼¥¹"); }
+    { return "ネームスペース"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990728
@@ -750,46 +706,40 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
         bool)
     { // here s is one of " Class", " Struct" or " Union"
       // single is true implies a single file
-      QCString result=(QCString)decode("¤³¤Î");
+      QCString result=(QCString)"この";
       switch(compType)
       {
-        case ClassDef::Class:      result+=decode("¥¯¥é¥¹"); break;
-        case ClassDef::Struct:     result+=decode("¹½Â¤ÂÎ"); break;
-        case ClassDef::Union:      result+=decode("¶¦ÍÑÂÎ"); break;
-        case ClassDef::Interface:  result+=decode("¥¤¥ó¥¿¥Õ¥§¡¼¥¹"); break;
-        case ClassDef::Protocol:   result+=decode("¥×¥í¥È¥³¥ë"); break;
-        case ClassDef::Category:   result+=decode("¥«¥Æ¥´¥ê"); break;
-        case ClassDef::Exception:  result+=decode("Îã³°"); break;
+        case ClassDef::Class:      result+="クラス"; break;
+        case ClassDef::Struct:     result+="構造体"; break;
+        case ClassDef::Union:      result+="共用体"; break;
+        case ClassDef::Interface:  result+="インタフェース"; break;
+        case ClassDef::Protocol:   result+="プロトコル"; break;
+        case ClassDef::Category:   result+="カテゴリ"; break;
+        case ClassDef::Exception:  result+="例外"; break;
         default: break;
       }
-      result+=decode("¤ÎÀâÌÀ¤Ï¼¡¤Î¥Õ¥¡¥¤¥ë¤«¤éÀ¸À®¤µ¤ì¤Þ¤·¤¿:");
+      result+="の説明は次のファイルから生成されました:";
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return decode("¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç°ìÍ÷"); }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
 
     /*! This is used as the heading text for the retval command. */
     virtual QCString trReturnValues()
-    { return decode("Ìá¤êÃÍ"); }
+    { return "戻り値"; }
 
     /*! This is in the (quick) index as a link to the main page (index.html)
      */
     virtual QCString trMainPage()
-    { return decode("¥á¥¤¥ó¥Ú¡¼¥¸"); }
+    { return "メインページ"; }
 
     /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
-    { return decode("p."); }
+    { return "p."; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-991003
@@ -797,15 +747,15 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
 
     virtual QCString trSources()
     {
-      return decode("¥½¡¼¥¹");
+      return "ソース";
     }
     virtual QCString trDefinedAtLineInSourceFile()
     {
-      return decode(" @1 ¤Î @0 ¹Ô¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£");
+      return " @1 の @0 行で定義されています。";
     }
     virtual QCString trDefinedInSourceFile()
     {
-      return decode(" @0 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£");
+      return " @0 で定義されています。";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -814,7 +764,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
 
     virtual QCString trDeprecated()
     {
-      return decode("Èó¿ä¾©");
+      return "非推奨";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -824,68 +774,68 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     /*! this text is put before a collaboration diagram */
     virtual QCString trCollaborationDiagram(const char *clName)
     {
-      return (QCString)clName+decode("¤Î¥³¥é¥Ü¥ì¡¼¥·¥ç¥ó¿Þ");
+      return (QCString)clName+"のコラボレーション図";
     }
     /*! this text is put before an include dependency graph */
     virtual QCString trInclDepGraph(const char *fName)
     {
-       return (QCString)fName+decode("¤Î¥¤¥ó¥¯¥ë¡¼¥É°Í¸´Ø·¸¿Þ");
+       return (QCString)fName+"のインクルード依存関係図";
     }
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return decode("¥³¥ó¥¹¥È¥é¥¯¥¿¤È¥Ç¥¹¥È¥é¥¯¥¿");
+      return "コンストラクタとデストラクタ";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
     {
-      return decode("¥½¡¼¥¹¥³¡¼¥É¤ò¸«¤ë¡£");
+      return "ソースコードを見る。";
     }
     /*! Used in the file sources to point to the corresponding documentation. */
     virtual QCString trGotoDocumentation()
     {
-      return decode("ÀâÌÀ¤ò¸«¤ë¡£");
+      return "説明を見る。";
     }
     /*! Text for the \\pre command */
     virtual QCString trPrecondition()
     {
-      return decode("»öÁ°¾ò·ï");
+      return "事前条件";
     }
     /*! Text for the \\post command */
     virtual QCString trPostcondition()
     {
-      return decode("»ö¸å¾ò·ï");
+      return "事後条件";
     }
     /*! Text for the \\invariant command */
     virtual QCString trInvariant()
     {
-      return decode("ÉÔÊÑ");
+      return "不変";
     }
     /*! Text shown before a multi-line variable/enum initialization */
     virtual QCString trInitialValue()
     {
-      return decode("½é´üÃÍ:");
+      return "初期値:";
     }
     /*! Text used the source code in the file index */
     virtual QCString trCode()
     {
-      return decode("¥³¡¼¥É");
+      return "コード";
     }
     virtual QCString trGraphicalHierarchy()
     {
-      return decode("¥¯¥é¥¹³¬ÁØ¿Þ");
+      return "クラス階層図";
     }
     virtual QCString trGotoGraphicalHierarchy()
     {
-      return decode("¥¯¥é¥¹³¬ÁØ¿Þ¤ò¸«¤ë¡£");
+      return "クラス階層図を見る。";
     }
     virtual QCString trGotoTextualHierarchy()
     {
-      return decode("¥¯¥é¥¹³¬ÁØ¿Þ¤ò¸«¤ë¡£");
+      return "クラス階層図を見る。";
     }
     virtual QCString trPageIndex()
     {
-      return decode("¥Ú¡¼¥¸º÷°ú");
+      return "ページ索引";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -894,50 +844,50 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
 
     virtual QCString trNote()
     {
-      return decode("³Ð¤¨½ñ¤­");
+      return "覚え書き";
     }
     virtual QCString trPublicTypes()
     {
-      return decode("Public ·¿");
+      return "Public 型";
     }
     virtual QCString trPublicAttribs()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
        {
-         return decode("ÊÑ¿ô");
+         return "変数";
        }
       else
        {
-         return decode("Public ÊÑ¿ô");
+         return "Public 変数";
        }
     }
     virtual QCString trStaticPublicAttribs()
     {
-      return decode("Static Public ÊÑ¿ô");
+      return "Static Public 変数";
     }
     virtual QCString trProtectedTypes()
     {
-      return decode("Protected ·¿");
+      return "Protected 型";
     }
     virtual QCString trProtectedAttribs()
     {
-      return decode("Protected ÊÑ¿ô");
+      return "Protected 変数";
     }
     virtual QCString trStaticProtectedAttribs()
     {
-      return decode("Static Protected ÊÑ¿ô");
+      return "Static Protected 変数";
     }
     virtual QCString trPrivateTypes()
     {
-      return decode("Private ·¿");
+      return "Private 型";
     }
     virtual QCString trPrivateAttribs()
     {
-      return decode("Private ÊÑ¿ô");
+      return "Private 変数";
     }
     virtual QCString trStaticPrivateAttribs()
     {
-      return decode("Static Private ÊÑ¿ô");
+      return "Static Private 変数";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -947,12 +897,12 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     /*! Used as a marker that is put before a todo item */
     virtual QCString trTodo()
     {
-      return decode("TODO");
+      return "TODO";
     }
     /*! Used as the header of the todo list */
     virtual QCString trTodoList()
     {
-      return decode("TODO°ìÍ÷");
+      return "TODO一覧";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -961,24 +911,24 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
 
     virtual QCString trReferencedBy()
     {
-      return decode("»²¾È¸µ");
+      return "参照元";
     }
     virtual QCString trRemarks()
     {
-      return decode("°Õ¸«");
+      return "意見";
     }
     virtual QCString trAttention()
     {
-      return decode("Ãí°Õ");
+      return "注意";
     }
     virtual QCString trInclByDepGraph()
     {
-       return decode("¤³¤Î¥°¥é¥Õ¤Ï¡¢¤É¤Î¥Õ¥¡¥¤¥ë¤«¤éľÀÜ¡¢´ÖÀÜŪ¤Ë"
-             "¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£");
+       return "このグラフは、どのファイルから直接、間接的に"
+               "インクルードされているかを示しています。";
     }
     virtual QCString trSince()
     {
-      return decode("¤«¤é");
+      return "から";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -988,33 +938,33 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     /*! title of the graph legend page */
     virtual QCString trLegendTitle()
     {
-      return decode("¥°¥é¥Õ¤ÎËÞÎã");
+      return "グラフの凡例";
     }
     /*! page explaining how the dot graph's should be interpreted */
     virtual QCString trLegendDocs()
     {
       return
-        decode("¤³¤Î¥Ú¡¼¥¸¤Ç¤Ï¡¢doxygen ¤ÇÀ¸À®¤µ¤ì¤¿¥°¥é¥Õ¤ò¤É¤Î¤è¤¦¤Ë¤ß¤¿¤é¤è¤¤¤«¤ò"
-        "ÀâÌÀ¤·¤Þ¤¹¡£<p>\n"
-        "¼¡¤ÎÎã¤ò¹Í¤¨¤Æ¤ß¤Þ¤¹¡£\n"
+        "このページでは、doxygen で生成されたグラフをどのようにみたらよいかを"
+        "説明します。<p>\n"
+        "次の例を考えてみます。\n"
         "\\code\n"
-        "/*! ¾Êά¤µ¤ì¤Æ¸«¤¨¤Ê¤¤¥¯¥é¥¹ */\n"
+        "/*! ç\9c\81ç\95¥ã\81\95ã\82\8cã\81¦è¦\8bã\81\88ã\81ªã\81\84ã\82¯ã\83©ã\82¹ */\n"
         "class Invisible { };\n\n"
-        "/*! ¾Êά¤µ¤ì¤¿¥¯¥é¥¹(·Ñ¾µ´Ø·¸¤Ï±£¤µ¤ì¤Æ¤¤¤ë) */\n"
+        "/*! 省略されたクラス(継承関係は隠されている) */\n"
         "class Truncated : public Invisible { };\n\n"
-        "/* doxygen ¥³¥á¥ó¥È¤Ë¤è¤ë¥É¥­¥å¥á¥ó¥È¤¬¤Ê¤¤¥¯¥é¥¹ */\n"
+        "/* doxygen ã\82³ã\83¡ã\83³ã\83\88ã\81«ã\82\88ã\82\8bã\83\89ã\82­ã\83¥ã\83¡ã\83³ã\83\88ã\81\8cã\81ªã\81\84ã\82¯ã\83©ã\82¹ */\n"
         "class Undocumented { };\n\n"
-        "/*! public ¤Ç·Ñ¾µ¤µ¤ì¤¿¥¯¥é¥¹ */\n"
+        "/*! public ã\81§ç¶\99æ\89¿ã\81\95ã\82\8cã\81\9fã\82¯ã\83©ã\82¹ */\n"
         "class PublicBase : public Truncated { };\n\n"
         "/*! A template class */\n"
         "template<class T> class Templ { };\n\n"
-        "/*! protected ¤Ç·Ñ¾µ¤µ¤ì¤¿¥¯¥é¥¹ */\n"
+        "/*! protected ã\81§ç¶\99æ\89¿ã\81\95ã\82\8cã\81\9fã\82¯ã\83©ã\82¹ */\n"
         "class ProtectedBase { };\n\n"
-        "/*! private ¤Ç·Ñ¾µ¤µ¤ì¤¿¥¯¥é¥¹ */\n"
+        "/*! private ã\81§ç¶\99æ\89¿ã\81\95ã\82\8cã\81\9fã\82¯ã\83©ã\82¹ */\n"
         "class PrivateBase { };\n\n"
-        "/*! ·Ñ¾µ¤µ¤ì¤¿¥¯¥é¥¹¤Ç»È¤ï¤ì¤Æ¤¤¤ë¥¯¥é¥¹ */\n"
+        "/*! ç¶\99æ\89¿ã\81\95ã\82\8cã\81\9fã\82¯ã\83©ã\82¹ã\81§ä½¿ã\82\8fã\82\8cã\81¦ã\81\84ã\82\8bã\82¯ã\83©ã\82¹ */\n"
         "class Used { };\n\n"
-        "/*! Ê£¿ô¤Î¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ë¾å°Ì¥¯¥é¥¹ */\n"
+        "/*! è¤\87æ\95°ã\81®ã\82¯ã\83©ã\82¹ã\82\92ç¶\99æ\89¿ã\81\97ã\81¦ã\81\84ã\82\8bä¸\8aä½\8dã\82¯ã\83©ã\82¹ */\n"
         "class Inherited : public PublicBase,\n"
         "                  protected ProtectedBase,\n"
         "                  private PrivateBase,\n"
@@ -1025,34 +975,34 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
         "    Used *m_usedClass;\n"
         "};\n"
         "\\endcode\n"
-        "ÀßÄê¥Õ¥¡¥¤¥ëÃæ¤Ç¡¢¥¿¥° \\c MAX_DOT_GRAPH_HEIGHT ¤¬ 200 ¤Ë¥»¥Ã¥È¤µ¤ì¤¿"
-        "¾ì¹ç¡¢¼¡¤Î¤è¤¦¤Ê¥°¥é¥Õ¤È¤Ê¤ê¤Þ¤¹¡£"
+        "設定ファイル中で、タグ \\c MAX_DOT_GRAPH_HEIGHT が 200 にセットされた"
+        "場合、次のようなグラフとなります。"
         "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
         "<p>\n"
-        "¾å¤Î¥°¥é¥ÕÆâ¤Î¥Ü¥Ã¥¯¥¹¤Ë¤Ï¼¡¤Î¤è¤¦¤Ê°ÕÌ£¤¬¤¢¤ê¤Þ¤¹¡£\n"
+        "上のグラフ内のボックスには次のような意味があります。\n"
         "<ul>\n"
-        "<li>¹õ¤¯Åɤê¤Ä¤Ö¤µ¤ì¤¿¥Ü¥Ã¥¯¥¹¤Ï¡¢¤³¤Î¥°¥é¥Õ¤ËÂбþ¤¹¤ë¹½Â¤ÂΤ䥯¥é¥¹¤ò"
-        "ɽ¤·¤Þ¤¹¡£\n"
-        "<li>¹õÏȤΥܥ寥¹¤Ï¥É¥­¥å¥á¥ó¥È¤¬¤¢¤ë¹½Â¤ÂΤ䥯¥é¥¹¤òɽ¤·¤Þ¤¹¡£\n"
-        "<li>³¥¿§¤ÎÏȤΥܥ寥¹¤Ï¥É¥­¥å¥á¥ó¥È¤¬¤Ê¤¤¹½Â¤ÂΤ䥯¥é¥¹¤òɽ¤·¤Þ¤¹¡£\n"
-        "<li>ÀÖÏȤΥܥ寥¹¤Ï¥É¥­¥å¥á¥ó¥È¤¬¤¢¤ë¹½Â¤ÂΤ䥯¥é¥¹¤òɽ¤·¤Þ¤¹¤¬¡¢"
-         "»ØÄꤵ¤ì¤¿¥µ¥¤¥º¤Ë¼ý¤Þ¤é¤Ê¤¤¤¿¤á¤Ë·Ñ¾µ¡¦Êñ´Þ´Ø·¸¤ò¤¹¤Ù¤Æ¿Þ¼¨¤¹¤ë"
-         "¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤·¤Þ¤¹¡£"
+        "<li>黒く塗りつぶされたボックスは、このグラフに対応する構造体やクラスを"
+        "表します。\n"
+        "<li>黒枠のボックスはドキュメントがある構造体やクラスを表します。\n"
+        "<li>灰色の枠のボックスはドキュメントがない構造体やクラスを表します。\n"
+        "<li>赤枠のボックスはドキュメントがある構造体やクラスを表しますが、"
+         "指定されたサイズに収まらないために継承・包含関係をすべて図示する"
+         "ことができなかったことを示します。"
         "</ul>\n"
-        "Ìð°õ¤Ë¤Ï¼¡¤Î¤è¤¦¤Ê°ÕÌ£¤¬¤¢¤ê¤Þ¤¹¡£\n"
+        "矢印には次のような意味があります。\n"
         "<ul>\n"
-        "<li>ÀĤ¤Ìð°õ¤ÏÆó¤Ä¤Î¥¯¥é¥¹´Ö¤Î public ·Ñ¾µ´Ø·¸¤ò¼¨¤·¤Þ¤¹¡£\n"
-        "<li>ÎФÎÌð°õ¤Ï protected ·Ñ¾µ´Ø·¸¤ò¼¨¤·¤Þ¤¹¡£\n"
-        "<li>ÀÖ¤ÎÌð°õ¤Ï private ·Ñ¾µ´Ø·¸¤ò¼¨¤·¤Þ¤¹¡£\n"
-        "<li>»ç¤ÎÇËÀþÌð°õ¤Ï¡¢¤½¤Î¥¯¥é¥¹¤¬Â¾¤Î¥¯¥é¥¹¤Ë´Þ¤Þ¤ì¤Æ¤¤¤¿¤ê¡¢"
-         "ÍøÍѤµ¤ì¤Æ¤¤¤ë¤³¤È¤ò¼¨¤·¤Þ¤¹¡£¤Þ¤¿¡¢Ìð°õ¤¬»Ø¤·¤Æ¤¤¤ë¥¯¥é¥¹¤ä¹½Â¤ÂΤò"
-         "¤É¤ÎÊÑ¿ô¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤ë¤«¤òÌð°õ¤Î¥é¥Ù¥ë¤È¤·¤Æ¼¨¤·¤Æ¤¤¤Þ¤¹¡£\n"
-        "</ul>\n");
+        "<li>青い矢印は二つのクラス間の public 継承関係を示します。\n"
+        "<li>緑の矢印は protected 継承関係を示します。\n"
+        "<li>赤の矢印は private 継承関係を示します。\n"
+        "<li>紫の破線矢印は、そのクラスが他のクラスに含まれていたり、"
+         "利用されていることを示します。また、矢印が指しているクラスや構造体を"
+         "どの変数でアクセスできるかを矢印のラベルとして示しています。\n"
+        "</ul>\n";
     }
     /*! text for the link to the legend page */
     virtual QCString trLegend()
     {
-      return decode("ËÞÎã");
+      return "凡例";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1062,22 +1012,12 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
-      return decode("¥Æ¥¹¥È");
+      return "テスト";
     }
     /*! Used as the header of the test list */
     virtual QCString trTestList()
     {
-      return decode("¥Æ¥¹¥È°ìÍ÷");
-    }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return decode("DCOP¥á¥½¥Ã¥É");
+      return "テスト一覧";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1087,12 +1027,12 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     /*! Used as a section header for IDL properties */
     virtual QCString trProperties()
     {
-      return decode("¥×¥í¥Ñ¥Æ¥£");
+      return "プロパティ";
     }
     /*! Used as a section header for IDL property documentation */
     virtual QCString trPropertyDocumentation()
     {
-      return decode("¥×¥í¥Ñ¥Æ¥£");
+      return "プロパティ";
     }
 
 
@@ -1103,49 +1043,49 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     /*! Used for Java interfaces in the summary section of Java packages */
     virtual QCString trInterfaces()
     {
-      return decode("¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹");
+      return "インターフェース";
     }
     /*! Used for Java classes in the summary section of Java packages */
     virtual QCString trClasses()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
        {
-         return decode("¥Ç¡¼¥¿¹½Â¤");
+         return "データ構造";
        }
       else
        {
-         return decode("¥¯¥é¥¹");
+         return "クラス";
        }
     }
     /*! Used as the title of a Java package */
     virtual QCString trPackage(const char *name)
     {
-      return (QCString)decode("¥Ñ¥Ã¥±¡¼¥¸ ")+name;
+      return (QCString)"パッケージ "+name;
     }
     /*! Title of the package index page */
     virtual QCString trPackageList()
     {
-      return decode("¥Ñ¥Ã¥±¡¼¥¸°ìÍ÷");
+      return "パッケージ一覧";
     }
     /*! The description of the package index page */
     virtual QCString trPackageListDescription()
     {
-      return decode("¤³¤ì¤Ï¥Ñ¥Ã¥±¡¼¥¸°ìÍ÷¤Ç¤¹¡£");
+      return "これはパッケージ一覧です。";
     }
     /*! The link name in the Quick links header for each page */
     virtual QCString trPackages()
     {
-      return decode("¥Ñ¥Ã¥±¡¼¥¸");
+      return "パッケージ";
     }
     /*! Used as a chapter title for Latex & RTF output */
     virtual QCString trPackageDocumentation()
     {
-      return decode("¥Ñ¥Ã¥±¡¼¥¸");
+      return "パッケージ";
     }
     /*! Text shown before a multi-line define */
     virtual QCString trDefineValue()
     {
-      return decode("ÃÍ:");
+      return "値:";
     }
 
 
@@ -1156,12 +1096,12 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
-      return decode("¥Ð¥°");
+      return "バグ";
     }
     /*! Used as the header of the bug list */
     virtual QCString trBugList()
     {
-      return decode("¥Ð¥°°ìÍ÷");
+      return "バグ一覧";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1210,7 +1150,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     /*! Used as header RTF general index */
     virtual QCString trRTFGeneralIndex()
     {
-      return decode("º÷°ú");
+      return "索引";
     }
 
     /*! This is used for translation of the word that will possibly
@@ -1219,8 +1159,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trClass(bool /*first_capital*/, bool /*singular*/)
     {
-      QCString result(decode("¥¯¥é¥¹"));
-      return result;
+      return "クラス";
     }
 
     /*! This is used for translation of the word that will possibly
@@ -1229,8 +1168,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trFile(bool /*first_capital*/, bool /*singular*/)
     {
-      QCString result(decode("¥Õ¥¡¥¤¥ë"));
-      return result;
+      return "ファイル";
     }
 
     /*! This is used for translation of the word that will possibly
@@ -1239,8 +1177,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trNamespace(bool /*first_capital*/, bool /*singular*/)
     {
-      QCString result(decode("¥Í¡¼¥à¥¹¥Ú¡¼¥¹"));
-      return result;
+      return "ネームスペース";
     }
 
     /*! This is used for translation of the word that will possibly
@@ -1249,8 +1186,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trGroup(bool /*first_capital*/, bool /*singular*/)
     {
-      QCString result(decode("¥°¥ë¡¼¥×"));
-      return result;
+      return "グループ";
     }
 
     /*! This is used for translation of the word that will possibly
@@ -1259,8 +1195,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trPage(bool /*first_capital*/, bool /*singular*/)
     {
-      QCString result(decode("¥Ú¡¼¥¸"));
-      return result;
+      return "ページ";
     }
 
     /*! This is used for translation of the word that will possibly
@@ -1269,8 +1204,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trMember(bool /*first_capital*/, bool /*singular*/)
     {
-      QCString result(decode("¥á¥ó¥Ð"));
-      return result;
+      return "メンバ";
     }
 
     /*! This is used for translation of the word that will possibly
@@ -1279,8 +1213,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trField(bool /*first_capital*/, bool /*singular*/)
     {
-      QCString result(decode("¥Õ¥£¡¼¥ë¥É"));
-      return result;
+      return "フィールド";
     }
 
     /*! This is used for translation of the word that will possibly
@@ -1289,8 +1222,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trGlobal(bool /*first_capital*/, bool /*singular*/)
     {
-      QCString result(decode("¥°¥í¡¼¥Ð¥ë"));
-      return result;
+      return "グローバル";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1301,8 +1233,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool /*first_capital*/, bool /*singular*/)
     {
-      QCString result(decode("ºî¼Ô"));
-      return result;
+      return "作者";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1313,7 +1244,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trReferences()
     {
-      return decode("»²¾ÈÀè");
+      return "参照先";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1325,7 +1256,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trImplementedFromList(int numEntries)
     {
-      return trWriteList(numEntries)+decode("¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£");
+      return trWriteList(numEntries)+"を実装しています。";
     }
 
     /*! used in member documentation blocks to produce a list of
@@ -1333,7 +1264,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trImplementedInList(int numEntries)
     {
-      return trWriteList(numEntries)+decode("¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£");
+      return trWriteList(numEntries)+"で実装されています。";
     }
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.16
@@ -1344,36 +1275,36 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trRTFTableOfContents()
     {
-      return decode("Ìܼ¡");
+      return "目次";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
-      return decode("Èó¿ä¾©°ìÍ÷");
+      return "非推奨一覧";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
     {
-      return decode("¥¤¥Ù¥ó¥È");
+      return "イベント";
     }
     /*! Header used for the documentation section of a class' events. */
     virtual QCString trEventDocumentation()
     {
-      return decode("¥¤¥Ù¥ó¥È");
+      return "イベント";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1383,79 +1314,71 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
-      return decode("¥Ñ¥Ã¥±¡¼¥¸Æâ¤Î·¿ÄêµÁ");
+    {
+      return "パッケージ内の型定義";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
-      return decode("´Ø¿ô");
+    {
+      return "関数";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
-      return decode("¥¹¥¿¥Æ¥£¥Ã¥¯´Ø¿ô");
+    {
+      return "スタティック関数";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
-      return decode("ÊÑ¿ô");
+    {
+      return "変数";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
-      return decode("¥¹¥¿¥Æ¥£¥Ã¥¯ÊÑ¿ô");
+    {
+      return "スタティック変数";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
     {
-      return decode("Á´¤Æ");
+      return "全て";
     }
     /*! Put in front of the call graph for a function. */
     virtual QCString trCallGraph()
     {
-      return decode("´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¥°¥é¥Õ:");
+      return "関数の呼び出しグラフ:";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return decode("¸¡º÷");
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
     virtual QCString trSearchResultsTitle()
     {
-      return decode("¸¡º÷·ë²Ì");
+      return "検索結果";
     }
     /*! This string is put just before listing the search results. The
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1463,24 +1386,24 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     {
       if (numDocuments==0)
       {
-        return decode("ÆþÎϤµ¤ì¤¿¾ò·ï¤Ë¥Þ¥Ã¥Á¤¹¤ë¥É¥­¥å¥á¥ó¥È¤¬¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿.");
+        return "入力された条件にマッチするドキュメントがありませんでした.";
       }
       else if (numDocuments==1)
       {
-        return decode("ÆþÎϤµ¤ì¤¿¾ò·ï¤Ë¥Þ¥Ã¥Á¤¹¤ë¥É¥­¥å¥á¥ó¥È¤¬ <b>1</b> ·ï¤ß¤Ä¤«¤ê¤Þ¤·¤¿.");
+        return "入力された条件にマッチするドキュメントが <b>1</b> 件みつかりました.";
       }
-      else 
+      else
       {
-        return decode("ÆþÎϤµ¤ì¤¿¾ò·ï¤Ë¥Þ¥Ã¥Á¤¹¤ë¥É¥­¥å¥á¥ó¥È¤¬ <b>$num</b> ·ï¤ß¤Ä¤«¤ê¤Þ¤·¤¿. "
-                      "ºÇ¤â°ìÃפ·¤Æ¤¤¤ë¤â¤Î¤«¤éɽ¼¨¤µ¤ì¤Þ¤¹.");
+        return "入力された条件にマッチするドキュメントが <b>$num</b> 件みつかりました. "
+               "最も一致しているものから表示されます.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
     {
-      return decode("¥Þ¥Ã¥Á¤·¤¿Ã±¸ì:");
+      return "マッチした単語:";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1491,7 +1414,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trSourceFile(QCString& filename)
     {
-      return filename + decode(" ¥½¡¼¥¹¥Õ¥¡¥¤¥ë");
+      return filename + " ソースファイル";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1502,40 +1425,40 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      *  hierarchy.
      */
     virtual QCString trDirIndex()
-    { return decode("¥Ç¥£¥ì¥¯¥È¥êº÷°ú"); }
+    { return "ディレクトリ索引"; }
 
     /*! This is used as the name of the chapter containing the documentation
      *  of the directories.
      */
     virtual QCString trDirDocumentation()
-    { return decode("¥Ç¥£¥ì¥¯¥È¥ê¹½À®"); }
+    { return "ディレクトリ構成"; }
 
     /*! This is used as the title of the directory index and also in the
      *  Quick links of an HTML page, to link to the directory hierarchy.
      */
     virtual QCString trDirectories()
-    { return decode("¥Ç¥£¥ì¥¯¥È¥ê"); }
+    { return "ディレクトリ"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
-    { return decode("¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê°ìÍ÷¤Ï¤ª¤ª¤Þ¤«¤Ë¤Ï¥½¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢"
-                   "´°Á´¤Ë¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Ç¥½¡¼¥È¤µ¤ì¤Æ¤Ï¤¤¤Þ¤»¤ó¡£");
+    { return "このディレクトリ一覧はおおまかにはソートされていますが、"
+             "完全にアルファベット順でソートされてはいません。";
     }
 
     /*! This returns the title of a directory page. The name of the
      *  directory is passed via \a dirName.
      */
     virtual QCString trDirReference(const char *dirName)
-    { QCString result=dirName; result+=decode(" ¥Ç¥£¥ì¥¯¥È¥ê¥ê¥Õ¥¡¥ì¥ó¥¹"); return result; }
+    { QCString result=dirName; result+=" ディレクトリリファレンス"; return result; }
 
     /*! This returns the word directory with or without starting capital
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool, bool)
-    { 
-      return decode("¥Ç¥£¥ì¥¯¥È¥ê");
+    {
+      return "ディレクトリ";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1547,9 +1470,9 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trOverloadText()
     {
-       return decode("¤³¤ì¤Ï¥ª¡¼¥Ð¡¼¥í¡¼¥É¤µ¤ì¤¿¥á¥ó¥Ð´Ø¿ô¤Ç¤¹¡£"
-                    "ÍøÊØÀ­¤Î¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£"
-                    "¸µ¤Î´Ø¿ô¤È¤Î°ã¤¤¤Ï°ú¤­¿ô¤Î¤ß¤Ç¤¹¡£");
+       return "これはオーバーロードされたメンバ関数です。"
+              "利便性のために用意されています。"
+              "元の関数との違いは引き数のみです。";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1560,90 +1483,90 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     virtual QCString trCallerGraph()
     {
       // return "Here is the caller graph for this function:";
-      return decode("¸Æ½Ð¤·¥°¥é¥Õ:");
+      return "呼出しグラフ:";
     }
 
     /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
-    { return decode("Îóµó·¿"); }
+    { return "列挙型"; }
 
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
-    { return decode("´Ø¿ô/¥µ¥Ö¥ë¡¼¥Á¥ó"); }
+    { return "関数/サブルーチン"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
-    { return decode("¥Ç¡¼¥¿·¿"); }
+    { return "データ型"; }
 
     /*! This is put above each page as a link to all members of compounds (Fortran). */
     virtual QCString trCompoundMembersFortran()
-    { return decode("¥Ç¡¼¥¿¥Õ¥£¡¼¥ë¥É"); }
-    
+    { return "データフィールド"; }
+
     /*! This is an introduction to the annotated compound list (Fortran). */
     virtual QCString trCompoundListDescriptionFortran()
-    { return decode("¤³¤ì¤Ï¥Ç¡¼¥¿·¿¤Î°ìÍ÷¤Ç¤¹"); }
-    
+    { return "これはデータ型の一覧です"; }
+
     /*! This is an introduction to the page with all data types (Fortran). */
     virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
     {
-         QCString result=decode("¤³¤ì¤Ï");
-         result+=decode("¥Õ¥£¡¼¥ë¥É¤Î°ìÍ÷¤Ç¤¹¡£¤½¤ì¤¾¤ì");
+         QCString result="これは";
+         result+="フィールドの一覧です。それぞれ";
          if (extractAll)
          {
-               result+=decode("¤¬Â°¤·¤Æ¤¤¤ë¥Ç¡¼¥¿·¿");
+               result+="が属しているデータ型";
          }
-         result+=decode("¤ÎÀâÌÀ¤Ø¥ê¥ó¥¯¤·¤Æ¤¤¤Þ¤¹¡£");
+         result+="の説明へリンクしています。";
          return result;
     }
-       
-    /*! This is used in LaTeX as the title of the chapter with the 
+
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
-    { return decode("¥Ç¡¼¥¿·¿º÷°ú"); }
+    { return "データ型索引"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all data types (Fortran).
      */
     virtual QCString trTypeDocumentation()
-    { return decode("¥Ç¡¼¥¿·¿"); }
+    { return "データ型"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
-    { return decode("´Ø¿ô/¥µ¥Ö¥ë¡¼¥Á¥ó"); }
+    { return "関数/サブルーチン"; }
 
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
-    { return decode("´Ø¿ô/¥µ¥Ö¥ë¡¼¥Á¥ó"); }
+    { return "関数/サブルーチン"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
-    { return decode("¥Ç¡¼¥¿·¿"); }
-    
+    { return "データ型"; }
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
-    { return decode("¥â¥¸¥å¡¼¥ë°ìÍ÷"); }
+    { return "モジュール一覧"; }
 
     /*! used as an introduction to the modules list (Fortran) */
     virtual QCString trModulesListDescription(bool extractAll)
     {
-      QCString result=decode("¤³¤ì¤Ï");
-      if (!extractAll) result+=decode("À¸À®¤µ¤ì¤¿");
-      result+=decode("¥â¥¸¥å¡¼¥ë°ìÍ÷¤Ç¤¹");
+      QCString result="これは";
+      if (!extractAll) result+="生成された";
+      result+="モジュール一覧です";
       return result;
     }
 
@@ -1655,16 +1578,16 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
       QCString result="";
       switch(compType)
       {
-        case ClassDef::Class:      result+=decode("¥â¥¸¥å¡¼¥ë "); break;
-        case ClassDef::Struct:     result+=decode("TYPE "); break;
-        case ClassDef::Union:      result+=decode("¶¦ÍÑÂΠ"); break;
-        case ClassDef::Interface:  result+=decode("¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ "); break;
-        case ClassDef::Protocol:   result+=decode("¥×¥í¥È¥³¥ë "); break;
-        case ClassDef::Category:   result+=decode("¥«¥Æ¥´¥ê "); break;
-        case ClassDef::Exception:  result+=decode("Îã³° "); break;
+        case ClassDef::Class:      result+="モジュール "; break;
+        case ClassDef::Struct:     result+="TYPE "; break;
+        case ClassDef::Union:      result+="共用体 "; break;
+        case ClassDef::Interface:  result+="インターフェース "; break;
+        case ClassDef::Protocol:   result+="プロトコル "; break;
+        case ClassDef::Category:   result+="カテゴリ "; break;
+        case ClassDef::Exception:  result+="例外 "; break;
         default: break;
       }
-      if (isTemplate) result += decode("¥Æ¥ó¥×¥ì¡¼¥È ");
+      if (isTemplate) result += "テンプレート ";
       result+=(QCString)clName;
       return result;
     }
@@ -1672,39 +1595,39 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=decode("¥â¥¸¥å¡¼¥ë");        
+      result+="モジュール";
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
-    { return decode("¥â¥¸¥å¡¼¥ë¥á¥ó¥Ð"); }
+    { return "モジュールメンバ"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
-      QCString result=decode("¤³¤ì¤Ï¥â¥¸¥å¡¼¥ë¥á¥ó¥Ð°ìÍ÷¤Ç¤¹¡£¤½¤ì¤¾¤ì ");
-      if (extractAll) 
+    {
+      QCString result="これはモジュールメンバ一覧です。それぞれ ";
+      if (extractAll)
       {
-        result+=decode("°¤·¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë");
+        result+="属しているモジュール";
       }
-         result+=decode("¤ÎÀâÌÀ¤Ø¥ê¥ó¥¯¤·¤Æ¤¤¤Þ¤¹¡£");
+      result+="の説明へリンクしています。";
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
-    { return decode("¥â¥¸¥å¡¼¥ëº÷°ú"); }
-    
+    { return "モジュール索引"; }
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool /*first_capital*/, bool /*singular*/)
-    {       
-      return decode("¥â¥¸¥å¡¼¥ë");
+    {
+      return "モジュール";
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1716,41 +1639,41 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
       QCString result="";
       switch(compType)
       {
-        case ClassDef::Class:      result+=decode("¥â¥¸¥å¡¼¥ë"); break;
-        case ClassDef::Struct:     result+=decode("TYPE"); break;
-        case ClassDef::Union:      result+=decode("¶¦ÍÑÂÎ"); break;
-        case ClassDef::Interface:  result+=decode("¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹"); break;
-        case ClassDef::Protocol:   result+=decode("¥×¥í¥È¥³¥ë"); break;
-        case ClassDef::Category:   result+=decode("¥«¥Æ¥´¥ê"); break;
-        case ClassDef::Exception:  result+=decode("Îã³°"); break;
+        case ClassDef::Class:      result+="モジュール"; break;
+        case ClassDef::Struct:     result+="TYPE"; break;
+        case ClassDef::Union:      result+="共用体"; break;
+        case ClassDef::Interface:  result+="インターフェース"; break;
+        case ClassDef::Protocol:   result+="プロトコル"; break;
+        case ClassDef::Category:   result+="カテゴリ"; break;
+        case ClassDef::Exception:  result+="例外"; break;
         default: break;
       }
-      result+=decode(decode("¤ÎÀâÌÀ¤Ï¼¡¤Î¥Õ¥¡¥¤¥ë¤«¤éÀ¸À®¤µ¤ì¤Þ¤·¤¿:"));
+      result+="の説明は次のファイルから生成されました:";
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool /*first_capital*/, bool /*singular*/)
-    { 
-      QCString result = decode("TYPE");
-      return result; 
+    {
+      QCString result = "TYPE";
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool /*first_capital*/, bool /*singular*/)
-    { 
-      QCString result = decode("¥µ¥Ö¥×¥í¥°¥é¥à");
-      return result; 
+    {
+      QCString result = "サブプログラム";
+      return result;
     }
 
     /*! C# Type Constraint list */
     virtual QCString trTypeConstraints()
     {
-      return decode("·¿À©Ìó");
+      return "型制約";
     }
 
 };
index f089d38..357465d 100644 (file)
@@ -34,13 +34,8 @@ class TranslatorKoreanEn : public TranslatorEnglish
     virtual QCString idLanguage()
     { return "korean-en"; }
     virtual QCString latexLanguageSupportCommand()
-      {
-       return "\\usepackage{hfont}\n";
-      }
-    /*! returns the name of the package that is included by LaTeX */
-    virtual QCString idLanguageCharset()
     {
-               return "euc-kr";
+      return "\\usepackage{hfont}\n";
     }
     virtual QCString trRTFansicp()
     {
index a1ae9ea..348fa10 100644 (file)
@@ -3,8 +3,8 @@
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -26,7 +26,7 @@
  * doxygen-1.2.11
  *   * ryk */
 
-/*! 
+/*!
  When defining a translator class for the new language, follow
  the description in the documentation.  One of the steps says
  that you should copy the translator_en.h (this) file to your
@@ -48,7 +48,7 @@
  Translator class (by the local maintainer) when the localized
  translator is made up-to-date again.
 */
-class TranslatorKorean : public TranslatorAdapter_1_7_5
+class TranslatorKorean : public Translator
 {
   protected:
     friend class TranslatorAdapterBase;
@@ -57,19 +57,19 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "korean"; }
-    
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -77,7 +77,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -89,231 +89,225 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
       return "\\usepackage{hfont}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "euc-kr";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
     virtual QCString trRelatedFunctions()
-    { return "°ü·ÃµÈ ÇÔ¼öµé"; }
+    { return "관련된 함수들"; }
 
     /*! subscript for the related functions. */
     virtual QCString trRelatedSubscript()
-    { return "(´ÙÀ½Àº ¸â¹ö ÇÔ¼öµéÀÌ ¾Æ´Õ´Ï´Ù. ÁÖÀÇÇϽʽÿÀ.)"; }
+    { return "(다음은 멤버 함수들이 아닙니다. 주의하십시오.)"; }
 
     /*! header that is put before the detailed description of files, classes and namespaces. */
     virtual QCString trDetailedDescription()
-    { return "»ó¼¼ÇÑ ¼³¸í"; }
+    { return "상세한 설명"; }
 
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
-    { return "¸â¹ö Å¸ÀÔÁ¤ÀÇ ¹®¼­È­"; }
-    
+    { return "멤버 타입정의 문서화"; }
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
-    { return "¸â¹ö ¿­°ÅÇü ¹®¼­È­"; }
-    
+    { return "멤버 열거형 문서화"; }
+
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
-    { return "¸â¹ö ÇÔ¼ö ¹®¼­È­"; }
-    
+    { return "멤버 함수 문서화"; }
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-          return "Çʵ堹®¼­È­";
+          return "필드 문서화";
       }
       else
       {
-          return "¸â¹ö µ¥ÀÌŸ ¹®¼­È­";
+          return "멤버 데이타 문서화";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
-    { return "´õ ÀÚ¼¼È÷ ..."; }
+    virtual QCString trMore()
+    { return "더 자세히 ..."; }
 
     /*! put in the class documentation */
     virtual QCString trListOfAllMembers()
-    { return "¸ðµç ¸â¹ö ¸ñ·Ï"; }
+    { return "모든 멤버 목록"; }
 
     /*! used as the title of the "list of all members" page of a class */
     virtual QCString trMemberList()
-    { return "¸â¹ö ¸ñ·Ï"; }
+    { return "멤버 목록"; }
 
     /*! this is the first part of a sentence that is followed by a class name */
     virtual QCString trThisIsTheListOfAllMembers()
-    { return "´ÙÀ½¿¡ ´ëÇÑ ¸ðµç ¸â¹öÀÇ ¸ñ·ÏÀÔ´Ï´Ù : "; }
+    { return "다음에 대한 모든 멤버의 목록입니다 : "; }
 
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
-    { return " (¸ðµç »ó¼ÓµÈ ¸â¹öµéµµ Æ÷ÇÔÇÕ´Ï´Ù.)"; }
-    
+    { return " (모든 상속된 멤버들도 포함합니다.)"; }
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
-    { QCString result="¼Ò½º ÄÚµå·ÎºÎÅÍ ";
-      if (s) result+=s+(QCString)"¸¦ À§ÇØ ";
-      result+="Doxygen¿¡ ÀÇÇØ ÀÚµ¿À¸·Î »ý¼ºµÊ."; 
+    { QCString result="소스 코드로부터 ";
+      if (s) result+=s+(QCString)"를 위해 ";
+      result+="Doxygen에 의해 자동으로 생성됨.";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
-    { return "¿­°ÅÇü À̸§"; }
-    
+    { return "열거형 이름"; }
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
-    { return "¿­°ÅÇü °ª"; }
-    
+    { return "열거형 값"; }
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
-    { return "´ÙÀ½¿¡¼­ Á¤Àǵʠ:"; }
+    { return "다음에서 정의됨 :"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
-    { return "¸ðµâ"; }
-    
+    { return "모듈"; }
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
-    { return "Ŭ·¡½º °èÅëµµ"; }
-    
+    { return "클래스 계통도"; }
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "µ¥ÀÌŸ ±¸Á¶";
+        return "데이타 구조";
       }
       else
       {
-        return "Ŭ·¡½º ¸ñ·Ï"; 
+        return "클래스 목록";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
-    { return "ÆÄÀÏ ¸ñ·Ï"; }
+    { return "파일 목록"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "µ¥ÀÌŸ Çʵå"; 
+        return "데이타 필드";
       }
       else
       {
-        return "Ŭ·¡½º ¸â¹ö"; 
+        return "클래스 멤버";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Àü¿ª"; 
+        return "전역";
       }
       else
       {
-        return "ÆÄÀÏ ¸â¹ö"; 
+        return "파일 멤버";
       }
     }
 
     /*! This is put above each page as a link to all related pages. */
     virtual QCString trRelatedPages()
-    { return "°ü·ÃµÈ ÆäÀÌÁö"; }
+    { return "관련된 페이지"; }
 
     /*! This is put above each page as a link to all examples. */
     virtual QCString trExamples()
-    { return "¿¹Á¦"; }
+    { return "예제"; }
 
     /*! This is put above each page as a link to the search engine. */
     virtual QCString trSearch()
-    { return "°Ë»ö"; }
+    { return "검색"; }
 
     /*! This is an introduction to the class hierarchy. */
     virtual QCString trClassHierarchyDescription()
-    { return "ÀÌ »ó¼Ó ¸ñ·ÏÀº ¿ÏÀüÇÏÁø ¾ÊÁö¸¸ ¾ËÆĺª¼øÀ¸·Î ´ë·«ÀûÀ¸·Î Á¤·ÄµÇ¾îÀÖ½À´Ï´Ù.:";
+    { return "이 상속 목록은 완전하진 않지만 알파벳순으로 대략적으로 정렬되어있습니다.:";
     }
 
     /*! This is an introduction to the list with all files. */
     virtual QCString trFileListDescription(bool extractAll)
     {
-      QCString result="´ÙÀ½Àº ";
-      if (!extractAll) result+="¹®¼­È­µÈ ";
-      result+="¸ðµç ÆÄÀÏ¿¡ ´ëÇÑ ¸ñ·ÏÀÔ´Ï´Ù. (°£·«ÇÑ ¼³¸í¸¸À» º¸¿©ÁÝ´Ï´Ù) :";
+      QCString result="다음은 ";
+      if (!extractAll) result+="문서화된 ";
+      result+="모든 파일에 대한 목록입니다. (간략한 설명만을 보여줍니다) :";
       return result;
     }
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "´ÙÀ½Àº µ¥ÀÌŸ ±¸Á¶µéÀÔ´Ï´Ù. (°£·«ÇÑ ¼³¸í¸¸À» º¸¿©ÁÝ´Ï´Ù) :"; 
+        return "다음은 데이타 구조들입니다. (간략한 설명만을 보여줍니다) :";
       }
       else
       {
-        return "´ÙÀ½Àº Å¬·¡½º, ±¸Á¶Ã¼, °ø¿ëü ±×¸®°í ÀÎÅÍÆäÀ̽ºµéÀÔ´Ï´Ù. "
-               "(°£·«ÇÑ ¼³¸í¸¸À» º¸¿©ÁÝ´Ï´Ù) :"; 
+        return "다음은 클래스, 구조체, 공용체 그리고 인터페이스들입니다. "
+               "(간략한 설명만을 보여줍니다) :";
       }
     }
 
     /*! This is an introduction to the page with all class members. */
     virtual QCString trCompoundMembersDescription(bool extractAll)
     {
-      QCString result="´ÙÀ½Àº ";
+      QCString result="다음은 ";
       if (!extractAll)
       {
-        result+="¹®¼­È­µÈ ";
+        result+="문서화된 ";
       }
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        result+="¸ðµç ±¸Á¶Ã¼¿Í °ø¿ëüÀÇ Çʵåµé";
+        result+="모든 구조체와 공용체의 필드들";
       }
       else
       {
-        result+="¸ðµç Å¬·¡½º ¸â¹öµé";
+        result+="모든 클래스 멤버들";
       }
-      result+="ÀÇ ¸ñ·ÏÀÔ´Ï´Ù. ";
+      result+="의 목록입니다. ";
 
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
-          result+="°¢ ÇʵåµéÀº ÇØ´ç Çʵ忡 ´ëÇÑ ±¸Á¶Ã¼¿Í °ø¿ëüÀÇ "
-                 "¹®¼­È­ ÆäÀÌÁöÀÇ ¸µÅ©¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. :";
+          result+="각 필드들은 해당 필드에 대한 구조체와 공용체의 "
+                 "문서화 페이지의 링크를 가지고 있습니다. :";
         }
         else
         {
-          result+="°¢ ¸â¹öµéÀº ÇØ´ç ¸â¹ö¿¡ ´ëÇѠŬ·¡½ºÀÇ ¹®¼­È­ ÆäÀÌÁöÀÇ "
-                 "¸µÅ©¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. :";
+          result+="각 멤버들은 해당 멤버에 대한 클래스의 문서화 페이지의 "
+                 "링크를 가지고 있습니다. :";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
-          result+="°¢ ÇʵåµéÀº ÇØ´ç Çʵ尡 ¼ÓÇØ Àִ ±¸Á¶Ã¼¿Í °ø¿ëü¿¡ "
-                 "´ëÇÑ ¸µÅ©¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. :";
+          result+="각 필드들은 해당 필드가 속해 있는 구조체와 공용체에 "
+                 "대한 링크를 가지고 있습니다. :";
         }
         else
         {
-          result+="°¢ ¸â¹öµéÀº ÇØ´ç ¸â¹ö°¡ ¼ÓÇØ Àִ Ŭ·¡½º¿¡ ´ëÇÑ "
-                 "¸µÅ©¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. :";
+          result+="각 멤버들은 해당 멤버가 속해 있는 클래스에 대한 "
+                 "링크를 가지고 있습니다. :";
         }
       }
       return result;
@@ -322,96 +316,96 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
     /*! This is an introduction to the page with all file members. */
     virtual QCString trFileMembersDescription(bool extractAll)
     {
-      QCString result="´ÙÀ½Àº ";
-      if (!extractAll) result+="¹®¼­È­µÈ  ";
-      
+      QCString result="다음은 ";
+      if (!extractAll) result+="문서화된  ";
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        result+="¸ðµç ÇÔ¼ö, º¯¼ö, ¸ÅÅ©·Î, ¿­°ÅÇü, Å¸ÀÔÁ¤Àǵé";
+        result+="모든 함수, 변수, 매크로, 열거형, 타입정의들";
       }
       else
       {
-        result+="ÆÄÀÏ ¸â¹öµé";
+        result+="파일 멤버들";
       }
-      result+="ÀÇ ¸ñ·ÏÀÔ´Ï´Ù. ";
+      result+="의 목록입니다. ";
 
-      result+="°¢ Ç׸ñÀº ";
-      if (extractAll) 
-        result+="±×µéÀÌ ¼ÓÇÑ ÆÄÀÏ ÆäÀÌÁöÀÇ ¸µÅ©¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. :";
-      else 
-        result+="±×µé¿¡ ´ëÇÑ ¹®¼­È­ ÆäÀÌÁöÀÇ ¸µÅ©¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. :";
+      result+="각 항목은 ";
+      if (extractAll)
+        result+="그들이 속한 파일 페이지의 링크를 가지고 있습니다. :";
+      else
+        result+="그들에 대한 문서화 페이지의 링크를 가지고 있습니다. :";
       return result;
     }
 
     /*! This is an introduction to the page with the list of all examples */
     virtual QCString trExamplesDescription()
-    { return "´ÙÀ½Àº ¸ðµç ¿¹Á¦µéÀÇ ¸ñ·ÏÀÔ´Ï´Ù.:"; }
+    { return "다음은 모든 예제들의 목록입니다.:"; }
 
     /*! This is an introduction to the page with the list of related pages */
     virtual QCString trRelatedPagesDescription()
-    { return "´ÙÀ½Àº °ü·ÃµÈ ¸ðµç ¹®¼­È­ ÆäÀÌÁöµéÀÇ ¸ñ·ÏÀÔ´Ï´Ù.:"; }
+    { return "다음은 관련된 모든 문서화 페이지들의 목록입니다.:"; }
 
     /*! This is an introduction to the page with the list of class/file groups */
     virtual QCString trModulesDescription()
-    { return "´ÙÀ½Àº ¸ðµç ¸ðµâµéÀÇ ¸ñ·ÏÀÔ´Ï´Ù.:"; }
+    { return "다음은 모든 모듈들의 목록입니다.:"; }
 
-    // index titles (the project name is prepended for these) 
+    // index titles (the project name is prepended for these)
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
-    { return "¹®¼­È­"; }
+    { return "문서화"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
-    { return "¸ðµâ »öÀÎ"; }
+    { return "모듈 색인"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
-    { return "°èÅëµµ »öÀÎ"; }
+    { return "계통도 색인"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
-        return "µ¥ÀÌŸ ±¸Á¶ »öÀÎ";
+      {
+        return "데이타 구조 색인";
       }
       else
       {
-        return "Ŭ·¡½º »öÀÎ"; 
+        return "클래스 색인";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
-    { return "ÆÄÀÏ »öÀÎ"; }
+    virtual QCString trFileIndex()
+    { return "파일 색인"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all groups.
      */
     virtual QCString trModuleDocumentation()
-    { return "¸ðµâ ¹®¼­È­"; }
+    { return "모듈 문서화"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "µ¥ÀÌŸ ±¸Á¶ ¹®¼­È­"; 
+        return "데이타 구조 문서화";
       }
       else
       {
-        return "Ŭ·¡½º ¹®¼­È­"; 
+        return "클래스 문서화";
       }
     }
 
@@ -419,190 +413,172 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      *  the documentation of all files.
      */
     virtual QCString trFileDocumentation()
-    { return "ÆÄÀÏ ¹®¼­È­"; }
+    { return "파일 문서화"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all examples.
      */
     virtual QCString trExampleDocumentation()
-    { return "¿¹Á¦ ¹®¼­È­"; }
+    { return "예제 문서화"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all related pages.
      */
     virtual QCString trPageDocumentation()
-    { return "ÆäÀÌÁö ¹®¼­È­"; }
+    { return "페이지 문서화"; }
 
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
-    { return "ÂüÁ¶ ¸Å´º¾ó"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+    { return "참조 매뉴얼"; }
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
-    { return "¸ÅÅ©·Î"; }
+    { return "매크로"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "ÇÔ¼ö ¿øÇü"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
-    { return "ŸÀÔÁ¤ÀÇ"; }
+    { return "타입정의"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
-    { return "¿­°ÅÇü Å¸ÀÔ"; }
+    { return "열거형 타입"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
-    { return "ÇÔ¼ö"; }
+    { return "함수"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
-    { return "º¯¼ö"; }
+    { return "변수"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
-    { return "¿­°ÅÇü ¸â¹ö"; }
-    
+    { return "열거형 멤버"; }
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
-    { return "¸ÅÅ©·Î ¹®¼­È­"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "ÇÔ¼ö ¿øÇü ¹®¼­È­"; }
+    { return "매크로 문서화"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
-    { return "ŸÀÔÁ¤ÀÇ ¹®¼­È­"; }
+    { return "타입정의 문서화"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
-    { return "¿­°ÅÇü Å¸ÀÔ ¹®¼­È­"; }
+    { return "열거형 타입 문서화"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
-    { return "ÇÔ¼ö ¹®¼­È­"; }
+    { return "함수 문서화"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
-    { return "º¯¼ö ¹®¼­È­"; }
+    { return "변수 문서화"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "µ¥ÀÌŸ ±¸Á¶"; 
+        return "데이타 구조";
       }
       else
       {
-        return "Ŭ·¡½º"; 
+        return "클래스";
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
-      QCString result=(QCString)"»ý¼º½Ã°£ : "+date;
-      if (projName) result+=(QCString)", ÇÁ·ÎÁ§Æ®¸í : "+projName;
-      result+=(QCString)", »ý¼ºÀÚ : ";
-      return result;
-    }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
     {
-      return "ÀÛ¼ºÀÚ : ";
+      QCString result=(QCString)"생성시간 : "+date;
+      if (projName) result+=(QCString)", 프로젝트명 : "+projName;
+      result+=(QCString)", 생성자 : ";
+      return result;
     }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
-      return (QCString)clName+"¿¡ ´ëÇÑ »ó¼Ó ´ÙÀ̾î±×·¥ : ";
+      return (QCString)clName+"에 대한 상속 다이어그램 : ";
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
-    { return "³»ºÎÀûÀûÀ¸·Î¸¸ »ç¿ëÇϱâ À§ÇØ."; }
+    { return "내부적적으로만 사용하기 위해."; }
 
     /*! this text is generated when the \\warning command is used. */
     virtual QCString trWarning()
-    { return "°æ°í"; }
+    { return "경고"; }
 
     /*! this text is generated when the \\version command is used. */
     virtual QCString trVersion()
-    { return "¹öÀü"; }
+    { return "버전"; }
 
     /*! this text is generated when the \\date command is used. */
     virtual QCString trDate()
-    { return "³¯Â¥"; }
+    { return "날짜"; }
 
     /*! this text is generated when the \\return command is used. */
     virtual QCString trReturns()
-    { return "¹Ýȯ°ª"; }
+    { return "반환값"; }
 
     /*! this text is generated when the \\sa command is used. */
     virtual QCString trSeeAlso()
-    { return "Âü°í"; }
+    { return "참고"; }
 
     /*! this text is generated when the \\param command is used. */
     virtual QCString trParameters()
-    { return "¸Å°³º¯¼ö"; }
+    { return "매개변수"; }
 
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
-    { return "¿¹¿Ü"; }
-    
+    { return "예외"; }
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
-    { return "´ÙÀ½¿¡ ÀÇÇØ »ý¼ºµÊ : "; }
+    { return "다음에 의해 생성됨 : "; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
-    { return "³×ÀÓ½ºÆäÀ̽º ¸ñ·Ï"; }
+    { return "네임스페이스 목록"; }
 
     /*! used as an introduction to the namespace list */
     virtual QCString trNamespaceListDescription(bool extractAll)
     {
-      QCString result="´ÙÀ½Àº ";
-      if (!extractAll) result+="¹®¼­È­µÈ ";
-      result+="¸ðµç ³×ÀÓ½ºÆäÀ̽º¿¡ ´ëÇÑ ¸ñ·ÏÀÔ´Ï´Ù. (°£·«ÇÑ ¼³¸í¸¸À» º¸¿©ÁÝ´Ï´Ù) :";
+      QCString result="다음은 ";
+      if (!extractAll) result+="문서화된 ";
+      result+="모든 네임스페이스에 대한 목록입니다. (간략한 설명만을 보여줍니다) :";
       return result;
     }
 
@@ -611,17 +587,17 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      */
     virtual QCString trFriends()
     { return "Friends"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
-    { return "Friend, ±×¸®°í °ü·ÃµÈ ÇÔ¼ö ¹®¼­È­"; }
-    
+    { return "Friend, 그리고 관련된 함수 문서화"; }
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -634,17 +610,17 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
       QCString result=(QCString)clName;
       switch(compType)
       {
-        case ClassDef::Class:      result+=" Å¬·¡½º"; break;
-        case ClassDef::Struct:     result+=" ±¸Á¶Ã¼"; break;
-        case ClassDef::Union:      result+=" °ø¿ëü"; break;
-        case ClassDef::Interface:  result+=" ÀÎÅÍÆäÀ̽º"; break;
-        case ClassDef::Protocol:   result+=" ÇÁ·ÎÅäÄÝ"; break;
-        case ClassDef::Category:   result+=" Ä«Å×°í¸®"; break;
-        case ClassDef::Exception:  result+=" ¿¹¿Ü"; break;
+        case ClassDef::Class:      result+=" 클래스"; break;
+        case ClassDef::Struct:     result+=" 구조체"; break;
+        case ClassDef::Union:      result+=" 공용체"; break;
+        case ClassDef::Interface:  result+=" 인터페이스"; break;
+        case ClassDef::Protocol:   result+=" 프로토콜"; break;
+        case ClassDef::Category:   result+=" 카테고리"; break;
+        case ClassDef::Exception:  result+=" 예외"; break;
         default: break;
       }
-      if (isTemplate) result+=" ÅÛÇø´";
-      result+=" ÂüÁ¶";
+      if (isTemplate) result+=" 템플릿";
+      result+=" 참조";
       return result;
     }
 
@@ -652,7 +628,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
     virtual QCString trFileReference(const char *fileName)
     {
       QCString result=fileName;
-      result+=" ÆÄÀÏ ÂüÁ¶";
+      result+=" 파일 참조";
       return result;
     }
 
@@ -660,31 +636,31 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
     virtual QCString trNamespaceReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" ³×ÀÓ½ºÆäÀ̽º ÂüÁ¶";
+      result+=" 네임스페이스 참조";
       return result;
     }
-    
+
     virtual QCString trPublicMembers()
-    { return "Public ¸â¹ö ÇÔ¼ö"; }
+    { return "Public 멤버 함수"; }
     virtual QCString trPublicSlots()
     { return "Public Slots"; }
     virtual QCString trSignals()
     { return "Signals"; }
     virtual QCString trStaticPublicMembers()
-    { return "Á¤Àû Public ¸â¹ö ÇÔ¼ö"; }
+    { return "정적 Public 멤버 함수"; }
     virtual QCString trProtectedMembers()
-    { return "Protected ¸â¹ö ÇÔ¼ö"; }
+    { return "Protected 멤버 함수"; }
     virtual QCString trProtectedSlots()
     { return "Protected Slots"; }
     virtual QCString trStaticProtectedMembers()
-    { return "Á¤Àû Protected ¸â¹ö ÇÔ¼ö"; }
+    { return "정적 Protected 멤버 함수"; }
     virtual QCString trPrivateMembers()
-    { return "Private ¸â¹ö ÇÔ¼ö"; }
+    { return "Private 멤버 함수"; }
     virtual QCString trPrivateSlots()
     { return "Private Slots"; }
     virtual QCString trStaticPrivateMembers()
-    { return "Á¤Àû Private ¸â¹ö ÇÔ¼ö"; }
-    
+    { return "정적 Private 멤버 함수"; }
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -693,29 +669,29 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=", ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
     virtual QCString trInheritsList(int numEntries)
     {
-      return trWriteList(numEntries)+"¸¦(À») »ó¼ÓÇß½À´Ï´Ù.";
+      return trWriteList(numEntries)+"를(을) 상속했습니다.";
     }
 
     /*! used in class documentation to produce a list of super classes,
@@ -723,15 +699,15 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      */
     virtual QCString trInheritedByList(int numEntries)
     {
-      return trWriteList(numEntries)+"¿¡ ÀÇÇØ »ó¼ÓµÇ¾ú½À´Ï´Ù.";
+      return trWriteList(numEntries)+"에 의해 상속되었습니다.";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
     {
-      return trWriteList(numEntries)+"(À¸)·ÎºÎÅÍ À籸ÇöµÇ¾ú½À´Ï´Ù.";
+      return trWriteList(numEntries)+"(으)로부터 재구현되었습니다.";
     }
 
     /*! used in member documentation blocks to produce a list of
@@ -739,36 +715,36 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      */
     virtual QCString trReimplementedInList(int numEntries)
     {
-      return trWriteList(numEntries)+"¿¡¼­ À籸ÇöµÇ¾ú½À´Ï´Ù.";
+      return trWriteList(numEntries)+"에서 재구현되었습니다.";
     }
 
     /*! This is put above each page as a link to all members of namespaces. */
     virtual QCString trNamespaceMembers()
-    { return "³×ÀÓ½ºÆäÀ̽º ¸â¹ö"; }
+    { return "네임스페이스 멤버"; }
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
-      QCString result="´ÙÀ½Àº ";
-      if (!extractAll) result+="¹®¼­È­µÈ ";
-      result+="¸ðµç ³×ÀÓ½ºÆäÀ̽º ¸â¹öµéÀÇ ¸ñ·ÏÀÔ´Ï´Ù. ";
-      if (extractAll) 
-        result+="°¢ ¸â¹öµéÀº ÇØ´ç ¸â¹öÀÇ ³×ÀÓ½ºÆäÀ̽º ¹®¼­È­ ÆäÀÌÁöÀÇ ¸µÅ©¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. :";
-      else 
-        result+="°¢ ¸â¹öµéÀº ÇØ´ç ¸â¹ö°¡ ¼ÓÇÑ ³×ÀÓ½ºÆäÀ̽º ÆäÀÌÁöÀÇ ¸µÅ©¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. :";
+    {
+      QCString result="다음은 ";
+      if (!extractAll) result+="문서화된 ";
+      result+="모든 네임스페이스 멤버들의 목록입니다. ";
+      if (extractAll)
+        result+="각 멤버들은 해당 멤버의 네임스페이스 문서화 페이지의 링크를 가지고 있습니다. :";
+      else
+        result+="각 멤버들은 해당 멤버가 속한 네임스페이스 페이지의 링크를 가지고 있습니다. :";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
-    { return "³×ÀÓ½ºÆäÀ̽º »öÀÎ"; }
+    { return "네임스페이스 색인"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all namespaces.
      */
     virtual QCString trNamespaceDocumentation()
-    { return "³×ÀÓ½ºÆäÀ̽º ¹®¼­È­"; }
+    { return "네임스페이스 문서화"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990522
@@ -778,7 +754,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      *  namespaces in a file.
      */
     virtual QCString trNamespaces()
-    { return "³×ÀÓ½ºÆäÀ̽º"; }
+    { return "네임스페이스"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990728
@@ -791,48 +767,42 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
         bool single)
     { // here s is one of " Class", " Struct" or " Union"
       // single is true implies a single file
-      QCString result=(QCString)"ÀÌ ";
+      QCString result=(QCString)" ";
       switch(compType)
       {
-        case ClassDef::Class:      result+="Ŭ·¡½º"; break;
-        case ClassDef::Struct:     result+="±¸Á¶Ã¼"; break;
-        case ClassDef::Union:      result+="°ø¿ëü"; break;
-        case ClassDef::Interface:  result+="ÀÎÅÍÆäÀ̽º"; break;
-        case ClassDef::Protocol:   result+="ÇÁ·ÎÅäÄÝ"; break;
-        case ClassDef::Category:   result+="Ä«Å×°í¸®"; break;
-        case ClassDef::Exception:  result+="¿¹¿Ü"; break;
+        case ClassDef::Class:      result+="클래스"; break;
+        case ClassDef::Struct:     result+="구조체"; break;
+        case ClassDef::Union:      result+="공용체"; break;
+        case ClassDef::Interface:  result+="인터페이스"; break;
+        case ClassDef::Protocol:   result+="프로토콜"; break;
+        case ClassDef::Category:   result+="카테고리"; break;
+        case ClassDef::Exception:  result+="예외"; break;
         default: break;
       }
-      result+="¿¡ ´ëÇÑ ¹®¼­È­ ÆäÀÌÁö´Â ´ÙÀ½ÀÇ ÆÄÀÏ";
-      if (!single) result+="µé";
-      result+="·ÎºÎÅÍ »ý¼ºµÇ¾ú½À´Ï´Ù.:";
+      result+="에 대한 문서화 페이지는 다음의 파일";
+      if (!single) result+="";
+      result+="로부터 생성되었습니다.:";
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "¾ËÆĺª¼ø ¸ñ·Ï"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
 
     /*! This is used as the heading text for the retval command. */
     virtual QCString trReturnValues()
-    { return "¹Ýȯ°ª"; }
+    { return "반환값"; }
 
     /*! This is in the (quick) index as a link to the main page (index.html)
      */
     virtual QCString trMainPage()
-    { return "¸ÞÀΠÆäÀÌÁö"; }
+    { return "메인 페이지"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
-    { return "ÆäÀÌÁö"; }
+    { return "페이지"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-991003
@@ -840,11 +810,11 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
 
     virtual QCString trDefinedAtLineInSourceFile()
     {
-      return "@1 ÆÄÀÏÀÇ @0 ¹ø° ¶óÀο¡¼­ Á¤ÀǵǾú½À´Ï´Ù.";
+      return "@1 파일의 @0 번째 라인에서 정의되었습니다.";
     }
     virtual QCString trDefinedInSourceFile()
     {
-      return "@0 ÆÄÀÏ¿¡¼­ Á¤ÀǵǾú½À´Ï´Ù.";
+      return "@0 파일에서 정의되었습니다.";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -853,7 +823,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
 
     virtual QCString trDeprecated()
     {
-      return "À߸øµÈ ÄÚµå";
+      return "잘못된 코드";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -863,120 +833,120 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
     /*! this text is put before a collaboration diagram */
     virtual QCString trCollaborationDiagram(const char *clName)
     {
-      return (QCString)clName+"¿¡ ´ëÇÑ Çù·Â ´ÙÀ̾î±×·¥:";
+      return (QCString)clName+"에 대한 협력 다이어그램:";
     }
     /*! this text is put before an include dependency graph */
     virtual QCString trInclDepGraph(const char *fName)
     {
-      return (QCString)fName+"¿¡ ´ëÇÑ include ÀÇÁ¸ ±×·¡ÇÁ";
+      return (QCString)fName+"에 대한 include 의존 그래프";
     }
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "»ý¼ºÀÚ & ¼Ò¸êÀÚ ¹®¼­È­";
+      return "생성자 & 소멸자 문서화";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
     {
-      return "ÀÌ ÆÄÀÏÀÇ ¼Ò½º ÄÚµå ÆäÀÌÁö·Î °¡±â";
+      return "이 파일의 소스 코드 페이지로 가기";
     }
     /*! Used in the file sources to point to the corresponding documentation. */
     virtual QCString trGotoDocumentation()
     {
-      return "ÀÌ ÆÄÀÏÀÇ ¹®¼­È­ ÆäÀÌÁö·Î °¡±â";
+      return "이 파일의 문서화 페이지로 가기";
     }
     /*! Text for the \\pre command */
     virtual QCString trPrecondition()
     {
-      return "ÀüÁ¦Á¶°Ç";
+      return "전제조건";
     }
     /*! Text for the \\post command */
     virtual QCString trPostcondition()
     {
-      return "ÈĹÌÁ¶°Ç";
+      return "후미조건";
     }
     /*! Text for the \\invariant command */
     virtual QCString trInvariant()
     {
-      return "º¯ÇÏÁö ¾Ê´Â";
+      return "변하지 않는";
     }
     /*! Text shown before a multi-line variable/enum initialization */
     virtual QCString trInitialValue()
     {
-      return "ÃʱⰪ:";
+      return "초기값:";
     }
     /*! Text used the source code in the file index */
     virtual QCString trCode()
     {
-      return "ÄÚµå";
+      return "코드";
     }
     virtual QCString trGraphicalHierarchy()
     {
-      return "±×·¡ÇÈÄÃÇѠŬ·¡½º °èÅëµµ";
+      return "그래픽컬한 클래스 계통도";
     }
     virtual QCString trGotoGraphicalHierarchy()
     {
-      return "±×·¡ÇÈÄÃÇѠŬ·¡½º °èÅëµµ ÆäÀÌÁö·Î °¡±â";
+      return "그래픽컬한 클래스 계통도 페이지로 가기";
     }
     virtual QCString trGotoTextualHierarchy()
     {
-      return "ÅؽºÆ® Çü½ÄÀǠŬ·¡½º °èÅëµµ ÆäÀÌÁö·Î °¡±â";
+      return "텍스트 형식의 클래스 계통도 페이지로 가기";
     }
     virtual QCString trPageIndex()
     {
-      return "ÆäÀÌÁö »öÀÎ";
+      return "페이지 색인";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
-      return "ÁÖÀÇ";
+      return "주의";
     }
     virtual QCString trPublicTypes()
     {
-      return "Public Å¸ÀÔ";
+      return "Public 타입";
     }
     virtual QCString trPublicAttribs()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "µ¥ÀÌŸ Çʵå";
+        return "데이타 필드";
       }
       else
       {
-        return "Public ¼Ó¼º";
+        return "Public 속성";
       }
     }
     virtual QCString trStaticPublicAttribs()
     {
-      return "Á¤Àû Public ¼Ó¼º";
+      return "정적 Public 속성";
     }
     virtual QCString trProtectedTypes()
     {
-      return "Protected Å¸ÀÔ";
+      return "Protected 타입";
     }
     virtual QCString trProtectedAttribs()
     {
-      return "Protected ¼Ó¼º";
+      return "Protected 속성";
     }
     virtual QCString trStaticProtectedAttribs()
     {
-      return "Á¤Àû Protected ¼Ó¼º";
+      return "정적 Protected 속성";
     }
     virtual QCString trPrivateTypes()
     {
-      return "Private Å¸ÀÔ";
+      return "Private 타입";
     }
     virtual QCString trPrivateAttribs()
     {
-      return "Private ¼Ó¼º";
+      return "Private 속성";
     }
     virtual QCString trStaticPrivateAttribs()
     {
-      return "Á¤Àû Private ¼Ó¼º";
+      return "정적 Private 속성";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -986,12 +956,12 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
     /*! Used as a marker that is put before a \\todo item */
     virtual QCString trTodo()
     {
-      return "ÇÒÀÏ";
+      return "할일";
     }
     /*! Used as the header of the todo list */
     virtual QCString trTodoList()
     {
-      return "ÇÒÀÏ ¸ñ·Ï";
+      return "할일 목록";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1000,7 +970,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
 
     virtual QCString trReferencedBy()
     {
-      return "´ÙÀ½¿¡ ÀÇÇؼ­ ÂüÁ¶µÊ : ";
+      return "다음에 의해서 참조됨 : ";
     }
     virtual QCString trRemarks()
     {
@@ -1008,17 +978,17 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
     }
     virtual QCString trAttention()
     {
-        return "ÁÖÀÇ";
+        return "주의";
     }
     virtual QCString trInclByDepGraph()
     {
-      return "ÀÌ ±×·¡ÇÁ´Â ÀÌ ÆÄÀÏÀ» Á÷/°£Á¢ÀûÀ¸·Î include Çϴ ÆÄÀϵéÀ» º¸¿©ÁÝ´Ï´Ù.:";
+      return "이 그래프는 이 파일을 직/간접적으로 include 하는 파일들을 보여줍니다.:";
     }
     virtual QCString trSince()
     {
       return "Since";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -1026,34 +996,34 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
     /*! title of the graph legend page */
     virtual QCString trLegendTitle()
     {
-      return "±×·¡ÇÁ ¹ü·Ê";
+      return "그래프 범례";
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
-        "ÀÌ ÆäÀÌÁö´Â doxygen¿¡ ÀÇÇØ »ý¼ºµÈ ±×·¡ÇÁµéÀ» ÀÌÇØÇϴ ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.<p>\n"
-        "´ÙÀ½ÀÇ ¿¹Á¦¸¦ Âü°íÇϽʽÿÀ.:\n"
+      return
+        "이 페이지는 doxygen에 의해 생성된 그래프들을 이해하는 방법을 설명합니다.<p>\n"
+        "다음의 예제를 참고하십시오.:\n"
         "\\code\n"
-        "/*! »ý·«µÇ¾ú±â ¶§¹®¿¡ º¸ÀÌÁö ¾Ê´Â Å¬·¡½º */\n"
+        "/*! 생략되었기 때문에 보이지 않는 클래스 */\n"
         "class Invisible { };\n\n"
-        "/*! Truncated Å¬·¡½º, »ó¼Ó°ü°è°¡ ¼û°ÜÁü */\n"
+        "/*! Truncated 클래스, 상속관계가 숨겨짐 */\n"
         "class Truncated : public Invisible { };\n\n"
-        "/* doxygen ÁÖ¼®¿¡ ÀÇÇؼ­ ¹®¼­È­µÇÁö ¾Ê´Â Å¬·¡½º */\n"
+        "/* doxygen 주석에 의해서 문서화되지 않는 클래스 */\n"
         "class Undocumented { };\n\n"
-        "/*! public »ó¼ÓÀ» ÅëÇؼ­ »ó¼ÓµÈ Å¬·¡½º */\n"
+        "/*! public 상속을 통해서 상속된 클래스 */\n"
         "class PublicBase : public Truncated { };\n\n"
-        "/*! ÅÛÇø´ Å¬·¡½º */\n"
+        "/*! 템플릿 클래스 */\n"
         "template<class T> class Templ { };\n\n"
-        "/*! protected »ó¼ÓÀ» ÅëÇؼ­ »ó¼ÓµÈ Å¬·¡½º */\n"
+        "/*! protected 상속을 통해서 상속된 클래스 */\n"
         "class ProtectedBase { };\n\n"
-        "/*! private »ó¼ÓÀ» ÅëÇؼ­ »ó¼ÓµÈ Å¬·¡½º */\n"
+        "/*! private 상속을 통해서 상속된 클래스 */\n"
         "class PrivateBase { };\n\n"
-        "/*! »ó¼ÓµÇ¾îÁø Å¬·¡½º¿¡ ÀÇÇØ (¸â¹ö·Î) »ç¿ëµÇ¾îÁö´Â Å¬·¡½º */\n"
+        "/*! 상속되어진 클래스에 의해 (멤버로) 사용되어지는 클래스 */\n"
         "class Used { };\n\n"
-        "/*! ´Ù¸¥ Å¬·¡½ºµéÀ» »ó¼ÓÇϴ ½´Æ۠Ŭ·¡½º */\n"
+        "/*! 다른 클래스들을 상속하는 슈퍼 클래스 */\n"
         "class Inherited : public PublicBase,\n"
         "                  protected ProtectedBase,\n"
         "                  private PrivateBase,\n"
@@ -1064,58 +1034,48 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
         "    Used *m_usedClass;\n"
         "};\n"
         "\\endcode\n"
-        "´ÙÀ½°ú °°Àº ±×·¡ÇÁ°¡ Ãâ·ÂµÉ °ÍÀÔ´Ï´Ù. :"
+        "다음과 같은 그래프가 출력될 것입니다. :"
         "<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
         "<p>\n"
-        "À§ ±×·¡ÇÁÀÇ ¹Ú½ºµéÀº ´ÙÀ½°ú °°Àº Àǹ̸¦ °¡Áý´Ï´Ù. :\n"
+        "위 그래프의 박스들은 다음과 같은 의미를 가집니다. :\n"
         "<ul>\n"
-        "<li>%A È¸»öÀ¸·Î Ã¤¿öÁø ¹Ú½º´Â ÀÌ ±×·¡ÇÁ¸¦ »ý¼ºÇØ ³½ ±¸Á¶Ã¼³ª Å¬·¡½º¸¦ ÀǹÌÇÕ´Ï´Ù.\n"
-        "<li>%A °ËÀº»ö Å׵θ®ÀÇ ¹Ú½º´Â ¹®¼­È­µÈ ±¸Á¶Ã¼³ª Å¬·¡½º¸¦ ÀǹÌÇÕ´Ï´Ù.\n"
-        "<li>%A È¸»ö Å׵θ®ÀÇ ¹Ú½º´Â ¹®¼­È­µÇÁö ¾ÊÀº ±¸Á¶Ã¼³ª Å¬·¡½º¸¦ ÀǹÌÇÕ´Ï´Ù.\n"
-        "<li>%A »¡°£»ö Å׵θ®ÀÇ ¹Ú½º´Â ¸ðµç »ó¼ÓÀ̳ª Æ÷ÇÔ°ü°è°¡ º¸¿©ÁöÁö ¾Ê´Â "
-       "±¸Á¶Ã¼³ª Å¬·¡½º¸¦ ÀǹÌÇÕ´Ï´Ù."
-        "%A ¸¸¾à ±×·¡ÇÁ°¡ ÁöÁ¤µÈ °æ°è³»¿¡ ¸ÂÁö ¾ÊÀ¸¸é, ±×·¡ÇÁ°¡ Àß·ÁÁý´Ï´Ù.\n"
+        "<li>%A 회색으로 채워진 박스는 이 그래프를 생성해 낸 구조체나 클래스를 의미합니다.\n"
+        "<li>%A 검은색 테두리의 박스는 문서화된 구조체나 클래스를 의미합니다.\n"
+        "<li>%A 회색 테두리의 박스는 문서화되지 않은 구조체나 클래스를 의미합니다.\n"
+        "<li>%A 빨간색 테두리의 박스는 모든 상속이나 포함관계가 보여지지 않는 "
+       "구조체나 클래스를 의미합니다."
+        "%A 만약 그래프가 지정된 경계내에 맞지 않으면, 그래프가 잘려집니다.\n"
         "</ul>\n"
-        "È­»ìÇ¥µéÀº ´ÙÀ½°ú °°Àº Àǹ̸¦ °¡Áý´Ï´Ù. :\n"
+        "화살표들은 다음과 같은 의미를 가집니다. :\n"
         "<ul>\n"
-        "<li>%A ¾îµÎ¿î ÆĶû»ö È­»ìÇ¥´Â µÎ Å¬·¡½ºµé °£¿¡ public »ó¼ÓÀÌ ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù.\n"
-        "<li>%A ¾îµÎ¿î ¿¬µÎ»ö È­»ìÇ¥´Â protected »ó¼ÓÀÌ ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù.\n"
-        "<li>%A ¾îµÎ¿î »¡°£»ö È­»ìÇ¥´Â private »ó¼ÓÀÌ ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù.\n"
-        "<li>%A º¸¶ó»ö Á¡¼± È­»ìÇ¥´Â ´Ù¸¥ Å¬·¡½º¿¡ ÀÇÇØ Æ÷ÇԵǰųª »ç¿ëµÇ¾îÁüÀ» ÀǹÌÇÕ´Ï´Ù. "
-       "È­»ìÇ¥ÀÇ ¶óº§Àº È­»ìÇ¥°¡ °¡¸®Å°´Â Å¬·¡½º³ª ±¸Á¶Ã¼·Î Á¢±ÙÇϴ º¯¼ö¸í(µé)À¸·Î ºÙ½À´Ï´Ù.\n"
-        "<li>%A ³ë¶õ»ö Á¡¼± È­»ìÇ¥´Â ÅÛÇø´ ÀνºÅϽº¿Í ÅÛÇÁ¸´ Å¬·¡½º¿¡ ´ëÇÑ °ü°è¸¦ ÀǹÌÇÕ´Ï´Ù. "
-       "È­»ìÇ¥ÀÇ ¶óº§Àº ÀνºÅϽºÀÇ ÅÛÇø´ ÆĶó¸ÞÅͷΠºÙ½À´Ï´Ù.\n"
+        "<li>%A 어두운 파랑색 화살표는 두 클래스들 간에 public 상속이 있음을 의미합니다.\n"
+        "<li>%A 어두운 연두색 화살표는 protected 상속이 있음을 의미합니다.\n"
+        "<li>%A 어두운 빨간색 화살표는 private 상속이 있음을 의미합니다.\n"
+        "<li>%A 보라색 점선 화살표는 다른 클래스에 의해 포함되거나 사용되어짐을 의미합니다. "
+       "화살표의 라벨은 화살표가 가리키는 클래스나 구조체로 접근하는 변수명(들)으로 붙습니다.\n"
+        "<li>%A 노란색 점선 화살표는 템플릿 인스턴스와 템프릿 클래스에 대한 관계를 의미합니다. "
+       "화살표의 라벨은 인스턴스의 템플릿 파라메터로 붙습니다.\n"
         "</ul>\n";
     }
     /*! text for the link to the legend page */
     virtual QCString trLegend()
     {
-      return "¹ü·Ê";
+      return "범례";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
-      return "Å×½ºÆ®";
+      return "테스트";
     }
     /*! Used as the header of the test list */
     virtual QCString trTestList()
     {
-      return "Å×½ºÆ® ¸ñ·Ï";
-    }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP ¸â¹ö ÇÔ¼ö";
+      return "테스트 목록";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1125,12 +1085,12 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
     /*! Used as a section header for IDL properties */
     virtual QCString trProperties()
     {
-      return "¼Ó¼º";
+      return "속성";
     }
     /*! Used as a section header for IDL property documentation */
     virtual QCString trPropertyDocumentation()
     {
-      return "¼Ó¼º ¹®¼­È­";
+      return "속성 문서화";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1142,61 +1102,61 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "µ¥ÀÌŸ ±¸Á¶";
+        return "데이타 구조";
       }
       else
       {
-        return "Ŭ·¡½º";
+        return "클래스";
       }
     }
     /*! Used as the title of a Java package */
     virtual QCString trPackage(const char *name)
     {
-      return name+(QCString)" ÆÐÅ°Áö";
+      return name+(QCString)" 패키지";
     }
     /*! Title of the package index page */
     virtual QCString trPackageList()
     {
-      return "ÆÐÅ°Áö ¸ñ·Ï";
+      return "패키지 목록";
     }
     /*! The description of the package index page */
     virtual QCString trPackageListDescription()
     {
-      return "´ÙÀ½Àº ÆÐÅ°ÁöµéÀÔ´Ï´Ù. (°¡´ÉÇÑÇÑ °£·«ÇÑ ¼³¸í¸¸À» º¸¿©ÁÝ´Ï´Ù) :";
+      return "다음은 패키지들입니다. (가능한한 간략한 설명만을 보여줍니다) :";
     }
     /*! The link name in the Quick links header for each page */
     virtual QCString trPackages()
     {
-      return "ÆÐÅ°Áö";
+      return "패키지";
     }
     /*! Text shown before a multi-line define */
     virtual QCString trDefineValue()
     {
-      return "°ª:";
+      return ":";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
-      return "¹ö±×";
+      return "버그";
     }
     /*! Used as the header of the bug list */
     virtual QCString trBugList()
     {
-      return "¹ö±× ¸ñ·Ï";
+      return "버그 목록";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1217,15 +1177,15 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "949";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1236,84 +1196,84 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
     /*! Used as header RTF general index */
     virtual QCString trRTFGeneralIndex()
     {
-      return "»öÀÎ";
+      return "색인";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "Ŭ·¡½º" : "Ŭ·¡½º"));
-      if (!singular)  result+="µé";
-      return result; 
+    {
+      QCString result((first_capital ? "클래스" : "클래스"));
+      if (!singular)  result+="";
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "ÆÄÀÏ" : "ÆÄÀÏ"));
-      if (!singular)  result+="µé";
-      return result; 
+    {
+      QCString result((first_capital ? "파일" : "파일"));
+      if (!singular)  result+="";
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "³×ÀÓ½ºÆäÀ̽º" : "³×ÀÓ½ºÆäÀ̽º"));
-      if (!singular)  result+="µé";
-      return result; 
+    {
+      QCString result((first_capital ? "네임스페이스" : "네임스페이스"));
+      if (!singular)  result+="";
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "±×·ì" : "±×·ì"));
-      if (!singular)  result+="µé";
-      return result; 
+    {
+      QCString result((first_capital ? "그룹" : "그룹"));
+      if (!singular)  result+="";
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "ÆäÀÌÁö" : "ÆäÀÌÁö"));
-      if (!singular)  result+="µé";
-      return result; 
+    {
+      QCString result((first_capital ? "페이지" : "페이지"));
+      if (!singular)  result+="";
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "¸â¹ö" : "¸â¹ö"));
-      if (!singular)  result+="µé";
-      return result; 
+    {
+      QCString result((first_capital ? "멤버" : "멤버"));
+      if (!singular)  result+="";
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "Àü¿ª" : "Àü¿ª"));
+    {
+      QCString result((first_capital ? "전역" : "전역"));
       if (!singular)  result+="";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1323,10 +1283,10 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
-      QCString result((first_capital ? "ÀÛ¼ºÀÚ" : "ÀÛ¼ºÀÚ"));
-      if (!singular)  result+="µé";
-      return result; 
+    {
+      QCString result((first_capital ? "작성자" : "작성자"));
+      if (!singular)  result+="";
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1337,19 +1297,19 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      */
     virtual QCString trReferences()
     {
-      return "´ÙÀ½À» ÂüÁ¶ÇÔ : ";
+      return "다음을 참조함 : ";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
     {
-      return trWriteList(numEntries)+"¸¦ ±¸Çö.";
+      return trWriteList(numEntries)+"를 구현.";
     }
 
     /*! used in member documentation blocks to produce a list of
@@ -1357,7 +1317,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      */
     virtual QCString trImplementedInList(int numEntries)
     {
-      return trWriteList(numEntries)+"¿¡¼­ ±¸ÇöµÇ¾ú½À´Ï´Ù.";
+      return trWriteList(numEntries)+"에서 구현되었습니다.";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1369,36 +1329,36 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      */
     virtual QCString trRTFTableOfContents()
     {
-      return "¸ñÂ÷";
+      return "목차";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
-      return "À߸øµÈ Äڵ堸ñ·Ï";
+      return "잘못된 코드 목록";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
     {
-      return "À̺¥Æ®";
+      return "이벤트";
     }
     /*! Header used for the documentation section of a class' events. */
     virtual QCString trEventDocumentation()
     {
-      return "À̺¥Æ® ¹®¼­È­";
+      return "이벤트 문서화";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1408,79 +1368,71 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
-      return "ÆÐÅ°Áö Å¸ÀÔ";
+    {
+      return "패키지 타입";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
-      return "ÆÐÅ°Áö ÇÔ¼ö";
+    {
+      return "패키지 함수";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
-      return "Á¤Àû ÆÐÅ°Áö ÇÔ¼ö";
+    {
+      return "정적 패키지 함수";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
-      return "ÆÐÅ°Áö ¼Ó¼º";
+    {
+      return "패키지 속성";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
-      return "Á¤Àû ÆÐÅ°Áö ¼Ó¼º";
+    {
+      return "정적 패키지 속성";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
     {
-      return "¸ðµÎ";
+      return "모두";
     }
     /*! Put in front of the call graph for a function. */
     virtual QCString trCallGraph()
     {
-      return "ÀÌ ÇÔ¼ö ³»ºÎ¿¡¼­ È£ÃâÇϴ ÇÔ¼öµé¿¡ ´ëÇÑ ±×·¡ÇÁÀÔ´Ï´Ù.:";
+      return "이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "°Ë»ö";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
     virtual QCString trSearchResultsTitle()
     {
-      return "°Ë»ö °á°ú";
+      return "검색 결과";
     }
     /*! This string is put just before listing the search results. The
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1488,24 +1440,24 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
     {
       if (numDocuments==0)
       {
-        return "Á˼ÛÇÕ´Ï´Ù. ÁúÀÇ¿¡ ÀÏÄ¡Çϴ ¹®¼­°¡ ¾ø½À´Ï´Ù.";
+        return "죄송합니다. 질의에 일치하는 문서가 없습니다.";
       }
       else if (numDocuments==1)
       {
-        return "ÁúÀÇ¿¡ ÀÏÄ¡Çϴ <b>1</b> °³ÀÇ ¹®¼­¸¦ Ã£¾Ò½À´Ï´Ù.";
+        return "질의에 일치하는 <b>1</b> 개의 문서를 찾았습니다.";
       }
-      else 
+      else
       {
-        return "ÁúÀÇ¿¡ ÀÏÄ¡Çϴ <b>$num</b> °³ÀÇ ¹®¼­¸¦ Ã£¾Ò½À´Ï´Ù. "
-               "°¡Àå ¸¹ÀÌ ÀÏÄ¡Çϴ ¹®¼­¸¦ °¡Àå ¸ÕÀú º¸¿©ÁÝ´Ï´Ù.";
+        return "질의에 일치하는 <b>$num</b> 개의 문서를 찾았습니다. "
+               "가장 많이 일치하는 문서를 가장 먼저 보여줍니다.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
     {
-      return "°á°ú:";
+      return "결과:";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1516,7 +1468,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      */
     virtual QCString trSourceFile(QCString& filename)
     {
-      return filename + " ¼Ò½º ÆÄÀÏ";
+      return filename + " 소스 파일";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1527,41 +1479,41 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      *  hierarchy.
      */
     virtual QCString trDirIndex()
-    { return "µð·ºÅ丮 °èÅëµµ"; }
+    { return "디렉토리 계통도"; }
 
     /*! This is used as the name of the chapter containing the documentation
      *  of the directories.
      */
     virtual QCString trDirDocumentation()
-    { return "µð·ºÅ丮 ¹®¼­È­"; }
+    { return "디렉토리 문서화"; }
 
     /*! This is used as the title of the directory index and also in the
      *  Quick links of an HTML page, to link to the directory hierarchy.
      */
     virtual QCString trDirectories()
-    { return "µð·ºÅ丮"; }
+    { return "디렉토리"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
-    { return "ÀÌ µð·ºÅ丮 ¸ñ·ÏÀº ¿ÏÀüÇÏÁø ¾ÊÁö¸¸, (´ë·«ÀûÀ¸·Î) ¾ËÆĺª¼øÀ¸·Î Á¤·ÄµÇ¾îÀÖ½À´Ï´Ù.:";
+    { return "이 디렉토리 목록은 완전하진 않지만, (대략적으로) 알파벳순으로 정렬되어있습니다.:";
     }
 
     /*! This returns the title of a directory page. The name of the
      *  directory is passed via \a dirName.
      */
     virtual QCString trDirReference(const char *dirName)
-    { QCString result=dirName; result+=" µð·ºÅ丮 ÂüÁ¶"; return result; }
+    { QCString result=dirName; result+=" 디렉토리 참조"; return result; }
 
     /*! This returns the word directory with or without starting capital
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "µð·ºÅ丮" : "µð·ºÅ丮"));
-      if (singular) result+=""; else result+="µé";
-      return result; 
+    {
+      QCString result((first_capital ? "디렉토리" : "디렉토리"));
+      if (singular) result+=""; else result+="";
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1573,8 +1525,8 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      */
     virtual QCString trOverloadText()
     {
-       return "ÀÌ ÇÔ¼ö´Â ÆíÀǸ¦ Á¦°øÇϱâ À§ÇØ ¿À¹ö·ÎµåµÈ ¸â¹ö ÇÔ¼öÀÔ´Ï´Ù. "
-              "À§ÀÇ ÇÔ¼ö¿Í Æ²¸° Á¡Àº ´ÜÁö ¹Þ¾ÆµéÀ̴ ¾Æ±Ô¸ÕÆ®(argument)°¡ ´Ù¸£´Ù´Â °ÍÀÔ´Ï´Ù.";
+       return "이 함수는 편의를 제공하기 위해 오버로드된 멤버 함수입니다. "
+              "위의 함수와 틀린 점은 단지 받아들이는 아규먼트(argument)가 다르다는 것입니다.";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1584,97 +1536,97 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
     /*! This is used to introduce a caller (or called-by) graph */
     virtual QCString trCallerGraph()
     {
-      return "ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϴ ÇÔ¼öµé¿¡ ´ëÇÑ ±×·¡ÇÁÀÔ´Ï´Ù.:";
+      return "이 함수를 호출하는 함수들에 대한 그래프입니다.:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
-    { return "¿­°ÅÇü ¹®¼­È­"; }
+    { return "열거형 문서화"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
-    { return "¸â¹ö ÇÔ¼ö/¼­ºê·çƾ ¹®¼­È­"; }
+    { return "멤버 함수/서브루틴 문서화"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
-    { return "µ¥ÀÌŸ Å¸ÀÔ ¸ñ·Ï"; }
+    { return "데이타 타입 목록"; }
 
     /*! This is put above each page as a link to all members of compounds (Fortran). */
     virtual QCString trCompoundMembersFortran()
-    { return "µ¥ÀÌŸ Çʵå"; }
+    { return "데이타 필드"; }
 
     /*! This is an introduction to the annotated compound list (Fortran). */
     virtual QCString trCompoundListDescriptionFortran()
-    { return "´ë·«ÀûÀΠ¼³¸í°ú ÇÔ²² µ¥ÀÌŸ Å¸ÀÔµéÀÇ ¸ñ·ÏÀÔ´Ï´Ù.:"; }
+    { return "대략적인 설명과 함께 데이타 타입들의 목록입니다.:"; }
 
     /*! This is an introduction to the page with all data types (Fortran). */
     virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
     {
-      QCString result="´ÙÀ½Àº ";
+      QCString result="다음은 ";
       if (!extractAll)
       {
-        result+="¹®¼­È­µÈ ";
+        result+="문서화된 ";
       }
-      result+="¸ðµç µ¥ÀÌŸ Å¸ÀÔ ¸â¹öµéÀÇ ¸ñ·ÏÀÔ´Ï´Ù. ";
+      result+="모든 데이타 타입 멤버들의 목록입니다. ";
 
-      result+="°¢ Ç׸ñÀº ";
-      if (!extractAll) 
+      result+="각 항목은 ";
+      if (!extractAll)
       {
-         result+="°¢ ¸â¹ö¿¡ ´ëÇÑ µ¥ÀÌŸ ±¸Á¶ ¹®¼­È­ ÆäÀÌÁöÀÇ ¸µÅ©¸¦ °¡Áö°í ÀÖ½À´Ï´Ù.";
+         result+="각 멤버에 대한 데이타 구조 문서화 페이지의 링크를 가지고 있습니다.";
       }
-      else 
+      else
       {
-         result+="±×µéÀÌ ¼ÓÇÑ µ¥ÀÌŸ Å¸ÀÔÀÇ ¸µÅ©¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. :";
+         result+="그들이 속한 데이타 타입의 링크를 가지고 있습니다. :";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
-    { return "µ¥ÀÌŸ Å¸ÀÔ »öÀÎ"; }
+    { return "데이타 타입 색인"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all data types (Fortran).
      */
     virtual QCString trTypeDocumentation()
-    { return "µ¥ÀÌŸ Å¸ÀÔ ¹®¼­È­"; }
+    { return "데이타 타입 문서화"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
-    { return "ÇÔ¼ö/¼­ºê·çƾ"; }
+    { return "함수/서브루틴"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
-    { return "ÇÔ¼ö/¼­ºê·çƾ ¹®¼­È­"; }
+    { return "함수/서브루틴 문서화"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
-    { return "µ¥ÀÌŸ Å¸ÀÔµé"; }
-    
+    { return "데이타 타입들"; }
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
-    { return "¸ðµâ ¸ñ·Ï"; }
+    { return "모듈 목록"; }
 
     /*! used as an introduction to the modules list (Fortran) */
     virtual QCString trModulesListDescription(bool extractAll)
     {
-      QCString result="´ÙÀ½Àº ";
-      if (!extractAll) result+="¹®¼­È­µÈ ";
-      result+="¸ðµç ¸ðµâ¿¡ ´ëÇÑ ¸ñ·ÏÀÔ´Ï´Ù. (°£·«ÇÑ ¼³¸í¸¸À» º¸¿©ÁÝ´Ï´Ù) :";
+      QCString result="다음은 ";
+      if (!extractAll) result+="문서화된 ";
+      result+="모든 모듈에 대한 목록입니다. (간략한 설명만을 보여줍니다) :";
       return result;
     }
 
@@ -1686,63 +1638,63 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
       QCString result=(QCString)clName;
       switch(compType)
       {
-        case ClassDef::Class:      result+=" ¸ðµâ"; break;
-        case ClassDef::Struct:     result+=" Å¸ÀÔ"; break;
-        case ClassDef::Union:      result+=" °ø¿ëü"; break;
-        case ClassDef::Interface:  result+=" ÀÎÅÍÆäÀ̽º"; break;
-        case ClassDef::Protocol:   result+=" ÇÁ·ÎÅäÄÝ"; break;
-        case ClassDef::Category:   result+=" Ä«Å×°í¸®"; break;
-        case ClassDef::Exception:  result+=" ¿¹¿Ü"; break;
+        case ClassDef::Class:      result+=" 모듈"; break;
+        case ClassDef::Struct:     result+=" 타입"; break;
+        case ClassDef::Union:      result+=" 공용체"; break;
+        case ClassDef::Interface:  result+=" 인터페이스"; break;
+        case ClassDef::Protocol:   result+=" 프로토콜"; break;
+        case ClassDef::Category:   result+=" 카테고리"; break;
+        case ClassDef::Exception:  result+=" 예외"; break;
         default: break;
       }
-      if (isTemplate) result+=" ÅÛÇø´";
-      result+=" ÂüÁ¶";
+      if (isTemplate) result+=" 템플릿";
+      result+=" 참조";
       return result;
     }
     /*! used as the title of the HTML page of a module (Fortran) */
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" ¸ðµâ ÂüÁ¶";        
+      result+=" 모듈 참조";
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
-    { return "¸ðµâ ¸â¹öµé"; }
+    { return "모듈 멤버들"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
-      QCString result="´ÙÀ½Àº ";
-      if (!extractAll) result+="¹®¼­È­µÈ ";
-      result+="¸ðµç ¸ðµâ ¸â¹öÀÇ ¸ñ·ÏÀÔ´Ï´Ù. ";
-      if (extractAll) 
+    {
+      QCString result="다음은 ";
+      if (!extractAll) result+="문서화된 ";
+      result+="모든 모듈 멤버의 목록입니다. ";
+      if (extractAll)
       {
-        result+="°¢ Ç׸ñÀº °¢ ¸â¹öÀÇ ¸ðµâ ¹®¼­È­ ÆäÀÌÁöÀÇ ¸µÅ©¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. :";
+        result+="각 항목은 각 멤버의 모듈 문서화 페이지의 링크를 가지고 있습니다. :";
       }
-      else 
+      else
       {
-        result+="°¢ Ç׸ñÀº ±×µéÀÌ ¼ÓÇÑ ¸ðµâÀÇ ¸µÅ©¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. :";
+        result+="각 항목은 그들이 속한 모듈의 링크를 가지고 있습니다. :";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
-    { return "¸ðµâ »öÀÎ"; }
-    
+    { return "모듈 색인"; }
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
-      QCString result((first_capital ? "¸ðµâ" : "¸ðµâ"));
-      if (!singular)  result+="µé";
-      return result; 
+    {
+      QCString result((first_capital ? "모듈" : "모듈"));
+      if (!singular)  result+="";
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1751,49 +1703,49 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
         bool single)
     { // here s is one of " Module", " Struct" or " Union"
       // single is true implies a single file
-      QCString result=(QCString)"´ÙÀ½ ÆÄÀÏ";
-      if (single) result+=""; else result+="µé";
-      result+="·ÎºÎÅÍ »ý¼ºµÈ ";
-      result+="ÀÌ ";
+      QCString result=(QCString)"다음 파일";
+      if (single) result+=""; else result+="";
+      result+="로부터 생성된 ";
+      result+=" ";
       switch(compType)
       {
-        case ClassDef::Class:      result+="¸ðµâ"; break;
-        case ClassDef::Struct:     result+="ŸÀÔ"; break;
-        case ClassDef::Union:      result+="°ø¿ëü"; break;
-        case ClassDef::Interface:  result+="ÀÎÅÍÆäÀ̽º"; break;
-        case ClassDef::Protocol:   result+="ÇÁ·ÎÅäÄÝ"; break;
-        case ClassDef::Category:   result+="Ä«Å×°í¸®"; break;
-        case ClassDef::Exception:  result+="¿¹¿Ü"; break;
+        case ClassDef::Class:      result+="모듈"; break;
+        case ClassDef::Struct:     result+="타입"; break;
+        case ClassDef::Union:      result+="공용체"; break;
+        case ClassDef::Interface:  result+="인터페이스"; break;
+        case ClassDef::Protocol:   result+="프로토콜"; break;
+        case ClassDef::Category:   result+="카테고리"; break;
+        case ClassDef::Exception:  result+="예외"; break;
         default: break;
       }
-      result+="ÀÇ ¹®¼­È­ ÆäÀÌÁö:";
+      result+="의 문서화 페이지:";
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "ŸÀÔ" : "ŸÀÔ"));
-      if (!singular)  result+="µé";
-      return result; 
+    {
+      QCString result((first_capital ? "타입" : "타입"));
+      if (!singular)  result+="";
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "¼­ºêÇÁ·Î±×·¥" : "¼­ºêÇÁ·Î±×·¥"));
-      if (!singular)  result+="µé";
-      return result; 
+    {
+      QCString result((first_capital ? "서브프로그램" : "서브프로그램"));
+      if (!singular)  result+="";
+      return result;
     }
 
     /*! C# Type Constraint list */
     virtual QCString trTypeConstraints()
     {
-      return "ŸÀÔ ÇÑÁ¤ÀÚµé";
+      return "타입 한정자들";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1803,50 +1755,44 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
     /*! directory relation for \a name */
     virtual QCString trDirRelation(const char *name)
     {
-      return QCString(name)+" °ü°è";
+      return QCString(name)+" 관계";
     }
 
     /*! Loading message shown when loading search results */
     virtual QCString trLoading()
     {
-      return "·ÎµùÁß...";
+      return "로딩중...";
     }
 
     /*! Label used for search results in the global namespace */
     virtual QCString trGlobalNamespace()
     {
-      return "Àü¿ª À̸§°ø°£";
+      return "전역 이름공간";
     }
 
     /*! Message shown while searching */
     virtual QCString trSearching()
     {
-      return "°Ë»öÁß...";
+      return "검색중...";
     }
 
     /*! Text shown when no search results are found */
     virtual QCString trNoMatches()
     {
-      return "ÀÏÄ¡Çϴ°͠¾øÀ½";
+      return "일치하는것 없음";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return QCString(name) + "¿¡ ´ëÇÑ µð·ºÅ丮 ÀÇÁ¸ ±×·¡ÇÁ";
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
      */
     virtual QCString trFileIn(const char *name)
     {
-      return QCString(name) + "ÀÇ ÆÄÀÏ";
+      return QCString(name) + "의 파일";
     }
 
     /*! when clicking a directory dependency label, a page with a
@@ -1855,10 +1801,10 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      */
     virtual QCString trIncludesFileIn(const char *name)
     {
-      return QCString(name) + "ÀÇ ÆÄÀÏ Æ÷ÇÔ";
+      return QCString(name) + "의 파일 포함";
     }
 
-    /** Compiles a date string. 
+    /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
      *  @param day Day of the Month: 1..31
@@ -1872,8 +1818,8 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
                                 int hour,int minutes,int seconds,
                                 bool includeTime)
     {
-      static const char *days[]   = { "¿ù","È­","¼ö","¸ñ","±Ý","Åä","ÀÏ" };
-      static const char *months[] = { "1¿ù","2¿ù","3¿ù","4¿ù","5¿ù","6¿ù","7¿ù","8¿ù","9¿ù","10¿ù","11¿ù","12¿ù" };
+      static const char *days[]   = { "월","화","수","목","금","토","일" };
+      static const char *months[] = { "1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월" };
       QCString sdate;
       sdate.sprintf("%s %s %d %d",days[dayOfWeek-1],months[month-1],day,year);
       if (includeTime)
@@ -1891,7 +1837,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
 
     /*! Header for the page with bibliographic citations */
     virtual QCString trCiteReferences()
-    { return "Âü°í ¹®Çå"; }
+    { return "참고 문헌"; }
 
     /*! Text for copyright paragraph */
     virtual QCString trCopyright()
@@ -1899,7 +1845,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
 
     /*! Header for the graph showing the directory dependencies */
     virtual QCString trDirDepGraph(const char *name)
-    { return QCString(name) + QCString("¿¡ ´ëÇÑ µð·ºÅ丮 ÀÇÁ¸¼º ±×·¡ÇÁ:"); }
+    { return QCString(name) + QCString("에 대한 디렉토리 의존성 그래프:"); }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.8.0
@@ -1907,19 +1853,19 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
 
     /*! Detail level selector shown for hierarchical indices */
     virtual QCString trDetailLevel()
-    { return "»ó¼¼ ´Ü°è"; }
+    { return "상세 단계"; }
 
     /*! Section header for list of template parameters */
     virtual QCString trTemplateParameters()
-    { return "ÅÛÇø´ ÆĶó¸ÞÅÍ"; }
+    { return "템플릿 파라메터"; }
 
     /*! Used in dot graph when UML_LOOK is enabled and there are many fields */
     virtual QCString trAndMore(const QCString &number)
-    { return QCString("±×¸®°í ")+number+"°³ ´õ..."; }
+    { return QCString("그리고 ")+number+"개 더..."; }
 
     /*! Used file list for a Java enum */
     virtual QCString trEnumGeneratedFromFiles(bool /*single*/)
-    { QCString result = "ÀÌ ¿­°ÅÇü¿¡ ´ëÇÑ ¹®¼­°¡ ´ÙÀ½ ÆÄÀÏ(µé)·ÎºÎÅÍ »ý¼ºµÇ¾ú½À´Ï´Ù.:";
+    { QCString result = "이 열거형에 대한 문서가 다음 파일(들)로부터 생성되었습니다.:";
       return result;
     }
 
@@ -1929,26 +1875,26 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
 
     /*! Used for a section containing inherited members */
     virtual QCString trInheritedFrom(const char *members,const char *what)
-    { return QCString(what) + QCString("(À¸)·ÎºÎÅÍ »ó¼ÓµÈ ") + QCString(members); }
+    { return QCString(what) + QCString("(으)로부터 상속된 ") + QCString(members); }
 
-    /*! Header of the sections with inherited members specific for the 
-     *  base class(es) 
+    /*! Header of the sections with inherited members specific for the
+     *  base class(es)
      */
     virtual QCString trAdditionalInheritedMembers()
-    { return "Ãß°¡·Î »ó¼ÓµÈ ¸â¹öµé"; }
+    { return "추가로 상속된 멤버들"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.8.2
 //////////////////////////////////////////////////////////////////////////
 
     /*! Used as a tooltip for the toggle button that appears in the
-     *  navigation tree in the HTML output when GENERATE_TREEVIEW is 
+     *  navigation tree in the HTML output when GENERATE_TREEVIEW is
      *  enabled. This tooltip explains the meaning of the button.
      */
     virtual QCString trPanelSynchronisationTooltip(bool enable)
     {
-      QCString opt = enable ? "È°¼ºÈ­" : "ºñÈ°¼ºÈ­";
-      return "ÆгΠµ¿±âÈ­¸¦ "+opt+"Çϱâ À§ÇؠŬ¸¯ÇϽʽÿÀ";
+      QCString opt = enable ? "활성화" : "비활성화";
+      return "패널 동기화를 "+opt+"하기 위해 클릭하십시오";
     }
 
     /*! Used in a method of an Objective-C class that is declared in a
@@ -1957,7 +1903,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      */
     virtual QCString trProvidedByCategory()
     {
-      return "Ä«Å×°í¸® @1¿¡ ÀÇÇØ Á¦°øµÊ.";
+      return "카테고리 @1에 의해 제공됨.";
     }
 
     /*! Used in a method of an Objective-C category that extends a class.
@@ -1966,7 +1912,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      */
     virtual QCString trExtendsClass()
     {
-      return "Ŭ·¡½º @1 È®Àå.";
+      return "클래스 @1 확장.";
     }
 
     /*! Used as the header of a list of class methods in Objective-C.
@@ -1974,7 +1920,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      */
     virtual QCString trClassMethods()
     {
-      return "Ŭ·¡½º ¸Þ¼Òµåµé";
+      return "클래스 메소드들";
     }
 
     /*! Used as the header of a list of instance methods in Objective-C.
@@ -1982,14 +1928,14 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      */
     virtual QCString trInstanceMethods()
     {
-      return "ÀνºÅϽº ¸Þ¼Òµåµé";
+      return "인스턴스 메소드들";
     }
 
     /*! Used as the header of the member functions of an Objective-C class.
      */
     virtual QCString trMethodDocumentation()
     {
-      return "¸Þ¼Òµå ¹®¼­È­";
+      return "메소드 문서화";
     }
 
     /*! Used as the title of the design overview picture created for the
@@ -1997,7 +1943,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
      */
     virtual QCString trDesignOverview()
     {
-      return "µðÀÚÀΠ°³¿ä";
+      return "디자인 개요";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -2006,53 +1952,53 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
 
     /** old style UNO IDL services: implemented interfaces */
     virtual QCString trInterfaces()
-    { return "ÀͽºÆ÷Æ®µÈ ÀÎÅÍÆäÀ̽ºµé"; }
+    { return "익스포트된 인터페이스들"; }
 
     /** old style UNO IDL services: inherited services */
     virtual QCString trServices()
-    { return "Æ÷ÇԵȠ¼­ºñ½ºµé"; }
+    { return "포함된 서비스들"; }
 
     /** UNO IDL constant groups */
     virtual QCString trConstantGroups()
-    { return "»ó¼ö ±×·ìµé"; }
+    { return "상수 그룹들"; }
 
     /** UNO IDL constant groups */
     virtual QCString trConstantGroupReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" »ó¼ö ±×·ì ·¹ÆÛ·±½º";
+      result+=" 상수 그룹 레퍼런스";
       return result;
     }
     /** UNO IDL service page title */
     virtual QCString trServiceReference(const char *sName)
     {
       QCString result=(QCString)sName;
-      result+=" ¼­ºñ½º ·¹ÆÛ·±½º";
+      result+=" 서비스 레퍼런스";
       return result;
     }
     /** UNO IDL singleton page title */
     virtual QCString trSingletonReference(const char *sName)
     {
       QCString result=(QCString)sName;
-      result+=" ½Ì±ÛÅæ ·¹ÆÛ·±½º";
+      result+=" 싱글톤 레퍼런스";
       return result;
     }
     /** UNO IDL service page */
     virtual QCString trServiceGeneratedFromFiles(bool single)
     {
       // single is true implies a single file
-      QCString result=(QCString)"ÀÌ ¼­ºñ½º¿¡ ´ëÇÑ ¹®¼­È­´Â ´ÙÀ½ÀÇ ÆÄÀÏ";
-      if (!single) result+="µé";
-         result+="·ÎºÎÅÍ »ý¼ºµÇ¾ú½À´Ï´Ù.:";
+      QCString result=(QCString)"이 서비스에 대한 문서화는 다음의 파일";
+      if (!single) result+="";
+         result+="로부터 생성되었습니다.:";
       return result;
     }
     /** UNO IDL singleton page */
     virtual QCString trSingletonGeneratedFromFiles(bool single)
     {
       // single is true implies a single file
-      QCString result=(QCString)"ÀÌ ½Ì±ÛÅæ¿¡ ´ëÇÑ ¹®¼­È­´Â ´ÙÀ½ÀÇ ÆÄÀÏ";
-      if (!single) result+="µé";
-         result+="·ÎºÎÅÍ »ý¼ºµÇ¾ú½À´Ï´Ù.:";
+      QCString result=(QCString)"이 싱글톤에 대한 문서화는 다음의 파일";
+      if (!single) result+="";
+         result+="로부터 생성되었습니다.:";
       return result;
     }
 
index 414ea8f..9edbe57 100644 (file)
@@ -3,8 +3,8 @@
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
 
 /* Translation from English to Lithanian by Tomas Simonaitis, Mindaugas Radzius and Aidas Berukstis
  *  (haden@homelan.lt/mindaugasradzius@takas.lt/aidasber@takas.lt)
- *  We tried to keep meaning close to original, 
+ *  We tried to keep meaning close to original,
  *  if you have any suggestions drop us an email
  *  -------------------------------------------
  *  Project start                  :13.May.2k4
  *  Last Doxygen version covered   : 1.4.3
- *  
+ *
  *  Revisions:
  *  Updated to 1.3.9 25.Oct.2k4
  *
@@ -35,19 +35,19 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "lithuanian"; }
-    
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -55,7 +55,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -65,227 +65,221 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
              "\\usepackage[lithuanian]{babel}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "iso-8859-13";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
     virtual QCString trRelatedFunctions()
-    { return "Susijæ Funkcijos"; }
+    { return "Susiję Funkcijos"; }
 
     /*! subscript for the related functions. */
     virtual QCString trRelatedSubscript()
-    { return "Atkreipkite dëmesá, èià ne metodai"; }
+    { return "Atkreipkite dėmesį, čią ne metodai"; }
 
     /*! header that is put before the detailed description of files, classes and namespaces. */
     virtual QCString trDetailedDescription()
-    { return "Smulkus apraðymas"; }
+    { return "Smulkus aprašymas"; }
 
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
-    { return "Tipo Apraðymo Dokumentacija"; }
-    
+    { return "Tipo Aprašymo Dokumentacija"; }
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
-    { return "Iðvardinimo Dokumentacija"; }
-    
+    { return "Išvardinimo Dokumentacija"; }
+
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
-    { return "Metodø Dokumentacija"; }
-    
+    { return "Metodų Dokumentacija"; }
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Lauko apraðymas"; 
+        return "Lauko aprašymas";
       }
       else
       {
-        return "Atributø Dokumentacija"; 
+        return "Atributų Dokumentacija";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
+    virtual QCString trMore()
     { return "Daugiau..."; }
 
     /*! put in the class documentation */
     virtual QCString trListOfAllMembers()
-    { return "Visø nariø sàraðas"; }
+    { return "Visų narių sąrašas"; }
 
     /*! used as the title of the "list of all members" page of a class */
     virtual QCString trMemberList()
-    { return "Nariø sàraðas"; }
+    { return "Narių sąrašas"; }
 
     /*! this is the first part of a sentence that is followed by a class name */
     virtual QCString trThisIsTheListOfAllMembers()
-    { return "Tai galutinis nariø sàraðas "; }
+    { return "Tai galutinis narių sąrašas "; }
 
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
-    { return ", átraukiant visus paveldëtus narius."; }
-    
+    { return ", įtraukiant visus paveldėtus narius."; }
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
-    { QCString result="Automatiðkai sugeneruota Doxygen árankiu";
+    { QCString result="Automatiškai sugeneruota Doxygen įrankiu";
       if (s) result+=(QCString)" "+s;
-      result+=" ið programos kodo."; 
+      result+=" iš programos kodo.";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
-    { return "iðvardinimo vardas"; }
-    
+    { return "išvardinimo vardas"; }
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
-    { return "iðvardinimo reikðmë"; }
-    
+    { return "išvardinimo reikšmė"; }
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
-    { return "apibrëþta"; }
+    { return "apibrėžta"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
     { return "Moduliai"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
-    { return "Klasiø hierarchija"; }
-    
+    { return "Klasių hierarchija"; }
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Duomenø Struktûros";
+        return "Duomenų Struktūros";
       }
       else
       {
-        return "Klasës"; 
+        return "Klasės";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
     { return "Failai"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Duomenø Laukai"; 
+        return "Duomenų Laukai";
       }
       else
       {
-        return "Klasiø Nariai"; 
+        return "Klasių Nariai";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Globalûs Nariai"; 
+        return "Globalūs Nariai";
       }
       else
       {
-        return "Globalûs Nariai"; 
+        return "Globalūs Nariai";
       }
     }
 
     /*! This is put above each page as a link to all related pages. */
     virtual QCString trRelatedPages()
-    { return "Susijæ Puslapiai"; }
+    { return "Susiję Puslapiai"; }
 
     /*! This is put above each page as a link to all examples. */
     virtual QCString trExamples()
-    { return "Pavyzdþiai"; }
+    { return "Pavyzdžiai"; }
 
     /*! This is put above each page as a link to the search engine. */
     virtual QCString trSearch()
-    { return "Paieðka"; }
+    { return "Paieška"; }
 
     /*! This is an introduction to the class hierarchy. */
     virtual QCString trClassHierarchyDescription()
-    { return "Ðis paveldëjimo sàraðas yra beveik surikiuotas "
-             "abëcëlës tvarka:";
+    { return "Šis paveldėjimo sąrašas yra beveik surikiuotas "
+             "abėcėlės tvarka:";
     }
 
     /*! This is an introduction to the list with all files. */
     virtual QCString trFileListDescription(bool extractAll)
     {
-      QCString result="Visø ";
-      if (!extractAll) result+="dokumentuotø ";
-      result+="failø sàraðas su trumpais apraðymais:";
+      QCString result="Visų ";
+      if (!extractAll) result+="dokumentuotų ";
+      result+="failų sąrašas su trumpais aprašymais:";
       return result;
     }
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Duomenø struktûros su trumpais apraðymais:"; 
+        return "Duomenų struktūros su trumpais aprašymais:";
       }
       else
       {
-        return "Klasës, struktûros, "
-               "sàjungos ir sàsajos su trumpais apraðymais:"; 
+        return "Klasės, struktūros, "
+               "sąjungos ir sąsajos su trumpais aprašymais:";
       }
     }
 
     /*! This is an introduction to the page with all class members. */
     virtual QCString trCompoundMembersDescription(bool extractAll)
     {
-      QCString result="Visø ";
+      QCString result="Visų ";
       if (!extractAll)
       {
-        result+="dokumentuotø ";
+        result+="dokumentuotų ";
       }
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        result+="struktûrø ir sàjungø laukø sàraðas";
+        result+="struktūrų ir sąjungų laukų sąrašas";
       }
       else
       {
-        result+="klasiø nariai";
+        result+="klasių nariai";
       }
-      result+=" su ryðiais á ";
-      if (!extractAll) 
+      result+=" su ryšiais į ";
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
-          result+="struktûrø/sàjungø kiekvieno lauko dokumentacijà:";
+          result+="struktūrų/sąjungų kiekvieno lauko dokumentaciją:";
         }
         else
         {
-          result+="klasës dokumentacija kiekvienam nariui:";
+          result+="klasės dokumentacija kiekvienam nariui:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
-          result+="struktûros/sàjungos, kurios priklauso:";
+          result+="struktūros/sąjungos, kurios priklauso:";
         }
         else
         {
-          result+="klasës, kurios priklauso:";
+          result+="klasės, kurios priklauso:";
         }
       }
       return result;
@@ -294,74 +288,74 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     /*! This is an introduction to the page with all file members. */
     virtual QCString trFileMembersDescription(bool extractAll)
     {
-      QCString result="Sàraðas visø ";
-      if (!extractAll) result+="dokumentuotø ";
-      
+      QCString result="Sąrašas visų ";
+      if (!extractAll) result+="dokumentuotų ";
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        result+="funkcijø, kintamøjø, apibrëþimø, iðvardinimø, ir tipø apibrëþimø";
+        result+="funkcijų, kintamųjų, apibrėžimų, išvardinimų, ir tipų apibrėžimų";
       }
       else
       {
-        result+="globaliø nariø";
+        result+="globalių narių";
       }
-      result+=" su ryðiais á ";
-      if (extractAll) 
+      result+=" su ryšiais į ";
+      if (extractAll)
         result+="failus, kuriems jie priklauso:";
-      else 
+      else
         result+="dokumentacija:";
       return result;
     }
 
     /*! This is an introduction to the page with the list of all examples */
     virtual QCString trExamplesDescription()
-    { return "Visø pavyzdþiø sàraðas:"; }
+    { return "Visų pavyzdžių sąrašas:"; }
 
     /*! This is an introduction to the page with the list of related pages */
     virtual QCString trRelatedPagesDescription()
-    { return "Visø susijusiø dokumentacijos puslapiø sàraðas:"; }
+    { return "Visų susijusių dokumentacijos puslapių sąrašas:"; }
 
     /*! This is an introduction to the page with the list of class/file groups */
     virtual QCString trModulesDescription()
-    { return "Visø moduliø sàraðas:"; }
+    { return "Visų modulių sąrašas:"; }
+
+    // index titles (the project name is prepended for these)
 
-    // index titles (the project name is prepended for these) 
-    
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
     { return "Dokumentacija"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "Modulio Indeksas"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "Hierarchijos Indeksas"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
-        return "Duomenø Struktûros Indeksas";
+      {
+        return "Duomenų Struktūros Indeksas";
       }
       else
       {
-        return "Klasës Indeksas"; 
+        return "Klasės Indeksas";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "Failo Indeksas"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
@@ -374,14 +368,14 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Duomenø Struktûros Dokumentacija"; 
+        return "Duomenų Struktūros Dokumentacija";
       }
       else
       {
-        return "Klasës Dokumentacija"; 
+        return "Klasės Dokumentacija";
       }
     }
 
@@ -395,7 +389,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
      *  the documentation of all examples.
      */
     virtual QCString trExampleDocumentation()
-    { return "Pavyzdþio Dokumentacija"; }
+    { return "Pavyzdžio Dokumentacija"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all related pages.
@@ -406,74 +400,62 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
     { return "Informacinis Vadovas"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
-    { return "Apibrëþimai"; }
-
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Funkcijø Prototipai"; }
+    { return "Apibrėžimai"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
-    { return "Tipø apibrëþimai"; }
+    { return "Tipų apibrėžimai"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
-    { return "Iðvardinimai"; }
+    { return "Išvardinimai"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "Funkcijos"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "Kintamieji"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
-    { return "Iðvardinimø reikðmës"; }
-    
+    { return "Išvardinimų reikšmės"; }
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
-    { return "Apibrëþimø Dokumentacija"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Funkcijø Prototipø Dokumentacija"; }
+    { return "Apibrėžimų Dokumentacija"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
-    { return "Tipø apibrëþimø Dokumentacija"; }
+    { return "Tipų apibrėžimų Dokumentacija"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
-    { return "Iðvardinimo Tipo Dokumentacija"; }
+    { return "Išvardinimo Tipo Dokumentacija"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
@@ -492,11 +474,11 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Duomenø struktøros";
+        return "Duomenų struktųros";
       }
       else
       {
-        return "Klasës";
+        return "Klasės";
       }
     }
 
@@ -510,12 +492,6 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
       result+=(QCString)" ";/*FIXME*/
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "paraðyta";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
@@ -529,7 +505,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
 
     /*! this text is generated when the \\warning command is used. */
     virtual QCString trWarning()
-    { return "Áspëjimas"; }
+    { return "Įspėjimas"; }
 
     /*! this text is generated when the \\version command is used. */
     virtual QCString trVersion()
@@ -541,11 +517,11 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
 
     /*! this text is generated when the \\return command is used. */
     virtual QCString trReturns()
-    { return "Graþina"; }
+    { return "Gražina"; }
 
     /*! this text is generated when the \\sa command is used. */
     virtual QCString trSeeAlso()
-    { return "Taip pat þiûrëti"; }
+    { return "Taip pat žiūrėti"; }
 
     /*! this text is generated when the \\param command is used. */
     virtual QCString trParameters()
@@ -553,7 +529,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
 
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
-    { return "Iðimtys"; }
+    { return "Išimtys"; }
 
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
@@ -565,14 +541,14 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
 
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
-    { return "Varø Srities Sàraðas"; }
+    { return "Varų Srities Sąrašas"; }
 
     /*! used as an introduction to the namespace list */
     virtual QCString trNamespaceListDescription(bool extractAll)
     {
-      QCString result="Sàraðas visø ";
-      if (!extractAll) result+="dokumentuotø ";
-      result+="vardø srièiø su trumpais apraðymais:";
+      QCString result="Sąrašas visų ";
+      if (!extractAll) result+="dokumentuotų ";
+      result+="vardų sričių su trumpais aprašymais:";
       return result;
     }
 
@@ -590,7 +566,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
      * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
-    { return "Draugiðkø Ir Susijusiø Funkcijø Dokumentacija"; }
+    { return "Draugiškų Ir Susijusių Funkcijų Dokumentacija"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
@@ -604,16 +580,16 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
       QCString result=(QCString)clName;
       switch(compType)
       {
-        case ClassDef::Class:      result+=" Klasë"; break;
-        case ClassDef::Struct:     result+=" Struktûra"; break;
-        case ClassDef::Union:      result+=" Sàjunga"; break;
-        case ClassDef::Interface:  result+=" Sàsaja"; break;
+        case ClassDef::Class:      result+=" Klasė"; break;
+        case ClassDef::Struct:     result+=" Struktūra"; break;
+        case ClassDef::Union:      result+=" Sąjunga"; break;
+        case ClassDef::Interface:  result+=" Sąsaja"; break;
         case ClassDef::Protocol:   result+=" Protokolas"; break;
         case ClassDef::Category:   result+=" Kategorija"; break;
-        case ClassDef::Exception:  result+=" Iðimtis"; break;
+        case ClassDef::Exception:  result+=" Išimtis"; break;
         default: break;
       }
-      if (isTemplate) result+=" Ðablonas";
+      if (isTemplate) result+=" Šablonas";
       return result;
     }
 
@@ -629,18 +605,18 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     virtual QCString trNamespaceReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" Vardø Srities Nuoroda";
+      result+=" Vardų Srities Nuoroda";
       return result;
     }
 
     virtual QCString trPublicMembers()
-    { return "Vieði Metodai"; }
+    { return "Vieši Metodai"; }
     virtual QCString trPublicSlots()
-    { return "Vieði Slotai"; } /*FIXME*/
+    { return "Vieši Slotai"; } /*FIXME*/
     virtual QCString trSignals()
     { return "Signalai"; }
     virtual QCString trStaticPublicMembers()
-    { return "Statiniai Vieði Metodai"; }
+    { return "Statiniai Vieši Metodai"; }
     virtual QCString trProtectedMembers()
     { return "Apsaugoti Metodai"; }
     virtual QCString trProtectedSlots()
@@ -648,11 +624,11 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     virtual QCString trStaticProtectedMembers()
     { return "Statiniai Apsaugoti Metodai"; }
     virtual QCString trPrivateMembers()
-    { return "Privatatûs Metodai"; }
+    { return "Privatatūs Metodai"; }
     virtual QCString trPrivateSlots()
-    { return "Privatûs Slotai"; }/*FIXME*/
+    { return "Privatūs Slotai"; }/*FIXME*/
     virtual QCString trStaticPrivateMembers()
-    { return "Statiniai Privatûs Metodai"; }
+    { return "Statiniai Privatūs Metodai"; }
 
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
@@ -692,7 +668,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
      */
     virtual QCString trInheritedByList(int numEntries)
     {
-      return "Paveldëta "+trWriteList(numEntries)+".";
+      return "Paveldėta "+trWriteList(numEntries)+".";
     }
 
     /*! used in member documentation blocks to produce a list of
@@ -700,7 +676,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
      */
     virtual QCString trReimplementedFromList(int numEntries)
     {
-      return "Perkrauna metodà ið "+trWriteList(numEntries)+".";
+      return "Perkrauna metodą iš "+trWriteList(numEntries)+".";
     }
 
     /*! used in member documentation blocks to produce a list of
@@ -713,31 +689,31 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
 
     /*! This is put above each page as a link to all members of namespaces. */
     virtual QCString trNamespaceMembers()
-    { return "Vardø Srities Nariai"; }
+    { return "Vardų Srities Nariai"; }
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
     {
-      QCString result="Sàraðas visø ";
-      if (!extractAll) result+="dokumentuotø ";
-      result+="vardø srities nariø su nuorodomis á ";
+      QCString result="Sąrašas visų ";
+      if (!extractAll) result+="dokumentuotų ";
+      result+="vardų srities narių su nuorodomis į ";
       if (extractAll)
-        result+="vardø srities dokumentacijà kiekvienam nariui:";
+        result+="vardų srities dokumentaciją kiekvienam nariui:";
       else
-        result+="vardø sritis, kurioms jos priklauso:";
+        result+="vardų sritis, kurioms jos priklauso:";
       return result;
     }
     /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
-    { return "Vardø Srities Indeksas"; }
+    { return "Vardų Srities Indeksas"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all namespaces.
      */
     virtual QCString trNamespaceDocumentation()
-    { return "Vardø Srities Dokumentacija"; }
+    { return "Vardų Srities Dokumentacija"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990522
@@ -747,7 +723,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
      *  namespaces in a file.
      */
     virtual QCString trNamespaces()
-    { return "Vardø Sritys"; }
+    { return "Vardų Sritys"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990728
@@ -763,33 +739,27 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
       QCString result=(QCString)"Dokumentacija ";
       switch(compType)
       {
-        case ClassDef::Class:      result+="ðiai klasei"; break;
-        case ClassDef::Struct:     result+="ðiai struktûrai"; break;
-        case ClassDef::Union:      result+="ðiai sàjungai"; break;
-        case ClassDef::Interface:  result+="ðiai sàsajai"; break;
-        case ClassDef::Protocol:   result+="ðiam protocolui"; break;
-        case ClassDef::Category:   result+="ðiai kategorijai"; break;
-        case ClassDef::Exception:  result+="ðiai iðimèiai"; break;
+        case ClassDef::Class:      result+="šiai klasei"; break;
+        case ClassDef::Struct:     result+="šiai struktūrai"; break;
+        case ClassDef::Union:      result+="šiai sąjungai"; break;
+        case ClassDef::Interface:  result+="šiai sąsajai"; break;
+        case ClassDef::Protocol:   result+="šiam protocolui"; break;
+        case ClassDef::Category:   result+="šiai kategorijai"; break;
+        case ClassDef::Exception:  result+="šiai išimčiai"; break;
         default: break;
       }
-      result+=" sugeneruota ið ";
-      if (single) result+="ðio failo:"; else result+="ðiø failø:";
+      result+=" sugeneruota iš ";
+      if (single) result+="šio failo:"; else result+="šių failų:";
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Abëcëlinis Sàraðas"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
 
     /*! This is used as the heading text for the retval command. */
     virtual QCString trReturnValues()
-    { return "Graþinamos reikðmës"; }
+    { return "Gražinamos reikšmės"; }
 
     /*! This is in the (quick) index as a link to the main page (index.html)
      */
@@ -808,11 +778,11 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
 
     virtual QCString trDefinedAtLineInSourceFile()
     {
-      return "Apibrëþimas failo @1 eilutëje @0.";
+      return "Apibrėžimas failo @1 eilutėje @0.";
     }
     virtual QCString trDefinedInSourceFile()
     {
-      return "Apibrëþimas faile @0.";
+      return "Apibrėžimas faile @0.";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -836,7 +806,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     /*! this text is put before an include dependency graph */
     virtual QCString trInclDepGraph(const char *fName)
     {
-      return (QCString)"Átraukimo priklausomybiø diagrama "+fName+":";/*FIXME*/
+      return (QCString)"Įtraukimo priklausomybių diagrama "+fName+":";/*FIXME*/
     }
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
@@ -846,17 +816,17 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
     {
-      return "Eiti á ðio failo programos kodà.";
+      return "Eiti į šio failo programos kodą.";
     }
     /*! Used in the file sources to point to the corresponding documentation. */
     virtual QCString trGotoDocumentation()
     {
-      return "Eiti á ðio failo dokumentacijà.";
+      return "Eiti į šio failo dokumentaciją.";
     }
     /*! Text for the \\pre command */
     virtual QCString trPrecondition()
     {
-      return "Iðakstinë sàlyga";
+      return "Išakstinė sąlyga";
     }
     /*! Text for the \\post command */
     virtual QCString trPostcondition()
@@ -871,7 +841,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     /*! Text shown before a multi-line variable/enum initialization */
     virtual QCString trInitialValue()
     {
-      return "Pradinë reikðmë:";
+      return "Pradinė reikšmė:";
     }
     /*! Text used the source code in the file index */
     virtual QCString trCode()
@@ -880,15 +850,15 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     }
     virtual QCString trGraphicalHierarchy()
     {
-      return "Grafinë Klasës Hierarchija";
+      return "Grafinė Klasės Hierarchija";
     }
     virtual QCString trGotoGraphicalHierarchy()
     {
-      return "Eiti á grafinæ klasës hierarchijà";
+      return "Eiti į grafinę klasės hierarchiją";
     }
     virtual QCString trGotoTextualHierarchy()
     {
-      return "Eiti á tekstinæ klasës hierarchijà";
+      return "Eiti į tekstinę klasės hierarchiją";
     }
     virtual QCString trPageIndex()
     {
@@ -905,22 +875,22 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     }
     virtual QCString trPublicTypes()
     {
-      return "Vieði Tipai";
+      return "Vieši Tipai";
     }
     virtual QCString trPublicAttribs()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Duomenø Laukai";
+        return "Duomenų Laukai";
       }
       else
       {
-        return "Vieði Atributai";
+        return "Vieši Atributai";
       }
     }
     virtual QCString trStaticPublicAttribs()
     {
-      return "Statiniai Vieði Atributai";
+      return "Statiniai Vieši Atributai";
     }
     virtual QCString trProtectedTypes()
     {
@@ -936,15 +906,15 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     }
     virtual QCString trPrivateTypes()
     {
-      return "Privatûs Tipai";
+      return "Privatūs Tipai";
     }
     virtual QCString trPrivateAttribs()
     {
-      return "Privatûs Atributai";
+      return "Privatūs Atributai";
     }
     virtual QCString trStaticPrivateAttribs()
     {
-      return "Statiniai Privatûs Atributai";
+      return "Statiniai Privatūs Atributai";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -961,7 +931,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     {
       return "Tolimesni Darbai";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.4
 //////////////////////////////////////////////////////////////////////////
@@ -980,14 +950,14 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     }
     virtual QCString trInclByDepGraph()
     {
-      return "Ðis grafas rodo, kuris failas tiesiogiai ar "
-             "netiesiogiai átraukia ðá failà:";
+      return "Šis grafas rodo, kuris failas tiesiogiai ar "
+             "netiesiogiai įtraukia šį failą:";
     }
     virtual QCString trSince()
     {
       return "Nuo";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -997,16 +967,16 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     {
       return "Grafo Legenda";
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
-        "Ðis puslapis paaiðkina, kaip interpretuoti sugeneruotus grafus "
-        "su Doxygen árankiu.<p>\n"
-        "Panagrinëkite pavyzdá:\n"
-        "\\kodo pradþia\n"
+      return
+        "Šis puslapis paaiškina, kaip interpretuoti sugeneruotus grafus "
+        "su Doxygen įrankiu.<p>\n"
+        "Panagrinėkite pavyzdį:\n"
+        "\\kodo pradžia\n"
         "/*! Invisible class because of truncation */\n"
         "class Invisible { };\n\n"
         "/*! Truncated class, inheritance relation is hidden */\n"
@@ -1067,11 +1037,11 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     {
       return "legenda";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1080,17 +1050,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     /*! Used as the header of the test list */
     virtual QCString trTestList()
     {
-      return "Testo Sàraðas";
-    }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP Metodai";
+      return "Testo Sąrašas";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1100,12 +1060,12 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     /*! Used as a section header for IDL properties */
     virtual QCString trProperties()
     {
-      return "Savybës";
+      return "Savybės";
     }
     /*! Used as a section header for IDL property documentation */
     virtual QCString trPropertyDocumentation()
     {
-      return "Savybës Dokumentacija";
+      return "Savybės Dokumentacija";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1117,11 +1077,11 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Duomenø Struktûros";
+        return "Duomenų Struktūros";
       }
       else
       {
-        return "Klasës";
+        return "Klasės";
       }
     }
     /*! Used as the title of a Java package */
@@ -1132,12 +1092,12 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     /*! Title of the package index page */
     virtual QCString trPackageList()
     {
-      return "Paketo Sàraðas";
+      return "Paketo Sąrašas";
     }
     /*! The description of the package index page */
     virtual QCString trPackageListDescription()
     {
-      return "Paketai su trumpu apraðymu:";
+      return "Paketai su trumpu aprašymu:";
     }
     /*! The link name in the Quick links header for each page */
     virtual QCString trPackages()
@@ -1147,13 +1107,13 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     /*! Text shown before a multi-line define */
     virtual QCString trDefineValue()
     {
-      return "Reikðmë:";
+      return "Reikšmė:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1162,16 +1122,16 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     /*! Used as the header of the bug list */
     virtual QCString trBugList()
     {
-      return "Klaidø Sàraðas";
+      return "Klaidų Sąrašas";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1192,15 +1152,15 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1257";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1213,87 +1173,87 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     {
       return "Indeksas";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "Klasë" : "klasë"));
+    {
+      QCString result((first_capital ? "Klasė" : "klasė"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Faila" : "faila"));
       if (!singular)  result+="i";
       else  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "Vardø srit" : "vardø srit"));
+    {
+      QCString result((first_capital ? "Vardų srit" : "vardų srit"));
       if (!singular)  result+="ys";
       else  result+="is";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "Grupë" : "grupë"));
+    {
+      QCString result((first_capital ? "Grupė" : "grupė"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Puslapi" : "puslapi"));
       if (!singular)  result+="ai";
       else  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Nar" : "nar"));
       if (!singular)  result+="iai";
       else  result+="ys";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Global" : "global"));
-      if (!singular)  result+="ûs";
+      if (!singular)  result+="ūs";
       else  result+="us";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1303,11 +1263,11 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Autori" : "autori"));
       if (!singular)  result+="ai";
       else  result+="us";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1318,14 +1278,14 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
      */
     virtual QCString trReferences()
     {
-      return "Ryðiai";
+      return "Ryšiai";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1357,29 +1317,29 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
-      return "Smerktinumø Sàraðas";
+      return "Smerktinumų Sąrašas";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
     {
-      return "Ávykiai";
+      return "Įvykiai";
     }
     /*! Header used for the documentation section of a class' events. */
     virtual QCString trEventDocumentation()
     {
-      return "Ávykio Dokumentacija";
+      return "Įvykio Dokumentacija";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1389,43 +1349,43 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Paketo Tipai";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Paketo Funkcijos";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
-      return "Statinës Paketo Funkcijos";
+    {
+      return "Statinės Paketo Funkcijos";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Paketo Atributai";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Statiniai Paketo Atributai";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1442,26 +1402,18 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Ieðkoti";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
     virtual QCString trSearchResultsTitle()
     {
-      return "Paieðkos Rezultatai";
+      return "Paieškos Rezultatai";
     }
     /*! This string is put just before listing the search results. The
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1469,19 +1421,19 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     {
       if (numDocuments==0)
       {
-        return "Atsipraðome, jokiø dokumentø nerasta pagal Jûsø uþklausà.";
+        return "Atsiprašome, jokių dokumentų nerasta pagal Jūsų užklausą.";
       }
       else if (numDocuments==1)
       {
-        return "Surasta <b>1</b> dokumentas, atitinkantis Jûsø uþklausà.";
+        return "Surasta <b>1</b> dokumentas, atitinkantis Jūsų užklausą.";
       }
-      else 
+      else
       {
-        return "Surasta <b>$num</b> dokumentø, atitinkanèiø Jûsø uþklausà. "
-               "Pirmiausiai rodomi labiausiai tenkinantys uþklausà.";
+        return "Surasta <b>$num</b> dokumentų, atitinkančių Jūsų užklausą. "
+               "Pirmiausiai rodomi labiausiai tenkinantys užklausą.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1496,7 +1448,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
      */
     virtual QCString trSourceFile(QCString& filename)
     {
-      return filename + " iðeities tekstas";
+      return filename + " išeities tekstas";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1507,13 +1459,13 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
      *  hierarchy.
      */
     virtual QCString trDirIndex()
-    { return "Direktorijø hierarchija"; }
+    { return "Direktorijų hierarchija"; }
 
     /*! This is used as the name of the chapter containing the documentation
      *  of the directories.
      */
     virtual QCString trDirDocumentation()
-    { return "Direktorijø dokumentacija"; }
+    { return "Direktorijų dokumentacija"; }
 
     /*! This is used as the title of the directory index and also in the
      *  Quick links of a HTML page, to link to the directory hierarchy.
@@ -1521,27 +1473,27 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     virtual QCString trDirectories()
     { return "Direktorijos"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
-    { return "Ði direktorjø strûktûra grubiai surikiuota abëcëlës tvarka:";
+    { return "Ši direktorjų strūktūra grubiai surikiuota abėcėlės tvarka:";
     }
 
     /*! This returns the title of a directory page. The name of the
      *  directory is passed via \a dirName.
      */
     virtual QCString trDirReference(const char *dirName)
-    { QCString result=dirName; result+=" Directorijos apraðas"; return result; }
+    { QCString result=dirName; result+=" Directorijos aprašas"; return result; }
 
     /*! This returns the word directory with or without starting capital
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Direktorij" : "direktorij"));
       if (singular) result+="a"; else result+="os";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1554,7 +1506,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
     virtual QCString trOverloadText()
     {
        return "Perkraunamas metodas sukurtas patogumui. "
-              "Jis skiriasi nuo aukðèiau minëto tik argumetais.";
+              "Jis skiriasi nuo aukščiau minėto tik argumetais.";
     }
 
 
index 60b82f8..4460946 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2012 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -18,7 +18,7 @@
 #ifndef TRANSLATOR_LV_H
 #define TRANSLATOR_LV_H
 
-/*! 
+/*!
  When defining a translator class for the new language, follow
  the description in the documentation.  One of the steps says
  that you should copy the translator_en.h (this) file to your
@@ -41,7 +41,7 @@
  translator is made up-to-date again.
 */
 
-/* Translation from English to Latvian by Lauris Bukðis-Haberkorns
+/* Translation from English to Latvian by Lauris Bukšis-Haberkorns
  *  (lauris@nix.lv)
  *  -------------------------------------------
  *  Project start                  : 24.Sept.2012
@@ -53,19 +53,19 @@ class TranslatorLatvian : public Translator
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "latvian"; }
-    
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -80,55 +80,48 @@ class TranslatorLatvian : public Translator
              "\\usepackage[latvian]{babel}\n";
     }
 
-    /*! return the language charset. This will be used 
-        when transcoding the translatable strings in this file to UTF-8 */
-    virtual QCString idLanguageCharset()
-    {
-      return "iso-8859-13";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
     virtual QCString trRelatedFunctions()
-    { return "Saistîtâs funkcijas"; }
+    { return "Saistītās funkcijas"; }
 
     /*! subscript for the related functions. */
     virtual QCString trRelatedSubscript()
-    { return "(Ðîs nav elementu funkcijas.)"; }
+    { return "(Šīs nav elementu funkcijas.)"; }
 
     /*! header that is put before the detailed description of files, classes and namespaces. */
     virtual QCString trDetailedDescription()
-    { return "Detalizçts apraksts"; }
+    { return "Detalizēts apraksts"; }
 
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
-    { return "Elementa Typedef dokumentâcija"; }
-    
+    { return "Elementa Typedef dokumentācija"; }
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
-    { return "Elementa uzskaitîjumliterâïa dokumentâcija"; }
-    
+    { return "Elementa uzskaitījumliterāļa dokumentācija"; }
+
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
-    { return "Elementa funkcijas dokumentâcija"; }
-    
+    { return "Elementa funkcijas dokumentācija"; }
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Lauka dokumentâcija"; 
+        return "Lauka dokumentācija";
       }
       else
       {
-        return "Elementa datu dokumentâcija"; 
+        return "Elementa datu dokumentācija";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
-    { return "vairâk..."; }
+    virtual QCString trMore()
+    { return "vairāk..."; }
 
     /*! put in the class documentation */
     virtual QCString trListOfAllMembers()
@@ -140,168 +133,168 @@ class TranslatorLatvian : public Translator
 
     /*! this is the first part of a sentence that is followed by a class name */
     virtual QCString trThisIsTheListOfAllMembers()
-    { return "Ðis ir pilns elementu saraksts klasei "; }
+    { return "Šis ir pilns elementu saraksts klasei "; }
 
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
     { return ", ieskaitot mantotos elementus."; }
-    
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
-    { QCString result="Automâtiski ìenerçts izmantojot Doxygen";
-      if (s) result+=(QCString)" priekð "+s;
-      result+=" no pirmkoda."; 
+    { QCString result="Automātiski ģenerēts izmantojot Doxygen";
+      if (s) result+=(QCString)" priekš "+s;
+      result+=" no pirmkoda.";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
-    { return "uzskaitîjuma nosaukums"; }
-    
+    { return "uzskaitījuma nosaukums"; }
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
-    { return "uzskaitîjuma vçrtîba"; }
-    
+    { return "uzskaitījuma vērtība"; }
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
-    { return "definçts"; }
+    { return "definēts"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
-    { return "Moduïi"; }
-    
+    { return "Moduļi"; }
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
-    { return "Klaðu hierarhija"; }
-    
+    { return "Klašu hierarhija"; }
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Datu struktûras";
+        return "Datu struktūras";
       }
       else
       {
-        return "Klaðu saraksts"; 
+        return "Klašu saraksts";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
     { return "Failu saraksts"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Datu lauki"; 
+        return "Datu lauki";
       }
       else
       {
-        return "Klases elementi"; 
+        return "Klases elementi";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Globâlie"; 
+        return "Globālie";
       }
       else
       {
-        return "Faila elementi"; 
+        return "Faila elementi";
       }
     }
 
     /*! This is put above each page as a link to all related pages. */
     virtual QCString trRelatedPages()
-    { return "Saistîtâs lapas"; }
+    { return "Saistītās lapas"; }
 
     /*! This is put above each page as a link to all examples. */
     virtual QCString trExamples()
-    { return "Piemçri"; }
+    { return "Piemēri"; }
 
     /*! This is put above each page as a link to the search engine. */
     virtual QCString trSearch()
-    { return "Meklçt"; }
+    { return "Meklēt"; }
 
     /*! This is an introduction to the class hierarchy. */
     virtual QCString trClassHierarchyDescription()
-    { return "Ðis mantojamîbas saraksts ir sakârtots aptuveni, "
-             "bet ne pilnîbâ, alfabçta secîbâ:";
+    { return "Šis mantojamības saraksts ir sakārtots aptuveni, "
+             "bet ne pilnībā, alfabēta secībā:";
     }
 
     /*! This is an introduction to the list with all files. */
     virtual QCString trFileListDescription(bool extractAll)
     {
-      QCString result="Ðeit ir visu ";
-      if (!extractAll) result+="dokumentçto ";
-      result+="failu saraksts ar îsu aprakstu:";
+      QCString result="Šeit ir visu ";
+      if (!extractAll) result+="dokumentēto ";
+      result+="failu saraksts ar īsu aprakstu:";
       return result;
     }
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Ðeit ir visas datu struktûras ar îsu aprakstu:"; 
+        return "Šeit ir visas datu struktūras ar īsu aprakstu:";
       }
       else
       {
-        return "Ðeit ir visas klases, struktûras, "
-               "apvienojumi un interfeisi ar îsu aprakstu:"; 
+        return "Šeit ir visas klases, struktūras, "
+               "apvienojumi un interfeisi ar īsu aprakstu:";
       }
     }
 
     /*! This is an introduction to the page with all class members. */
     virtual QCString trCompoundMembersDescription(bool extractAll)
     {
-      QCString result="Ðeit ir visu ";
+      QCString result="Šeit ir visu ";
       if (!extractAll)
       {
-        result+="dokumentçto ";
+        result+="dokumentēto ";
       }
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        result+="struktûru un apvienojumu lauku";
+        result+="struktūru un apvienojumu lauku";
       }
       else
       {
         result+="klases elementu";
       }
-      result+=" saraksts ar saitçm uz ";
-      if (!extractAll) 
+      result+=" saraksts ar saitēm uz ";
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
-          result+="struktûru/apvienojumu dokumentâciju katram laukam:";
+          result+="struktūru/apvienojumu dokumentāciju katram laukam:";
         }
         else
         {
-          result+="klases dokumentâciju katram elementam:";
+          result+="klases dokumentāciju katram elementam:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
-          result+="struktûrâm/apvienojumiem, kam tie pieder:";
+          result+="struktūrām/apvienojumiem, kam tie pieder:";
         }
         else
         {
-          result+="klasçm, kam tie pieder:";
+          result+="klasēm, kam tie pieder:";
         }
       }
       return result;
@@ -310,28 +303,28 @@ class TranslatorLatvian : public Translator
     /*! This is an introduction to the page with all file members. */
     virtual QCString trFileMembersDescription(bool extractAll)
     {
-      QCString result="Ðeit ir visu ";
-      if (!extractAll) result+="dokumentçto ";
-      
+      QCString result="Šeit ir visu ";
+      if (!extractAll) result+="dokumentēto ";
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        result+="funkciju, mainîgo, definîciju, uzskaitîjumliterâïu un typedefs";
+        result+="funkciju, mainīgo, definīciju, uzskaitījumliterāļu un typedefs";
       }
       else
       {
         result+="faila elementu";
       }
-      result+=" saraksts ar saitçm uz ";
-      if (extractAll) 
+      result+=" saraksts ar saitēm uz ";
+      if (extractAll)
         result+="failiem, kam tie pieder:";
-      else 
-        result+="dokumentâciju:";
+      else
+        result+="dokumentāciju:";
       return result;
     }
 
     /*! This is an introduction to the page with the list of all examples */
     virtual QCString trExamplesDescription()
-    { return "Ðeit ir visu piemçru saraksts:"; }
+    { return "Šeit ir visu piemēru saraksts:"; }
 
     /*! This is an introduction to the page with the list of related pages */
     virtual QCString trRelatedPagesDescription()
@@ -339,65 +332,65 @@ class TranslatorLatvian : public Translator
 
     /*! This is an introduction to the page with the list of class/file groups */
     virtual QCString trModulesDescription()
-    { return "Ðeit ir visu moduïu saraksts:"; }
+    { return "Šeit ir visu moduļu saraksts:"; }
 
-    // index titles (the project name is prepended for these) 
+    // index titles (the project name is prepended for these)
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
-    { return "Dokumentâcija"; }
+    { return "Dokumentācija"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
-    { return "Moduïu indekss"; }
+    { return "Moduļu indekss"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "Hierarhijas indekss"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
-        return "Datu struktûru indess";
+      {
+        return "Datu struktūru indess";
       }
       else
       {
-        return "Klaðu indekss"; 
+        return "Klašu indekss";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "Failu indekss"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all groups.
      */
     virtual QCString trModuleDocumentation()
-    { return "Moduïa dokumentâcija"; }
+    { return "Moduļa dokumentācija"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Datu struktûras dokomentâcija"; 
+        return "Datu struktūras dokomentācija";
       }
       else
       {
-        return "Klases dokumentâcija"; 
+        return "Klases dokumentācija";
       }
     }
 
@@ -405,147 +398,129 @@ class TranslatorLatvian : public Translator
      *  the documentation of all files.
      */
     virtual QCString trFileDocumentation()
-    { return "Faila dokumentâcija"; }
+    { return "Faila dokumentācija"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all examples.
      */
     virtual QCString trExampleDocumentation()
-    { return "Piemçri"; }
+    { return "Piemēri"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all related pages.
      */
     virtual QCString trPageDocumentation()
-    { return "Lapas dokumentâcija"; }
+    { return "Lapas dokumentācija"; }
 
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
-    { return "Rokasgrâmata"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+    { return "Rokasgrāmata"; }
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "Makro"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Funkciju prototipi"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "Typedefs"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
-    { return "Uzskaitîjumi"; }
+    { return "Uzskaitījumi"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "Funkcijas"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
-    { return "Mainîgie"; }
+    { return "Mainīgie"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
-    { return "Uzskaitîjumliterâïi"; }
-    
+    { return "Uzskaitījumliterāļi"; }
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
-    { return "Makro definîcijas dokumentâcija"; }
+    { return "Makro definīcijas dokumentācija"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Funkcijas prototipu dokumentâcija"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
-    { return "Typedef dokumentâcija"; }
+    { return "Typedef dokumentācija"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
-    { return "Uzskaitîjumliterâïa tipa dokumentâcija"; }
+    { return "Uzskaitījumliterāļa tipa dokumentācija"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
-    { return "Funkcijas dokumentâcija"; }
+    { return "Funkcijas dokumentācija"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
-    { return "Mainîgo dokumentâcija"; }
+    { return "Mainīgo dokumentācija"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Datu struktûras"; 
+        return "Datu struktūras";
       }
       else
       {
-        return "Klases"; 
+        return "Klases";
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
-      QCString result=(QCString)"Ìenerçts "+date;
+    {
+      QCString result=(QCString)"Ģenerēts "+date;
       if (projName) result+=(QCString)" projektam "+projName;
       result+=(QCString)" ar";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "uzrakstîjis";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
-      return (QCString)"Mantojamîbas diagramma klasei "+clName+":";
+      return (QCString)"Mantojamības diagramma klasei "+clName+":";
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
-    { return "Tikai iekðçjai lietoðanai."; }
+    { return "Tikai iekšējai lietošanai."; }
 
     /*! this text is generated when the \\warning command is used. */
     virtual QCString trWarning()
-    { return "Brîdinâjums"; }
+    { return "Brīdinājums"; }
 
     /*! this text is generated when the \\version command is used. */
     virtual QCString trVersion()
@@ -557,11 +532,11 @@ class TranslatorLatvian : public Translator
 
     /*! this text is generated when the \\return command is used. */
     virtual QCString trReturns()
-    { return "Atgrieþ"; }
+    { return "Atgriež"; }
 
     /*! this text is generated when the \\sa command is used. */
     virtual QCString trSeeAlso()
-    { return "Skatîties arî"; }
+    { return "Skatīties arī"; }
 
     /*! this text is generated when the \\param command is used. */
     virtual QCString trParameters()
@@ -569,16 +544,16 @@ class TranslatorLatvian : public Translator
 
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
-    { return "Izòçmumi"; }
-    
+    { return "Izņēmumi"; }
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
-    { return "Ìenerçts ar"; }
+    { return "Ģenerēts ar"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
     { return "Nosaukumvietu saraksts"; }
@@ -586,9 +561,9 @@ class TranslatorLatvian : public Translator
     /*! used as an introduction to the namespace list */
     virtual QCString trNamespaceListDescription(bool extractAll)
     {
-      QCString result="Ðeit ir visas ";
-      if (!extractAll) result+="dokumentçtâs ";
-      result+="nosaukumvietas ar îsu aprakstu:";
+      QCString result="Šeit ir visas ";
+      if (!extractAll) result+="dokumentētās ";
+      result+="nosaukumvietas ar īsu aprakstu:";
       return result;
     }
 
@@ -597,17 +572,17 @@ class TranslatorLatvian : public Translator
      */
     virtual QCString trFriends()
     { return "Draugi"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
-    { return "Draugu un saistîto funkciju dokumentâcija"; }
-    
+    { return "Draugu un saistīto funkciju dokumentācija"; }
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -621,12 +596,12 @@ class TranslatorLatvian : public Translator
       switch(compType)
       {
         case ClassDef::Class:      result+=" klases"; break;
-        case ClassDef::Struct:     result+=" struktûras"; break;
+        case ClassDef::Struct:     result+=" struktūras"; break;
         case ClassDef::Union:      result+=" apvienojuma"; break;
         case ClassDef::Interface:  result+=" interfeisa"; break;
         case ClassDef::Protocol:   result+=" protokola"; break;
         case ClassDef::Category:   result+=" kategorijas"; break;
-        case ClassDef::Exception:  result+=" izòçmuma"; break;
+        case ClassDef::Exception:  result+=" izņēmuma"; break;
       }
       if (isTemplate) result+=" veidnes";
       result+=" apraksts";
@@ -637,7 +612,7 @@ class TranslatorLatvian : public Translator
     virtual QCString trFileReference(const char *fileName)
     {
       QCString result=fileName;
-      result+=" faila apraksts"; 
+      result+=" faila apraksts";
       return result;
     }
 
@@ -648,28 +623,28 @@ class TranslatorLatvian : public Translator
       result+=" nosaukumvietas apraksts";
       return result;
     }
-    
+
     virtual QCString trPublicMembers()
-    { return "Publiskâs elementa funkcijas"; }
+    { return "Publiskās elementa funkcijas"; }
     virtual QCString trPublicSlots()
-    { return "Publiskâs spraugas"; }
+    { return "Publiskās spraugas"; }
     virtual QCString trSignals()
-    { return "Signâli"; }
+    { return "Signāli"; }
     virtual QCString trStaticPublicMembers()
-    { return "Statiskâs publiskâs elementa funkcijas"; }
+    { return "Statiskās publiskās elementa funkcijas"; }
     virtual QCString trProtectedMembers()
-    { return "Aizsargâtâs elementa funkcijas"; }
+    { return "Aizsargātās elementa funkcijas"; }
     virtual QCString trProtectedSlots()
-    { return "Aizsargâtâs spraugas"; }
+    { return "Aizsargātās spraugas"; }
     virtual QCString trStaticProtectedMembers()
-    { return "Statiskâs aizsargâtâs elementa funkcijas"; }
+    { return "Statiskās aizsargātās elementa funkcijas"; }
     virtual QCString trPrivateMembers()
-    { return "Privâtâs elementa funkcijas"; }
+    { return "Privātās elementa funkcijas"; }
     virtual QCString trPrivateSlots()
-    { return "Privâtâs spraugas"; }
+    { return "Privātās spraugas"; }
     virtual QCString trStaticPrivateMembers()
-    { return "Statiskâs privâtâs elementa funkcijas"; }
-    
+    { return "Statiskās privātās elementa funkcijas"; }
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -678,23 +653,23 @@ class TranslatorLatvian : public Translator
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=", un ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -711,12 +686,12 @@ class TranslatorLatvian : public Translator
       return "Tiek mantots "+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
     {
-      return "Pârimplementçts no "+trWriteList(numEntries)+".";
+      return "Pārimplementēts no "+trWriteList(numEntries)+".";
     }
 
     /*! used in member documentation blocks to produce a list of
@@ -724,7 +699,7 @@ class TranslatorLatvian : public Translator
      */
     virtual QCString trReimplementedInList(int numEntries)
     {
-      return "Pârimplementçts "+trWriteList(numEntries)+".";
+      return "Pārimplementēts "+trWriteList(numEntries)+".";
     }
 
     /*! This is put above each page as a link to all members of namespaces. */
@@ -733,17 +708,17 @@ class TranslatorLatvian : public Translator
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
-      QCString result="Ðeit ir visi ";
-      if (!extractAll) result+="dokumentçtie ";
-      result+="nosaukumvietas elementi ar saitçm uz ";
-      if (extractAll) 
-        result+="nosaukumvieta dokumentâciju katram elementam:";
-      else 
+    {
+      QCString result="Šeit ir visi ";
+      if (!extractAll) result+="dokumentētie ";
+      result+="nosaukumvietas elementi ar saitēm uz ";
+      if (extractAll)
+        result+="nosaukumvieta dokumentāciju katram elementam:";
+      else
         result+="nosaukumvietu, kam tie pieder:";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -753,7 +728,7 @@ class TranslatorLatvian : public Translator
      *  the documentation of all namespaces.
      */
     virtual QCString trNamespaceDocumentation()
-    { return "Nosaukumvietas dokumentâcija"; }
+    { return "Nosaukumvietas dokumentācija"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990522
@@ -775,42 +750,36 @@ class TranslatorLatvian : public Translator
     virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
         bool single)
     { // single is true implies a single file
-      QCString result=(QCString)"Ðî";
+      QCString result=(QCString)"Šī";
       switch(compType)
       {
         case ClassDef::Class:      result+="s klases"; break;
-        case ClassDef::Struct:     result+="s struktûras"; break;
+        case ClassDef::Struct:     result+="s struktūras"; break;
         case ClassDef::Union:      result+=" apvienojuma"; break;
         case ClassDef::Interface:  result+=" interfeisa"; break;
         case ClassDef::Protocol:   result+=" protokola"; break;
         case ClassDef::Category:   result+="s kategorijas"; break;
-        case ClassDef::Exception:  result+=" izòçmuma"; break;
+        case ClassDef::Exception:  result+=" izņēmuma"; break;
       }
-      result+=" dokumentâcijas tika ìenerçta no ðâda fail";
+      result+=" dokumentācijas tika ģenerēta no šāda fail";
       if (single) result+="a:"; else result+="iem:";
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Alfabçtiskais saraksts"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
 
     /*! This is used as the heading text for the retval command. */
     virtual QCString trReturnValues()
-    { return "Atgrieþamâs vçrtîbas"; }
+    { return "Atgriežamās vērtības"; }
 
     /*! This is in the (quick) index as a link to the main page (index.html)
      */
     virtual QCString trMainPage()
-    { return "Sâkumlapa"; }
+    { return "Sākumlapa"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -822,11 +791,11 @@ class TranslatorLatvian : public Translator
 
     virtual QCString trDefinedAtLineInSourceFile()
     {
-      return "Definçts lînijâ @0 failâ @1.";
+      return "Definēts līnijā @0 failā @1.";
     }
     virtual QCString trDefinedInSourceFile()
     {
-      return "Definçts failâ @0.";
+      return "Definēts failā @0.";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -845,7 +814,7 @@ class TranslatorLatvian : public Translator
     /*! this text is put before a collaboration diagram */
     virtual QCString trCollaborationDiagram(const char *clName)
     {
-      return (QCString)"Sadarbîbas diagramma klasei "+clName+":";
+      return (QCString)"Sadarbības diagramma klasei "+clName+":";
     }
     /*! this text is put before an include dependency graph */
     virtual QCString trInclDepGraph(const char *fName)
@@ -855,27 +824,27 @@ class TranslatorLatvian : public Translator
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Konstruktora un destruktora dokumentâcija"; 
+      return "Konstruktora un destruktora dokumentācija";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
     {
-      return "Iet uz ðî faila pirmkodu.";
+      return "Iet uz šī faila pirmkodu.";
     }
     /*! Used in the file sources to point to the corresponding documentation. */
     virtual QCString trGotoDocumentation()
     {
-      return "Ietu uz ðî faila dokumentâciju.";
+      return "Ietu uz šī faila dokumentāciju.";
     }
     /*! Text for the \\pre command */
     virtual QCString trPrecondition()
     {
-      return "Pirmsnosacîjums";
+      return "Pirmsnosacījums";
     }
     /*! Text for the \\post command */
     virtual QCString trPostcondition()
     {
-      return "Pçcnosacîjums";
+      return "Pēcnosacījums";
     }
     /*! Text for the \\invariant command */
     virtual QCString trInvariant()
@@ -885,7 +854,7 @@ class TranslatorLatvian : public Translator
     /*! Text shown before a multi-line variable/enum initialization */
     virtual QCString trInitialValue()
     {
-      return "Sâkotnçjâ vçrtîba:";
+      return "Sākotnējā vērtība:";
     }
     /*! Text used the source code in the file index */
     virtual QCString trCode()
@@ -902,7 +871,7 @@ class TranslatorLatvian : public Translator
     }
     virtual QCString trGotoTextualHierarchy()
     {
-      return "Iet uz tekstuâlu klases hierarhiju";
+      return "Iet uz tekstuālu klases hierarhiju";
     }
     virtual QCString trPageIndex()
     {
@@ -912,10 +881,10 @@ class TranslatorLatvian : public Translator
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
-      return "Piezîme";
+      return "Piezīme";
     }
     virtual QCString trPublicTypes()
     {
@@ -929,36 +898,36 @@ class TranslatorLatvian : public Translator
       }
       else
       {
-        return "Publiskie atribûti";
+        return "Publiskie atribūti";
       }
     }
     virtual QCString trStaticPublicAttribs()
     {
-      return "Statiskie publiskie atribûti";
+      return "Statiskie publiskie atribūti";
     }
     virtual QCString trProtectedTypes()
     {
-      return "Aizsargâtie tipi";
+      return "Aizsargātie tipi";
     }
     virtual QCString trProtectedAttribs()
     {
-      return "Aizsargâtie atribûti";
+      return "Aizsargātie atribūti";
     }
     virtual QCString trStaticProtectedAttribs()
     {
-      return "Statiskie aizsargâtie atribûti";
+      return "Statiskie aizsargātie atribūti";
     }
     virtual QCString trPrivateTypes()
     {
-      return "Privâtie tipi";
+      return "Privātie tipi";
     }
     virtual QCString trPrivateAttribs()
     {
-      return "Privâtie atribûti";
+      return "Privātie atribūti";
     }
     virtual QCString trStaticPrivateAttribs()
     {
-      return "Statiskie privâtie atribûti";
+      return "Statiskie privātie atribūti";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -968,12 +937,12 @@ class TranslatorLatvian : public Translator
     /*! Used as a marker that is put before a \\todo item */
     virtual QCString trTodo()
     {
-      return "Jâizdara";
+      return "Jāizdara";
     }
     /*! Used as the header of the todo list */
     virtual QCString trTodoList()
     {
-      return "Darâmo darbu saraksts";
+      return "Darāmo darbu saraksts";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -990,18 +959,18 @@ class TranslatorLatvian : public Translator
     }
     virtual QCString trAttention()
     {
-      return "Uzmanîbu";
+      return "Uzmanību";
     }
     virtual QCString trInclByDepGraph()
     {
-      return "Ðis grafs râda kuri faili tieði vai "
-             "netieði iekïauj ðo failu:";
+      return "Šis grafs rāda kuri faili tieši vai "
+             "netieši iekļauj šo failu:";
     }
     virtual QCString trSince()
     {
-      return "Kopð";
+      return "Kopš";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -1009,14 +978,14 @@ class TranslatorLatvian : public Translator
     /*! title of the graph legend page */
     virtual QCString trLegendTitle()
     {
-      return "Grafika leìenda";
+      return "Grafika leģenda";
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "This page explains how to interpret the graphs that are generated "
         "by doxygen.<p>\n"
         "Consider the following example:\n"
@@ -1081,13 +1050,13 @@ class TranslatorLatvian : public Translator
     /*! text for the link to the legend page */
     virtual QCString trLegend()
     {
-      return "leìenda";
+      return "leģenda";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1100,28 +1069,18 @@ class TranslatorLatvian : public Translator
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP elementu funkcijas";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
     /*! Used as a section header for IDL properties */
     virtual QCString trProperties()
     {
-      return "Rekvizîti";
+      return "Rekvizīti";
     }
     /*! Used as a section header for IDL property documentation */
     virtual QCString trPropertyDocumentation()
     {
-      return "Rekvizîtu dokumentâcija";
+      return "Rekvizītu dokumentācija";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1133,7 +1092,7 @@ class TranslatorLatvian : public Translator
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Datu struktûras";
+        return "Datu struktūras";
       }
       else
       {
@@ -1148,7 +1107,7 @@ class TranslatorLatvian : public Translator
     /*! Title of the package index page */
     virtual QCString trPackageList()
     {
-      return "Pakotòu saraksts";
+      return "Pakotņu saraksts";
     }
     /*! The description of the package index page */
     virtual QCString trPackageListDescription()
@@ -1163,31 +1122,31 @@ class TranslatorLatvian : public Translator
     /*! Text shown before a multi-line define */
     virtual QCString trDefineValue()
     {
-      return "Vçrtîba:";
+      return "Vērtība:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
-      return "Kïûda";
+      return "Kļūda";
     }
     /*! Used as the header of the bug list */
     virtual QCString trBugList()
     {
-      return "Kïûdu saraksts";
+      return "Kļūdu saraksts";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1208,15 +1167,15 @@ class TranslatorLatvian : public Translator
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1257";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1229,82 +1188,82 @@ class TranslatorLatvian : public Translator
     {
       return "Indekss";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Klase" : "klase"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Fail" : "fail"));
       if (singular) result+="s"; else result+="i";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Nosaukumvieta" : "nosaukumvieta"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Grupa" : "grupa"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Lapa" : "lapa"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Element" : "element"));
       if (singular) result+="s"; else result+="i";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "Globâl" : "globâl"));
+    {
+      QCString result((first_capital ? "Globāl" : "globāl"));
       if (singular) result+="ais"; else result+="ie";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1314,10 +1273,10 @@ class TranslatorLatvian : public Translator
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Autor" : "autor"));
       if (singular) result+="s"; else result+="i";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1335,12 +1294,12 @@ class TranslatorLatvian : public Translator
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
     {
-      return "Îsteno "+trWriteList(numEntries)+".";
+      return "Īsteno "+trWriteList(numEntries)+".";
     }
 
     /*! used in member documentation blocks to produce a list of
@@ -1348,7 +1307,7 @@ class TranslatorLatvian : public Translator
      */
     virtual QCString trImplementedInList(int numEntries)
     {
-      return "Îstenots "+trWriteList(numEntries)+".";
+      return "Īstenots "+trWriteList(numEntries)+".";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1360,26 +1319,26 @@ class TranslatorLatvian : public Translator
      */
     virtual QCString trRTFTableOfContents()
     {
-      return "Satura râdîtâjs";
+      return "Satura rādītājs";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
-      return "Novecojuðo saraksts";
+      return "Novecojušo saraksts";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1389,7 +1348,7 @@ class TranslatorLatvian : public Translator
     /*! Header used for the documentation section of a class' events. */
     virtual QCString trEventDocumentation()
     {
-      return "Notikumu dokumentâcija";
+      return "Notikumu dokumentācija";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1399,43 +1358,43 @@ class TranslatorLatvian : public Translator
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Pakas tipi";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Pakas funkcijas";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
-      return "Statiskâs pakas funkcijas";
+    {
+      return "Statiskās pakas funkcijas";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
-      return "Pakas atribûti";
+    {
+      return "Pakas atribūti";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
-      return "Statiskie pakas atribûti";
+    {
+      return "Statiskie pakas atribūti";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1445,33 +1404,25 @@ class TranslatorLatvian : public Translator
     /*! Put in front of the call graph for a function. */
     virtual QCString trCallGraph()
     {
-      return "Ðeit ir visu funkciju izsaugumu grafs:";
+      return "Šeit ir visu funkciju izsaugumu grafs:";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Meklçt";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
     virtual QCString trSearchResultsTitle()
     {
-      return "Meklçðanas rezultâti";
+      return "Meklēšanas rezultāti";
     }
     /*! This string is put just before listing the search results. The
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1485,18 +1436,18 @@ class TranslatorLatvian : public Translator
       {
         return "Atrasts <b>1</b> dokuments.";
       }
-      else 
+      else
       {
         return "Atrasti <b>$num</b> Dokumenti. "
-               "Sâkumâ attçlo tos, kas atbilst visprecîzâk.";
+               "Sākumā attēlo tos, kas atbilst visprecīzāk.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
     {
-      return "Atbilst meklçtajam:";
+      return "Atbilst meklētajam:";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1518,13 +1469,13 @@ class TranslatorLatvian : public Translator
      *  hierarchy.
      */
     virtual QCString trDirIndex()
-    { return "Direktoriju struktûra"; }
+    { return "Direktoriju struktūra"; }
 
     /*! This is used as the name of the chapter containing the documentation
      *  of the directories.
      */
     virtual QCString trDirDocumentation()
-    { return "Direktorijas dokumentâcija"; }
+    { return "Direktorijas dokumentācija"; }
 
     /*! This is used as the title of the directory index and also in the
      *  Quick links of an HTML page, to link to the directory hierarchy.
@@ -1532,12 +1483,12 @@ class TranslatorLatvian : public Translator
     virtual QCString trDirectories()
     { return "Direktorijas"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
-    { return "Ðî direktoriju hierarhija ir aptuveni, "
-             "bet ne pilnîbâ, alfabçta secîbâ:";
+    { return "Šī direktoriju hierarhija ir aptuveni, "
+             "bet ne pilnībā, alfabēta secībā:";
     }
 
     /*! This returns the title of a directory page. The name of the
@@ -1550,10 +1501,10 @@ class TranslatorLatvian : public Translator
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Direktorija" : "direktorija"));
       if (!singular) result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1565,9 +1516,9 @@ class TranslatorLatvian : public Translator
      */
     virtual QCString trOverloadText()
     {
-       return "Ðî ir elementa pârslogota funkcija, kas "
-              "parâdîta tikai informâtîvo nolûkos. Tâ atðíiras no iepriekðapraksîtâs "
-              "funkcijas tikai ar parametriem, ko tâ saòem.";
+       return "Šī ir elementa pārslogota funkcija, kas "
+              "parādīta tikai informātīvo nolūkos. Tā atšķiras no iepriekšapraksītās "
+              "funkcijas tikai ar parametriem, ko tā saņem.";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1577,24 +1528,24 @@ class TranslatorLatvian : public Translator
     /*! This is used to introduce a caller (or called-by) graph */
     virtual QCString trCallerGraph()
     {
-      return "Ðeit ir ðîs funkcijas izsaukuma grafs:";
+      return "Šeit ir šīs funkcijas izsaukuma grafs:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
-    { return "Uzskaitîjumliterâïa dokumentâcija"; }
+    { return "Uzskaitījumliterāļa dokumentācija"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
-    { return "Elementa funckijas/apakðrutînas dokumentâcija"; }
+    { return "Elementa funckijas/apakšrutīnas dokumentācija"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Datu tipu saraksts"; }
 
@@ -1604,30 +1555,30 @@ class TranslatorLatvian : public Translator
 
     /*! This is an introduction to the annotated compound list (Fortran). */
     virtual QCString trCompoundListDescriptionFortran()
-    { return "Ðeit ir visu datu tipu saraksts ar îsu aprakstu:"; }
+    { return "Šeit ir visu datu tipu saraksts ar īsu aprakstu:"; }
 
     /*! This is an introduction to the page with all data types (Fortran). */
     virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
     {
-      QCString result="Ðeit ir visu ";
+      QCString result="Šeit ir visu ";
       if (!extractAll)
       {
-        result+="dokumentçto ";
+        result+="dokumentēto ";
       }
       result+="datu tipu saraksts";
-      result+=" ar saitçm uz ";
-      if (!extractAll) 
+      result+=" ar saitēm uz ";
+      if (!extractAll)
       {
-         result+="datu struktûras dokumentâciju katram elementam:";
+         result+="datu struktūras dokumentāciju katram elementam:";
       }
-      else 
+      else
       {
          result+="datu tipiem, kam tie pieder:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1637,36 +1588,36 @@ class TranslatorLatvian : public Translator
      *  the documentation of all data types (Fortran).
      */
     virtual QCString trTypeDocumentation()
-    { return "Datu tipa dokumentâcija"; }
+    { return "Datu tipa dokumentācija"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
-    { return "Funkcijas/Apakðrutînas"; }
+    { return "Funkcijas/Apakšrutīnas"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
-    { return "Funkcijas/Apakðrutînas dokumentâcija"; }
+    { return "Funkcijas/Apakšrutīnas dokumentācija"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Datu tipi"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
-    { return "Moduïu saraksts"; }
+    { return "Moduļu saraksts"; }
 
     /*! used as an introduction to the modules list (Fortran) */
     virtual QCString trModulesListDescription(bool extractAll)
     {
-      QCString result="Ðeit ir visu ";
-      if (!extractAll) result+="dokumentçto ";
-      result+="moduïu saraksts ar îsu aprakstu:";
+      QCString result="Šeit ir visu ";
+      if (!extractAll) result+="dokumentēto ";
+      result+="moduļu saraksts ar īsu aprakstu:";
       return result;
     }
 
@@ -1678,13 +1629,13 @@ class TranslatorLatvian : public Translator
       QCString result=(QCString)clName;
       switch(compType)
       {
-        case ClassDef::Class:      result+=" moduïa"; break;
+        case ClassDef::Class:      result+=" moduļa"; break;
         case ClassDef::Struct:     result+=" tipa"; break;
         case ClassDef::Union:      result+=" apvienojuma"; break;
         case ClassDef::Interface:  result+=" interfeisa"; break;
         case ClassDef::Protocol:   result+=" protokola"; break;
         case ClassDef::Category:   result+=" kategorijas"; break;
-        case ClassDef::Exception:  result+=" izòçmuma"; break;
+        case ClassDef::Exception:  result+=" izņēmuma"; break;
       }
       if (isTemplate) result+=" sagataves";
       result+=" atsauce";
@@ -1694,46 +1645,46 @@ class TranslatorLatvian : public Translator
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" moduïu atsauce";        
+      result+=" moduļu atsauce";
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
-    { return "Moduïa elementi"; }
+    { return "Moduļa elementi"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
-      QCString result="Ðeit ir visu ";
-      if (!extractAll) result+="dokumentçto ";
-      result+="moduïa elementu saraksts ar saitçm uz ";
-      if (extractAll) 
+    {
+      QCString result="Šeit ir visu ";
+      if (!extractAll) result+="dokumentēto ";
+      result+="moduļa elementu saraksts ar saitēm uz ";
+      if (extractAll)
       {
-        result+="moduïa dokumentâciju katram elementam:";
+        result+="moduļa dokumentāciju katram elementam:";
       }
-      else 
+      else
       {
-        result+="moduïiem, kuriem tie pieder:";
+        result+="moduļiem, kuriem tie pieder:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
-    { return "Moduïu indekss"; }
-    
+    { return "Moduļu indekss"; }
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Modu" : "modu"));
-      if (singular) result+="lis"; else result+="ïi";
-      return result; 
+      if (singular) result+="lis"; else result+="ļi";
+      return result;
     }
 
     /*! This is put at the bottom of a module documentation page and is
@@ -1743,7 +1694,7 @@ class TranslatorLatvian : public Translator
         bool single)
     {
       // single is true implies a single file
-      QCString result=(QCString)"Dokumentâcija ð";
+      QCString result=(QCString)"Dokumentācija š";
       switch(compType)
       {
         case ClassDef::Class:      result+="im modulim"; break;
@@ -1752,39 +1703,39 @@ class TranslatorLatvian : public Translator
         case ClassDef::Interface:  result+="im interfeisam"; break;
         case ClassDef::Protocol:   result+="im protokolam"; break;
         case ClassDef::Category:   result+="ai kategorijai"; break;
-        case ClassDef::Exception:  result+="im izòçmumam"; break;
+        case ClassDef::Exception:  result+="im izņēmumam"; break;
       }
-      result+=" tika ìenerçta no fail";
+      result+=" tika ģenerēta no fail";
       if (single) result+="a:"; else result+="iem:";
       return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Tip" : "tip"));
       if (singular) result+="s"; else result+="i";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "Apakðprogramma" : "apakðprogramma"));
+    {
+      QCString result((first_capital ? "Apakšprogramma" : "apakšprogramma"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
     virtual QCString trTypeConstraints()
     {
-      return "Tipa ierobeþojumi";
+      return "Tipa ierobežojumi";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1794,13 +1745,13 @@ class TranslatorLatvian : public Translator
     /*! directory relation for \a name */
     virtual QCString trDirRelation(const char *name)
     {
-      return QCString(name)+" relâcija";
+      return QCString(name)+" relācija";
     }
 
     /*! Loading message shown when loading search results */
     virtual QCString trLoading()
     {
-      return "Tiek veikta ielâde...";
+      return "Tiek veikta ielāde...";
     }
 
     /*! Label used for search results in the global namespace */
@@ -1812,25 +1763,19 @@ class TranslatorLatvian : public Translator
     /*! Message shown while searching */
     virtual QCString trSearching()
     {
-      return "Meklç...";
+      return "Meklē...";
     }
 
     /*! Text shown when no search results are found */
     virtual QCString trNoMatches()
     {
-      return "Nav atbilstîbu";
+      return "Nav atbilstību";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Direktoriju atkarîbu grafs priekð "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1849,7 +1794,7 @@ class TranslatorLatvian : public Translator
       return (QCString)"Includes file in "+name;
     }
 
-    /** Compiles a date string. 
+    /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
      *  @param day Day of the Month: 1..31
@@ -1864,7 +1809,7 @@ class TranslatorLatvian : public Translator
                                 bool includeTime)
     {
       static const char *days[]   = { "Pirm","Otr","Tr","Cet","Piekt","Sest","Sv" };
-      static const char *months[] = { "Jan","Feb","Mar","Apr","Mai","Jûn","Jûl","Aug","Sept","Okt","Nov","Dec" };
+      static const char *months[] = { "Jan","Feb","Mar","Apr","Mai","Jūn","Jūl","Aug","Sept","Okt","Nov","Dec" };
       QCString sdate;
       sdate.sprintf("%s %s %d %d",days[dayOfWeek-1],months[month-1],day,year);
       if (includeTime)
@@ -1882,15 +1827,15 @@ class TranslatorLatvian : public Translator
 
     /*! Header for the page with bibliographic citations */
     virtual QCString trCiteReferences()
-    { return "Bibliogrâfiskâs atsauces"; }
+    { return "Bibliogrāfiskās atsauces"; }
 
     /*! Text for copyright paragraph */
     virtual QCString trCopyright()
-    { return "Autortiesîbas"; }
+    { return "Autortiesības"; }
 
     /*! Header for the graph showing the directory dependencies */
     virtual QCString trDirDepGraph(const char *name)
-    { return QCString("Atkarîbu grafs direktorijai ")+name+":"; }
+    { return QCString("Atkarību grafs direktorijai ")+name+":"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.8.0
@@ -1898,7 +1843,7 @@ class TranslatorLatvian : public Translator
 
     /*! Detail level selector shown for hierarchical indices */
     virtual QCString trDetailLevel()
-    { return "detalizâcijas lîmenis"; }
+    { return "detalizācijas līmenis"; }
 
     /*! Section header for list of template parameters */
     virtual QCString trTemplateParameters()
@@ -1906,11 +1851,11 @@ class TranslatorLatvian : public Translator
 
     /*! Used in dot graph when UML_LOOK is enabled and there are many fields */
     virtual QCString trAndMore(const QCString &number)
-    { return "un vçl "+number+"..."; }
+    { return "un vēl "+number+"..."; }
 
     /*! Used file list for a Java enum */
     virtual QCString trEnumGeneratedFromFiles(bool single)
-    { QCString result = "Dokumentâcija ðim uzskaitîjumliterâlim tika ìenerçta no sekojoð";
+    { QCString result = "Dokumentācija šim uzskaitījumliterālim tika ģenerēta no sekojoš";
       if (single) result+="a"; else result += "iem";
       result+=" fail";
       if (single) result+="a"; else result += "iem";
@@ -1920,14 +1865,14 @@ class TranslatorLatvian : public Translator
 
     /*! Header of a Java enum page (Java enums are represented as classes). */
     virtual QCString trEnumReference(const char *name)
-    { return QCString(name)+" uzskaitîjumliterâïa atsauce"; }
+    { return QCString(name)+" uzskaitījumliterāļa atsauce"; }
 
     /*! Used for a section containing inherited members */
     virtual QCString trInheritedFrom(const char *members,const char *what)
     { return QCString(members)+" manto no "+what; }
 
-    /*! Header of the sections with inherited members specific for the 
-     *  base class(es) 
+    /*! Header of the sections with inherited members specific for the
+     *  base class(es)
      */
     virtual QCString trAdditionalInheritedMembers()
     { return "Papildus mantotie elementi"; }
@@ -1937,13 +1882,13 @@ class TranslatorLatvian : public Translator
 //////////////////////////////////////////////////////////////////////////
 
     /*! Used as a tooltip for the toggle button that appears in the
-     *  navigation tree in the HTML output when GENERATE_TREEVIEW is 
+     *  navigation tree in the HTML output when GENERATE_TREEVIEW is
      *  enabled. This tooltip explains the meaning of the button.
      */
     virtual QCString trPanelSynchronisationTooltip(bool enable)
     {
-      QCString opt = enable ? "iespçjotu" : "atspçjotu";
-      return "uzklikðíinât, lai "+opt+" paneïu sinhronizâciju";
+      QCString opt = enable ? "iespējotu" : "atspējotu";
+      return "uzklikšķināt, lai "+opt+" paneļu sinhronizāciju";
     }
 
     /*! Used in a method of an Objective-C class that is declared in a
@@ -1952,7 +1897,7 @@ class TranslatorLatvian : public Translator
      */
     virtual QCString trProvidedByCategory()
     {
-      return "Nodroðina kategorija @1.";
+      return "Nodrošina kategorija @1.";
     }
 
     /*! Used in a method of an Objective-C category that extends a class.
@@ -1961,7 +1906,7 @@ class TranslatorLatvian : public Translator
      */
     virtual QCString trExtendsClass()
     {
-      return "Paplaðina klasi @1.";
+      return "Paplašina klasi @1.";
     }
 
     /*! Used as the header of a list of class methods in Objective-C.
@@ -1984,7 +1929,7 @@ class TranslatorLatvian : public Translator
      */
     virtual QCString trMethodDocumentation()
     {
-      return "Metoþu dokumentâcija";
+      return "Metožu dokumentācija";
     }
 
     /*! Used as the title of the design overview picture created for the
@@ -1992,7 +1937,7 @@ class TranslatorLatvian : public Translator
      */
     virtual QCString trDesignOverview()
     {
-      return "Dizaina pârskats";
+      return "Dizaina pārskats";
     }
 
 //////////////////////////////////////////////////////////////////////////
index e190241..15da8e1 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -21,7 +21,7 @@
 //
 // Updates:
 // --------
-// 2007/12/09 
+// 2007/12/09
 //  - Initial translation to Macedonian.
 //
 // 2008/05/22
@@ -37,19 +37,19 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "macedonian"; }
-    
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -57,7 +57,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -66,12 +66,6 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
       return "\\usepackage[macedonian]{babel}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "UTF-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -89,26 +83,26 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
     { return "Документација на членови дефиниции на тип"; }
-    
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
     { return "Документација на набројани членови"; }
-    
+
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
     { return "Документација на функции членови"; }
-    
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       //if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Документација на членови"; 
-      }      
+        return "Документација на членови";
+      }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
+    virtual QCString trMore()
     { return "Повеќе..."; }
 
     /*! put in the class documentation */
@@ -126,44 +120,44 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
     { return ", вклучувајќи ги сите наследени членови."; }
-    
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result="Автоматски создадено од Doxygen";
       if (s) result+=(QCString)" за "+s;
-      result+=" изворниот код."; 
+      result+=" изворниот код.";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
     { return "име на набројан член"; }
-    
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
     { return "вредност на набројан член"; }
-    
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
     { return "дефиниран во"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
     { return "Модули"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
     { return "Стебло на класи"; }
-    
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Список на Структури";
@@ -173,34 +167,34 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
         return "Список на Класи";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
     { return "Список на Датотеки"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Членови"; 
+        return "Членови";
       }
       else
       {
-        return "Членови на Класата"; 
+        return "Членови на Класата";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Глобални Членови"; 
+        return "Глобални Членови";
       }
       else
       {
-        return "Членови на Датотеката"; 
+        return "Членови на Датотеката";
       }
     }
 
@@ -232,16 +226,16 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Список на структури со кратки описи:"; 
+        return "Список на структури со кратки описи:";
       }
       else
       {
         return "Список на класи, структури, унии и интерфејси "
-               "со кратки описи:"; 
+               "со кратки описи:";
       }
     }
 
@@ -262,7 +256,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
         result+="членови на класата";
       }
       result+=" со врски до ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -273,7 +267,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
           result+="документацијата на секој член на класата:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -292,7 +286,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     {
       QCString result="Список на сите ";
       if (!extractAll) result+="документирани ";
-      
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         result+="функции, променливи, дефиниции, набројувања и дефиниции на тип";
@@ -302,9 +296,9 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
         result+="членови на датотеки";
       }
       result+=" со врски до ";
-      if (extractAll) 
+      if (extractAll)
         result+="датотеките на кои што припаѓаат:";
-      else 
+      else
         result+="документацијата:";
       return result;
     }
@@ -321,43 +315,43 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     virtual QCString trModulesDescription()
     { return "Список на сите модули:"; }
 
-    // index titles (the project name is prepended for these) 
+    // index titles (the project name is prepended for these)
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
     { return "Документација"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "Попис на Модули"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "Попис на Стебло"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "Попис на Структури";
       }
       else
       {
-        return "Попис на Класи"; 
+        return "Попис на Класи";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "Попис на Датотеки"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
@@ -370,14 +364,14 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Документација на Структури"; 
+        return "Документација на Структури";
       }
       else
       {
-        return "Документација на Класи"; 
+        return "Документација на Класи";
       }
     }
 
@@ -402,123 +396,105 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
     { return "Прирачник"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "Дефинирања"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Прототипи на Функции"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "Дефиниции на Тип"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
     { return "Набројувања"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "Функции"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "Променливи"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
     { return "Вредности на Набројувањата"; }
-    
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
     { return "Документција на Дефиниции"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Документација на Прототип на Функции"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
     { return "Документација на Дефиниции на Тип"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
     { return "Документација на Набројувања"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
     { return "Документација на Функции"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
     { return "Документација на Променливи"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Структури"; 
+        return "Структури";
       }
       else
       {
-        return "Класи"; 
+        return "Класи";
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"Создадено на "+date;
       if (projName) result+=(QCString)" за "+projName;
       result+=(QCString)" од";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "напишано од";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
       return (QCString)"Диаграм на наследување за "+clName+":";
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
     { return "Само за интерна употреба."; }
@@ -550,7 +526,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
     { return "Исклучоци"; }
-    
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
     { return "Создадено од"; }
@@ -558,7 +534,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
     { return "Список на Имиња на Простор"; }
@@ -577,17 +553,17 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
      */
     virtual QCString trFriends()
     { return "Пријатели"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
     { return "Документација на Пријатели и Поврзани Функции"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -618,7 +594,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     virtual QCString trFileReference(const char *fileName)
     {
       QCString result = "Опис на Датотекaта ";
-      result += fileName; 
+      result += fileName;
       return result;
     }
 
@@ -629,7 +605,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
       result += namespaceName;
       return result;
     }
-    
+
     virtual QCString trPublicMembers()
     { return "Јавни Функции Членови"; }
     virtual QCString trPublicSlots()
@@ -650,7 +626,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     { return "Приватни Слотови"; }
     virtual QCString trStaticPrivateMembers()
     { return "Статични Приватни Функции Членови"; }
-    
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -659,23 +635,23 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=" и ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -692,7 +668,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
       return "Наследено од "+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
@@ -714,17 +690,17 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Список на сите ";
       if (!extractAll) result+="документирани ";
       result+="членови на името на простор со врски до ";
-      if (extractAll) 
+      if (extractAll)
         result+="документацијата на секој член:";
-      else 
+      else
         result+="името на простор на кое што му припаѓаат:";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -774,12 +750,6 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Азбучен Список"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -793,7 +763,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     virtual QCString trMainPage()
     { return "Главна Страна"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -838,7 +808,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Документација на Конструктор и Деструктор"; 
+      return "Документација на Конструктор и Деструктор";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
@@ -895,7 +865,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
       return "Забелешка";
@@ -984,7 +954,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     {
       return "Од";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -994,12 +964,12 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     {
       return "Легенда на Дијаграмот";
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "Оваа страна објаснува како да ги толкувате дијаграмите создадени"
         " од doxygen.<p>\n"
         "На пример:\n"
@@ -1063,11 +1033,11 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     {
       return "Легенда";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1080,16 +1050,6 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP Функции Членови";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1145,11 +1105,11 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     {
       return "Вредност:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1165,9 +1125,9 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1188,15 +1148,15 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1251";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1209,82 +1169,82 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     {
       return "Попис";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Клас" : "клас"));
       result += (singular ? "а" : "и");
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Датотек" : "датотек"));
       result += (singular ? "а" : "и");
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "Им" : "им"));      
+    {
+      QCString result((first_capital ? "Им" : "им"));
       result += (singular ? "е на простор" : "иња на простори");
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Груп" : "груп"));
       result += (singular ? "а" : "и");
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Стран" : "стран"));
       result += (singular ? "а" : "и");
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Член" : "член"));
       if (!singular)  result+="ови";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Глобал" : "глобал"));
       result += (singular ? "ен" : "ни");
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1294,10 +1254,10 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Автор" : "автор"));
       if (!singular)  result+="и";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1315,7 +1275,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1347,8 +1307,8 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1359,7 +1319,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1379,43 +1339,43 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Типови во Пакетот";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Функции во Пакетот";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Статични Функции во Пакетот";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Членови во Пакетот";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Статични Членови во Пакетот";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1432,14 +1392,6 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Пребарај";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1451,7 +1403,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1465,13 +1417,13 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
       {
         return "Пронајден <b>1</b> документ кој се поклопува со вашето барање.";
       }
-      else 
+      else
       {
         return "Пронајдени <b>$num</b> документи кои се поклопуваат со вашето барање."
                "Најдобро поклопените документи се прикажани први.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1512,7 +1464,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     virtual QCString trDirectories()
     { return "Именици"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1528,10 +1480,10 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Имени" : "имени"));
       if (singular) result+="к"; else result+="ци";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1557,7 +1509,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
       return "Ова е графот на повикување за оваа фунција:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
@@ -1566,12 +1518,12 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Документација на функции/процедури членови"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Список на Типови"; }
 
@@ -1593,18 +1545,18 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
       }
       result+="членови на типови";
       result+=" со врски до ";
-      if (!extractAll) 
+      if (!extractAll)
       {
          result+="документацијата за секој член:";
       }
-      else 
+      else
       {
          result+="типовите на кои што припаѓаат:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1616,24 +1568,24 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     virtual QCString trTypeDocumentation()
     { return "Документација на Типови"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Функции/Процедури"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Документација на Функции/Процедури"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Типови"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Попис на Модули"; }
@@ -1671,46 +1623,46 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" - Содржина на Модул";        
+      result+=" - Содржина на Модул";
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Членови на Модул"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Список на сите ";
       if (!extractAll) result+="документирани ";
       result+="членови на модулот со врски до ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="документацијата за секој член:";
       }
-      else 
+      else
       {
         result+="модулите на кои што припаѓаат:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Попис на Модули"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Модул" : "модул"));
       if (!singular)  result+="и";
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1736,29 +1688,29 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Тип" : "тип"));
       if (!singular)  result+="ови";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Потпрограм" : "потпрограм"));
       if (singular){
                result+="а";
       }else{
        result+="и";
       }
-      
-      return result; 
+
+      return result;
     }
 
     /*! C# Type Constraint list */
index 41d77fb..2525b4f 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
 #ifndef TRANSLATOR_NL_H
 #define TRANSLATOR_NL_H
 
-class TranslatorDutch : public TranslatorAdapter_1_8_2
+class TranslatorDutch : public Translator
 {
   public:
     QCString idLanguage()
     { return "dutch"; }
-    /*! Used to get the LaTeX command(s) for the language support. 
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -38,12 +38,6 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     {
       return "\\usepackage[dutch]{babel}\n";
     }
-    /*! return the language charset. This will be used for the HTML output */
-    QCString idLanguageCharset()
-    {
-      return "iso-8859-1";
-    }
-
     QCString trRelatedFunctions()
     { return "Gerelateerde functies"; }
     QCString trRelatedSubscript()
@@ -69,9 +63,9 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     QCString trIncludingInheritedMembers()
     { return ", inclusief alle overge&euml;rfde members."; }
     QCString trGeneratedAutomatically(const char *s)
-    { QCString result="Automatisch gegenereerd door Doxygen"; 
+    { QCString result="Automatisch gegenereerd door Doxygen";
       if (s) result+=(QCString)" voor "+s;
-      result+=" uit de programmatekst."; 
+      result+=" uit de programmatekst.";
       return result;
     }
     QCString trEnumName()
@@ -111,7 +105,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     }
     QCString trCompoundListDescription()
     { return "Hieronder volgen de klassen, structs en "
-             "unions met voor elk een korte beschrijving:"; 
+             "unions met voor elk een korte beschrijving:";
     }
     QCString trCompoundMembersDescription(bool extractAll)
     {
@@ -146,7 +140,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     { return "Hi&euml;rarchische Index"; }
     QCString trCompoundIndex()
     { return "Klasse Index"; }
-    QCString trFileIndex() 
+    QCString trFileIndex()
     { return "Bestand Index"; }
     QCString trModuleDocumentation()
     { return "Module Documentatie"; }
@@ -163,8 +157,6 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
 
     QCString trDefines()
     { return "Macros"; }
-    QCString trFuncProtos()
-    { return "Functie Prototypes"; }
     QCString trTypedefs()
     { return "Typedefs"; }
     QCString trEnumerations()
@@ -177,8 +169,6 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     { return "Enumeratie waarden"; }
     QCString trDefineDocumentation()
     { return "Documentatie van macro's"; }
-    QCString trFunctionPrototypeDocumentation()
-    { return "Documentatie van functie Prototypes"; }
     QCString trTypedefDocumentation()
     { return "Documentatie van typedefs"; }
     QCString trEnumerationTypeDocumentation()
@@ -192,16 +182,12 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     QCString trCompounds()
     { return "Klassen"; }
     QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"Gegenereerd op "+date;
       if (projName) result+=(QCString)" voor "+projName;
       result+=(QCString)" door";
       return result;
     }
-    QCString trWrittenBy()
-    {
-      return "geschreven door";
-    }
     QCString trClassDiagram(const char *clName)
     {
       return (QCString)"Klasse diagram voor "+clName;
@@ -224,11 +210,11 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     { return "Excepties"; }
     QCString trGeneratedBy()
     { return "Gegenereerd door"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
-// new since 0.49-990307 
+// new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     QCString trNamespaceList()
     { return "Namespace Lijst"; }
     QCString trNamespaceListDescription(bool extractAll)
@@ -244,10 +230,10 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     QCString trRelatedFunctionDocumentation()
     { return "Documentatie van friends en gerelateerde functies"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -277,7 +263,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
       // used as the title of the HTML page of a file
     {
       QCString result=fileName;
-      result+=" Bestand Referentie"; 
+      result+=" Bestand Referentie";
       return result;
     }
     QCString trNamespaceReference(const char *namespaceName)
@@ -287,8 +273,8 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
       result+=" Namespace Referentie";
       return result;
     }
-    
-    // these are for the member sections of a class, struct or union 
+
+    // these are for the member sections of a class, struct or union
     QCString trPublicMembers()
     { return "Public Members"; }
     QCString trPublicSlots()
@@ -309,8 +295,8 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     { return "Private Slots"; }
     QCString trStaticPrivateMembers()
     { return "Static Private Members"; }
-    // end of member sections 
-    
+    // end of member sections
+
     QCString trWriteList(int numEntries)
     {
       // this function is used to produce a comma-separated list of items.
@@ -318,23 +304,23 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=" en ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     QCString trInheritsList(int numEntries)
       // used in class documentation to produce a list of base classes,
       // if class diagrams are disabled.
@@ -348,7 +334,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
       return "Wordt overge&euml;rfd door "+trWriteList(numEntries)+".";
     }
     QCString trReimplementedFromList(int numEntries)
-      // used in member documentation blocks to produce a list of 
+      // used in member documentation blocks to produce a list of
       // members that are hidden by this one.
     {
       return "Nieuwe implementatie van "+trWriteList(numEntries)+".";
@@ -365,18 +351,18 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     { return "Namespace Members"; }
     QCString trNamespaceMemberDescription(bool extractAll)
       // This is an introduction to the page with all namespace members
-    { 
+    {
       QCString result="Hier is een lijst van alle ";
       if (!extractAll) result+="gedocumenteerde ";
       result+="namespace members met links naar ";
-      if (extractAll) 
+      if (extractAll)
         result+="de namespace documentatie voor iedere member:";
-      else 
+      else
         result+="de namespaces waartoe ze behoren:";
       return result;
     }
     QCString trNamespaceIndex()
-      // This is used in LaTeX as the title of the chapter with the 
+      // This is used in LaTeX as the title of the chapter with the
       // index of all namespaces.
     { return "Namespace Index"; }
     QCString trNamespaceDocumentation()
@@ -426,12 +412,6 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    QCString trAlphabeticalList()
-    { return "Alphabetical List"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -445,7 +425,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     QCString trMainPage()
     { return "Hoofd Pagina"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     QCString trPageAbbreviation()
@@ -490,7 +470,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     /*! header that is put before the list of constructor/destructors. */
     QCString trConstructorDocumentation()
     {
-      return "Constructor & Destructor Documentatie"; 
+      return "Constructor & Destructor Documentatie";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     QCString trGotoSourceCode()
@@ -547,7 +527,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     QCString trNote()
     {
       return "Noot";
@@ -630,7 +610,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     {
       return "Sinds";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -643,7 +623,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     /*! page explaining how the dot graph's should be interpreted */
     QCString trLegendDocs()
     {
-      return 
+      return
         "Deze pagina legt uit hoe de grafen die gegenereerd worden door doxygen "
         "ge&iuml;nterpreteerd dienen te worden.<p>\n"
         "Beschouw het volgende voorbeeld:\n"
@@ -681,7 +661,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
         "De rechthoeken in the bovenstaande graaf hebben de volgende betekenis:\n"
         "<ul>\n"
         "<li>Een gevulde grijze rechthoek representeert de structure of klasse waarvoor "
-        "de graaf is gegeneerd.\n"
+        "de graaf is gegenereerd.\n"
         "<li>Een rechthoek met een zwarte rand representeert een gedocumenteerde structure of klasse.\n"
         "<li>Een rechthoek met een grijze rand representeert een ongedocumenteerde structure of klasse.\n"
         "<li>Een rechthoek met een rode rand representeert een gedocumenteerde structure or klasse waarvoor\n"
@@ -711,7 +691,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     QCString trTest()
     {
@@ -724,16 +704,6 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    QCString trDCOPMethods()
-    {
-      return "DCOP Methoden";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -747,7 +717,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     {
       return "Property Documentatie";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.4
 //////////////////////////////////////////////////////////////////////////
@@ -782,11 +752,11 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     {
       return "Waarde:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     QCString trBug()
     {
@@ -802,9 +772,9 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -825,15 +795,15 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1252";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -846,82 +816,82 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     {
       return "Index";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Klasse" : "klass"));
       if (!singular)  result+="n";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Bestand" : "bestand"));
       if (!singular)  result+="en";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Namespace" : "namespace"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Groep" : "groep"));
       if (!singular)  result+="en";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Pagina" : "pagina"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Member" : "member"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Globale member" : "globale member"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -931,10 +901,10 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Auteur" : "auteur"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -952,7 +922,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -979,8 +949,8 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1010,35 +980,35 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Package Types";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Package Functies";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Statische Package Functies";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Package Attributen";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Statische Package Attributen";
     }
 
@@ -1046,7 +1016,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1063,13 +1033,6 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the index 
-     *  of each page before the search field. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Zoek naar";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1081,7 +1044,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1095,13 +1058,13 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
       {
         return "Er is <b>1</b> document gevonden dat aan de zoekopdracht voldoet.";
       }
-      else 
+      else
       {
         return "Er zijn <b>$num</b> documenten gevonden die aan de zoekopdracht voldoen. "
                "De beste resultaten worden eerst getoond.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1142,7 +1105,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     virtual QCString trDirectories()
     { return "Folders"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1160,10 +1123,10 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Folder" : "folder"));
       if (!singular) result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1189,7 +1152,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     {
       return "Hier is de caller graaf voor deze functie:";
     }
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Member Functie/Subroutine Documentatie"; }
@@ -1198,7 +1161,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Lijst met data types"; }
 
@@ -1221,7 +1184,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1233,24 +1196,24 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     virtual QCString trTypeDocumentation()
     { return "Data Type Documentatie"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Functies/Subroutines"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Functie/Subroutine Documentatie"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Data Types"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Module Lijst"; }
@@ -1289,42 +1252,42 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" Module Referentie";        
+      result+=" Module Referentie";
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Module Members"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Hier is een lijst van alle ";
       if (!extractAll) result+="gedocumenteerde ";
       result+="module members met links naar ";
-      if (extractAll) 
+      if (extractAll)
         result+="de module documentatie voor iedere member:";
-      else 
+      else
         result+="de module waartoe ze behoren:";
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Module Index"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Module" : "module"));
       if (!singular)  result+="n";
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1352,24 +1315,24 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Type" : "type"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Subprogramma" : "subprogramma"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! C# Type Contraint list */
@@ -1416,12 +1379,6 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Folder afhankelijkheidsgraaf voor "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1505,8 +1462,8 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     virtual QCString trInheritedFrom(const char *members,const char *what)
     { return QCString(members)+" overge&euml;rfd van "+what; }
 
-    /*! Header of the sections with inherited members specific for the 
-     *  base class(es) 
+    /*! Header of the sections with inherited members specific for the
+     *  base class(es)
      */
     virtual QCString trAdditionalInheritedMembers()
     { return "Additionele Overge&euml;rfde Members"; }
@@ -1516,7 +1473,7 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 
     /*! Used as a tooltip for the toggle button that appears in the
-     *  navigation tree in the HTML output when GENERATE_TREEVIEW is 
+     *  navigation tree in the HTML output when GENERATE_TREEVIEW is
      *  enabled. This tooltip explains the meaning of the button.
      */
     virtual QCString trPanelSynchronisationTooltip(bool enable)
@@ -1573,6 +1530,62 @@ class TranslatorDutch : public TranslatorAdapter_1_8_2
     {
       return "Ontwerp Overzicht";
     }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.8.4
+//////////////////////////////////////////////////////////////////////////
+
+    /** old style UNO IDL services: implemented interfaces */
+    virtual QCString trInterfaces()
+    { return "Ge&euml;porteerde Interfaces"; }
+
+    /** old style UNO IDL services: inherited services */
+    virtual QCString trServices()
+    { return "Ge&iuml;ncludeerde Services"; }
+
+    /** UNO IDL constant groups */
+    virtual QCString trConstantGroups()
+    { return "Konstanten Groepen"; }
+
+    /** UNO IDL constant groups */
+    virtual QCString trConstantGroupReference(const char *namespaceName)
+    {
+      QCString result=namespaceName;
+      result+=" Konstanten Groepen Referentie";
+      return result;
+    }
+    /** UNO IDL service page title */
+    virtual QCString trServiceReference(const char *sName)
+    {
+      QCString result=(QCString)sName;
+      result+=" Service Referentie";
+      return result;
+    }
+    /** UNO IDL singleton page title */
+    virtual QCString trSingletonReference(const char *sName)
+    {
+      QCString result=(QCString)sName;
+      result+=" Singleton Referentie";
+      return result;
+    }
+    /** UNO IDL service page */
+    virtual QCString trServiceGeneratedFromFiles(bool single)
+    { QCString result = "De documentatie voor deze service is gegenereerd op grond van ";
+      if (single) result+="het"; else result+="de";
+      result+=" volgende bestand";
+      if (single) result+=":"; else result+="en:";
+      return result;
+    }
+    /** UNO IDL singleton page */
+    virtual QCString trSingletonGeneratedFromFiles(bool single)
+    { QCString result = "De documentatie voor deze singleton is gegenereerd op grond van ";
+      if (single) result+="het"; else result+="de";
+      result+=" volgende bestand";
+      if (single) result+=":"; else result+="en:";
+      return result;
+    }
+
+//////////////////////////////////////////////////////////////////////////
 };
 
 #endif
index 5430538..3d20f08 100644 (file)
@@ -3,8 +3,8 @@
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
 
 /******************************************************************************
  * Norwegian translation by Lars Erik Jordet <lejordet@gmail.com>, parts by Frode Nilsen
- * 
+ *
  * This is a new translation made from scratch, not based on my older Norwegian translation (for 1.2.2)
  *
  * Translation notes (in Norwegian)
  *
- * Jeg har stort sett brukt ord som ligger ganske nær de engelske ekvivalentene,
+ * Jeg har stort sett brukt ord som ligger ganske nær de engelske ekvivalentene,
  * for eksempel "enumeration" -> "enumerasjon", og i enkelte tilfeller det engelske
- * ordet direkte, der jeg finner det mer naturlig enn å prøve å stable en setning
- * på beina på norsk, eller jeg selv foretrekker det engelske ordet (eks: "Header-fil").
- * Om noen ikke skulle like disse valgene, kontakt meg på mailadressen over.
+ * ordet direkte, der jeg finner det mer naturlig enn å prøve å stable en setning
+ * på beina på norsk, eller jeg selv foretrekker det engelske ordet (eks: "Header-fil").
+ * Om noen ikke skulle like disse valgene, kontakt meg på mailadressen over.
  *
- * Doxygen har mange strings som består av sammensatte ord ("Member function description", for eksempel),
- * som ikke alltid ser like ryddig ut på norsk. Jeg har brukt bindestrek for å få
- * det til å se presentabelt ut, men om noen har en bedre idé, send til mailadressen over.
+ * Doxygen har mange strings som består av sammensatte ord ("Member function description", for eksempel),
+ * som ikke alltid ser like ryddig ut på norsk. Jeg har brukt bindestrek for å få
+ * det til å se presentabelt ut, men om noen har en bedre idé, send til mailadressen over.
  *
  * 2006-03-06:
- * Jeg bruker ikke doxygen selv lenger, så det går nok litt i lengste laget mellom oppdateringer...
+ * Jeg bruker ikke doxygen selv lenger, så det går nok litt i lengste laget mellom oppdateringer...
  *
  * Changelog
  *
- * 2003-12-18: Initial translation 
+ * 2003-12-18: Initial translation
  * 2004-07-19: Fixup to prepare for 1.3.8 (I had forgotten some functions)
  * 2006-03-06: Added a .diff from Frode Nilsen, now compatible with 1.4.6.
  */
@@ -48,19 +48,19 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "norwegian"; }
-    
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -76,12 +76,6 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
         "\\usepackage[T1]{fontenc}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "iso-8859-1";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -99,7 +93,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
     { return "Medlemstypedef-dokumentasjon"; }
-    
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
     { return "Medlemsenumerasjon-dokumentasjon"; }
@@ -107,22 +101,22 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
     { return "Medlemsfunksjon-dokumentasjon"; }
-    
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Feltdokumentasjon"; 
+        return "Feltdokumentasjon";
       }
       else
       {
-        return "Medlemsdata-dokumentasjon"; 
+        return "Medlemsdata-dokumentasjon";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
+    virtual QCString trMore()
     { return "Mer..."; }
 
     /*! put in the class documentation */
@@ -140,14 +134,14 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
     { return ", alle arvede medlemmer inkludert."; }
-    
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result="Generert automatisk av Doxygen";
       if (s) result+=(QCString)" for "+s;
-      result+=" fra kildekoden."; 
+      result+=" fra kildekoden.";
       return result;
     }
 
@@ -158,36 +152,36 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
     { return "enum-verdi"; }
-    
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
     { return "definert i"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
     { return "Moduler"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
     { return "Klassehierarki"; }
-    
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Datastrukturer";
       }
       else
       {
-        return "Klasseliste"; 
+        return "Klasseliste";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
     { return "Fil-liste"; }
@@ -198,27 +192,27 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Datafelt"; 
+        return "Datafelt";
       }
       else
       {
-        return "Klassemedlemmer"; 
+        return "Klassemedlemmer";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Globale"; 
+        return "Globale";
       }
       else
       {
-        return "Filmedlemmer"; 
+        return "Filmedlemmer";
       }
     }
 
@@ -232,12 +226,12 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
 
     /*! This is put above each page as a link to the search engine. */
     virtual QCString trSearch()
-    { return "Søk"; }
+    { return "Søk"; }
 
     /*! This is an introduction to the class hierarchy. */
     virtual QCString trClassHierarchyDescription()
     { return "Denne arvelisten er grovsortert alfabetisk "
-             "(ikke nødvendigvis korrekt):";
+             "(ikke nødvendigvis korrekt):";
     }
 
     /*! This is an introduction to the list with all files. */
@@ -251,8 +245,8 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
        return "Her er datastrukturene med korte beskrivelser:";
@@ -281,7 +275,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
         result+="klassemedlemmer";
       }
       result+=" med koblinger til ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -292,15 +286,15 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
          result+="klassedokumentasjonen for hvert medlem:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
-         result+="struct'ene/unionene de hører til:";
+         result+="struct'ene/unionene de hører til:";
         }
         else
         {
-         result+="klassene de hører til:";
+         result+="klassene de hører til:";
         }
       }
       return result;
@@ -310,7 +304,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     {
       QCString result="Her er en liste over alle ";
       if (!extractAll) result+="dokumenterte ";
-      
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         result+="funksjoner, variabler, definisjoner, enum'er, og typedef'er";
@@ -320,16 +314,16 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
         result+="filmedlemmer";
       }
       result+=" med koblinger til ";
-      if (extractAll) 
-        result+="filene de hører til:";
-      else 
+      if (extractAll)
+        result+="filene de hører til:";
+      else
         result+="dokumentasjonen:";
       return result;
     }
 
     /*! This is an introduction to the page with the list of all header files. */
     virtual QCString trHeaderFilesDescription()
-    { return "Her er alle header-filene som utgjør API'et:"; }
+    { return "Her er alle header-filene som utgjør API'et:"; }
 
     /*! This is an introduction to the page with the list of all examples */
     virtual QCString trExamplesDescription()
@@ -344,37 +338,37 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     { return "Her er en liste over alle moduler:"; }
 
     /*! This sentences is used in the annotated class/file lists if no brief
-     * description is given. 
+     * description is given.
      */
     virtual QCString trNoDescriptionAvailable()
     { return "Ingen beskrivelse tilgjengelig"; }
-    
-    // index titles (the project name is prepended for these) 
+
+    // index titles (the project name is prepended for these)
 
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
     { return "Dokumentasjon"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "Modulindeks"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "Hierarkisk indeks"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "Datastrukturindeks";
       }
       else
@@ -386,7 +380,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "Filindeks"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
@@ -399,14 +393,14 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Datastrukturdokumentasjon";
       }
       else
       {
-        return "Klassedokumentasjon"; 
+        return "Klassedokumentasjon";
       }
     }
 
@@ -431,136 +425,118 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
     { return "Referansemanual"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "Definisjoner"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Funksjonprototyper"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "Typedef'er"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
     { return "Enumerasjoner"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "Funksjoner"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "Variabler"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
     { return "Enumerasjonsverdier"; }
-    
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
     { return "Define-dokumentasjon"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Funksjonsprototypedokumentasjon"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
     { return "Typedef-dokumentasjon"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
     { return "Enumerasjontype dokumentasjon"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
     { return "Enumerasjonsverdi dokumentasjon"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
     { return "Funksjonsdokumentasjon"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
     { return "Variabeldokumentasjon"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Datastrukturer"; 
+        return "Datastrukturer";
       }
       else
       {
-        return "Klasser"; 
+        return "Klasser";
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"Generert "+date;
       if (projName) result+=(QCString)" for "+projName;
       result+=(QCString)" av";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "skrevet av";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
       return (QCString)"Arvediagram for "+clName+":";
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
     { return "Kun for intern bruk."; }
 
     /*! this text is generated when the \\reimp command is used. */
     virtual QCString trReimplementedForInternalReasons()
-    { return "Reimplementert av interne grunner; API er ikke påvirket."; }
+    { return "Reimplementert av interne grunner; API er ikke påvirket."; }
 
     /*! this text is generated when the \\warning command is used. */
     virtual QCString trWarning()
@@ -584,7 +560,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
 
     /*! this text is generated when the \\sa command is used. */
     virtual QCString trSeeAlso()
-    { return "Se også"; }
+    { return "Se også"; }
 
     /*! this text is generated when the \\param command is used. */
     virtual QCString trParameters()
@@ -593,7 +569,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
     { return "Unntak"; }
-    
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
     { return "Generert av"; }
@@ -601,7 +577,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
     { return "Navneromsliste"; }
@@ -620,17 +596,17 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
      */
     virtual QCString trFriends()
     { return "Venner"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
     { return "Venner og relatert funksjonsdokumentasjon"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -672,7 +648,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
       result+=" navneromsreferanse";
       return result;
     }
-    
+
     virtual QCString trPublicMembers()
     { return "Public medlemsfunksjoner"; }
     virtual QCString trPublicSlots()
@@ -693,7 +669,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     { return "Private slots"; }
     virtual QCString trStaticPrivateMembers()
     { return "Statiske private medlemsfunksjoner"; }
-    
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -702,23 +678,23 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=", og ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -735,7 +711,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
       return "Arvet av "+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
@@ -757,17 +733,17 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Her er en liste over alle ";
       if (!extractAll) result+="dokumenterte ";
       result+="navneromsmedlemmer med koblinger til ";
-      if (extractAll) 
+      if (extractAll)
         result+="navneromsdokumentasjonen for hvert medlem:";
-      else 
-        result+="navnerommet de hører til:";
+      else
+        result+="navnerommet de hører til:";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -812,17 +788,11 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
         case ClassDef::Category:   result+="denne category"; break;
         default: break;
       }
-      result+=" ble generert fra følgende fil";
+      result+=" ble generert fra følgende fil";
       if (single) result+=":"; else result+="er:";
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Alfabetisk Liste"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -836,7 +806,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     virtual QCString trMainPage()
     { return "Hovedside"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -852,7 +822,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     }
     virtual QCString trDefinedAtLineInSourceFile()
     {
-      return "Definisjon på linje @0 i filen @1.";
+      return "Definisjon på linje @0 i filen @1.";
     }
     virtual QCString trDefinedInSourceFile()
     {
@@ -886,22 +856,22 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Konstruktør- & destruktør-dokumentasjon";
+      return "Konstruktør- & destruktør-dokumentasjon";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
     {
-      return "Gå til kildekoden til denne filen.";
+      return "Gå til kildekoden til denne filen.";
     }
     /*! Used in the file sources to point to the corresponding documentation. */
     virtual QCString trGotoDocumentation()
     {
-      return "Gå til dokumentasjonen til denne filen.";
+      return "Gå til dokumentasjonen til denne filen.";
     }
     /*! Text for the \\pre command */
     virtual QCString trPrecondition()
     {
-      return "Forhåndsbetingelse";
+      return "Forhåndsbetingelse";
     }
     /*! Text for the \\post command */
     virtual QCString trPostcondition()
@@ -929,11 +899,11 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     }
     virtual QCString trGotoGraphicalHierarchy()
     {
-      return "Gå til det grafiske klasse hierarkiet";
+      return "Gå til det grafiske klasse hierarkiet";
     }
     virtual QCString trGotoTextualHierarchy()
     {
-      return "Gå til tekst-klassehierarki";
+      return "Gå til tekst-klassehierarki";
     }
     virtual QCString trPageIndex()
     {
@@ -943,7 +913,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
       return "Notat";
@@ -1032,7 +1002,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     {
       return "Siden";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -1045,17 +1015,17 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     /*! page explaining how the dot graph's should be interpreted */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
        "Denne siden forklarer hvordan man tolker grafene doxygen genererer.<p>\n"
-       "Vi baserer oss på følgende eksempel:\n"
-        "\\code\n" 
-        "/*! Usynlig klasse pga. trunkasjon */\n" 
-        "class Invisible { };\n\n" 
+       "Vi baserer oss på følgende eksempel:\n"
+        "\\code\n"
+        "/*! Usynlig klasse pga. trunkasjon */\n"
+        "class Invisible { };\n\n"
         "/*! Trunkert klasse, arve-relasjon er skjult */\n"
-        "class Truncated : public Invisible { };\n\n" 
+        "class Truncated : public Invisible { };\n\n"
         "/* Klasse som ikke er dokumentert med doxygen-kommentarer */"
-        "class Undocumented { };\n\n" 
-        "/*! Klasse med public-arv */\n" 
+        "class Undocumented { };\n\n"
+        "/*! Klasse med public-arv */\n"
         "class PublicBase : public Truncated { };\n\n"
         "/*! A template class */\n"
         "template<class T> class Templ { };\n\n"
@@ -1063,7 +1033,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
         "class ProtectedBase { };\n\n"
         "/*! Klasse med private-arv */\n"
         "class PrivateBase { };\n\n"
-        "/*! Klasse som blir brukt av klassen Inherited */\n" 
+        "/*! Klasse som blir brukt av klassen Inherited */\n"
         "class Used { };\n\n"
         "/*! Super-klasse som arver flere andre klasser */\n"
         "class Inherited : public PublicBase,\n"
@@ -1075,26 +1045,26 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
         "  private:\n"
         "    Used *m_usedClass;\n"
         "};\n"
-        "\\endcode\n" 
+        "\\endcode\n"
         "Hvis \\c MAX_DOT_GRAPH_HEIGHT er satt til 200 i "
-        "konfigurasjonsfila vil dette resultere i følgende graf:"
+        "konfigurasjonsfila vil dette resultere i følgende graf:"
         "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
         "<p>\n"
-        "Boksene i grafen over betyr følgende:\n"
+        "Boksene i grafen over betyr følgende:\n"
         "<ul>\n"
         "<li>En fylt svart boks representerer klassen grafen "
         "er generert for.\n"
        "<li>En boks med svart ramme angir en dokumentert struct eller klasse.\n"
-       "<li>En boks med grå ramme angir en udokumentert struct eller klasse.\n"
-       "<li>En boks med rød ramme angir en dokumentert struct eller klasse "
+       "<li>En boks med grå ramme angir en udokumentert struct eller klasse.\n"
+       "<li>En boks med rød ramme angir en dokumentert struct eller klasse "
        "der ikke alle relasjoner er vist. En graf blir trunkert om den ikke "
        "passer innenfor de spesifiserte rammene.\n"
        "</ul>\n"
-       "Pilene i grafen har følgende betydning:\n"
+       "Pilene i grafen har følgende betydning:\n"
        "</ul>\n"
-       "<li>En mørk blå pil brukes til å visualisere public-arv mellom to klasser.\n"
-       "<li>En mørk grønn pil brukes for protected-arv.\n"
-       "<li>En mørk rød pil angir private-arv.\n"
+       "<li>En mørk blå pil brukes til å visualisere public-arv mellom to klasser.\n"
+       "<li>En mørk grønn pil brukes for protected-arv.\n"
+       "<li>En mørk rød pil angir private-arv.\n"
        "<li>En stiplet lilla pil angir at en klasse er inkludert eller brukt "
        "i en annen klasse. Pilen er merket med variablen(e) klassen "
        "er tilgjengelig gjennom.\n"
@@ -1105,11 +1075,11 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     {
       return "symbolforklaring";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1125,16 +1095,6 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
 // new since 1.2.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP-metoder";
-    }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
     /*! Used as a section header for IDL properties */
     virtual QCString trProperties()
     {
@@ -1197,11 +1157,11 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     {
       return "Verdi:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1217,9 +1177,9 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1240,15 +1200,15 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1252";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1261,93 +1221,93 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     {
       return "Indeks";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Klasse" : "klasse"));
       if (!singular)  result+="r";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Fil" : "fil"));
       if (!singular)  result+="er";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Navnerom" : "navnerom"));
       if (!singular)  result+="";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Gruppe" : "gruppe"));
       if (!singular)  result+="r";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Side" : "side"));
       if (!singular)  result+="r";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Medlem" : "medlem"));
       if (!singular)  result+="mer";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trField(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Felt" : "felt"));
       if (!singular)  result+="";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Global" : "global"));
       if (!singular)  result+="e";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1357,10 +1317,10 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Forfatter" : "forfatter"));
       if (!singular)  result+="e";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1378,7 +1338,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1410,8 +1370,8 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1422,7 +1382,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1442,43 +1402,43 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Pakketyper";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Pakkefunksjoner";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Statiske Pakkefunksjoner";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Pakkeattributter";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Statiske Pakkeattributter";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1495,26 +1455,18 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Søk etter";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
     virtual QCString trSearchResultsTitle()
     {
-      return "Søkeresultater";
+      return "Søkeresultater";
     }
     /*! This string is put just before listing the search results. The
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1526,15 +1478,15 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
       }
       else if (numDocuments==1)
       {
-        return "Fant <b>ett</b> dokument som passet ditt søk.";
+        return "Fant <b>ett</b> dokument som passet ditt søk.";
       }
-      else 
+      else
       {
-        return "Fant <b>$num</b> dokumenter som passet ditt søk. "
-               "Viser beste treff først.";
+        return "Fant <b>$num</b> dokumenter som passet ditt søk. "
+               "Viser beste treff først.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1575,12 +1527,12 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
     virtual QCString trDirectories()
     { return "Kataloger"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
     { return "Denne katalogen er grovsortert alfabetisk "
-             "(ikke nødvendigvis korrekt).";
+             "(ikke nødvendigvis korrekt).";
     }
 
     /*! This returns the title of a directory page. The name of the
@@ -1593,10 +1545,10 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Katalog" : "katalog"));
       if (!singular) result+="er";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
index b1e90ce..d819f66 100644 (file)
@@ -5,8 +5,8 @@
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -27,12 +27,12 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. May resemble 
+
+    /*! Used for identification of the language. May resemble
      * the string returned by latexBabelPackage(), but it is not used
      * for the same purpose. The identification should not be translated.
      * It should be replaced by the name of the language in English
-     * (e.g. Czech, Japanese, Russian, etc.). It should be equal to 
+     * (e.g. Czech, Japanese, Russian, etc.). It should be equal to
      * the identification in language.h.
      */
     QCString idLanguage()
@@ -48,12 +48,6 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
              "\\usepackage[T1]{fontenc}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-        return "utf-8"; 
-    }
-    
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -71,30 +65,30 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     /*! header that is put before the list of typedefs. */
     QCString trMemberTypedefDocumentation()
     { return "Dokumentacja składowych definicji typu"; }
-    
+
     /*! header that is put before the list of enumerations. */
     QCString trMemberEnumerationDocumentation()
     { return "Dokumentacja składowych wyliczanych"; }
-    
+
     /*! header that is put before the list of member functions. */
     QCString trMemberFunctionDocumentation()
     { return "Dokumentacja funkcji składowych"; }
-    
+
     /*! header that is put before the list of member attributes. */
     QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Dokumentacja pól"; 
+        return "Dokumentacja pól";
       }
       else
       {
-        return "Dokumentacja atrybutów składowych"; 
+        return "Dokumentacja atrybutów składowych";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    QCString trMore() 
+    QCString trMore()
     { return "Więcej..."; }
 
     /*! put in the class documentation */
@@ -112,54 +106,54 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     /*! this is the remainder of the sentence after the class name */
     QCString trIncludingInheritedMembers()
     { return ", uwzględniająca wszystkie dziedziczone składowe."; }
-    
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     QCString trGeneratedAutomatically(const char *s)
     { QCString result="Wygenerowano automatycznie z kodu źródłowego programem Doxygen";
       if (s) result+=(QCString)" dla "+s;
-      result+="."; 
+      result+=".";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     QCString trEnumName()
     { return "nazwa wyliczenia"; }
-    
+
     /*! put after an enum value in the list of all members */
     QCString trEnumValue()
     { return "wartość wyliczenia"; }
-    
+
     /*! put after an undocumented member in the list of all members */
     QCString trDefinedIn()
     { return "zdefiniowana w"; }
-    
+
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     QCString trModules()
     { return "Moduły"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     QCString trClassHierarchy()
     { return "Hierarchia klas"; }
-    
+
     /*! This is put above each page as a link to the list of annotated classes */
     QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Struktury danych";
       }
       else
       {
-        return "Lista klas"; 
+        return "Lista klas";
       }
-    }   
-    
+    }
+
     /*! This is put above each page as a link to the list of documented files */
     QCString trFileList()
     { return "Lista plików"; }
@@ -170,27 +164,27 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
 
     /*! This is put above each page as a link to all members of compounds. */
     QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Pola danych"; 
+        return "Pola danych";
       }
       else
       {
-        return "Składowe klas"; 
+        return "Składowe klas";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Globalne"; 
+        return "Globalne";
       }
       else
       {
-        return "Składowe plików"; 
+        return "Składowe plików";
       }
     }
 
@@ -223,16 +217,16 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
 
     /*! This is an introduction to the annotated compound list. */
     QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Tutaj znajdują się struktury danych wraz z ich krótkimi opisami:"; 
+        return "Tutaj znajdują się struktury danych wraz z ich krótkimi opisami:";
       }
       else
       {
         return "Tutaj znajdują się klasy, struktury, "
-             "unie i interfejsy wraz z ich krótkimi opisami:"; 
+             "unie i interfejsy wraz z ich krótkimi opisami:";
       }
     }
 
@@ -253,7 +247,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
         result+="składowych";
       }
       result+=" wraz z odnośnikami do ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -264,7 +258,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
           result+="dokumentacji klas dla każdej składowej:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -292,9 +286,9 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
         result+="składowych plików";
       }
       result+=" wraz z odnośnikami do ";
-      if (extractAll) 
+      if (extractAll)
         result+="plików, do których one należą:";
-      else 
+      else
         result+="dokumentacji:";
       return result;
     }
@@ -316,49 +310,49 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     { return "Tutaj znajduje się lista wszystkich grup:"; }
 
     /*! This sentences is used in the annotated class/file lists if no brief
-     * description is given. 
+     * description is given.
      */
     QCString trNoDescriptionAvailable()
     { return "Brak opisu"; }
-    
-    // index titles (the project name is prepended for these) 
+
+    // index titles (the project name is prepended for these)
 
 
     /*! This is used in HTML as the title of index.html. */
     QCString trDocumentation()
     { return "Dokumentacja"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     QCString trModuleIndex()
     { return "Indeks grup"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     QCString trHierarchicalIndex()
     { return "Indeks hierarchiczny"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     QCString trCompoundIndex()
     {
      if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "Indeks struktur danych";
       }
       else
       {
-        return "Indeks klas"; 
+        return "Indeks klas";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    QCString trFileIndex() 
+    QCString trFileIndex()
     { return "Indeks plików"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
@@ -371,14 +365,14 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
      *  the documentation of all classes, structs and unions.
      */
     QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Dokumentacja struktur danych"; 
+        return "Dokumentacja struktur danych";
       }
       else
       {
-        return "Dokumentacja klas"; 
+        return "Dokumentacja klas";
       }
     }
 
@@ -403,123 +397,105 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     /*! This is used in LaTeX as the title of the document */
     QCString trReferenceManual()
     { return "Podręcznik"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     QCString trDefines()
     { return "Definicje"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    QCString trFuncProtos()
-    { return "Prototypy funkcji"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     QCString trTypedefs()
     { return "Definicje typów"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     QCString trEnumerations()
     { return "Wyliczenia"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     QCString trFunctions()
     { return "Funkcje"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     QCString trVariables()
     { return "Zmienne"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     QCString trEnumerationValues()
     { return "Wartości wyliczeń"; }
-    
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     QCString trDefineDocumentation()
     { return "Dokumentacja definicji"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    QCString trFunctionPrototypeDocumentation()
-    { return "Dokumentacja prototypów funkcji"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     QCString trTypedefDocumentation()
     { return "Dokumentacja definicji typów"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     QCString trEnumerationTypeDocumentation()
     { return "Dokumentacja typów wyliczanych"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     QCString trFunctionDocumentation()
     { return "Dokumentacja funkcji"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     QCString trVariableDocumentation()
     { return "Dokumentacja zmiennych"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Struktury danych"; 
+        return "Struktury danych";
       }
       else
       {
-        return "Komponenty"; 
+        return "Komponenty";
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"Wygenerowano "+date;
       if (projName) result+=(QCString)" dla "+projName;
       result+=(QCString)" programem";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    QCString trWrittenBy()
-    {
-      return "napisanym przez";
-    }
 
     /*! this text is put before a class diagram */
     QCString trClassDiagram(const char *clName)
     {
       return (QCString)"Diagram dziedziczenia dla "+clName;
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     QCString trForInternalUseOnly()
     { return "Tylko do użytku wewnętrznego."; }
@@ -559,13 +535,13 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     /*! this text is generated when the \\exception command is used. */
     QCString trExceptions()
     { return "Wyjątki"; }
-    
+
     /*! this text is used in the title page of a LaTeX document. */
     QCString trGeneratedBy()
     { return "Wygenerowano przez"; }
 
     // new since 0.49-990307
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     QCString trNamespaceList()
     { return "Lista przestrzeni nazw"; }
@@ -584,17 +560,17 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
      */
     QCString trFriends()
     { return "Przyjaciele"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     QCString trRelatedFunctionDocumentation()
     { return "Dokumentacja przyjaciół i funkcji związanych"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -625,7 +601,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     QCString trFileReference(const char *fileName)
     {
       QCString result="Dokumentacja pliku ";
-      result+=fileName; 
+      result+=fileName;
       return result;
     }
 
@@ -636,7 +612,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
       result+=namespaceName;
       return result;
     }
-    
+
     /* these are for the member sections of a class, struct or union */
     QCString trPublicMembers()
     { return "Metody publiczne"; }
@@ -658,7 +634,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     { return "Sloty prywatne"; }
     QCString trStaticPrivateMembers()
     { return "Statyczne metody prywatne"; }
-    
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -667,23 +643,23 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=" i ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -700,7 +676,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
       return "Dziedziczona przez "+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     QCString trReimplementedFromList(int numEntries)
@@ -722,17 +698,17 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
 
     /*! This is an introduction to the page with all namespace members */
     QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Tutaj znajduje się lista wszystkich ";
       if (!extractAll) result+="udokumentowanych ";
       result+="składowych wraz z odnośnikami do ";
-      if (extractAll) 
+      if (extractAll)
         result+="dokumentacji przestrzeni nazw dla każdej składowej:";
-      else 
+      else
         result+="przestrzeni nazw do których składowe te należą:";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     QCString trNamespaceIndex()
@@ -782,12 +758,6 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    QCString trAlphabeticalList()
-    { return "Lista alfabetyczna"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -801,7 +771,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     QCString trMainPage()
     { return "Strona główna"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     QCString trPageAbbreviation()
@@ -850,7 +820,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     /*! header that is put before the list of constructor/destructors. */
     QCString trConstructorDocumentation()
     {
-      return "Dokumentacja konstruktora i destruktora"; 
+      return "Dokumentacja konstruktora i destruktora";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     QCString trGotoSourceCode()
@@ -907,7 +877,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     QCString trNote()
     {
       return "Nota";
@@ -1009,7 +979,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     /*! page explaining how the dot graph's should be interpreted */
     QCString trLegendDocs()
     {
-      return 
+      return
         "Ta strona wyjaśnia jak interpretować wykresy, które są wygenerowane "
         "przez doxygen.<p>\n"
         "Rozważ następujący przykład:\n"
@@ -1088,15 +1058,6 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     {
       return "Lista testu";
     }
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "Metody DCOP";
-    }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
@@ -1167,7 +1128,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1188,7 +1149,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     {
       return "1250";
     }
-    
+
     /*! Used as ansicpg for RTF fcharset */
     virtual QCString trRTFCharSet()
     {
@@ -1200,94 +1161,94 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     {
       return "Indeks";
     }
-                                                                          
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Klas" : "klas"));
       result+=(singular ? "a" : "y");
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Plik" : "plik"));
       if (!singular)  result+="i";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Przestrze" : "przestrze"));
       result+=(singular ? "ń" : "nie");
       result+=" nazw";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Grupa" : "grupa"));
       result+=(singular ? "a" : "y");
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Stron" : "stron"));
       result+=(singular ? "a" : "y");
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Składow" : "składow"));
       result+=(singular ? "a" : "e");
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trField(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Pol" : "pol"));
       result+=(singular ? "e" : "a");
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Global" : "global"));
       result+=(singular ? "ny" : "ne");
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1297,10 +1258,10 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Auto" : "auto"));
       result += (singular) ? "r" : "rzy";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1314,18 +1275,18 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
       return "Odwołuje się do";
     }
 
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
-    
 
-    virtual QCString trImplementedFromList(int numEntries) 
-    { 
+
+    virtual QCString trImplementedFromList(int numEntries)
+    {
       return "Implementuje "+trWriteList(numEntries)+".";
     }
 
-    virtual QCString trImplementedInList(int numEntries) 
+    virtual QCString trImplementedInList(int numEntries)
     {
       return "Implementowany w "+trWriteList(numEntries)+".";
     }
@@ -1346,8 +1307,8 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1358,7 +1319,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1378,43 +1339,43 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Typy pakietu";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Funkcje pakietu";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Statyczne funkcje pakietu";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Atrybuty pakietu";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Statyczne atrybuty pakietu";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1431,14 +1392,6 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Szukaj";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1450,7 +1403,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1470,13 +1423,13 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
         return "Znaleziono <b>$num</b> dokumenty pasujące do twojego zapytania. "
                "Najlepiej pasujące dokumenty wyświetlane są na początku listy.";
       }
-      else 
+      else
       {
         return "Znaleziono <b>$num</b> dokumentów pasujących do twojego zapytania. "
                "Najlepiej pasujące dokumenty wyświetlane są na początku listy.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1517,11 +1470,11 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     virtual QCString trDirectories()
     { return "Katalogi"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
-    { 
+    {
       return "Ta struktura katalogów jest posortowana jest z grubsza, "
              "choć nie całkowicie, alfabetycznie:";
     }
@@ -1536,10 +1489,10 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Katalog" : "katalog"));
       if (! singular) result+="i";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1552,9 +1505,9 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     virtual QCString trOverloadText()
     {
       return "To jest metoda przeciążona, udostępniona dla wygody. "
-             "Różni się od powyższej metody tylko zestawem akceptowanych argumentów.";               
+             "Różni się od powyższej metody tylko zestawem akceptowanych argumentów.";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.4.6
 //////////////////////////////////////////////////////////////////////////
@@ -1565,7 +1518,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
       return "Oto graf wywoływań tej funkcji:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
@@ -1574,12 +1527,12 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Dokumentacja składowej funkcji/podprogramu"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Lista typów danych"; }
 
@@ -1601,18 +1554,18 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
       }
       result+="składowych typów danych";
       result+=" wraz z odnośnikami do ";
-      if (!extractAll) 
-      {                                 
+      if (!extractAll)
+      {
          result+="dokumentacji struktury danych dla każdej składowej";
       }
-      else 
+      else
       {
          result+="typów danych, do których dana składowa należy:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1624,24 +1577,24 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     virtual QCString trTypeDocumentation()
     { return "Dokumentacja typów danych"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Funkcje/podprogramy"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Dokumentacja funkcji/podprogramu"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Typy danych"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Lista modułów"; }
@@ -1678,48 +1631,48 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     }
     /*! used as the title of the HTML page of a module (Fortran) */
     virtual QCString trModuleReference(const char *namespaceName)
-    {      
+    {
       QCString result="Dokumentacja modułu ";
-      result+=namespaceName; 
+      result+=namespaceName;
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Składowe modułu"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Tutaj znajduje się lista wszystkich ";
       if (!extractAll) result+="udokumentowanych ";
       result+="składowych modułów wraz z odnośnikami do ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="dokumentacji modułu dla każdej składowej:";
       }
-      else 
+      else
       {
         result+="modułów do których składowe te należą:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Indeks modułu"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Moduł" : "moduł"));
       if (!singular)  result+="y";
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1745,24 +1698,24 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Typ" : "typ"));
       if (!singular)  result+="y";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Podprogram" : "podprogram"));
       if (!singular)  result+="y";
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
@@ -1804,17 +1757,11 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     {
       return "Brak dopasowań";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Wykres zależności katalogu dla "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1833,7 +1780,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
       return (QCString)"Zawiera plik w "+name;
     }
 
-    /** Compiles a date string. 
+    /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
      *  @param day Day of the Month: 1..31
@@ -1907,8 +1854,8 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
     virtual QCString trInheritedFrom(const char *members,const char *what)
     { return QCString(members)+" dziedziczone z "+what; }
 
-    /*! Header of the sections with inherited members specific for the 
-     *  base class(es) 
+    /*! Header of the sections with inherited members specific for the
+     *  base class(es)
      */
     virtual QCString trAdditionalInheritedMembers()
     { return "Dodatkowe Dziedziczone Składowe"; }
index 5130fcf..8e91181 100644 (file)
@@ -11,7 +11,7 @@
  * input used in their production; they are not affected by this license.
  *
  * Portuguese translation version 20110428
- *    Maintainer (from 04/28/2011): 
+ *    Maintainer (from 04/28/2011):
  *       Fabio "FJTC" Jun Takada Chino <jun-chino at uol.com.br>
  *    Maintainer (until 04/28/2011):
  *       Rui Godinho Lopes <rui at ruilopes.com>
  * ---------------
  * History:
  * 20110628:
- *     - Updated to 1.7.5; 
+ *     - Updated to 1.7.5;
  *      - All obsolete methods have been removed;
  * 20110428
- *   - Updated to doxygen 1.6.3 using the Brazilian Portuguese as the base. 
+ *   - Updated to doxygen 1.6.3 using the Brazilian Portuguese as the base.
  *     Requires revision by a Portuguese (Portugal native speaker);
  * 007 09 june 2003
  *   ! Updated for doxygen v1.3.1
@@ -58,18 +58,18 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
 
     // --- Language control methods -------------------
 
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     QCString idLanguage()
     { return "portuguese"; }
 
-    /*! Used to get the LaTeX command(s) for the language support. 
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -77,17 +77,13 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
     virtual QCString latexLanguageSupportCommand()
     { return "Portuguese"; }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    { return "utf-8"; }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -119,7 +115,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Documentação dos campos e atributos"; 
+        return "Documentação dos campos e atributos";
       }
       else
       {
@@ -251,7 +247,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
 
     /*! This is an introduction to the annotated compound list. */
     QCString trCompoundListDescription()
-    {       
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Lista das estruturas de dados com uma breve descrição:";
@@ -279,7 +275,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
         result+=" documentadas";
       }
       result+=" com referência para ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -290,7 +286,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
           result+="a documentação de cada membro:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -319,9 +315,9 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
         if (!extractAll) result+="documentados ";
       }
       result+="com referência para ";
-      if (extractAll) 
+      if (extractAll)
         result+="o ficheiro a que pertecem:";
-      else 
+      else
         result+="a respectiva documentação:";
       return result;
     }
@@ -363,7 +359,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
     QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "Índice das estruturas de dados";
       }
       else
@@ -419,12 +415,6 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
     { return "Macros"; }
 
     /*! This is used in the documentation of a file as a header before the
-     *  list of function prototypes
-     */
-    QCString trFuncProtos()
-    { return "Protótipos de funções"; }
-
-    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     QCString trTypedefs()
@@ -461,12 +451,6 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
     { return "Documentação das macros"; }
 
     /*! This is used in the documentation of a file/namespace before the list
-     *  of documentation blocks for function prototypes
-     */
-    QCString trFunctionPrototypeDocumentation()
-    { return "Documentação dos protótipos de funções"; }
-
-    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     QCString trTypedefDocumentation()
@@ -515,12 +499,6 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
       result+=(QCString)" por";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    QCString trWrittenBy()
-    {
-      return "escrito por";
-    }
 
     /*! this text is put before a class diagram */
     QCString trClassDiagram(const char *clName)
@@ -787,15 +765,6 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    {
-      return "Lista alfabética";
-    }
-
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -1089,16 +1058,6 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "Métodos DCOP";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1324,7 +1283,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1368,7 +1327,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1388,43 +1347,43 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Tipos do Pacote";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Funções do Pacote";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Funções Estáticas do Pacote";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Atributos do Pacote";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Atributos Estáticos do Pacote";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1436,19 +1395,11 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
     {
       return "Grafo de chamadas desta função:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.3 - Based on the Brazilian Portuguese Translation
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header
-     *  of each page before the field where one can enter the text to search
-     *  for.
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Procurar por";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1487,7 +1438,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
     {
       return "Resultados:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.8
 //////////////////////////////////////////////////////////////////////////
@@ -1521,7 +1472,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
     virtual QCString trDirectories()
     { return "Diretórios"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1541,10 +1492,10 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Diretório" : "diretório"));
       if (!singular) result+="s";
-      return result; 
+      return result;
     }
 //////////////////////////////////////////////////////////////////////////
 // new since 1.4.1
@@ -1558,7 +1509,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
        return "Este é um método provido por conveniência. "
                        "Ele difere do método acima apenas na lista de "
                        "argumentos que devem ser utilizados.";
-    }    
+    }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.4.6
@@ -1570,22 +1521,22 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
       return "Este é o diagrama das funções que utilizam esta função:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
     { return "Documentação da enumeração"; }
 
-  
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Documentação de Função Membro/Subrotina"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Lista de Tipos de Dados"; }
 
@@ -1603,18 +1554,18 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
       QCString result="Esta é a lista de todos os membros ";
       if (!extractAll) result+="documentados ";
       result+="dos tipos de dados com links para ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="a documentação dos tipos de dados para cada membro:";
       }
-      else 
+      else
       {
         result+="os tipos de dados a que pertencem:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1626,24 +1577,24 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
     virtual QCString trTypeDocumentation()
     { return "Documentação dos Tipos de Dados"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Funções/Subrotinas"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Documentação da Função/Subrotina"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Tipos de Dados"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Lista de Módulos"; }
@@ -1665,7 +1616,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
       QCString result = (QCString)"Referência ";
 
       if (isTemplate) result+="da Template ";
-      
+
       switch(compType)
       {
         case ClassDef::Class:      result+="do Modulo "; break;
@@ -1677,54 +1628,54 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
         case ClassDef::Exception:  result+="da Exceção "; break;
         default: break;
       }
-      result += clName; 
-     
+      result += clName;
+
       return result;
     }
     /*! used as the title of the HTML page of a module (Fortran) */
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result = "Referência do Módulo ";
-      result += namespaceName;        
+      result += namespaceName;
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Membros do Módulo"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Esta é a lista de todos os membros ";
       if (!extractAll) result+="documentados ";
       result+="dos módulos com links para ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="a documentação dos módulos para cada membro:";
       }
-      else 
+      else
       {
         result+="os módulos a que pertencem:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Índice dos Módulos"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Modulo" : "modulo"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1745,41 +1696,41 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
         case ClassDef::Exception:  result+="esta exceção "; break;
         default: break;
       }
-      
+
       result+=" foi gerada a partir do";
-      if (single) 
+      if (single)
        result+=" seguinte ficheiro:";
       else
        result+="s seguintes ficheiros:";
-      
+
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Tipo" : "tipo"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Subprograma" : "subprograma"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! C# Type Contraint list */
     virtual QCString trTypeConstraints()
     {
       return "Restrições do Tipo";
-    }    
+    }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.6.0 (mainly for the new search engine)
@@ -1820,12 +1771,6 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Grafo de dependência de diretórios para " + name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1844,7 +1789,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
       return (QCString)"Inclui ficheiro em "+name;
     }
 
-    /** Compiles a date string. 
+    /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
      *  @param day Day of the Month: 1..31
@@ -1870,7 +1815,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
       }
       return sdate;
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.7.5
 //////////////////////////////////////////////////////////////////////////
@@ -1889,7 +1834,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
 
     /*! Header for the graph showing the directory dependencies */
     virtual QCString trDirDepGraph(const char *name)
-    { return QCString("Grafo de dependências do directório ")+name+":"; }       
+    { return QCString("Grafo de dependências do directório ")+name+":"; }
 };
 
 #endif
index 70da281..86240c1 100644 (file)
@@ -75,12 +75,6 @@ class TranslatorRomanian : public Translator
       return "\\usepackage[romanian]{babel}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -436,12 +430,6 @@ class TranslatorRomanian : public Translator
     { return "Definiţii"; }
 
     /*! This is used in the documentation of a file as a header before the
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Prototipuri de funcţii"; }
-
-    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
@@ -478,12 +466,6 @@ class TranslatorRomanian : public Translator
     { return "Documentaţia definiţiilor"; }
 
     /*! This is used in the documentation of a file/namespace before the list
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Documentaţia prototipurilor de funcţii"; }
-
-    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
@@ -533,12 +515,6 @@ class TranslatorRomanian : public Translator
       result+=(QCString)" de către";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "scris de";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
@@ -803,12 +779,6 @@ class TranslatorRomanian : public Translator
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Listă Alfabetică"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -1106,16 +1076,6 @@ class TranslatorRomanian : public Translator
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "Metode DCOP";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1458,14 +1418,6 @@ class TranslatorRomanian : public Translator
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header
-     *  of each page before the field where one can enter the text to search
-     *  for.
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Caută";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1835,12 +1787,6 @@ class TranslatorRomanian : public Translator
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Grafic de dependență a directoarelor pentru "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
index 5c8295a..7bd40f1 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -36,13 +36,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     /* Used to get the command(s) for the language support. */
     virtual QCString latexLanguageSupportCommand()
     {
-        return "\\usepackage[T2A]{fontenc}\n\\usepackage[russian]{babel}\n"; 
-    }
-
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-        return "utf-8"; 
+        return "\\usepackage[T2A]{fontenc}\n\\usepackage[russian]{babel}\n";
     }
 
     // --- Language translation methods -------------------
@@ -118,7 +112,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result="Автоматически создано Doxygen";
       if (s) result+=QCString(" для ")+s;
-      result+=" из исходного текста."; 
+      result+=" из исходного текста.";
       return result;
     }
 
@@ -136,7 +130,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
@@ -285,26 +279,26 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     virtual QCString trModulesDescription()
     { return "Полный список групп."; }
 
-    // index titles (the project name is prepended for these) 
+    // index titles (the project name is prepended for these)
 
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
     { return "Документация"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "Алфавитный указатель групп"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "Иерархический список классов"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
@@ -368,43 +362,37 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     virtual QCString trReferenceManual()
     { return "Оглавление"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "Макросы"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Прототипы функций"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "Определения типов"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
     { return "Перечисления"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "Функции"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "Переменные"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
@@ -416,37 +404,31 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     virtual QCString trDefineDocumentation()
     { return "Макросы"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Прототипы функций"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
     { return "Типы"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
     { return "Перечисления"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
     { return "Функции"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
     { return "Переменные"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
@@ -456,32 +438,26 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
         return "Структуры данных";
       }
       else
-      { 
+      {
         return "Классы";
       }
 
     }
 
-    /*! This is used in the documentation of a group before the list of 
+    /*! This is used in the documentation of a group before the list of
      *  links to documented files
      */
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result="Документация ";
       if (projName) result+=QCString("по ")+projName;
       result+=QCString(". Последние изменения: ")+date;
       result+=". Создано системой";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "Автор:";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
@@ -524,11 +500,11 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
     { return "Создано системой"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
-// new since 0.49-990307 
+// new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
     { return "Пространства имен"; }
@@ -551,14 +527,14 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
     { return "Документация по друзьям класса и функциям, отноносящимся"
         " к классу"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -569,7 +545,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
                                  bool isTemplate)
     {
       QCString result;
-      if (isTemplate) 
+      if (isTemplate)
       {
         result="Шаблон ";
         switch(compType)
@@ -613,7 +589,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     {
       return QCString("Пространство имен ")+namespaceName;
     }
-    
+
     virtual QCString trPublicMembers()
     { return "Открытые члены"; }
     virtual QCString trPublicSlots()
@@ -634,7 +610,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     { return "Закрытые слоты"; }
     virtual QCString trStaticPrivateMembers()
     { return "Закрытые статические члены"; }
-    
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -643,23 +619,23 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=" и ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -676,7 +652,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
       return "Производные классы:"+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
@@ -710,7 +686,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -746,10 +722,10 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
       QCString result=QCString("Объявления и описания членов ");
       switch(compType)
       {
-        case ClassDef::Class:      result+="класс"; 
+        case ClassDef::Class:      result+="класс";
           if (single) result+="а"; else result+="ов";
           break;
-        case ClassDef::Struct:     result+="структур"; 
+        case ClassDef::Struct:     result+="структур";
           if (single) result+="ы";
           break;
         case ClassDef::Union:      result+="объединени";
@@ -767,7 +743,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
         case ClassDef::Exception:  result+="исключени";
           if (single) result+="я"; else result+="й";
           break;
-        default: 
+        default:
           break;
       }
       result+=" находятся в файл";
@@ -775,12 +751,6 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Алфавитный указатель"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -794,7 +764,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     virtual QCString trMainPage()
     { return "Титульная страница"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -839,7 +809,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Конструктор(ы)"; 
+      return "Конструктор(ы)";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
@@ -896,7 +866,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
       return "Заметки";
@@ -988,7 +958,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     {
       return "Начиная с";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -1001,7 +971,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     /*! page explaining how the dot graph's should be interpreted */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "Обозначения, используемые в графах.<p>\n"
         "Рассмотрим следующий пример:\n"
         "\\code\n"
@@ -1070,7 +1040,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1083,16 +1053,6 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP Методы";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1152,7 +1112,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1184,15 +1144,15 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         QCString result((first_capital ? "Структуры данных" : "структуры данных"));
-        return result; 
+        return result;
       }
       else
       {
@@ -1203,69 +1163,69 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Файл" : "файл"));
       if (!singular)  result+="ы";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Пространств" : "пространств"));
       result+=(singular?"о имен":"а имен");
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Групп" : "групп"));
       result+=(singular ? "а" : "ы");
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Страниц" : "страниц"));
       result+=(singular ? "а" : "ы");
       return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Член" : "член"));
       if (!singular)  result+="ы";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Глобальны" : "глобальны"));
       result+=(singular ? "й" : "е");
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1275,7 +1235,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Автор" : "автор"));
       if (!singular) result+="ы";
       return result;
@@ -1296,7 +1256,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1328,8 +1288,8 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1340,7 +1300,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1360,43 +1320,43 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Типы с областью видимости пакета";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Функции с областью видимости пакета";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Статические функции с областью видимости пакета";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Переменные с областью видимости пакета";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Статические переменные с областью видимости пакета";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1413,14 +1373,6 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Поиск";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1432,7 +1384,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1446,13 +1398,13 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
       {
         return "Найден 1 документ.";
       }
-      else 
+      else
       {
         return "Найден(о) <b>$num</b> документ(ов). "
           "Документы отсортированы по релевантности.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1493,7 +1445,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     virtual QCString trDirectories()
     { return "Алфавитный указатель директорий"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1509,10 +1461,10 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Директори" : "директори"));
       if (singular) result+="я"; else result+="и";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1539,7 +1491,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
       return "Граф вызова функции:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
@@ -1551,12 +1503,12 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
 //////////////////////////////////////////////////////////////////////////
     // Простите переводчика, уже лет 20 не писал на фортране...
     // Любые замечания приму с благодарностью.
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Функции/подпрограммы"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Типы данных"; }
 
@@ -1577,18 +1529,18 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
         result+="документированных ";
       }
       result+="членов типа со ссылками ";
-      if (!extractAll) 
+      if (!extractAll)
       {
        result+="на документацию для каждого члена:";
       }
-      else 
+      else
       {
          result+="на содержащую структуру:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1600,24 +1552,24 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     virtual QCString trTypeDocumentation()
     { return "Оглавление типов данных"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Функции/подпрограммы"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Функции/подпрограммы"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Типы данных"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Указатель модулей"; }
@@ -1637,7 +1589,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
                                     bool isTemplate)
     {
       QCString result=(QCString)clName;
-      if (isTemplate) 
+      if (isTemplate)
       {
        switch(compType)
        {
@@ -1673,43 +1625,43 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
     {
       return QCString("Модуль ") + namespaceName;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Члены модуля"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Список всех ";
       if (!extractAll) result+="документированных ";
       result+="модулей со ссылками ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="на документацию для каждого члена:";
       }
-      else 
+      else
       {
         result+="на модули, их содержащие:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Указатель модулей"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Модул" : "модул"));
-      if (singular)  result+="ь"; else result+="и"; 
-      return result; 
+      if (singular)  result+="ь"; else result+="и";
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1735,24 +1687,24 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Тип" : "тип"));
       if (!singular)  result+="ы";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Подпрограмм" : "подпрограмм"));
-      if (singular)  result+="а"; else result+="ы"; 
-      return result; 
+      if (singular)  result+="а"; else result+="ы";
+      return result;
     }
 
     /*! C# Type Constraint list */
@@ -1798,12 +1750,6 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Диаграмма каталогов для "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1822,7 +1768,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
       return (QCString)"Включает файл в "+name;
     }
 
-    /** Compiles a date string. 
+    /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
      *  @param day Day of the Month: 1..31
index edf5ba2..37519d2 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -18,7 +18,7 @@
 #ifndef TRANSLATOR_SC_H
 #define TRANSLATOR_SC_H
 
-/*! 
+/*!
  When defining a translator class for the new language, follow
  the description in the documentation.  One of the steps says
  that you should copy the translator_en.h (this) file to your
@@ -45,19 +45,19 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "serbiancyr"; }
-    
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -65,7 +65,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -74,12 +74,6 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
       return "";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -97,30 +91,30 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
     { return "Документација дефиниције типа"; }
-    
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
     { return "Документација члана набрајања"; }
-    
+
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
     { return "Документација функције чланице"; }
-    
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Документација поља"; 
+        return "Документација поља";
       }
       else
       {
-        return "Документација атрибута"; 
+        return "Документација атрибута";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
+    virtual QCString trMore()
     { return "Још..."; }
 
     /*! put in the class documentation */
@@ -138,81 +132,81 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
     { return ", укључујући све наслеђене чланове."; }
-    
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result="Аутоматски направљено помоћу Doxygen-а";
       if (s) result+=(QCString)" за "+s;
-      result+=" из изворног кода."; 
+      result+=" из изворног кода.";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
     { return "назив набрајања"; }
-    
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
     { return "вредност набрајања"; }
-    
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
     { return "дефинисано у"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
     { return "Модули"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
     { return "Хијерархија класа"; }
-    
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Структуре";
       }
       else
       {
-        return "Списак класа"; 
+        return "Списак класа";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
     { return "Списак датотека"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Поља"; 
+        return "Поља";
       }
       else
       {
-        return "Чланови класе"; 
+        return "Чланови класе";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Глобално"; 
+        return "Глобално";
       }
       else
       {
-        return "Чланови датотеке"; 
+        return "Чланови датотеке";
       }
     }
 
@@ -245,16 +239,16 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Овде су структуре са кратким описима:"; 
+        return "Овде су структуре са кратким описима:";
       }
       else
       {
         return "Овде су класе, структуре, "
-               "уније и интерфејси са кратким описима:"; 
+               "уније и интерфејси са кратким описима:";
       }
     }
 
@@ -275,7 +269,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
         result+="чланова класа";
       }
       result+=" са везама ка ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -286,7 +280,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
           result+="документацији класе за сваки члан:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -305,7 +299,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     {
       QCString result="Овде је списак свих ";
       if (!extractAll) result+="документованих ";
-      
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         result+="фрункција, променљивих, макро замена, набрајања, и дефиниција типова";
@@ -315,9 +309,9 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
         result+="чланова датотеке";
       }
       result+=" са везама ка ";
-      if (extractAll) 
+      if (extractAll)
         result+="датотекама којима припадају:";
-      else 
+      else
         result+="документацији:";
       return result;
     }
@@ -334,43 +328,43 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     virtual QCString trModulesDescription()
     { return "Овде је списак свих модула:"; }
 
-    // index titles (the project name is prepended for these) 
+    // index titles (the project name is prepended for these)
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
     { return "Документација"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "Индекс модула"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "Хијерархијски индекс"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "Индекс структура";
       }
       else
       {
-        return "Индекс класа"; 
+        return "Индекс класа";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "Индекс датотека"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
@@ -383,14 +377,14 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Документација структуре"; 
+        return "Документација структуре";
       }
       else
       {
-        return "Документација класе"; 
+        return "Документација класе";
       }
     }
 
@@ -415,123 +409,105 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
     { return "Приручник"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "Дефиниције"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Декларације функција"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "Дефиниције типова"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
     { return "Набрајања"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "Функције"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "Променљиве"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
     { return "Вредности набрајања"; }
-    
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
     { return "Документација дефиниције"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Документација декларације функције"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
     { return "Документација дефиниције типа"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
     { return "Документација набрајања"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
     { return "Документација функције"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
     { return "Документација променљиве"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Структуре"; 
+        return "Структуре";
       }
       else
       {
-        return "Класе"; 
+        return "Класе";
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"Направљено "+date;
       if (projName) result+=(QCString)" за "+projName;
       result+=(QCString)" помоћу";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "написао";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
       return (QCString)"Дијаграм наслеђивања за "+clName+":";
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
     { return "Само за унутрашњу употребу."; }
@@ -563,7 +539,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
     { return "Изизеци"; }
-    
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
     { return "Направљено помоћу"; }
@@ -571,7 +547,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
     { return "Списак простора имена"; }
@@ -590,17 +566,17 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
      */
     virtual QCString trFriends()
     { return "Пријатељи"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
     { return "Документација за пријатеље и повезане функције"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -611,7 +587,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
                                     bool isTemplate)
     {
       QCString result=(QCString)clName;
-      if (isTemplate) 
+      if (isTemplate)
       {
         result+=" Шаблон";
         switch(compType)
@@ -625,8 +601,8 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
           case ClassDef::Exception:  result+="ски изузетак"; break;
           default: break;
         }
-      } 
-      else 
+      }
+      else
       {
         result+=" Референца";
         switch(compType)
@@ -648,7 +624,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     virtual QCString trFileReference(const char *fileName)
     {
       QCString result=fileName;
-      result+=" Референца датотеке"; 
+      result+=" Референца датотеке";
       return result;
     }
 
@@ -659,7 +635,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
       result+=" Референца простора имена";
       return result;
     }
-    
+
     virtual QCString trPublicMembers()
     { return "Јавне функције чланице"; }
     virtual QCString trPublicSlots()
@@ -680,7 +656,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     { return "Приватни слотови"; }
     virtual QCString trStaticPrivateMembers()
     { return "Статичке приватне функције чланице"; }
-    
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -689,23 +665,23 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=" и ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -722,7 +698,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
       return "Наслеђују "+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
@@ -744,17 +720,17 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Овде је списак свих ";
       if (!extractAll) result+="документованих ";
       result+="чланова простора имена са везама ка ";
-      if (extractAll) 
+      if (extractAll)
         result+="документацији простора имена за сваки члан:";
-      else 
+      else
         result+="просторима имена којима припадају:";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -804,12 +780,6 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Абецедни списак"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -823,7 +793,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     virtual QCString trMainPage()
     { return "Главна страница"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -868,7 +838,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Документација конструктора и деструктора"; 
+      return "Документација конструктора и деструктора";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
@@ -925,7 +895,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
       return "Напомена";
@@ -1014,7 +984,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     {
       return "Од";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -1024,12 +994,12 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     {
       return "Легенда графова";
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "Ова страница објашњава како тумачити графове који су направљени "
         "doxygen-ом.<p>\n"
         "Размотримо следећи пример:\n"
@@ -1094,11 +1064,11 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     {
       return "легенда";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1111,16 +1081,6 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP функције чланице";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1176,11 +1136,11 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     {
       return "Вредност:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1196,9 +1156,9 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1219,15 +1179,15 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1251";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1240,82 +1200,82 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     {
       return "Индекс";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Клас" : "клас"));
       if (!singular)  result+="e"; else result+="a";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Датотек" : "датотек"));
       if (!singular)  result+="e"; else result+="a";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Простор" : "простор"));
       if (!singular)  result+="и имена"; else result+=" имена";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Груп" : "груп"));
       if (!singular)  result+="е"; else result+="a";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Страниц" : "страниц"));
       if (!singular)  result+="е"; else result += "a";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Члан" : "члан"));
       if (!singular)  result+="ови";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Глобалн" : "глобалн"));
       if (!singular)  result+="а"; else result+="о";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1325,10 +1285,10 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Аутор" : "аутор"));
       if (!singular)  result+="и";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1346,7 +1306,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1378,8 +1338,8 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1390,7 +1350,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1410,43 +1370,43 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Типови пакета";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Функције пакета";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Статичке функције пакета";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Атрибути пакета";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Статички атрибути пакета";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1463,14 +1423,6 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Тражим";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1482,7 +1434,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1508,13 +1460,13 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
       {
         return "Пронађена <b>4</b> документа која одговарају упиту.";
       }
-      else 
+      else
       {
         return "Пронађено <b>$num</b> докумената који одговарају упиту. "
                "Приказују се прво најбољи поготци.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1555,7 +1507,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     virtual QCString trDirectories()
     { return "Директоријуми"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1573,10 +1525,10 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Директоријум" : "директоријум"));
       if (singular) result+=""; else result+="и";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1602,7 +1554,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
       return "Ово је граф функција које позивају ову функцију:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
@@ -1611,12 +1563,12 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Документацијаr функције чланице, односно потпрограма члана"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Списак типова података"; }
 
@@ -1638,18 +1590,18 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
       }
       result+="чланова типова података";
       result+=" са везама ка ";
-      if (!extractAll) 
+      if (!extractAll)
       {
          result+="документацији структуре података за сваки члан";
       }
-      else 
+      else
       {
          result+="типовима података којима припадају:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1661,24 +1613,24 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     virtual QCString trTypeDocumentation()
     { return "Документација типова података"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Функције/потпрограми"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Документација функције/потпрограма"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Типови података"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Списак модула"; }
@@ -1717,46 +1669,46 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" Референца модула";        
+      result+=" Референца модула";
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Чланови модула"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Овде је списак свих ";
       if (!extractAll) result+="документованих ";
       result+="чланова модула са везама ка ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="документацији модула за сваки члан:";
       }
-      else 
+      else
       {
         result+="модулима којима припадају:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Индекс модула"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Модул" : "модул"));
       if (!singular)  result+="и";
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1782,24 +1734,24 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Тип" : "тип"));
       if (!singular)  result+="ови";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Потпрограм" : "потпрограм"));
       if (!singular)  result+="и";
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
index 7295e44..57ca5c4 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -22,7 +22,6 @@
 
 
 class TranslatorSlovene : public TranslatorAdapter_1_4_6
-//public TranslatorAdapter_1_2_16
 {
   protected:
     friend class TranslatorAdapterBase;
@@ -39,14 +38,6 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     {
       return "\\usepackage[slovene]{babel}\n\\usepackage[T1]{fontenc}\n";
     }
-    QCString idLanguageCharset()
-    { 
-//#ifdef _WIN32
-      return "windows-1250"; 
-//#else
-//      return "iso-8859-2"; 
-//#endif
-    }
     QCString trRelatedFunctions()
     { return "Povezane funkcije"; }
     QCString trRelatedSubscript()
@@ -54,11 +45,11 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     QCString trDetailedDescription()
     { return "Podroben opis"; }
     QCString trMemberTypedefDocumentation()
-    { return "Opis uporabni¹ko definiranih tipov"; }
+    { return "Opis uporabniško definiranih tipov"; }
     QCString trMemberEnumerationDocumentation()
-    { return "Opis komponent  na¹tevnih tipov"; }
+    { return "Opis komponent  naštevnih tipov"; }
 /*     QCString trEnumerationValueDocumentation() */
-/*     { return "Opis vrednosti na¹tevnih tipov (enum) "; } */
+/*     { return "Opis vrednosti naštevnih tipov (enum) "; } */
     QCString trMemberFunctionDocumentation()
     { return "Opis metod"; }
     QCString trMemberDataDocumentation()
@@ -72,17 +63,17 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     QCString trThisIsTheListOfAllMembers()
     { return "Seznam metod razreda "; }
     QCString trIncludingInheritedMembers()
-    { return ", vkljuèujoè dedovane metode in atribute."; }
+    { return ", vključujoč dedovane metode in atribute."; }
     QCString trGeneratedAutomatically(const char *s)
-    { QCString result="zgenerirano z Doxygen-om"; 
+    { QCString result="zgenerirano z Doxygen-om";
       if (s) result+=(QCString)" za "+s;
-      result+=" iz izvorne kode."; 
+      result+=" iz izvorne kode.";
       return result;
     }
     QCString trEnumName()
-    { return "na¹tevno ime"; }
+    { return "naštevno ime"; }
     QCString trEnumValue()
-    { return "na¹tevna vrednost"; }
+    { return "naštevna vrednost"; }
     QCString trDefinedIn()
     { return "definirano v"; }
     QCString trModules()
@@ -104,9 +95,9 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     QCString trExamples()
     { return "Primeri"; }
     QCString trSearch()
-    { return "I¹èi"; }
+    { return "Išči"; }
     QCString trClassHierarchyDescription()
-      { return "Hierarhièno drevo je (okvirno) sortirano po abecedi. ";
+      { return "Hierarhično drevo je (okvirno) sortirano po abecedi. ";
     }
     QCString trFileListDescription(bool extractAll)
     {
@@ -116,8 +107,8 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
       return result;
     }
     QCString trCompoundListDescription()
-    { return "Seznam razredov, mno¾ic in struktur "
-             "s kratkim opisom :"; 
+    { return "Seznam razredov, množic in struktur "
+             "s kratkim opisom :";
     }
     QCString trCompoundMembersDescription(bool extractAll)
     {
@@ -153,10 +144,10 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     QCString trModuleIndex()
     { return "seznam modulov"; }
     QCString trHierarchicalIndex()
-    { return "Hierarhièni indeks"; }
+    { return "Hierarhični indeks"; }
     QCString trCompoundIndex()
     { return "abecedni seznam"; }
-    QCString trFileIndex() 
+    QCString trFileIndex()
     { return "seznam datotek"; }
     QCString trModuleDocumentation()
     { return "Dokumentacija modulov"; }
@@ -169,30 +160,26 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     QCString trPageDocumentation()
     { return "Opis povezanih strani"; }
     QCString trReferenceManual()
-    { return "Priroènik"; }
+    { return "Priročnik"; }
 
     QCString trDefines()
     { return "Makro deklaracije"; }
-    QCString trFuncProtos()
-    { return "Prototipi funkcij"; }
     QCString trTypedefs()
-    { return "Uporabni¹ko definirani tipi"; }
+    { return "Uporabniško definirani tipi"; }
     QCString trEnumerations()
-    { return "Na¹tevni tipi"; }
+    { return "Naštevni tipi"; }
     QCString trFunctions()
     { return "Funkcije"; }
     QCString trVariables()
     { return "Spremenljivke"; }
     QCString trEnumerationValues()
-    { return "Vrednosti na¹tevnih tipov"; }
+    { return "Vrednosti naštevnih tipov"; }
     QCString trDefineDocumentation()
     { return "Opis makro definicije"; }
-    QCString trFunctionPrototypeDocumentation()
-    { return "Opis prototipa funkcije"; }
     QCString trTypedefDocumentation()
-    { return "Opis uporabni¹ko definiranega tipa"; }
+    { return "Opis uporabniško definiranega tipa"; }
     QCString trEnumerationTypeDocumentation()
-    { return "Opis na¹tevnega (enum) tipa"; }
+    { return "Opis naštevnega (enum) tipa"; }
     QCString trFunctionDocumentation()
     { return "Opis funkcije"; }
     QCString trVariableDocumentation()
@@ -200,16 +187,12 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     QCString trCompounds()
     { return "Strukture"; }
     QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"Generirano "+date;
       if (projName) result+=(QCString)" projekt: "+projName;
       result+=(QCString)" generator: ";
       return result;
     }
-    QCString trWrittenBy()
-    {
-      return "napisal ";
-    }
     QCString trClassDiagram(const char *clName)
     {
       return (QCString)"Diagram razredov za "+clName;
@@ -237,12 +220,12 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     QCString trExceptions()
     { return "Prekinitve"; }
     QCString trGeneratedBy()
-    { return "Izdelano s pomoèjo"; }
-    
+    { return "Izdelano s pomočjo"; }
+
 //////////////////////////////////////////////////////////////////////////
-// new since 0.49-990307 
+// new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     QCString trNamespaceList()
     { return "imenski prostori"; }
     QCString trNamespaceListDescription(bool extractAll)
@@ -258,10 +241,10 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     QCString trRelatedFunctionDocumentation()
     { return "Podatki o poveznih funkcijah"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -276,7 +259,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
       {
         case ClassDef::Class:  result+=" Razred "; break;
         case ClassDef::Struct: result+=" Struktura "; break;
-        case ClassDef::Union:  result+=" Mno¾ica "; break;
+        case ClassDef::Union:  result+=" Množica "; break;
         case ClassDef::Interface:  result+=" IDL vmesnik "; break;
         case ClassDef::Protocol:   result+=" protocol "; break; // translate me!
         case ClassDef::Category:   result+=" category "; break; // translate me!
@@ -284,13 +267,13 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
         default: break;
       }
       result += (QCString)clName;
-      
+
       return result;
     }
     QCString trFileReference(const char *fileName)
       // used as the title of the HTML page of a file
     {
-      QCString result="Datoteka "; 
+      QCString result="Datoteka ";
          result+=fileName;
          return result;
     }
@@ -299,11 +282,11 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     {
       QCString result ="Imenski prostor ";
          result+=namespaceName;
-      
+
       return result;
     }
-    
-    // these are for the member sections of a class, struct or union 
+
+    // these are for the member sections of a class, struct or union
     QCString trPublicMembers()
     { return "Javne metode"; }
     QCString trPublicSlots()
@@ -311,21 +294,21 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     QCString trSignals()
     { return "Programske prekinitve"; }
     QCString trStaticPublicMembers()
-    { return "Statiène javne metode in atributi"; }
+    { return "Statične javne metode in atributi"; }
     QCString trProtectedMembers()
-    { return "Za¹èitene metode in atributi"; }
+    { return "Zaščitene metode in atributi"; }
     QCString trProtectedSlots()
-    { return "Za¹èiteni sloti"; }
+    { return "Zaščiteni sloti"; }
     QCString trStaticProtectedMembers()
-    { return "Statiène za¹èitene metode in atributi"; }
+    { return "Statične zaščitene metode in atributi"; }
     QCString trPrivateMembers()
     { return "Skrite metode in atributi"; }
     QCString trPrivateSlots()
     { return "Skriti slotovi"; }
     QCString trStaticPrivateMembers()
-    { return "Statiène skrite metode in atributi"; }
-    // end of member sections 
-    
+    { return "Statične skrite metode in atributi"; }
+    // end of member sections
+
     QCString trWriteList(int numEntries)
     {
       // this function is used to produce a comma-separated list of items.
@@ -333,23 +316,23 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=" in ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     QCString trInheritsList(int numEntries)
       // used in class documentation to produce a list of base classes,
       // if class diagrams are disabled.
@@ -363,7 +346,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
       return "Naslijeðena u "+trWriteList(numEntries)+".";
     }
     QCString trReimplementedFromList(int numEntries)
-      // used in member documentation blocks to produce a list of 
+      // used in member documentation blocks to produce a list of
       // members that are hidden by this one.
     {
       return "Skrije implementacijo iz "+trWriteList(numEntries)+".";
@@ -380,18 +363,18 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     { return "elementi imenskega prostora"; }
     QCString trNamespaceMemberDescription(bool extractAll)
       // This is an introduction to the page with all namespace members
-    { 
+    {
       QCString result="Seznam vseh ";
       if (!extractAll) result+="dokumentiranih ";
       result+="elementov imenskega prostora s povezavami na ";
-      if (extractAll) 
+      if (extractAll)
         result+="opis vsakega elementa:";
-      else 
+      else
         result+="imenski prostor, ki mu pripadajo:";
       return result;
     }
     QCString trNamespaceIndex()
-      // This is used in LaTeX as the title of the chapter with the 
+      // This is used in LaTeX as the title of the chapter with the
       // index of all namespaces.
     { return "Indeks imenskih prostorov"; }
     QCString trNamespaceDocumentation()
@@ -439,12 +422,6 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    QCString trAlphabeticalList()
-    { return "abecedni seznam"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -458,7 +435,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     QCString trMainPage()
     { return "prva stran"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     QCString trPageAbbreviation()
@@ -504,16 +481,16 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     {
       return (QCString)"Graf prikazuje seznam datotek, "
           "ki jih datoteka \""+fName+"\" "
-          "direktno ali indirektno vkljuèuje. Pravokotniki ponazarjajo datoteke, pu¹èice "
+          "direktno ali indirektno vključuje. Pravokotniki ponazarjajo datoteke, puščice "
          "predstavljajo relacije med njimi. "
-         "Èrn pravokotnik ponazarja datoteko "+fName+". Pu¹èice A->B ponazarjajo "
-         "usmerjeno relacijo \"A vkljuèuje B\"."
+         "črn pravokotnik ponazarja datoteko "+fName+". Puščice A->B ponazarjajo "
+         "usmerjeno relacijo \"A vključuje B\"."
 ;
     }
     /*! header that is put before the list of constructor/destructors. */
     QCString trConstructorDocumentation()
     {
-      return "Opis konstruktorjev in destruktorjev "; 
+      return "Opis konstruktorjev in destruktorjev ";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     QCString trGotoSourceCode()
@@ -523,7 +500,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     /*! Used in the file sources to point to the corresponding documentation. */
     QCString trGotoDocumentation()
     {
-      return "dokumenacija tekoèe datoteke.";
+      return "dokumenacija tekoče datoteke.";
     }
     /*! Text for the \pre command */
     QCString trPrecondition()
@@ -543,7 +520,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     /*! Text shown before a multi-line variable/enum initialization */
     QCString trInitialValue()
     {
-      return "Zaèetna vrednost / definicija :";
+      return "Začetna vrednost / definicija :";
     }
     /*! Text used the source code in the file index */
     QCString trCode()
@@ -552,11 +529,11 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     }
     QCString trGraphicalHierarchy()
     {
-      return "Hierarhija razredov v grafièni obliki";
+      return "Hierarhija razredov v grafični obliki";
     }
     QCString trGotoGraphicalHierarchy()
     {
-      return "Dedovalna hierarhija v grafièni obliki";
+      return "Dedovalna hierarhija v grafični obliki";
     }
     QCString trGotoTextualHierarchy()
     {
@@ -570,7 +547,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     QCString trNote()
     {
       return "Opomba";
@@ -585,19 +562,19 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     }
     QCString trStaticPublicAttribs()
     {
-      return "Statièni javni atributi";
+      return "Statični javni atributi";
     }
     QCString trProtectedTypes()
     {
-      return "Za¹èiteni tipi";
+      return "Zaščiteni tipi";
     }
     QCString trProtectedAttribs()
     {
-      return "Za¹èiteni atributi";
+      return "Zaščiteni atributi";
     }
     QCString trStaticProtectedAttribs()
     {
-      return "Statièni za¹èiteni tipi";
+      return "Statični zaščiteni tipi";
     }
     QCString trPrivateTypes()
     {
@@ -609,7 +586,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     }
     QCString trStaticPrivateAttribs()
     {
-      return "Statièni skriti atributi";
+      return "Statični skriti atributi";
     }
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.3
@@ -623,7 +600,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     /*! Used as the header of the todo list */
     virtual QCString trTodoList()
     {
-      return "Seznam nedokonèanih opravil";
+      return "Seznam nedokončanih opravil";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -645,12 +622,12 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     virtual QCString trInclByDepGraph()
     {
       return "Graf prikazuje datoteke, ki posredno ali neposredno "
-             "vkljuèujejo tekoèo datoteko. Pravokotniki simbolizirajo datoteke, "
-             "pu¹èice pa relacije med datotekami. Tekoèa datoteka je prikazana "
-            "kot pravokotnik s èrno podlago, ostale pa kot pravokotnik brez podlage. "
-            "Smer pu¹èice A->B definira relacijo \"A vkljuèuje B\". "
-            "Vse datoteke, ki torej mejijo na tekoèo (t.j. obstaja povezava med èrnim in "
-            "praznim pravokotnikom), jo direktno vkljuèujejo, medtem, ko jo ostale vkljuèujejo "
+             "vključujejo tekočo datoteko. Pravokotniki simbolizirajo datoteke, "
+             "puščice pa relacije med datotekami. Tekoča datoteka je prikazana "
+            "kot pravokotnik s črno podlago, ostale pa kot pravokotnik brez podlage. "
+            "Smer puščice A->B definira relacijo \"A vključuje B\". "
+            "Vse datoteke, ki torej mejijo na tekočo (t.j. obstaja povezava med črnim in "
+            "praznim pravokotnikom), jo direktno vključujejo, medtem, ko jo ostale vključujejo "
             "le posredno. "
        ;
     }
@@ -668,13 +645,13 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     {
       return "Legenda grafa";
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
-        "Tekoèa stran pojasnjuje naèin interpretacije grafov, ki jih izri¹e "
+      return
+        "Tekoča stran pojasnjuje način interpretacije grafov, ki jih izriše "
         "doxygen.<p>\n"
         "Poglejmo si naslednji primer:\n"
         "\\code\n"
@@ -684,13 +661,13 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
         "class Truncated : public Invisible { };\n\n"
         "/* razred, ki ni opisan z doxygen komentarji */\n"
         "class Undocumented { };\n\n"
-        "/*! Razred, ki ga dedujemo s pomoèjo javnega dedovanja */\n"
+        "/*! Razred, ki ga dedujemo s pomočjo javnega dedovanja */\n"
         "class PublicBase : public Truncated { };\n\n"
         "/*! A template class */\n"
         "template<class T> class Templ { };\n\n"
-        "/*! Razred, ki ga dedujemo s pomoèjo za¹èitenega dedovanja */\n"
+        "/*! Razred, ki ga dedujemo s pomočjo zaščitenega dedovanja */\n"
         "class ProtectedBase { };\n\n"
-        "/*! Razred, ki ga dedujemo s pomoèjo skritega dedovanja */\n"
+        "/*! Razred, ki ga dedujemo s pomočjo skritega dedovanja */\n"
         "class PrivateBase { };\n\n"
         "/*! Razred, ki ga uporablja dedovani razred */\n"
         "class Used { };\n\n"
@@ -735,11 +712,11 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     {
       return "legenda";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -752,16 +729,6 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP metode";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -827,11 +794,11 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     {
       return "Vrednost:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -847,9 +814,9 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -870,15 +837,15 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1250";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -891,76 +858,76 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     {
       return "Indeks";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Razred" : "razred"));
       if (!singular)  result+="i";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Datotek" : "datotek"));
       if (!singular)  result+="e";
       else result += "a";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Imenski prostor" : "imenski prostor"));
       if (!singular)  result+="i";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Skupina" : "skupina"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Stran" : "stran"));
       if (!singular)  result+="i";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Element" : "element"));
       if (!singular)  result+="i";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
 /*     virtual QCString trField(bool first_capital, bool singular) */
@@ -972,14 +939,14 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
 /*     } */
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Global" : "global"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -989,10 +956,10 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Avtor" : "avtor"));
       if (!singular)  result+="ji";
-      return result; 
+      return result;
     }
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.11
@@ -1008,7 +975,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1040,8 +1007,8 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1052,7 +1019,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1072,43 +1039,43 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Tipi paketov";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Funkcije paketa";   /* don't know the context */
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Statične funkcije paketa";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Atributi paketa";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Statični atributi paketa";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1125,14 +1092,6 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Išči";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1144,7 +1103,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1162,13 +1121,13 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
       {
         return "Našel sem <b>2</b> dokumenta, ki ustrezata vašemu povpraševanju.";
       }
-      else 
+      else
       {
         return "Našel sem <b>$num</b> dokumentov, ki ustrezajo vašemu povpraševanju. "
                "Dokumenti z najboljšo stopnjo ujemanja se nahajajo na začetku.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1209,7 +1168,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
     virtual QCString trDirectories()
     { return "Imeniki"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1220,19 +1179,19 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
      *  directory is passed via \a dirName.
      */
     virtual QCString trDirReference(const char *dirName)
-    { QCString result=dirName; 
+    { QCString result=dirName;
       result+=" imeniške reference"; /* not sure for context */
-      return result; 
+      return result;
     }
 
     /*! This returns the word directory with or without starting capital
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Imenik" : "imenik"));
       if (singular) result+="i"; else result+="";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
index 836d7f2..8c51147 100644 (file)
@@ -43,12 +43,6 @@ class TranslatorSlovak : public Translator
     virtual QCString latexLanguageSupportCommand()
     { return "\\usepackage[slovak]{babel}\n"; }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-        return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -397,12 +391,6 @@ class TranslatorSlovak : public Translator
     { return "Definícia makier"; }
 
     /*! This is used in the documentation of a file as a header before the
-     * list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Prototypy"; }
-
-    /*! This is used in the documentation of a file as a header before the
      * list of typedefs
      */
     virtual QCString trTypedefs()
@@ -439,12 +427,6 @@ class TranslatorSlovak : public Translator
     { return "Dokumentácia k definíciám makier"; }
 
     /*! This is used in the documentation of a file/namespace before the list
-     * of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Dokumentácia prototypov"; }
-
-    /*! This is used in the documentation of a file/namespace before the list
      * of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
@@ -494,13 +476,6 @@ class TranslatorSlovak : public Translator
       return result;
     }
 
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return " -- autor ";
-    }
-
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
@@ -775,12 +750,6 @@ class TranslatorSlovak : public Translator
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Register tried"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -1088,16 +1057,6 @@ class TranslatorSlovak : public Translator
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "Metódy DCOP";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1407,13 +1366,6 @@ class TranslatorSlovak : public Translator
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the index
-     *  of each page before the search field.
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Vyhľadať";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1788,12 +1740,6 @@ class TranslatorSlovak : public Translator
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Graf závislosti adresárov pre "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
index 7311eac..11ebac2 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -14,7 +14,7 @@
  * input used in their production; they are not affected by this license.
  *
  */
-       
+
 #ifndef TRANSLATOR_SR_H
 #define TRANSLATOR_SR_H
 
 // translation update by Andrija M. Bosnjakovic <andrija@etf.bg.ac.yu>
 
 class TranslatorSerbian : public TranslatorAdapter_1_6_0
-{                                
-private:
-   QCString decode(const QCString& sInput)
-   { 
-//#ifdef _WIN32
-//     return ISO88592ToWin1250(sInput);
-//#else
-     return sInput;
-//#endif
-   }
-
-
+{
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "serbian"; }
-    
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -60,7 +49,7 @@ private:
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -70,172 +59,160 @@ private:
       return result;
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-//#ifdef _WIN32
-//        { return "windows-1250"; }
-//#else
-        { return "UTF-8"; }
-//#endif
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
     virtual QCString trRelatedFunctions()
-    //! Čini se da je ovako manje loše nego "Povezane funkcije", 
+    //! Čini se da je ovako manje loše nego "Povezane funkcije",
     //! što uopšte ne izgleda dobro jer ta kartica sadrži prijatelje i globalne funkcije
-    { return decode( "Relevantne funkcije" ); }  
+    { return "Relevantne funkcije"; }
 
     /*! subscript for the related functions. */
     virtual QCString trRelatedSubscript()
-    { return decode( "(To nisu funkcije članice.)" ); } 
+    { return "(To nisu funkcije članice.)"; }
 
     /*! header that is put before the detailed description of files, classes and namespaces. */
     virtual QCString trDetailedDescription()
-    { return decode( "Opširniji opis" ); }
+    { return "Opširniji opis"; }
 
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
-    { return decode( "Dokumentacija unutrašnjih definicija tipa" ); }
-    
+    { return "Dokumentacija unutrašnjih definicija tipa"; }
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
     //! Ovo je u skladu sa "unutrašnja klasa" što se može videti u knjizi.
-    { return decode( "Dokumentacija unutrašnjih nabrajanja" ); }
-    
+    { return "Dokumentacija unutrašnjih nabrajanja"; }
+
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
-    { return decode( "Dokumentacija funkcija članica" ); }
-    
+    { return "Dokumentacija funkcija članica"; }
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return decode( "Dokumentacija polja" ); 
+        return "Dokumentacija polja";
       }
       else
       {
-        return decode( "Dokumentacija atributa" ); 
+        return "Dokumentacija atributa";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
-    { return decode( "Još..." ); }
+    virtual QCString trMore()
+    { return "Još..."; }
 
     /*! put in the class documentation */
     virtual QCString trListOfAllMembers()
-    { return decode( "Spisak svih članova" ); }
+    { return "Spisak svih članova"; }
 
     /*! used as the title of the "list of all members" page of a class */
     virtual QCString trMemberList()
-    { return decode( "Spisak članova" ); }
+    { return "Spisak članova"; }
 
     /*! this is the first part of a sentence that is followed by a class name */
     virtual QCString trThisIsTheListOfAllMembers()
-    { return decode( "Ovo je spisak svih članova " ); }
+    { return "Ovo je spisak svih članova "; }
 
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
-    { return decode( ", uključujući nasleđene članove." ); }
-    
+    { return ", uključujući nasleđene članove."; }
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result="Napravljeno automatski korišćenjem alata Doxygen";
       if( s ) result+=(QCString)" za projekat " + s;
-      result+=" od izvornog koda."; 
-      return decode( result );
+      result+=" od izvornog koda.";
+      return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
-    { return decode( "ime nabrajanja " ); }
-    
+    { return "ime nabrajanja "; }
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
-    { return decode( "vrednost nabrojane konstante" ); }
-    
+    { return "vrednost nabrojane konstante"; }
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
-    { return decode( "definicija u" ); }
+    { return "definicija u"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
-    { return decode( "Moduli" ); }
-    
+    { return "Moduli"; }
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
-    { return decode( "Hijerarhija klasa" ); }
-    
+    { return "Hijerarhija klasa"; }
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return decode( "Spisak struktura" );
+        return "Spisak struktura";
       }
       else
       {
-        return decode( "Spisak klasa" ); 
+        return "Spisak klasa";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
-    { return decode( "Spisak datoteka" ); }
+    { return "Spisak datoteka"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return decode( "Sva polja struktura" ); 
+        return "Sva polja struktura";
       }
       else
       {
-        return decode( "Svi članovi klasa" ); 
+        return "Svi članovi klasa";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-       return decode( "Članovi datoteke" ); 
+       return "Članovi datoteke";
       }
       else
       {
-       return decode( "Članovi datoteke" ); 
+       return "Članovi datoteke";
       }
     }
 
     /*! This is put above each page as a link to all related pages. */
     virtual QCString trRelatedPages()
-    { return decode( "Stranice koje imaju veze sa ovom stranicom" ); }
+    { return "Stranice koje imaju veze sa ovom stranicom"; }
 
     /*! This is put above each page as a link to all examples. */
     virtual QCString trExamples()
-    { return decode( "Primeri" ); }
+    { return "Primeri"; }
 
     /*! This is put above each page as a link to the search engine. */
     virtual QCString trSearch()
-    { return decode( "Traži" ); }
+    { return "Traži"; }
 
     /*! This is an introduction to the class hierarchy. */
     virtual QCString trClassHierarchyDescription()
-    { return decode( "Hijerahija klasa uređena približno "
-                     "po abecedi:" ); 
-       }
+    { return "Hijerahija klasa uređena približno po abecedi:"; }
 
     /*! This is an introduction to the list with all files. */
     virtual QCString trFileListDescription(bool extractAll)
@@ -243,21 +220,20 @@ private:
       QCString result="Spisak svih ";
       if (!extractAll) result+="dokumentovanih ";
       result+="datoteka, sa kratkim opisima:";
-      return decode( result );
+      return result;
     }
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return decode( "Spisak struktura sa kratkim opisima:" ); 
+        return "Spisak struktura sa kratkim opisima:";
       }
       else
       {
-        return decode( "Spisak klasa, struktura, "
-                       "unija i interfejsa sa kratkim opisima:" );
+        return "Spisak klasa, struktura, unija i interfejsa sa kratkim opisima:";
       }
     }
 
@@ -278,18 +254,18 @@ private:
         result+="članova klasa";
       }
       result+=" sa vezama ka ";
-      if (extractAll) 
+      if (extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
-          result+="dokumentaciji svakog polja strukture/unije:";  
+          result+="dokumentaciji svakog polja strukture/unije:";
         }
         else
         {
-          result+="dokumentaciji svakog člana klase:";       
+          result+="dokumentaciji svakog člana klase:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -297,10 +273,10 @@ private:
         }
         else
         {
-          result+="klasama kojima pripadaju:"; 
+          result+="klasama kojima pripadaju:";
         }
       }
-      return decode( result );
+      return result;
     }
 
     /*! This is an introduction to the page with all file members. */
@@ -308,92 +284,92 @@ private:
     {
       QCString result="Spisak svih ";
       if (!extractAll) result+="dokumentovanih ";
-      
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         result+="funkcija, promenljivih, makro zamena, nabrajanja i definicija tipa";
       }
       else
       {
-        result+="članova";               
+        result+="članova";
       }
       result+=" sa vezama ka ";
-      if (extractAll) 
+      if (extractAll)
         result+="datotekama u kojima se nalaze:";
-      else 
+      else
         result+="dokumentaciji:";
-      return decode( result );
+      return result;
     }
 
     /*! This is an introduction to the page with the list of all examples */
     virtual QCString trExamplesDescription()
-    { return decode( "Spisak svih primera:" ); }
+    { return "Spisak svih primera:"; }
 
     /*! This is an introduction to the page with the list of related pages */
     virtual QCString trRelatedPagesDescription()
-    { return decode( "Spisak stranica koje imaju veze sa ovom stranicom:" ); }
+    { return "Spisak stranica koje imaju veze sa ovom stranicom:"; }
 
     /*! This is an introduction to the page with the list of class/file groups */
     virtual QCString trModulesDescription()
-    { return decode( "Spisak svih modula:" ); }
+    { return "Spisak svih modula:"; }
 
-    // index titles (the project name is prepended for these) 
+    // index titles (the project name is prepended for these)
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
-    { return decode("Dokumentacija" ); }
+    { return "Dokumentacija"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
-    { return decode( "Indeks modula" ); }
+    { return "Indeks modula"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
-    { return decode( "Hijerarhijski sadržaj" ); }
+    { return "Hijerarhijski sadržaj"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
-        return decode( "Spisak struktura/unija" ); 
+      {
+        return "Spisak struktura/unija";
       }
       else
       {
-        return decode( "Spisak klasa" ); 
+        return "Spisak klasa";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
-    { return decode( "Indeks datoteka" ); }
+    virtual QCString trFileIndex()
+    { return "Indeks datoteka"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all groups.
      */
     virtual QCString trModuleDocumentation()
-    { return decode( "Dokumentacija modula" ); }
+    { return "Dokumentacija modula"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return decode( "Dokumentacija stuktura/unija" ); 
+        return "Dokumentacija stuktura/unija";
       }
       else
       {
-        return decode( "Dokumentacija klasa" ); 
+        return "Dokumentacija klasa";
       }
     }
 
@@ -401,183 +377,165 @@ private:
      *  the documentation of all files.
      */
     virtual QCString trFileDocumentation()
-    { return decode( "Dokumentacija datoteke" ); }
+    { return "Dokumentacija datoteke"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all examples.
      */
     virtual QCString trExampleDocumentation()
-    { return decode( "Dokumentacija primera" ); }
+    { return "Dokumentacija primera"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all related pages.
      */
     virtual QCString trPageDocumentation()
-    { return decode( "Dokumentacija stranice" ); }
+    { return "Dokumentacija stranice"; }
 
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
-    { return decode( "Priručnik" ); }
-    
-    /*! This is used in the documentation of a file as a header before the 
+    { return "Priručnik"; }
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
-    { return decode( "Makro zamene" ); }
+    { return "Makro zamene"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return decode( "Deklaracije funkcija" ); }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
-    { return decode( "Definicije tipa" ); }
+    { return "Definicije tipa"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
-    { return decode( "Nabrajanja" ); }
+    { return "Nabrajanja"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
-    { return decode( "Funkcije" ); }
+    { return "Funkcije"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
-    { return decode( "Promenljive" ); }
+    { return "Promenljive"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
-    { return decode( "Vrednosti nabrojanih konstanti" ); }
-    
+    { return "Vrednosti nabrojanih konstanti"; }
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
-    { return decode( "Dokumentacija makro zamene" ); }
+    { return "Dokumentacija makro zamene"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return decode( "Dokumentacija deklaracije funkcije" ); }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
-    { return decode( "Dokumentacija definicije tipa" ); }
+    { return "Dokumentacija definicije tipa"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
-    { return decode( "Dokumentacija nabrajanja" ); }
+    { return "Dokumentacija nabrajanja"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
-    { return decode( "Dokumentacija funkcije" ); }
+    { return "Dokumentacija funkcije"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
-    { return decode( "Dokumentacija promenljive" ); }
+    { return "Dokumentacija promenljive"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return decode( "Strukture i unije" );  
+        return "Strukture i unije";
       }
       else
       {
-        return decode( "Klase, strukture i unije" );   
+        return "Klase, strukture i unije";
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"[" + date + "] Napravljeno automatski ";
       if ( projName ) result+=(QCString)" za projekat " + projName;
          result+=(QCString)" upotrebom ";
-      return decode( result );
-    }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return decode( "napisao" );
+      return result;
     }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
-      return decode( QCString("Dijagram nasleđivanja za klasu ") + clName + ":" );
+      return QCString("Dijagram nasleđivanja za klasu ") + clName + ":";
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
-    { return decode( "Samo za unutrašnju upotrebu." ); }
+    { return "Samo za unutrašnju upotrebu."; }
 
     /*! this text is generated when the \\warning command is used. */
     virtual QCString trWarning()
-    { return decode( "Upozorenje" ); }
+    { return "Upozorenje"; }
 
     /*! this text is generated when the \\version command is used. */
     virtual QCString trVersion()
-    { return decode( "Verzija" ); }
+    { return "Verzija"; }
 
     /*! this text is generated when the \\date command is used. */
     virtual QCString trDate()
-    { return decode( "Datum" ); }
+    { return "Datum"; }
 
     /*! this text is generated when the \\return command is used. */
     virtual QCString trReturns()
-    { return decode( "Vrednost funkcije" ); }
+    { return "Vrednost funkcije"; }
 
     /*! this text is generated when the \\sa command is used. */
     virtual QCString trSeeAlso()
-    { return decode( "Takođe pogledati" ); }
+    { return "Takođe pogledati"; }
 
     /*! this text is generated when the \\param command is used. */
     virtual QCString trParameters()
-    { return decode( "Parametri" ); }
+    { return "Parametri"; }
 
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
-    { return decode( "Izuzeci" ); }
-    
+    { return "Izuzeci"; }
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
-    { return decode( "Napravio" ); }
+    { return "Napravio"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
-    { return decode( "Spisak prostora imena" ); }
+    { return "Spisak prostora imena"; }
 
     /*! used as an introduction to the namespace list */
     virtual QCString trNamespaceListDescription(bool extractAll)
@@ -585,25 +543,25 @@ private:
       QCString result="Spisak svih ";
       if (!extractAll) result+="dokumentovanih ";
       result+="prostora imena sa kratkim opisom:";
-      return decode( result );
+      return result;
     }
 
     /*! used in the class documentation as a header before the list of all
      *  friends of a class
      */
     virtual QCString trFriends()
-    { return decode( "Prijatelji" ); }
-    
+    { return "Prijatelji"; }
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
-    { return decode( "Dokumentacija prijatelja i relevantnih funkcija" ); }
-    
+    { return "Dokumentacija prijatelja i relevantnih funkcija"; }
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -612,8 +570,8 @@ private:
     virtual QCString trCompoundReference(const char *clName,
                                     ClassDef::CompoundType compType,
                                     bool isTemplate)
-    {                            
-      QCString result( "Dokumentacija " );   
+    {
+      QCString result( "Dokumentacija " );
       switch(compType)
       {
         case ClassDef::Class:      result+="klase "; break;
@@ -625,17 +583,17 @@ private:
         case ClassDef::Exception:  result+="izuzetka "; break;
         default: break;
       }
-      if (isTemplate) result += "šablona ";  
+      if (isTemplate) result += "šablona ";
       result += clName;
-      return decode( result );
+      return result;
     }
 
     /*! used as the title of the HTML page of a file */
     virtual QCString trFileReference(const char *fileName)
     {
       QCString result = "Opis datoteke ";
-      result += fileName; 
-      return decode( result );
+      result += fileName;
+      return result;
     }
 
     /*! used as the title of the HTML page of a namespace */
@@ -643,30 +601,30 @@ private:
     {
       QCString result="Opis prostora imena ";
       result += namespaceName;
-      return decode( result );
+      return result;
     }
-    
+
     virtual QCString trPublicMembers()
-    { return decode("Javni članovi"); }
+    { return "Javni članovi"; }
     virtual QCString trPublicSlots()
-    { return decode( "Javni slotovi" ); }
+    { return "Javni slotovi"; }
     virtual QCString trSignals()
-    { return decode( "Signali" ); }
+    { return "Signali"; }
     virtual QCString trStaticPublicMembers()
-    { return decode("Zajednički javni članovi"); }
+    { return "Zajednički javni članovi"; }
     virtual QCString trProtectedMembers()
-    { return decode("Zaštićeni članovi");  }
+    { return "Zaštićeni članovi";  }
     virtual QCString trProtectedSlots()
-    { return decode("Zaštićeni slotovi"); }
+    { return "Zaštićeni slotovi"; }
     virtual QCString trStaticProtectedMembers()
-    { return decode("Zajednički zaštićeni članovi"); }
+    { return "Zajednički zaštićeni članovi"; }
     virtual QCString trPrivateMembers()
-    { return decode("Privatni članovi"); }
+    { return "Privatni članovi"; }
     virtual QCString trPrivateSlots()
-    { return decode("Privatni slotovi"); }
+    { return "Privatni slotovi"; }
     virtual QCString trStaticPrivateMembers()
-    { return decode("Zajednički privatni članovi"); }
-    
+    { return "Zajednički privatni članovi"; }
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -675,45 +633,45 @@ private:
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=" i ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
-    virtual QCString trInheritsList(int numEntries)
+    virtual QCString trInheritsList(int /*numEntries*/)
     {
-      return decode("Spisak osnovnih klasa: "+trWriteList(numEntries)+".");
+      return "Spisak osnovnih klasa: ";
     }
 
     /*! used in class documentation to produce a list of derived classes,
      *  if class diagrams are disabled.
      */
-    virtual QCString trInheritedByList(int numEntries)
+    virtual QCString trInheritedByList(int /*numEntries*/)
     {
-      return decode( "Spisak izvedenih klasa: "+trWriteList(numEntries)+"." );
+      return "Spisak izvedenih klasa: ";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
     {
-      return decode("Menja definiciju iz "+trWriteList(numEntries)+"." );
+      return "Menja definiciju iz "+trWriteList(numEntries)+".";
     }
 
     /*! used in member documentation blocks to produce a list of
@@ -721,36 +679,36 @@ private:
      */
     virtual QCString trReimplementedInList(int numEntries)
     { //! Ako već ne možemo jednu reč (redefinicija), da uskladimo sa prethodnim i izbacimo upotrebu roda
-      return decode("Definicija je izmenjena u "+trWriteList(numEntries)+"." );
+      return "Definicija je izmenjena u "+trWriteList(numEntries)+".";
     }
 
     /*! This is put above each page as a link to all members of namespaces. */
     virtual QCString trNamespaceMembers()
-    { return decode("Članovi prostora imena"); }
+    { return "Članovi prostora imena"; }
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Spisak svih ";
       if (!extractAll) result+="dokumentovanih ";
       result+="članova prostora imena sa vezama prema ";
-      if (extractAll) 
+      if (extractAll)
         result+="dokumentaciji svakog člana prostora imena: ";
-      else 
+      else
         result+="prostorima imena kojima pripadaju: ";
-      return decode( result );
+      return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
-    { return decode( "Indeks prostora imena" ); }
+    { return "Indeks prostora imena"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all namespaces.
      */
     virtual QCString trNamespaceDocumentation()
-    { return decode( "Dokumentacija prostora imena" ); }
+    { return "Dokumentacija prostora imena"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990522
@@ -760,7 +718,7 @@ private:
      *  namespaces in a file.
      */
     virtual QCString trNamespaces()
-    { return decode( "Prostori imena" ); }
+    { return "Prostori imena"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990728
@@ -787,33 +745,27 @@ private:
       }
       result+=" je napravljena na osnovu ";
       if (single) result+="datoteke "; else result+="sledećih datoteka:";
-      return decode( result );
+      return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return decode( "Abecedni spisak" ); }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
 
     /*! This is used as the heading text for the retval command. */
     virtual QCString trReturnValues()
-    { return decode( "Karakteristične vrednosti funkcije" ); }
+    { return "Karakteristične vrednosti funkcije"; }
 
     /*! This is in the (quick) index as a link to the main page (index.html)
      */
     virtual QCString trMainPage()
-    { return decode( "Glavna strana" ); }
+    { return "Glavna strana"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
-    { return decode( "str." ); }
+    { return "str."; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-991003
@@ -821,11 +773,11 @@ private:
 
     virtual QCString trDefinedAtLineInSourceFile()
     { //! Izbacujemo rod
-      return decode( "Definicija je u redu @0 datoteke @1." );
+      return "Definicija je u redu @0 datoteke @1.";
     }
     virtual QCString trDefinedInSourceFile()
     { //! Izbacujemo rod
-      return decode( "Definicija je u datoteci @0." );
+      return "Definicija je u datoteci @0.";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -834,7 +786,7 @@ private:
 
     virtual QCString trDeprecated()
     {
-      return decode( "Zastarelo" );
+      return "Zastarelo";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -844,120 +796,120 @@ private:
     /*! this text is put before a collaboration diagram */
     virtual QCString trCollaborationDiagram(const char *clName)
     {
-      return decode( (QCString)"Klasni dijagram za "+clName+":" );
+      return (QCString)"Klasni dijagram za "+clName+":";
     }
     /*! this text is put before an include dependency graph */
     virtual QCString trInclDepGraph(const char *fName)
     {
-      return decode( (QCString)"Graf zavisnosti datoteka za "+fName+":" );
+      return (QCString)"Graf zavisnosti datoteka za "+fName+":";
     }
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return decode( "Dokumentacija konstruktora i destruktora" ); 
+      return "Dokumentacija konstruktora i destruktora";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
     {
-      return decode( "Izvorni kod." );
+      return "Izvorni kod.";
     }
     /*! Used in the file sources to point to the corresponding documentation. */
     virtual QCString trGotoDocumentation()
     {
-      return decode( "Dokumentacija." );
+      return "Dokumentacija.";
     }
     /*! Text for the \\pre command */
     virtual QCString trPrecondition()
     {
-      return decode( "Preduslovi" );
+      return "Preduslovi";
     }
     /*! Text for the \\post command */
     virtual QCString trPostcondition()
     {
-      return decode( "Stanje po izvršenju" );
+      return "Stanje po izvršenju";
     }
     /*! Text for the \\invariant command */
     virtual QCString trInvariant()
     {
-      return decode( "Invarijanta" );
+      return "Invarijanta";
     }
     /*! Text shown before a multi-line variable/enum initialization */
     virtual QCString trInitialValue()
     {
-      return decode( "Početna vrednost:" );
+      return "Početna vrednost:";
     }
     /*! Text used the source code in the file index */
     virtual QCString trCode()
     {
-      return decode( "programski kod" );
+      return "programski kod";
     }
     virtual QCString trGraphicalHierarchy()
     {
-      return decode( "Hijerarhija klasa u obliku grafa" );
+      return "Hijerarhija klasa u obliku grafa";
     }
     virtual QCString trGotoGraphicalHierarchy()
     {
-      return decode( "Prikaz hijerarhije klasa u obliku grafa" );
+      return "Prikaz hijerarhije klasa u obliku grafa";
     }
     virtual QCString trGotoTextualHierarchy()
     {
-      return decode( "Prikaz hijerarhije klasa u obliku nazubljenog teksta" );
+      return "Prikaz hijerarhije klasa u obliku nazubljenog teksta";
     }
     virtual QCString trPageIndex()
     {
-      return decode( "Indeks stranice" );
+      return "Indeks stranice";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
-      return decode( "Beleška" ); 
+      return "Beleška";
     }
     virtual QCString trPublicTypes()
     {
-      return decode( "Javni tipovi" );
+      return "Javni tipovi";
     }
     virtual QCString trPublicAttribs()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return decode( "Polja" );        
+        return "Polja";
       }
       else
       {
-        return decode( "Javni članovi" );
+        return "Javni članovi";
       }
     }
     virtual QCString trStaticPublicAttribs()
     {
-      return decode( "Zajednički javni članovi");
+      return "Zajednički javni članovi";
     }
     virtual QCString trProtectedTypes()
     {
-      return decode( "Zaštićeni tipovi" );
+      return "Zaštićeni tipovi";
     }
     virtual QCString trProtectedAttribs()
     {
-      return decode( "Zaštićeni članovi" );
+      return "Zaštićeni članovi";
     }
     virtual QCString trStaticProtectedAttribs()
     {
-      return decode( "Zajednički zaštićeni članovi" );
+      return "Zajednički zaštićeni članovi";
     }
     virtual QCString trPrivateTypes()
     {
-      return decode( "Privatni tipovi" );
+      return "Privatni tipovi";
     }
     virtual QCString trPrivateAttribs()
     {
-      return decode( "Privatni članovi" );
+      return "Privatni članovi";
     }
     virtual QCString trStaticPrivateAttribs()
     {
-      return decode( "Zajednički privatni članovi" );
+      return "Zajednički privatni članovi";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -967,12 +919,12 @@ private:
     /*! Used as a marker that is put before a \\todo item */
     virtual QCString trTodo()
     {
-      return decode( "Uraditi" );
+      return "Uraditi";
     }
     /*! Used as the header of the todo list */
     virtual QCString trTodoList()
     {
-      return decode("Spisak stvari koje treba uraditi");
+      return "Spisak stvari koje treba uraditi";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -981,26 +933,26 @@ private:
 
     virtual QCString trReferencedBy()
     { //! Izbegavanje roda. Uskladjivanje sa trReferences
-      return decode( "Korisnici: " ); 
+      return "Korisnici: ";
     }
     virtual QCString trRemarks()
     {
-      return decode( "Napomene" );
+      return "Napomene";
     }
     virtual QCString trAttention()
     {
-      return decode( "Pažnja" );
+      return "Pažnja";
     }
     virtual QCString trInclByDepGraph()
     {
-      return decode("Ovaj graf pokazuje koje datoteke direktno "
-      "ili indirektno uključuju ovu datoteku: ");
+      return "Ovaj graf pokazuje koje datoteke direktno "
+             "ili indirektno uključuju ovu datoteku: ";
     }
     virtual QCString trSince()
     {
-      return decode( "Od" );
+      return "Od";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -1008,15 +960,15 @@ private:
     /*! title of the graph legend page */
     virtual QCString trLegendTitle()
     {
-      return decode( "Objašnjenje korišćenih simbola" );
+      return "Objašnjenje korišćenih simbola";
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return decode(        
-       "Ova stranica objašnjava kako tumačiti grafikone koje je napravio "
+      return
+        "Ova stranica objašnjava kako tumačiti grafikone koje je napravio "
         "doxygen.<p>\n"
         "Na primer:\n"
         "\\code\n"
@@ -1059,7 +1011,7 @@ private:
          "<li>Sa sivom ivicom predstavlja strukturu ili klasu bez doxygen komentara.\n"
          "<li>Sa crvenom ivicom predstavlja dokumentovanu strukturu ili klasu\n"
          "za koju nisu prikazani svi relevantni grafovi.\n"
-         "</ul>" 
+         "</ul>"
         "Strelice imaju sledeća značenja:\n"
         "<ul>\n"
          "<li>Tamnoplava strelica označava javno izvođenje.\n"
@@ -1072,37 +1024,27 @@ private:
           " šablona klase od kojeg je primerak napravljen. "
           "Strelica je označena stvarnim argumentima šablona.\n"
         "</ul>\n"
-         );
+        ;
     }
     /*! text for the link to the legend page */
     virtual QCString trLegend()
     {
-      return decode( "Objašnjenje korišćenih simbola" );
+      return "Objašnjenje korišćenih simbola";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
-      return decode( "Test" );
+      return "Test";
     }
     /*! Used as the header of the test list */
     virtual QCString trTestList()
     {
-      return decode( "Spisak testova" );
-    }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return decode( "DCOP metode" );
+      return "Spisak testova";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1112,12 +1054,12 @@ private:
     /*! Used as a section header for IDL properties */
     virtual QCString trProperties()
     {
-      return decode( "Osobine" );
+      return "Osobine";
     }
     /*! Used as a section header for IDL property documentation */
     virtual QCString trPropertyDocumentation()
     {
-      return decode( "Dokumentacija osobina" );
+      return "Dokumentacija osobina";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1129,11 +1071,11 @@ private:
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return decode( "Strukture i unije" );
+        return "Strukture i unije";
       }
       else
       {
-        return decode( "Klase" );
+        return "Klase";
       }
     }
     /*! Used as the title of a Java package */
@@ -1144,46 +1086,46 @@ private:
     /*! Title of the package index page */
     virtual QCString trPackageList()
     {
-      return decode( "Spisak paketa" );
+      return "Spisak paketa";
     }
     /*! The description of the package index page */
     virtual QCString trPackageListDescription()
     {
-      return decode( "Paketi s kratkim opisom (ukoliko postoji):" );
+      return "Paketi s kratkim opisom (ukoliko postoji):";
     }
     /*! The link name in the Quick links header for each page */
     virtual QCString trPackages()
     {
-      return decode( "Paketi" );
+      return "Paketi";
     }
     /*! Text shown before a multi-line define */
     virtual QCString trDefineValue()
     {
-      return decode( "Vrednost:" );
+      return "Vrednost:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
-      return decode( "Greška" );
+      return "Greška";
     }
     /*! Used as the header of the bug list */
     virtual QCString trBugList()
     {
-      return decode( "Spisak grešaka" );
+      return "Spisak grešaka";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1204,15 +1146,15 @@ private:
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1252";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1223,85 +1165,85 @@ private:
     /*! Used as header RTF general index */
     virtual QCString trRTFGeneralIndex()
     {
-      return decode( "Sadržaj" );
+      return "Sadržaj";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result( (first_capital ? "Klas" : "klas") );
       result+= (singular ? "a" : "e");
-      return decode( result ); 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Datotek" : "datotek"));
       result+= (singular ? "a" : "e");
-      return decode( result ); 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Prostor" : "prostor"));
-      result += (singular ? "" : "i"); 
+      result += (singular ? "" : "i");
       result += " imena";
-      return decode( result ); 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Grup" : "grup"));
       result+= (singular ? "a" : "e");
-      return decode( result ); 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Stran" : "stran"));
       result+= (singular ? "a" : "e");
-      return decode( result ); 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Član" : "član"));
       result+= (singular ? "" : "ovi");
-      return decode( result ); 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Globalni " : "globalni "));
       result+= (singular ? "podatak" : "podaci");
-      return decode( result ); 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1311,10 +1253,10 @@ private:
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Autor" : "autor"));
       result+= (singular ? "" : "i");
-      return decode( result ); 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1325,27 +1267,27 @@ private:
      */
     virtual QCString trReferences()
     {
-      return decode( "Koristi" );
+      return "Koristi";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
-    virtual QCString trImplementedFromList(int numEntries)
+    virtual QCString trImplementedFromList(int /*numEntries*/)
     { //! "Definiše" je previše kratko, ispada sa de definišu same apstraktne klase
-      return decode( "Definiše apstraktnu funkciju deklarisanu u "+trWriteList(numEntries)+"." );
+      return "Definiše apstraktnu funkciju deklarisanu u ";
     }
 
     /*! used in member documentation blocks to produce a list of
      *  all members that implement this abstract member.
      */
-    virtual QCString trImplementedInList(int numEntries)
+    virtual QCString trImplementedInList(int /*numEntries*/)
     { //! Izbegavanje roda
-      return decode( "Definicija u " + trWriteList(numEntries) + "." );
+      return "Definicija u ";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1357,36 +1299,36 @@ private:
          */
     virtual QCString trRTFTableOfContents()
      {
-      return decode( "Sadržaj" );
+      return "Sadržaj";
      }
-     
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
-      return decode( "Spisak zastarelih stvari" );
-    } 
+      return "Spisak zastarelih stvari";
+    }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
     {
-      return decode( "Događaji" );
+      return "Događaji";
     }
     /*! Header used for the documentation section of a class' events. */
     virtual QCString trEventDocumentation()
     {
-      return decode( "Dokumentacija događaja" );
+      return "Dokumentacija događaja";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1396,79 +1338,71 @@ private:
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
-      return decode( "Tipovi u paketu" );
+    {
+      return "Tipovi u paketu";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
-      return decode( "Funkcije u paketu" );
+    {
+      return "Funkcije u paketu";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
-      return decode( "Statičke funkcije u paketu" );  // Zajednicke funkcije u paketu
+    {
+      return "Statičke funkcije u paketu";  // Zajednicke funkcije u paketu
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
-      return decode( "Atributi u paketu" ); // Clanovi u paketu
+    {
+      return "Atributi u paketu"; // Clanovi u paketu
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
-      return decode( "Statički atributi u paketu" );  // Zajednicki clanovi u paketu
+    {
+      return "Statički atributi u paketu";  // Zajednicki clanovi u paketu
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
     {
-      return decode( "Sve" );
+      return "Sve";
     }
     /*! Put in front of the call graph for a function. */
     virtual QCString trCallGraph()
     {
-      return decode( "Graf poziva iz ove funkcije:" );
+      return "Graf poziva iz ove funkcije:";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return decode("Traži");
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
     virtual QCString trSearchResultsTitle()
     {
-      return decode( "Rezultati pretraživanja" );
+      return "Rezultati pretraživanja";
     }
     /*! This string is put just before listing the search results. The
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1476,24 +1410,24 @@ private:
     {
       if (numDocuments==0)
       {
-        return decode("Nema dokumenata koji odgovaraju Vašem upitu.");
+        return "Nema dokumenata koji odgovaraju Vašem upitu.";
       }
       else if (numDocuments==1)
-      { return decode("Nađen je <b>1</b> dokument koji odgovara vašem upitu."); }
-      else if (numDocuments<5) 
-      { return decode("Nađena su <b>$num</b> dokumenta koji odgovaraju vašem upitu."
-                    "Najbolji su prikazani prvi."); }
+      { return "Nađen je <b>1</b> dokument koji odgovara vašem upitu."; }
+      else if (numDocuments<5)
+      { return "Nađena su <b>$num</b> dokumenta koji odgovaraju vašem upitu."
+               " Najbolji su prikazani prvi."; }
       else
-      { return decode("Nađeno je <b>$num</b> dokumenata koji odgovaraju vašem upitu."
-        "Najbolji su prikazani prvi.");
+      { return "Nađeno je <b>$num</b> dokumenata koji odgovaraju vašem upitu."
+               " Najbolji su prikazani prvi.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
     {
-      return decode( "Pronađeno:" );
+      return "Pronađeno:";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1504,7 +1438,7 @@ private:
      */
     virtual QCString trSourceFile(QCString& filename)
     {
-      return decode( "Izvorni kod datoteke " + filename ) ;
+      return "Izvorni kod datoteke " + filename;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1515,42 +1449,40 @@ private:
      *  hierarchy.
      */
     virtual QCString trDirIndex()
-    { return decode( "Hijerarhija direktorijuma" ); }
+    { return "Hijerarhija direktorijuma"; }
 
     /*! This is used as the name of the chapter containing the documentation
      *  of the directories.
      */
     virtual QCString trDirDocumentation()
-    { return decode( "Dokumentacija direktorijuma" ); }
+    { return "Dokumentacija direktorijuma"; }
 
     /*! This is used as the title of the directory index and also in the
      *  Quick links of a HTML page, to link to the directory hierarchy.
      */
     virtual QCString trDirectories()
-    { return decode( "Direktorijumi" ); }
+    { return "Direktorijumi"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
-    { return decode( "Hijerarhija direktorijuma uređena približno "
-                     "po abecedi:" );
-    }
+    { return "Hijerarhija direktorijuma uređena približno po abecedi:"; }
 
     /*! This returns the title of a directory page. The name of the
      *  directory is passed via \a dirName.
      */
     virtual QCString trDirReference(const char *dirName)
-    { QCString result=dirName; result+="Opis direktorijuma"; return decode( result ); }
+    { QCString result=dirName; result+="Opis direktorijuma"; return result; }
 
     /*! This returns the word directory with or without starting capital
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Direktorijum" : "direktorijum"));
-      if (!singular) result+="i"; 
-      return decode( result ); 
+      if (!singular) result+="i";
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1562,8 +1494,8 @@ private:
      */
     virtual QCString trOverloadText()
     {
-       return decode ( "Ovo je funkcija prekopljenog imena, razlikuje se "
-              "od gore navedene samo po argumentima koje prihvata." );
+       return "Ovo je funkcija prekopljenog imena, razlikuje se "
+              "od gore navedene samo po argumentima koje prihvata.";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1573,24 +1505,24 @@ private:
     /*! This is used to introduce a caller (or called-by) graph */
     virtual QCString trCallerGraph()
     { //! Možda je bolje "Graf pozivalaca ove funkcije"
-      return decode( "Graf funkcija koje pozivaju ovu funkciju:" );
+      return "Graf funkcija koje pozivaju ovu funkciju:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
-    { return decode( "Dokumentacija enum vrednosti" ); }
+    { return "Dokumentacija enum vrednosti"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Dokumentacija funkcija i procedura"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     /* TODO: Koji je prevod za Compound u Fortran kontekstu */
     virtual QCString trCompoundListFortran()
     { return "Složeni tipovi podataka"; }
@@ -1613,18 +1545,18 @@ private:
       }
       result+="polja složenih tipova podataka";
       result+=" sa vezama ka ";
-      if (!extractAll) 
+      if (!extractAll)
       {
          result+="dokumentaciji strukture podataka za svakog člana";
       }
-      else 
+      else
       {
          result+="složenim tipovima podataka kojima pripadaju:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1636,24 +1568,24 @@ private:
     virtual QCString trTypeDocumentation()
     { return "Dokumentacija tipova podataka"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Funkcije i procedure"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Dokumentacija funkcija i procedura"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Složeni tipovi podataka"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Spisak modula"; }
@@ -1692,46 +1624,46 @@ private:
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" - sažet pregled modula";        
+      result+=" - sažet pregled modula";
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Članovi modula"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Spisak svih ";
       if (!extractAll) result+="dokumentovanih ";
       result+="članova modula sa vezama ka ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="dokumentaciji za svakog člana modula:";
       }
-      else 
+      else
       {
         result+="modulima kojima pripadaju:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Spisak modula"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Modul" : "modul"));
       if (!singular)  result+="i";
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1757,24 +1689,24 @@ private:
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Tip" : "tip"));
       if (!singular)  result+="ovi";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Procedura" : "procedura"));
       if (!singular)  result = (first_capital ? "Procedure" : "procedure");
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
@@ -1782,59 +1714,59 @@ private:
     {
       return "Ograničenja tipova";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // following methods have no corresponding entry in translator_en.h
 //////////////////////////////////////////////////////////////////////////
 
 //      /*! This is put above each page as a link to the list of all verbatim headers */
 //     virtual QCString trHeaderFiles()
-//     { return decode( "Zaglavlja" ); }
-// 
+//     { return "Zaglavlja"; }
+//
 //     /*! This is an introduction to the page with the list of all header files. */
 //     virtual QCString trHeaderFilesDescription()
-//     { return decode( "Zaglavlja koje izgraduju API:" ); }
-// 
+//     { return "Zaglavlja koje izgraduju API:"; }
+//
 //     /*! This sentences is used in the annotated class/file lists if no brief
-//      * description is given. 
+//      * description is given.
 //      */
 //     virtual QCString trNoDescriptionAvailable()
-//     { return decode( "Opis nije dostupan" ); }
-//     
+//     { return "Opis nije dostupan"; }
+//
 //     /*! this text is generated when the \\reimp command is used. */
 //     virtual QCString trReimplementedForInternalReasons()
 //     { return decode("Preuradeno zbog unutrasnjih razloga; Nema uticaja na API." ); }
-// 
+//
 //     /*! this text is generated when the \\bug command is used. */
 //     virtual QCString trBugsAndLimitations()
-//     { return decode( "Greske i ogranicenja" ); }
-// 
+//     { return "Greske i ogranicenja"; }
+//
 //     virtual QCString trSources()
 //     {
 //       return decode("Izvorne datoteke" );
 //     }
-// 
+//
 //     /*! Used for Java interfaces in the summary section of Java packages */
 //     virtual QCString trInterfaces()
 //     {
-//       return decode( "Interfejsi" );  //!< Radna okruzenja. Ali to je dve reci.
+//       return "Interfejsi";  //!< Radna okruzenja. Ali to je dve reci.
 //     }
-// 
+//
 //     /*! Used as a chapter title for Latex & RTF output */
 //     virtual QCString trPackageDocumentation()
 //     {
-//       return decode( "Dokumentacija paketa" );
+//       return "Dokumentacija paketa";
 //     }
-//  
+//
 //     /*! This is used for translation of the word that will possibly
-//      *  be followed by a single name or by a list of names 
+//      *  be followed by a single name or by a list of names
 //      *  of the category.
 //      */
 //     virtual QCString trField(bool first_capital, bool singular)
-//     { 
+//     {
 //       QCString result((first_capital ? "Polj" : "polj"));
 //       result+= (singular ? "e" : "a");
-//       return decode( result ); 
+//       return result;
 //     }
 
 };
index b6bb3d7..4ef2bc4 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -17,8 +17,8 @@
 
 /*
 ==================================================================================
-Svensk översättning av:
-Samuel Hägglund      <sahag96@ite.mh.se>
+Svensk översättning av:
+Samuel Hägglund      <sahag96@ite.mh.se>
 Xet Erixon           <xet@xeqt.com>
 Mikael Hallin        <mikaelhallin@yahoo.se>           2003-07-28
 ==================================================================================
@@ -26,17 +26,17 @@ Uppdateringar.
 1999/04/29
 *  Omskrivningar av en hel del ordval, t.ex.
    ENG                  INNAN          EFTER
-   compound             inhängnad      sammansatt
+   compound             inhängnad      sammansatt
    structs              structs        strukter
    unions               unions         unioner
 
    osv...
 
-*  Alla översättnings-strängar returnerar i alla fall en något så när vettig
-   förklaring...
+*  Alla översättnings-strängar returnerar i alla fall en något så när vettig
+   förklaring...
 
 1999/05/27
-*  Det verkade som vi glömt en del mellanslag i vissa strängar vilket resulterade
+*  Det verkade som vi glömt en del mellanslag i vissa strängar vilket resulterade
    i att en del ord blev ihopskrivna.
 
 *  Bytt en del ordval igen...
@@ -44,26 +44,26 @@ Uppdateringar.
    reference manual          Uppslagsbok    referensmanual
 
 *  Skrivit ihop en del ord som innan hade bindestreck
-*  En del nya översättningar är tillagda.
-*  Gamla översättningar borttagna
+*  En del nya översättningar är tillagda.
+*  Gamla översättningar borttagna
 
 ===================================================================================
 Problem!
-   Slot: nån hygglig svensk översättning???
+   Slot: nån hygglig svensk översättning???
 
-   Skicka gärna synpunkter.
+   Skicka gärna synpunkter.
 ===================================================================================
 1999/09/01
-*  Det verkar som om "namnrymd" är en hyggligt vedertagen svensk översättning
-   av "namespace", så jag kör med det från och med nu.
-*  "interface" heter numera "gränssnitt"
+*  Det verkar som om "namnrymd" är en hyggligt vedertagen svensk översättning
+   av "namespace", så jag kör med det från och med nu.
+*  "interface" heter numera "gränssnitt"
 
 2003/07/28
-*  Jag har updaterat översättningen efter ett par års träda..
+*  Jag har updaterat översättningen efter ett par års träda..
 Problem!
-   Deprecated: nån hygglig svensk översättning???
+   Deprecated: nån hygglig svensk översättning???
 
-   Skicka gärna synpunkter.
+   Skicka gärna synpunkter.
 */
 
 #ifndef TRANSLATOR_SE_H
@@ -76,9 +76,9 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     virtual QCString idLanguage()
     { return "swedish"; }
 
-    /*! Used to get the LaTeX command(s) for the language support. 
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -86,7 +86,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -95,17 +95,11 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
       return "\\usepackage[swedish]{babel}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "iso-8859-1";
-    }
-
     virtual QCString trRelatedFunctions()
-    { return "Besläktade funktioner"; }
+    { return "Besläktade funktioner"; }
 
     virtual QCString trRelatedSubscript()
-    { return "(Observera att dessa inte är medlemsfunktioner)"; }
+    { return "(Observera att dessa inte är medlemsfunktioner)"; }
 
     virtual QCString trDetailedDescription()
     { return "Detaljerad beskrivning"; }
@@ -114,7 +108,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     { return "Dokumentation av typdefinierade medlemmar"; }
 
     virtual QCString trMemberEnumerationDocumentation()
-    { return "Dokumentation av egenuppräknande medlemmar"; }
+    { return "Dokumentation av egenuppräknande medlemmar"; }
 
     virtual QCString trMemberFunctionDocumentation()
     { return "Dokumentation av medlemsfunktioner"; }
@@ -123,7 +117,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Fält dokumentation"; 
+        return "Fält dokumentation";
       }
       else
       {
@@ -135,21 +129,21 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     { return "Mer..."; }
 
     virtual QCString trListOfAllMembers()
-    { return "Lista över alla medlemmar"; }
+    { return "Lista över alla medlemmar"; }
 
     virtual QCString trMemberList()
     { return "Medlemslista"; }
 
     virtual QCString trThisIsTheListOfAllMembers()
-    { return "Det här är en fullständig lista över medlemmar för "; }
+    { return "Det här är en fullständig lista över medlemmar för "; }
 
     virtual QCString trIncludingInheritedMembers()
-    { return " med alla ärvda medlemmar."; }
+    { return " med alla ärvda medlemmar."; }
 
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result="Automatiskt skapad av Doxygen";
-      if (s) result+=(QCString)" för "+s;
-      result+=" från källkoden."; 
+      if (s) result+=(QCString)" för "+s;
+      result+=" från källkoden.";
       return result;
     }
 
@@ -157,14 +151,14 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     { return "enum namn"; }
 
     virtual QCString trEnumValue()
-    { return "enum värde"; }
+    { return "enum värde"; }
 
     virtual QCString trDefinedIn()
     { return "definierad i"; }
 
 /*
     QCString trVerbatimText(const char *f)
-    { return (QCString)"Detta är den ordagranna texten från inkluderingsfilen "+f; }
+    { return (QCString)"Detta är den ordagranna texten från inkluderingsfilen "+f; }
 */
     virtual QCString trModules()
     { return "Moduler"; }
@@ -191,7 +185,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Data fält"; 
+        return "Data fält";
       }
       else
       {
@@ -200,10 +194,10 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     }
 
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Globala symboler"; 
+        return "Globala symboler";
       }
       else
       {
@@ -212,78 +206,78 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     }
 
     virtual QCString trRelatedPages()
-    { return "Besläktade sidor"; }
+    { return "Besläktade sidor"; }
 
     virtual QCString trExamples()
     { return "Exempel"; }
 
     virtual QCString trSearch()
-    { return "Sök"; }
+    { return "Sök"; }
 
     virtual QCString trClassHierarchyDescription()
-    { return "Denna lista över arv är grovt, men inte helt, "
+    { return "Denna lista över arv är grovt, men inte helt, "
              "sorterad i alfabetisk ordning:";
     }
 
     virtual QCString trFileListDescription(bool extractAll)
     {
-      QCString result="Här följer en lista över alla ";
+      QCString result="Här följer en lista över alla ";
       if (!extractAll) result+="dokumenterade ";
       result+="filer, med en kort beskrivning:";
       return result;
     }
 
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Här följer datastrukturerna med korta beskrivningar:";
+        return "Här följer datastrukturerna med korta beskrivningar:";
       }
       else
       {
-        return "Här följer klasserna, strukterna, unionerna och "
-               "gränssnitten med korta beskrivningar:"; 
+        return "Här följer klasserna, strukterna, unionerna och "
+               "gränssnitten med korta beskrivningar:";
       }
     }
 
     /*! This is an introduction to the page with all class members. */
     virtual QCString trCompoundMembersDescription(bool extractAll)
     {
-      QCString result="Här är en lista över alla ";
+      QCString result="Här är en lista över alla ";
       if (!extractAll)
       {
         result+="dokumenterade ";
       }
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        result+="struktur- och unions-fält";
+        result+="struktur- och unions-fält";
       }
       else
       {
         result+="klassmedlemmar";
       }
-      result+=" med länkar till ";
-      if (!extractAll) 
+      result+=" med länkar till ";
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
-          result+="struktur/unions-dokumentationen för varje fält:";
+          result+="struktur/unions-dokumentationen för varje fält:";
         }
         else
         {
-          result+="klassdokumentationen för varje medlem:";
+          result+="klassdokumentationen för varje medlem:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
-          result+=" strukturerna/unionerna de tillhör:";
+          result+=" strukturerna/unionerna de tillhör:";
         }
         else
         {
-          result+="klasserna de tillhör:";
+          result+="klasserna de tillhör:";
         }
       }
       return result;
@@ -291,7 +285,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
 
     virtual QCString trFileMembersDescription(bool extractAll)
     {
-      QCString result="Här följer en lista över alla ";
+      QCString result="Här följer en lista över alla ";
       if (!extractAll) result+="dokumenterade ";
 
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
@@ -303,22 +297,22 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
       {
         result+= "filmedlemmar";
       }
-      result+= " med länkar till ";
+      result+= " med länkar till ";
       if (extractAll)
-        result+= "filerna som de tillhör:";
+        result+= "filerna som de tillhör:";
       else
         result+= "dokumentationen:";
       return result;
     }
 
     virtual QCString trExamplesDescription()
-    { return "Här följer en lista med alla exempel:"; }
+    { return "Här följer en lista med alla exempel:"; }
 
     virtual QCString trRelatedPagesDescription()
-    { return "Här följer en lista över alla besläktade dokumentationssidor:";}
+    { return "Här följer en lista över alla besläktade dokumentationssidor:";}
 
     virtual QCString trModulesDescription()
-    { return "Här följer en lista över alla moduler:"; }
+    { return "Här följer en lista över alla moduler:"; }
 
     virtual QCString trDocumentation()
     { return "Dokumentation"; }
@@ -335,9 +329,9 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
-        return "Index över datastrukturer";
+        return "Index över datastrukturer";
       } else {
-        return "Index över sammensatta typer";
+        return "Index över sammensatta typer";
       }
     }
 
@@ -345,28 +339,28 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     { return "Filindex"; }
 
     virtual QCString trModuleDocumentation()
-    { return "Dokumentation över moduler"; }
+    { return "Dokumentation över moduler"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Dokumentation över datastrukturer";
+        return "Dokumentation över datastrukturer";
       }
       else
       {
-        return "Documentation över klasser";
+        return "Documentation över klasser";
       }
     }
 
     virtual QCString trFileDocumentation()
-    { return "Dokumentation över filer"; }
+    { return "Dokumentation över filer"; }
 
     virtual QCString trExampleDocumentation()
-    { return "Dokumentation över exempel"; }
+    { return "Dokumentation över exempel"; }
 
     virtual QCString trPageDocumentation()
     { return "Dokumentation av sidor"; }
@@ -376,73 +370,63 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
 
     virtual QCString trDefines()
     { return "Definitioner"; }
-    virtual QCString trFuncProtos()
-    { return "Funktionsprototyper"; }
     virtual QCString trTypedefs()
     { return "Typdefinitioner"; }
     virtual QCString trEnumerations()
-    { return "Egenuppräknande typer"; }
+    { return "Egenuppräknande typer"; }
     virtual QCString trFunctions()
     { return "Funktioner"; }
     virtual QCString trVariables()
     { return "Variabler"; }
 
     virtual QCString trEnumerationValues()
-    { return "Egenuppräknade typers värden"; }
+    { return "Egenuppräknade typers värden"; }
 
     virtual QCString trDefineDocumentation()
-    { return "Dokumentation över definitioner"; }
-
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Dokumentation över funktionsprototyper"; }
+    { return "Dokumentation över definitioner"; }
 
     virtual QCString trTypedefDocumentation()
-    { return "Dokumentation över typdefinitioner"; }
+    { return "Dokumentation över typdefinitioner"; }
 
     virtual QCString trEnumerationTypeDocumentation()
-    { return "Dokumentation över egenuppräknande typer"; }
+    { return "Dokumentation över egenuppräknande typer"; }
 
     virtual QCString trFunctionDocumentation()
-    { return "Dokumentation över funktioner"; }
+    { return "Dokumentation över funktioner"; }
 
     virtual QCString trVariableDocumentation()
-    { return "Dokumentation över variabler"; }
+    { return "Dokumentation över variabler"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Datastrukturer";
       }
       else
       {
-        return "Sammansättning";
+        return "Sammansättning";
       }
     }
 
     virtual QCString trGeneratedAt(const char *date,const char *projName)
     {
       QCString result=(QCString)"Skapad "+date;
-      if (projName) result+=(QCString)" för "+projName;
+      if (projName) result+=(QCString)" för "+projName;
       result+=(QCString)" av";
       return result;
     }
 
-    virtual QCString trWrittenBy()
-    {
-      return "skriven av";
-    }
-
     virtual QCString trClassDiagram(const char *clName)
     {
-      return (QCString)"Klassdiagram för "+clName;
+      return (QCString)"Klassdiagram för "+clName;
     }
 
     virtual QCString trForInternalUseOnly()
-    { return "Endast för internt bruk."; }
+    { return "Endast för internt bruk."; }
 
     virtual QCString trWarning()
     { return "Varning"; }
@@ -457,7 +441,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     { return "Returnerar"; }
 
     virtual QCString trSeeAlso()
-    { return "Se även"; }
+    { return "Se även"; }
 
     virtual QCString trParameters()
     { return "Parametrar"; }
@@ -475,21 +459,21 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
 
     virtual QCString trNamespaceListDescription(bool extractAll)
     {
-      QCString result="Här är en lista över alla ";
+      QCString result="Här är en lista över alla ";
       if (!extractAll) result+="dokumenterade ";
       result+="namnrymder med en kort beskrivning:";
       return result;
     }
 
     virtual QCString trFriends()
-    { return "Vänner"; }
+    { return "Vänner"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
 
     virtual QCString trRelatedFunctionDocumentation()
-    { return "Vänners och besläktade funktioners dokumentation"; }
+    { return "Vänners och besläktade funktioners dokumentation"; }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
@@ -505,7 +489,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
         case ClassDef::Class:  result+=" klass"; break;
         case ClassDef::Struct: result+=" strukt"; break;
         case ClassDef::Union:  result+=" union"; break;
-        case ClassDef::Interface:  result+=" gränssnitt"; break;
+        case ClassDef::Interface:  result+=" gränssnitt"; break;
         case ClassDef::Protocol:   result+=" protocol"; break; // translate me!
         case ClassDef::Category:   result+=" category"; break; // translate me!
         case ClassDef::Exception:  result+=" undantag"; break;
@@ -580,38 +564,38 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
       // used in class documentation to produce a list of base classes,
       // if class diagrams are disabled.
     {
-      return "Ärver "+trWriteList(numEntries)+".";
+      return "Ärver "+trWriteList(numEntries)+".";
     }
     virtual QCString trInheritedByList(int numEntries)
       // used in class documentation to produce a list of super classes,
       // if class diagrams are disabled.
     {
-      return "Ärvd av "+trWriteList(numEntries)+".";
+      return "Ärvd av "+trWriteList(numEntries)+".";
     }
     virtual QCString trReimplementedFromList(int numEntries)
       // used in member documentation blocks to produce a list of
       // members that are hidden by this one.
     {
-      return "Återskapad från "+trWriteList(numEntries)+".";
+      return "Återskapad från "+trWriteList(numEntries)+".";
     }
     virtual QCString trReimplementedInList(int numEntries)
     {
       // used in member documentation blocks to produce a list of
       // all member that overwrite the implementation of this member.
-      return "Återskapad i "+trWriteList(numEntries)+".";
+      return "Återskapad i "+trWriteList(numEntries)+".";
     }
 
     virtual QCString trNamespaceMembers()
     { return "Namnrymdsmedlemmar"; }
     virtual QCString trNamespaceMemberDescription(bool extractAll)
     {
-      QCString result="Här är en lista över alla ";
+      QCString result="Här är en lista över alla ";
       if (!extractAll) result+="dokumenterade ";
-      result+="namnrymdsmedlemmar med länkar till ";
+      result+="namnrymdsmedlemmar med länkar till ";
       if (extractAll)
-        result+=" namnrymd-dokumentationen för varje medlem:";
+        result+=" namnrymd-dokumentationen för varje medlem:";
       else
-        result+="de namnrymder de tillhör:";
+        result+="de namnrymder de tillhör:";
       return result;
     }
 
@@ -641,44 +625,37 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
         bool single)
     { // here s is one of " Class", " Struct" or " Union"
       // single is true implies a single file
-      QCString result=(QCString)"Dokumentationen för ";
+      QCString result=(QCString)"Dokumentationen för ";
       switch(compType)
       {
         case ClassDef::Class:      result+="denna klass "; break;
         case ClassDef::Struct:     result+="denna strukt "; break;
         case ClassDef::Union:      result+="denna union "; break;
-        case ClassDef::Interface:  result+="detta gränssnitt "; break;
+        case ClassDef::Interface:  result+="detta gränssnitt "; break;
         case ClassDef::Protocol:   result+="protocol"; break; // translate me!
         case ClassDef::Category:   result+="category"; break; // translate me!
         case ClassDef::Exception:  result+="detta undantag "; break;
         default: break;
       }
-      result+="var genererad från följande fil";
+      result+="var genererad från följande fil";
       if (single) result+=":"; else result+="er:";
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    {
-      return "Alfabetisk lista";
-    }
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
 
     /*! This is used as the heading text for the retval command. */
     virtual QCString trReturnValues()
-    { return "Returvärden"; }
+    { return "Returvärden"; }
 
     /*! This is in the (quick) index as a link to the main page (index.html)
      */
     virtual QCString trMainPage()
     { return "Huvudsida"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -690,7 +667,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
 
     virtual QCString trDefinedAtLineInSourceFile()
     {
-      return "Definition på rad @0 i filen @1.";
+      return "Definition på rad @0 i filen @1.";
     }
     virtual QCString trDefinedInSourceFile()
     {
@@ -703,7 +680,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
 
     virtual QCString trDeprecated()
     {
-      return "Föråldrad";
+      return "Föråldrad";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -713,37 +690,37 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     /*! this text is put before a collaboration diagram */
     virtual QCString trCollaborationDiagram(const char *clName)
     {
-      return (QCString)"Samarbetsdiagram för "+clName+":";
+      return (QCString)"Samarbetsdiagram för "+clName+":";
     }
-    
+
     /*! this text is put before an include dependency graph */
     virtual QCString trInclDepGraph(const char *fName)
     {
-      return (QCString)"Include-beroendediagram för "+fName+":";
+      return (QCString)"Include-beroendediagram för "+fName+":";
     }
-    
+
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Dokumentation av konstruktorer och destruktorer"; 
+      return "Dokumentation av konstruktorer och destruktorer";
     }
 
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
     {
-      return "Gå till denna fils källkod.";
+      return "Gå till denna fils källkod.";
     }
 
     /*! Used in the file sources to point to the corresponding documentation. */
     virtual QCString trGotoDocumentation()
     {
-      return "Gå till denna fils dokumentation.";
+      return "Gå till denna fils dokumentation.";
     }
 
     /*! Text for the \\pre command */
     virtual QCString trPrecondition()
     {
-      return "Förhandsvillkor";
+      return "Förhandsvillkor";
     }
 
     /*! Text for the \\post command */
@@ -761,12 +738,12 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     /*! Text shown before a multi-line variable/enum initialization */
     virtual QCString trInitialValue()
     {
-      return "Begynnelsevärde:";
+      return "Begynnelsevärde:";
     }
     /*! Text used the source code in the file index */
     virtual QCString trCode()
     {
-      return "källkod";
+      return "källkod";
     }
 
     virtual QCString trGraphicalHierarchy()
@@ -775,21 +752,21 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     }
     virtual QCString trGotoGraphicalHierarchy()
     {
-      return "Gå till den grafiska klasshierarkin";
+      return "Gå till den grafiska klasshierarkin";
     }
     virtual QCString trGotoTextualHierarchy()
     {
-      return "Gå till den textbaserade klasshierarkin";
+      return "Gå till den textbaserade klasshierarkin";
     }
     virtual QCString trPageIndex()
     {
       return "Sidindex";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
       return "Notera";
@@ -802,7 +779,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Datafält";
+        return "Datafält";
       }
       else
       {
@@ -845,12 +822,12 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     /*! Used as a marker that is put before a \\todo item */
     virtual QCString trTodo()
     {
-      return "Att-göra";
+      return "Att-göra";
     }
     /*! Used as the header of the todo list */
     virtual QCString trTodoList()
     {
-      return "Att-göra lista";
+      return "Att-göra lista";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -863,7 +840,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     }
     virtual QCString trRemarks()
     {
-      return "Lägg märke till";
+      return "Lägg märke till";
     }
     virtual QCString trAttention()
     {
@@ -871,7 +848,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     }
     virtual QCString trInclByDepGraph()
     {
-      return "Den här grafen visar vilka filer som direkt eller "
+      return "Den här grafen visar vilka filer som direkt eller "
              "indirekt inkluderar denna filen.";
     }
     virtual QCString trSince()
@@ -886,36 +863,36 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     /*! title of the graph legend page */
     virtual QCString trLegendTitle()
     {
-      return "Grafförklaring";
+      return "Grafförklaring";
     }
 
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
-        "Den här sidan förklarar hur man ska tolka de grafer som doxygen "
+      return
+        "Den här sidan förklarar hur man ska tolka de grafer som doxygen "
         "genererar.<p>\n"
-        "Tag följande exempel:\n"
+        "Tag följande exempel:\n"
         "\\code\n"
-       "/*! Osynlig klass på grund av stympning */\n"
+       "/*! Osynlig klass på grund av stympning */\n"
         "class Invisible { };\n\n"
-       "/*! Stympad klass, ärvningsrelationen är dold */\n"
+       "/*! Stympad klass, ärvningsrelationen är dold */\n"
         "class Truncated : public Invisible { };\n\n"
        "/* Klass utan doxygen-kommentarer */\n"
         "class Undocumented { };\n\n"
-       "/*! Klass som ärvs med publikt arv */\n"
+       "/*! Klass som ärvs med publikt arv */\n"
         "class PublicBase : public Truncated { };\n\n"
         "/*! En template-klass */\n"
         "template<class T> class Templ { };\n\n"
-       "/*! Klass som ärvs med skyddat arv */\n"
+       "/*! Klass som ärvs med skyddat arv */\n"
         "class ProtectedBase { };\n\n"
-       "/*! Klass som ärvs med privat arv */\n"
+       "/*! Klass som ärvs med privat arv */\n"
         "class PrivateBase { };\n\n"
-       "/*! Klass som används av Inherited klassen */\n"
+       "/*! Klass som används av Inherited klassen */\n"
         "class Used { };\n\n"
-       "/*! Super klassen som ärver ett antal andra klasser */\n"
+       "/*! Super klassen som ärver ett antal andra klasser */\n"
         "class Inherited : public PublicBase,\n"
         "                  protected ProtectedBase,\n"
         "                  private PrivateBase,\n"
@@ -926,47 +903,47 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
         "    Used *m_usedClass;\n"
         "};\n"
         "\\endcode\n"
-       "Om \\c MAX_DOT_GRAPH_HEIGHT är satt till 240 i konfigurationsfilen, "
-       "kommer följande graf att generas:"
+       "Om \\c MAX_DOT_GRAPH_HEIGHT är satt till 240 i konfigurationsfilen, "
+       "kommer följande graf att generas:"
         "<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
         "<p>\n"
-       "Rektanglarna i den ovanstående grafen har följande betydelser:\n"
+       "Rektanglarna i den ovanstående grafen har följande betydelser:\n"
         "<ul>\n"
        "<li>%En fylld svart rektangel representerar den strukt eller klass "
        "som har genererat grafen.\n"
        "<li>%En rektangel med svart kant symboliserar en dokumenterad "
        "strukt eller klass.\n"
-       "<li>%En rektangel med grå kant symboliserar en odokumenterad strukt "
+       "<li>%En rektangel med grå kant symboliserar en odokumenterad strukt "
        "eller klass.\n"
-       "<li>%En klass med röd kant symboliserar en strukt eller klass där "
-       "alla dess relationer inte visas. %En graf stympas om den inte får "
-       "plats inom de givna gränserna.\n"
+       "<li>%En klass med röd kant symboliserar en strukt eller klass där "
+       "alla dess relationer inte visas. %En graf stympas om den inte får "
+       "plats inom de givna gränserna.\n"
         "</ul>\n"
-       "Pilarna har följande betydelser:\n"
+       "Pilarna har följande betydelser:\n"
         "<ul>\n"
-       "<li>%En mörkblå pil används för att visualisera en publik arvrelation "
-       "mellan två klasser.\n"
-       "<li>%En mörkgrön pil används för en skyddad arvsrelation.\n"
-       "<li>%En mörkröd pil används för en privat arvsrelation.\n"
-       "<li>%En sträckad lila pil används om en klass är innesluten eller "
-       "använd av en annan klass. Vid pilen står namnet på den eller de "
-       "variabler som klassen pilen pekar på kommer åt.\n"
-       "<li>%En sträckad gul pil symboliserar förhållandet mellan en "
-       "template-instans och template-klassen, som den instantierades från.\n"
-       "Vid pilen står instansens template-parametrar.\n"
+       "<li>%En mörkblå pil används för att visualisera en publik arvrelation "
+       "mellan två klasser.\n"
+       "<li>%En mörkgrön pil används för en skyddad arvsrelation.\n"
+       "<li>%En mörkröd pil används för en privat arvsrelation.\n"
+       "<li>%En sträckad lila pil används om en klass är innesluten eller "
+       "använd av en annan klass. Vid pilen står namnet på den eller de "
+       "variabler som klassen pilen pekar på kommer åt.\n"
+       "<li>%En sträckad gul pil symboliserar förhållandet mellan en "
+       "template-instans och template-klassen, som den instantierades från.\n"
+       "Vid pilen står instansens template-parametrar.\n"
         "</ul>\n";
     }
 
     /*! text for the link to the legend page */
     virtual QCString trLegend()
     {
-      return "förklaring";
+      return "förklaring";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -979,16 +956,6 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP metoder";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1032,8 +999,8 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     /*! The description of the package index page */
     virtual QCString trPackageListDescription()
     {
-      return "Här är en lista över paketen med en kort beskrivning "
-             "(om sådan finns):";
+      return "Här är en lista över paketen med en kort beskrivning "
+             "(om sådan finns):";
     }
     /*! The link name in the Quick links header for each page */
     virtual QCString trPackages()
@@ -1043,13 +1010,13 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     /*! Text shown before a multi-line define */
     virtual QCString trDefineValue()
     {
-      return "Värde:";
+      return "Värde:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1091,83 +1058,83 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Klass" : "klass"));
       if (!singular)  result+="er";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Fil" : "fil"));
       if (!singular)  result+="er";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Namnrymd" : "namnrynd"));
       if (!singular)  result+="er";
-      return result; 
+      return result;
     }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Grupp" : "grupp"));
       if (!singular)  result+="er";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Sid" : "sid"));
       if (singular)
          result+="a";
       else
          result+="or";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Medlem" : "medlem"));
       if (!singular)  result+="mar";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Global" : "global"));
       if (!singular)  result+="er";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1178,8 +1145,8 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool /*singular*/)
     {
-      QCString result((first_capital ? "Författare" : "författare"));
-      return result; 
+      QCString result((first_capital ? "Författare" : "författare"));
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1197,7 +1164,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1222,36 +1189,36 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
      */
     virtual QCString trRTFTableOfContents()
     {
-      return "Innehållsförteckning";
+      return "Innehållsförteckning";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
-      return "Lista över föråldrade";
+      return "Lista över föråldrade";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
     {
-      return "Händelser";
+      return "Händelser";
     }
     /*! Header used for the documentation section of a class' events. */
     virtual QCString trEventDocumentation()
     {
-      return "Händelse Dokumentation";
+      return "Händelse Dokumentation";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1261,43 +1228,43 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Paket typer";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Paket funktioner";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Statiska paket funktioner";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Paket attribut";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Statiska paket attribut";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1307,33 +1274,25 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     /*! Put in front of the call graph for a function. */
     virtual QCString trCallGraph()
     {
-      return "Här är anropnings diagrammet för den här funktionen:";
+      return "Här är anropnings diagrammet för den här funktionen:";
     }
 
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Sök efter";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
     virtual QCString trSearchResultsTitle()
     {
-      return "Sökresultat";
+      return "Sökresultat";
     }
     /*! This string is put just before listing the search results. The
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1341,24 +1300,24 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     {
       if (numDocuments==0)
       {
-        return "Tyvärr finns det inga dokument som matchar din sökning.";
+        return "Tyvärr finns det inga dokument som matchar din sökning.";
       }
       else if (numDocuments==1)
       {
-        return "Hittade <b>1</b> dokument som matchar din sökning.";
+        return "Hittade <b>1</b> dokument som matchar din sökning.";
       }
-      else 
+      else
       {
-        return "Hittade <b>$num</b> dokument som matchar din sökning. "
-               "Visar de bästa träffarna först.";
+        return "Hittade <b>$num</b> dokument som matchar din sökning. "
+               "Visar de bästa träffarna först.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
     {
-      return "Träffar:";
+      return "Träffar:";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1369,7 +1328,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
      */
     virtual QCString trSourceFile(QCString& filename)
     {
-      return "Källkodsfilen " + filename;
+      return "Källkodsfilen " + filename;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1394,11 +1353,11 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     virtual QCString trDirectories()
     { return "Kataloger"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
-       { return "Den här katalogen är grovt sorterad, "
+       { return "Den här katalogen är grovt sorterad, "
              "men inte helt, i alfabetisk ordning:";
     }
 
@@ -1412,10 +1371,10 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Katalog" : "katalog"));
       if (!singular) result+="er";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1427,9 +1386,9 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
      */
     virtual QCString trOverloadText()
     {
-      return "Det här är en överlagrad medlemsfunktion "
-             "tillhandahållen för bekvämlighet. Den enda som "
-             "skiljer sig från ovanstående funktion är vilka "
+      return "Det här är en överlagrad medlemsfunktion "
+             "tillhandahållen för bekvämlighet. Den enda som "
+             "skiljer sig från ovanstående funktion är vilka "
              "argument den tar emot.";
     }
 
@@ -1440,7 +1399,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     /*! This is used to introduce a caller (or called-by) graph */
     virtual QCString trCallerGraph()
     {
-      return "Här är katalog-grafen för denna funktion:";
+      return "Här är katalog-grafen för denna funktion:";
     }
 
     /*! This is used in the documentation of a file/namespace before the list
@@ -1448,7 +1407,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
      */
     virtual QCString trEnumerationValueDocumentation()
     {
-      return "Uppräknings-dokumentation";
+      return "Uppräknings-dokumentation";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1465,29 +1424,29 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
 
     /*! This is put above each page as a link to all members of compounds (Fortran). */
     virtual QCString trCompoundMembersFortran()
-    { return "Data fält"; }
+    { return "Data fält"; }
 
     /*! This is an introduction to the annotated compound list (Fortran). */
     virtual QCString trCompoundListDescriptionFortran()
-    { return "Här är datatyperna med en kort beskrivning:"; }
+    { return "Här är datatyperna med en kort beskrivning:"; }
 
     /*! This is an introduction to the page with all data types (Fortran). */
     virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
     {
-      QCString result="Här är en lista av alla ";
+      QCString result="Här är en lista av alla ";
       if (!extractAll)
       {
         result+="dokumenterade ";
       }
       result+="datatyps medlemmar";
-      result+=" med länkar till ";
+      result+=" med länkar till ";
       if (!extractAll)
       {
-         result+="datastrukturs documentation för varje medlem";
+         result+="datastrukturs documentation för varje medlem";
       }
       else
       {
-         result+="klasserna de hör till:";
+         result+="klasserna de hör till:";
       }
       return result;
     }
@@ -1529,7 +1488,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     /*! used as an introduction to the modules list (Fortran) */
     virtual QCString trModulesListDescription(bool extractAll)
     {
-      QCString result="Här är en lista på alla ";
+      QCString result="Här är en lista på alla ";
       if (!extractAll) result+="dokumenterade ";
       result+="moduler med en kort beskrivning:";
       return result;
@@ -1546,7 +1505,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
         case ClassDef::Class:      result+=" Modul"; break;
         case ClassDef::Struct:     result+=" Typ"; break;
         case ClassDef::Union:      result+=" Union"; break;
-        case ClassDef::Interface:  result+=" Gränssnitt"; break;
+        case ClassDef::Interface:  result+=" Gränssnitt"; break;
         case ClassDef::Protocol:   result+=" Protokoll"; break;
         case ClassDef::Category:   result+=" Kategori"; break;
         case ClassDef::Exception:  result+=" Undantag"; break;
@@ -1571,16 +1530,16 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
     {
-      QCString result="Här är en lista på alla ";
+      QCString result="Här är en lista på alla ";
       if (!extractAll) result+="documented ";
-      result+="modul medlemmar med länkar till ";
+      result+="modul medlemmar med länkar till ";
       if (extractAll)
       {
-        result+="modul dokumentationen för varje medlem:";
+        result+="modul dokumentationen för varje medlem:";
       }
       else
       {
-        result+="modulerna de hör till:";
+        result+="modulerna de hör till:";
       }
       return result;
     }
@@ -1606,19 +1565,19 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
         bool single)
     {
       // single is true implies a single file
-      QCString result=(QCString)"Dokumentationen för denna ";
+      QCString result=(QCString)"Dokumentationen för denna ";
       switch(compType)
       {
         case ClassDef::Class:      result+="modul"; break;
         case ClassDef::Struct:     result+="typ"; break;
         case ClassDef::Union:      result+="union"; break;
-        case ClassDef::Interface:  result+="gränssnitt"; break;
+        case ClassDef::Interface:  result+="gränssnitt"; break;
         case ClassDef::Protocol:   result+="protokoll"; break;
         case ClassDef::Category:   result+="kategori"; break;
         case ClassDef::Exception:  result+="undantag"; break;
         default: break;
       }
-      result+=" genererades från följade fil";
+      result+=" genererades från följade fil";
       if (single) result+=":"; else result+="er:";
       return result;
     }
@@ -1643,7 +1602,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
     /*! C# Type Constraint list */
     virtual QCString trTypeConstraints()
     {
-      return "Typbegränsningar";
+      return "Typbegränsningar";
     }
 
 /*---------- For internal use: ----------------------------------------*/
@@ -1660,7 +1619,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
       return result;
     }
 
-       
+
 };
 
 #endif
index 9c66c55..2dbfcd8 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -18,7 +18,7 @@
 #ifndef TRANSLATOR_TR_H
 #define TRANSLATOR_TR_H
 
-/*! 
+/*!
  When defining a translator class for the new language, follow
  the description in the documentation.  One of the steps says
  that you should copy the translator_en.h (this) file to your
@@ -45,19 +45,19 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "turkish"; }
-    
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -65,7 +65,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -74,12 +74,6 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
       return "";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related fonksiyonlar. */
@@ -97,30 +91,30 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
     { return "Üye Typedef Dokümantasyonu"; }
-    
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
     { return "Üye Enümerasyon Dokümantasyonu"; }
-    
+
     /*! header that is put before the list of member fonksiyonlar. */
     virtual QCString trMemberFunctionDocumentation()
     { return "Üye Fonksiyon Dokümantasyonu"; }
-    
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Alan Dokümantasyonu"; 
+        return "Alan Dokümantasyonu";
       }
       else
       {
-        return "Üye Veri Dokümantasyonu"; 
+        return "Üye Veri Dokümantasyonu";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
+    virtual QCString trMore()
     { return "Ayrıntılar..."; }
 
     /*! put in the class documentation */
@@ -138,81 +132,81 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
     { return "  (kalıtımla gelen üyeleri de içerir)."; }
-    
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result="Doxygen tarafından";
       if (s) result+=s+(QCString)" için ";
-      result+=" kaynak koddan otomatik üretilmiştir."; 
+      result+=" kaynak koddan otomatik üretilmiştir.";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
     { return "enum adı"; }
-    
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
     { return "enum değeri"; }
-    
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
     { return "tanımlandığı yer"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
     { return "Modüller"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
     { return "Sınıf Hiyerarşisi"; }
-    
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Veri Yapıları";
       }
       else
       {
-        return "Sınıf Listesi"; 
+        return "Sınıf Listesi";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
     { return "Dosya Listesi"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Veri Alanları"; 
+        return "Veri Alanları";
       }
       else
       {
-        return "Sınıf Üyeleri"; 
+        return "Sınıf Üyeleri";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Globaller"; 
+        return "Globaller";
       }
       else
       {
-        return "Dosya Üyeleri"; 
+        return "Dosya Üyeleri";
       }
     }
 
@@ -245,16 +239,16 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Kısa tanımlarıyla birlikte veri yapıları:"; 
+        return "Kısa tanımlarıyla birlikte veri yapıları:";
       }
       else
       {
         return "Kısa tanımlarıyla sınıflar, yapılar (struct), "
-               "birleşimler(union) ve arayüzler:"; 
+               "birleşimler(union) ve arayüzler:";
       }
     }
 
@@ -275,7 +269,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
         result+="sınıf üyelerini içerir";
       }
       result+=" ve ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -286,7 +280,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
           result+="her üye için sınıf dokümantasyonuna bağlar:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -305,7 +299,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     {
       QCString result="Bu liste tüm ";
       if (!extractAll) result+="dokümante edilmiş ";
-      
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         result+="fonksiyonları, değişkenleri, makroları, enümerasyonları ve typedef\'leri içerir";
@@ -315,9 +309,9 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
         result+="dosya üyelerini içerir";
       }
       result+=" ve ";
-      if (extractAll) 
+      if (extractAll)
         result+="ait olduğu dosyalar bağlar:";
-      else 
+      else
         result+="dokümantasyona bağlar:";
       return result;
     }
@@ -334,43 +328,43 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     virtual QCString trModulesDescription()
     { return "Tüm modüllerin listesi aşağıdadır:"; }
 
-    // index titles (the project name is prepended for these) 
+    // index titles (the project name is prepended for these)
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
     { return "Dokümantasyonu"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "Modül İndeksi"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "Hiyerarşik İndeksi"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "Veri Yapıları İndeksi";
       }
       else
       {
-        return "Sınıf İndeksi"; 
+        return "Sınıf İndeksi";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "Dosya İndeksi"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
@@ -383,14 +377,14 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Veri Yapıları Dokümantasyonu"; 
+        return "Veri Yapıları Dokümantasyonu";
       }
       else
       {
-        return "Sınıf Dokümantasyonu"; 
+        return "Sınıf Dokümantasyonu";
       }
     }
 
@@ -415,123 +409,105 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
     { return "Referans Kitabı"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "Makrolar"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Fonksiyon Prototipleri"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "Typedef\'ler"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
     { return "Enümerasyonlar"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "Fonksiyonlar"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "Değişkenler"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
     { return "Enümeratör"; }
-    
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
     { return "Makro Dokümantasyonu"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Fonksiyon Prototip Dokümantasyonu"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
     { return "Typedef Dokümantasyonu"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
     { return "Enümerasyon Tipi Dokümantasyonu"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
     { return "Fonksiyon Dokümantasyonu"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
     { return "Değişken Dokümantasyonu"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Veri Yapıları"; 
+        return "Veri Yapıları";
       }
       else
       {
-        return "Sınıflar"; 
+        return "Sınıflar";
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=projName+(QCString)" için "+date;
       if (projName) result+=(QCString)" tarihinde ";
       result+=(QCString)" üreten: ";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "yazan";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
       return clName+(QCString)" için kalıtım şeması:";
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
     { return "İç kullanıma ayrılmıştır."; }
@@ -563,7 +539,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
     { return "İstisnalar"; }
-    
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
     { return "Oluşturan"; }
@@ -571,7 +547,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
     { return "Namespace Listesi"; }
@@ -590,17 +566,17 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
      */
     virtual QCString trFriends()
     { return "Arkadaşları"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
     { return "Arkadaş Ve İlgili Fonksiyon Dokümantasyonu"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -631,7 +607,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     virtual QCString trFileReference(const char *fileName)
     {
       QCString result=fileName;
-      result+=" Dosya Referansı"; 
+      result+=" Dosya Referansı";
       return result;
     }
 
@@ -642,7 +618,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
       result+=" Namespace Referansı";
       return result;
     }
-    
+
     virtual QCString trPublicMembers()
     { return "Public Üye Fonksiyonlar"; }
     virtual QCString trPublicSlots()
@@ -663,7 +639,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     { return "Özel Slotlar"; }
     virtual QCString trStaticPrivateMembers()
     { return "Statik Özel Üye Fonksiyonlar"; }
-    
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -672,23 +648,23 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=" ve ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -705,7 +681,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
       return "Şu sınıfların atasıdır : "+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
@@ -727,17 +703,17 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Bu liste tüm ";
       if (!extractAll) result+="dokümante edilmiş ";
       result+="namespace üyelerini listeler ve ";
-      if (extractAll) 
+      if (extractAll)
         result+="her üye için üye dokümantasyonuna bağlar:";
-      else 
+      else
         result+="ait olduğu namespace\'lere bağlar:";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -788,12 +764,6 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Alfabetik Liste"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -807,7 +777,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     virtual QCString trMainPage()
     { return "Ana Sayfa"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -852,7 +822,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Constructor & Destructor Dokümantasyonu"; 
+      return "Constructor & Destructor Dokümantasyonu";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
@@ -909,7 +879,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
       return "Not";
@@ -998,7 +968,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     {
       return "Şu zamandan beri";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -1008,12 +978,12 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     {
       return "Şekil Lejantı";
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "Bu dosya doxygen tarafından üretilen grafiklerin nasıl anlaşılacağını "
         "açıklar.<p>\n"
         "Aşağıdaki örneğe bakalım:\n"
@@ -1077,11 +1047,11 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     {
       return "lejant";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1094,16 +1064,6 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP Üye Fonksiyonlar";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1159,11 +1119,11 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     {
       return "Değer:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1179,9 +1139,9 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1202,15 +1162,15 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1254";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1223,82 +1183,82 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     {
       return "İndeks";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Sınıf" : "sınıf"));
       if (!singular)  result+="lar";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Dosya" : "dosya"));
       if (!singular)  result+="lar";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Namespace" : "namespace"));
       if (!singular)  result+="\'ler";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Grup" : "grup"));
       if (!singular)  result+="lar";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Sayfa" : "sayfa"));
       if (!singular)  result+="lar";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Üye" : "üye"));
       if (!singular)  result+="ler";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Global değişken" : "global değişken"));
       if (!singular)  result+="ler";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1308,10 +1268,10 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Yazar" : "yazar"));
       if (!singular)  result+="lar";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1329,7 +1289,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1361,8 +1321,8 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1373,7 +1333,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1393,43 +1353,43 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Paket Tipleri";
     }
-    /*! Used as a heading for a list of Java class fonksiyonlar with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class fonksiyonlar with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Paket Fonksiyonlar";
     }
-    /*! Used as a heading for a list of static Java class fonksiyonlar with 
+    /*! Used as a heading for a list of static Java class fonksiyonlar with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Static Pakat Fonksiyonları";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Packet Özellikleri(attribute)";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Statik Packet Özellikleri(attribute)";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1446,14 +1406,6 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Arama yapılacak metin";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1465,7 +1417,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1479,13 +1431,13 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
       {
         return "Sorgunuzla eşleşen <b>1</b> doküman bulundu.";
       }
-      else 
+      else
       {
         return "Sorgunuzla eşleşen <b>$num</b> doküman bulundu. "
                "Önce en iyi eşleşmeler gösteriliyor.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1526,7 +1478,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     virtual QCString trDirectories()
     { return "Dizinler"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1544,10 +1496,10 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Dizin" : "dizin"));
       if (!singular) result+="ler";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1574,7 +1526,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
       return "Bu fonksiyon için çağırılma şeması:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
@@ -1583,12 +1535,12 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Üye Fonksiyon/Subroutine Dokümantasyonu"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Veri Tipleri Listesi"; }
 
@@ -1609,18 +1561,18 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
         result+="dokümante edilmiş ";
       }
       result+="veri tiplerini içerir ve ";
-      if (!extractAll) 
+      if (!extractAll)
       {
          result+="her üyeyi veri yapısı dokümantasyonuna bağlar:";
       }
-      else 
+      else
       {
          result+="ait oldukları veri tiplerine bağlar:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1632,24 +1584,24 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     virtual QCString trTypeDocumentation()
     { return "Veri Tipi Dokümantasyonu"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Fonksiyonlar/Subroutine\'ler"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Fonksiyon/Subroutine Dokümantasyonu"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Veri Tipleri"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Modüller Listesi"; }
@@ -1688,46 +1640,46 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" Modül Referansı";        
+      result+=" Modül Referansı";
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Modül Üyeleri"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Bu liste tüm ";
       if (!extractAll) result+="dokümante edilmiş ";
       result+="modül üyelerini içerir ve ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="her üyeyi modül dokümantasyonuna bağlar:";
       }
-      else 
+      else
       {
         result+="ait oldukları modüllere bağlar:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Modüller Indeksi"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Modül" : "modül"));
       if (!singular)  result+="ler";
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1754,24 +1706,24 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Tip" : "tip"));
       if (!singular)  result+="ler";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Alt program" : "alt program"));
       if (!singular)  result+="lar";
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
@@ -1779,52 +1731,46 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     {
       return "Tip Sınırlamaları";
     }
-       
-       
+
+
        //////////////////////////////////////////////////////////////////////////
        // new since 1.6.0 (mainly for the new search engine)
        //////////////////////////////////////////////////////////////////////////
-       
+
     /*! directory relation for \a name */
     virtual QCString trDirRelation(const char *name)
     {
                return QCString(name)+" İlişkisi";
     }
-       
+
     /*! Loading message shown when loading search results */
     virtual QCString trLoading()
     {
                return "Yüklüyor...";
     }
-       
+
     /*! Label used for search results in the global namespace */
     virtual QCString trGlobalNamespace()
     {
                return "En Üst Seviye";
     }
-       
+
     /*! Message shown while searching */
     virtual QCString trSearching()
     {
                return "Arıyor...";
     }
-       
+
     /*! Text shown when no search results are found */
     virtual QCString trNoMatches()
     {
                return "Eşleşme Yok";
     }
-       
+
        //////////////////////////////////////////////////////////////////////////
        // new since 1.6.3 (missing items for the directory pages)
        //////////////////////////////////////////////////////////////////////////
-       
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-               return (QCString)(name) + (QCString)" için dizin bağımlılık grafiği";
-    }
-       
+
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1833,7 +1779,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     {
                return (QCString)(name) + (QCString)" dizinindeki dosya";
     }
-       
+
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the second column mentions the
      *  destination file that is included.
@@ -1842,8 +1788,8 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
     {
                return (QCString)(name) + (QCString)" dizinindeki dosyayı kapsıyor";
     }
-       
-    /** Compiles a date string. 
+
+    /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
      *  @param day Day of the Month: 1..31
@@ -1869,8 +1815,8 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
                }
                return sdate;
     }
-       
-       
+
+
 };
 
 #endif
index 29f2cd3..86e0a02 100644 (file)
@@ -41,7 +41,7 @@
 // Translator class (by the local maintainer) when the localized
 // translator is made up-to-date again.
 
-class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
+class TranslatorChinesetraditional : public Translator
 {
   public:
 
@@ -75,12 +75,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
       return "";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "big5";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -424,12 +418,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
     { return "定義"; }
 
     /*! This is used in the documentation of a file as a header before the
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "函式原型"; }
-
-    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
@@ -466,12 +454,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
     { return "定義巨集說明文件"; }
 
     /*! This is used in the documentation of a file/namespace before the list
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "函式原型說明文件"; }
-
-    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
@@ -526,12 +508,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
       result+=(QCString)", 產生器:";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "撰寫人:";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
@@ -624,7 +600,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
         case ClassDef::Struct:     result+=" 結構"; break;
         case ClassDef::Union:      result+=" 聯合"; break;
         case ClassDef::Interface:  result+=" 介面"; break;
-        case ClassDef::Protocol:   result+=" 協定"; break; 
+        case ClassDef::Protocol:   result+=" 協定"; break;
         case ClassDef::Category:   result+=" 分類"; break;
         case ClassDef::Exception:  result+=" 例外"; break;
         default: break;
@@ -794,12 +770,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "字母順序列表"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -1101,16 +1071,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP方法";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1438,14 +1398,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header
-     *  of each page before the field where one can enter the text to search
-     *  for.
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "搜尋索引";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1495,7 +1447,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
     {
       return filename + " 原始程式檔";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.9
 //////////////////////////////////////////////////////////////////////////
@@ -1518,7 +1470,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
     virtual QCString trDirectories()
     { return "目錄"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1538,7 +1490,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
     {
       return QCString("目錄");
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.4.1
 //////////////////////////////////////////////////////////////////////////
@@ -1565,12 +1517,12 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "成員函數/子程序 文件"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "資料型態列表"; }
 
@@ -1592,18 +1544,18 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
       }
       result+="資料型別成員函數";
       result+=" 附帶連結到 ";
-      if (!extractAll) 
+      if (!extractAll)
       {
          result+="每個成員函數的資料結構文件";
       }
-      else 
+      else
       {
          result+="他們屬於的資料型別";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1615,24 +1567,24 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
     virtual QCString trTypeDocumentation()
     { return "資料型別文件"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "函數/子程序"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "函數/子程序 文件"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "資料型別"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "模組列表"; }
@@ -1674,42 +1626,42 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
       result+="模組參考文件";
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "模組成員"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="此處列出所有";
       if (!extractAll) result+="有文件的";
       result+="模組成員附帶連結到";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="每個函數的模組文件:";
       }
-      else 
+      else
       {
         result+="他們所屬的模組:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "模組索引"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool /* first_capital */, bool /* singular */)
-    {       
+    {
       QCString result("模組");
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1734,22 +1686,22 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool /* first_capital */, bool /* singular */)
-    { 
+    {
       QCString result("型別");
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool /* first_capital */, bool /* singular */)
-    { 
+    {
       QCString result("子程式");
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
@@ -1757,7 +1709,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
     {
       return "型別限制條件";
     }
-       
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.6.0 (mainly for the new search engine)
 //////////////////////////////////////////////////////////////////////////
@@ -1796,12 +1748,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)name+"的目錄關連圖";
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
@@ -1820,7 +1766,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
       return (QCString)"含入檔案在"+name;
     }
 
-    /** Compiles a date string. 
+    /** Compiles a date string.
      *  @param year Year in 4 digits
      *  @param month Month of the year: 1=January
      *  @param day Day of the Month: 1..31
@@ -1863,6 +1809,165 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
     virtual QCString trDirDepGraph(const char *name)
     { return QCString(name)+"的目錄關連圖"+":"; }
 
+//////////////////////////////////////////////////////////////////////////
+// new since 1.8.0
+//////////////////////////////////////////////////////////////////////////
+
+    /*! Detail level selector shown for hierarchical indices */
+    virtual QCString trDetailLevel()
+    { return "詳細程度"; }
+
+    /*! Section header for list of template parameters */
+    virtual QCString trTemplateParameters()
+    { return "樣版參數"; }
+
+    /*! Used in dot graph when UML_LOOK is enabled and there are many fields */
+    virtual QCString trAndMore(const QCString &number)
+    { return "及 "+number+" 個更多..."; }
+
+    /*! Used file list for a Java enum */
+    virtual QCString trEnumGeneratedFromFiles(bool single)
+    { QCString result = "此列舉型態的文件是由下列檔案所產生";
+      if (!single) result += "";
+      result+=":";
+      return result;
+    }
+
+    /*! Header of a Java enum page (Java enums are represented as classes). */
+    virtual QCString trEnumReference(const char *name)
+    { return QCString(name)+" 列舉型態參考"; }
+
+    /*! Used for a section containing inherited members */
+    virtual QCString trInheritedFrom(const char *members,const char *what)
+    { return QCString(members)+" 繼承自 "+what; }
+
+    /*! Header of the sections with inherited members specific for the
+     *  base class(es)
+     */
+    virtual QCString trAdditionalInheritedMembers()
+    { return "額外的繼承成員"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.8.2
+//////////////////////////////////////////////////////////////////////////
+
+    /*! Used as a tooltip for the toggle button that appears in the
+     *  navigation tree in the HTML output when GENERATE_TREEVIEW is
+     *  enabled. This tooltip explains the meaning of the button.
+     */
+    virtual QCString trPanelSynchronisationTooltip(bool enable)
+    {
+      QCString opt = enable ? "啟用" : "停用";
+      return "點擊 "+opt+" 面板進行同步";
+    }
+
+    /*! Used in a method of an Objective-C class that is declared in a
+     *  a category. Note that the @1 marker is required and is replaced
+     *  by a link.
+     */
+    virtual QCString trProvidedByCategory()
+    {
+      return "由 @1 分類所提供.";
+    }
+
+    /*! Used in a method of an Objective-C category that extends a class.
+     *  Note that the @1 marker is required and is replaced by a link to
+     *  the class method.
+     */
+    virtual QCString trExtendsClass()
+    {
+      return "延伸 @1 類別 .";
+    }
+
+    /*! Used as the header of a list of class methods in Objective-C.
+     *  These are similar to static public member functions in C++.
+     */
+    virtual QCString trClassMethods()
+    {
+      return "類別方法";
+    }
+
+    /*! Used as the header of a list of instance methods in Objective-C.
+     *  These are similar to public member functions in C++.
+     */
+    virtual QCString trInstanceMethods()
+    {
+      return "實體方法";
+    }
+
+    /*! Used as the header of the member functions of an Objective-C class.
+     */
+    virtual QCString trMethodDocumentation()
+    {
+      return "方法文件";
+    }
+
+    /*! Used as the title of the design overview picture created for the
+     *  VHDL output.
+     */
+    virtual QCString trDesignOverview()
+    {
+      return "設計概述";
+    }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.8.4
+//////////////////////////////////////////////////////////////////////////
+
+    /** old style UNO IDL services: implemented interfaces */
+    virtual QCString trInterfaces()
+    { return "導出介面"; }
+
+    /** old style UNO IDL services: inherited services */
+    virtual QCString trServices()
+    { return "引入的服務"; }
+
+    /** UNO IDL constant groups */
+    virtual QCString trConstantGroups()
+    { return "常數群組"; }
+
+    /** UNO IDL constant groups */
+    virtual QCString trConstantGroupReference(const char *namespaceName)
+    {
+      QCString result=namespaceName;
+      result+="常數群組參考";
+      return result;
+    }
+    /** UNO IDL service page title */
+    virtual QCString trServiceReference(const char *sName)
+    {
+      QCString result=(QCString)sName;
+      result+="服務參考";
+      return result;
+    }
+    /** UNO IDL singleton page title */
+    virtual QCString trSingletonReference(const char *sName)
+    {
+      QCString result=(QCString)sName;
+      result+="Singleton參考";
+      return result;
+    }
+    /** UNO IDL service page */
+    virtual QCString trServiceGeneratedFromFiles(bool single)
+    {
+      // single is true implies a single file
+      QCString result=(QCString)"本服務的文件由以下的檔案"
+                                "所產生";
+      if (single) result+=":"; else result+=":";
+      return result;
+    }
+    /** UNO IDL singleton page */
+    virtual QCString trSingletonGeneratedFromFiles(bool single)
+    {
+      // single is true implies a single file
+      QCString result=(QCString)"本singleton的文件由下面的檔案"
+                                "所產生";
+      if (single) result+=":"; else result+=":";
+      return result;
+    }
+
+//////////////////////////////////////////////////////////////////////////
+
 };
 
 #endif
index 2a80e22..9c89c40 100644 (file)
@@ -19,7 +19,7 @@
 #ifndef TRANSLATOR_UA_H
 #define TRANSLATOR_UA_H
 
-class TranslatorUkrainian : public TranslatorAdapter_1_8_2
+class TranslatorUkrainian : public TranslatorAdapter_1_8_4
 {
   public:
     /*! Used for identification of the language. */
@@ -32,12 +32,6 @@ class TranslatorUkrainian : public TranslatorAdapter_1_8_2
       return "\\usepackage[T2A]{fontenc}\n\\usepackage[ukrainian]{babel}\n";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-        return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -367,12 +361,6 @@ class TranslatorUkrainian : public TranslatorAdapter_1_8_2
     { return "Макровизначення"; }
 
     /*! This is used in the documentation of a file as a header before the
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Прототипи фукцій"; }
-
-    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
@@ -409,12 +397,6 @@ class TranslatorUkrainian : public TranslatorAdapter_1_8_2
     { return "Опис макровизначень"; }
 
     /*! This is used in the documentation of a file/namespace before the list
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Опис прототипів функцій"; }
-
-    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
@@ -468,12 +450,6 @@ class TranslatorUkrainian : public TranslatorAdapter_1_8_2
       result+=" системою";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "Автор:";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
@@ -757,7 +733,7 @@ class TranslatorUkrainian : public TranslatorAdapter_1_8_2
         case ClassDef::Exception:
           if (single) result+="цього винятку"; else result+="цих винятків";
           break;
-        default: 
+        default:
           break;
       }
       result+=" була створена з файл";
@@ -765,12 +741,6 @@ class TranslatorUkrainian : public TranslatorAdapter_1_8_2
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Алфавітний покажчик"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -1069,16 +1039,6 @@ class TranslatorUkrainian : public TranslatorAdapter_1_8_2
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP Методи";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1404,14 +1364,6 @@ class TranslatorUkrainian : public TranslatorAdapter_1_8_2
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header
-     *  of each page before the field where one can enter the text to search
-     *  for.
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Шукати";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1795,12 +1747,6 @@ class TranslatorUkrainian : public TranslatorAdapter_1_8_2
 // new since 1.6.3 (missing items for the directory pages)
 //////////////////////////////////////////////////////////////////////////
 
-    /*! introduction text for the directory dependency graph */
-    virtual QCString trDirDependency(const char *name)
-    {
-      return (QCString)"Граф залежностей каталогу для "+name;
-    }
-
     /*! when clicking a directory dependency label, a page with a
      *  table is shown. The heading for the first column mentions the
      *  source file that has a relation to another file.
index 36fb48a..6657c6b 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -25,7 +25,7 @@
  */
 
 
-/*! 
+/*!
  When defining a translator class for the new language, follow
  the description in the documentation.  One of the steps says
  that you should copy the translator_en.h (this) file to your
@@ -52,19 +52,19 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "vietnamese"; }
-    
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -72,7 +72,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The English LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -81,12 +81,6 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
       return "";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "utf-8";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -104,30 +98,30 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
     { return "Thông tin về Member Typedef"; }
-    
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
     { return "Thông tin về Member Enumeration"; }
-    
+
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
     { return "Thông tin về hàm thành viên"; }
-    
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Thông tin về trường"; 
+        return "Thông tin về trường";
       }
       else
       {
-        return "Thông tin về Member Data"; 
+        return "Thông tin về Member Data";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
+    virtual QCString trMore()
     { return "Tiếp..."; }
 
     /*! put in the class documentation */
@@ -145,81 +139,81 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
     { return ", cùng với tất cả các thành viên kế thừa."; }
-    
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result="Được tạo ra bởi Doxygen";
       if (s) result+=(QCString)" cho "+s;
-      result+=" từ mã nguồn."; 
+      result+=" từ mã nguồn.";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
     { return "tên enum"; }
-    
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
     { return "giá trị enum"; }
-    
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
     { return "được định nghĩa trong"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
     { return "Các Modules"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
     { return "Kiến trúc Class"; }
-    
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Cấu trúc cơ sở dữ liệu (Data Structures)";
       }
       else
       {
-        return "Danh mục các Class"; 
+        return "Danh mục các Class";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
     { return "Danh mục File"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Các trường dữ liệu"; 
+        return "Các trường dữ liệu";
       }
       else
       {
-        return "Các thành viên của Class"; 
+        return "Các thành viên của Class";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Toàn cục"; 
+        return "Toàn cục";
       }
       else
       {
-        return "File thành viên"; 
+        return "File thành viên";
       }
     }
 
@@ -252,16 +246,16 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Đây là cấu trúc cơ sở dữ liệu với mô tả tóm tắt:"; 
+        return "Đây là cấu trúc cơ sở dữ liệu với mô tả tóm tắt:";
       }
       else
       {
         return "Đây là các classes, structs, "
-               "unions và interfaces với các mô tả tóm tắt:"; 
+               "unions và interfaces với các mô tả tóm tắt:";
       }
     }
 
@@ -282,7 +276,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
         result+="class members";
       }
       result+=" cùng với các các liên kết đến ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -293,7 +287,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
           result+="Thông tin về class cho từng thành viên:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -312,7 +306,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     {
       QCString result="Danh sách tất cả các ";
       if (!extractAll) result+="(đã được mô tat) ";
-      
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         result+="functions, variables, defines, enums, và typedefs";
@@ -322,9 +316,9 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
         result+="các file thành viên";
       }
       result+=" cùng với links tới ";
-      if (extractAll) 
+      if (extractAll)
         result+="các files thuộc:";
-      else 
+      else
         result+="tài liệu:";
       return result;
     }
@@ -341,43 +335,43 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     virtual QCString trModulesDescription()
     { return "Danh sách tất cả các thành viên:"; }
 
-    // index titles (the project name is prepended for these) 
+    // index titles (the project name is prepended for these)
 
     /*! This is used in HTML as the title of index.html. */
     virtual QCString trDocumentation()
     { return "Thông tin"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "Chỉ mục (Index) Module"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "Hierarchical Index"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "Index cấu trúc cơ sở dữ liệu";
       }
       else
       {
-        return "Class Index"; 
+        return "Class Index";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
+    virtual QCString trFileIndex()
     { return "File Index"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
@@ -390,14 +384,14 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Thông tin về cấu trúc cơ sở dữ liệu"; 
+        return "Thông tin về cấu trúc cơ sở dữ liệu";
       }
       else
       {
-        return "Thông tin về Class"; 
+        return "Thông tin về Class";
       }
     }
 
@@ -422,123 +416,105 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
     { return "Thông tin tham chiếu"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "Định nghĩa"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Function Prototypes"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "Typedefs"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
     { return "Enumerations"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "Các hàm"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "Các biến"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
     { return "Enumerator"; }
-    
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
     { return "Thông tin về định nghĩa"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Thông tin về Function Prototype"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
     { return "Thông tin về Typedef"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
     { return "Thông tin về Enumeration Type"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
     { return "Thông tin về hàm"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
     { return "Thông tin về các biến"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Cấu trúc cơ sở dữ liệu"; 
+        return "Cấu trúc cơ sở dữ liệu";
       }
       else
       {
-        return "Classes"; 
+        return "Classes";
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"Được biên soạn vào "+date;
       if (projName) result+=(QCString)" cho mã nguồn dự án "+projName;
       result+=(QCString)" bởi";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "được viết bởi";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
       return (QCString)"Sơ đồ kế thừa cho "+clName+":";
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
     { return "Chỉ cho sử dụng nội bộ."; }
@@ -570,7 +546,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
     { return "Exceptions"; }
-    
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
     { return "Được biên soạn bởi"; }
@@ -578,7 +554,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
     { return "Danh sách Namespace"; }
@@ -597,17 +573,17 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
      */
     virtual QCString trFriends()
     { return "Friends"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
     { return "Thông tin về Friends và các hàm liên quan"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -638,7 +614,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     virtual QCString trFileReference(const char *fileName)
     {
       QCString result=fileName;
-      result+=" File Tham chiếu"; 
+      result+=" File Tham chiếu";
       return result;
     }
 
@@ -649,7 +625,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
       result+=" Namespace Tham chiếu";
       return result;
     }
-    
+
     virtual QCString trPublicMembers()
     { return "Các hàm thành viên Public"; }
     virtual QCString trPublicSlots()
@@ -670,7 +646,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     { return "Private Slots"; }
     virtual QCString trStaticPrivateMembers()
     { return "Các hàm thành viên Static Private"; }
-    
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -679,23 +655,23 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=", và ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -712,7 +688,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
       return "Được kế thừa bởi "+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
@@ -734,17 +710,17 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Danh sách tất cả các ";
       if (!extractAll) result+="(đã được biên soạn) ";
       result+="các thành viên namespace cùng với link tới ";
-      if (extractAll) 
+      if (extractAll)
         result+="Thông tin namespace cho từng thành viên:";
-      else 
+      else
         result+=" namespaces mà phụ thuộc bởi:";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -794,12 +770,6 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Danh sách theo ABC"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -813,7 +783,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     virtual QCString trMainPage()
     { return "Tranh chính"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -858,7 +828,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Thông tin về Constructor và Destructor"; 
+      return "Thông tin về Constructor và Destructor";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
@@ -915,7 +885,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
       return "Ghi chú";
@@ -1004,7 +974,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     {
       return "Từ";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -1014,12 +984,12 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     {
       return "Chú giải Graph";
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "Trang này giải nghĩa các biểu đồ được biên soạn bởi "
         " doxygen.<p>\n"
         "Hãy xem xét các ví dụ sau:\n"
@@ -1083,11 +1053,11 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     {
       return "Chú giải";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1100,16 +1070,6 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "Các hàm thành viên DCOP";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1165,11 +1125,11 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     {
       return "Giá trị:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1185,9 +1145,9 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1208,15 +1168,15 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1258";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1229,82 +1189,82 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     {
       return "Chỉ số";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Class" : "class"));
       if (!singular)  result+="es";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "File" : "file"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Namespace" : "namespace"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Group" : "group"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Trang" : "trang"));
       if (!singular)  result+="";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Member" : "member"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Global" : "global"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1314,10 +1274,10 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Tác giả" : "tác giả"));
       if (!singular)  result+="";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1335,7 +1295,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1367,8 +1327,8 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1379,7 +1339,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1399,43 +1359,43 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Kiểu gói";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Các hàm Package";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Các hàm Static Package";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Các thuộc tính Package";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Các thuộc tính Static Package";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1452,14 +1412,6 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Tìm kiếm cho";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1471,7 +1423,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1485,13 +1437,13 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
       {
         return "Tìm thấy <b>1</b> tài liệu thỏa mã truy vấn của bạn.";
       }
-      else 
+      else
       {
         return "Tìm thấy tất cả <b>$num</b> tài liệu thỏa mã truy vấn của bạn. "
                "Hiển thị những thỏa mãn tốt nhất trước.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1532,7 +1484,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     virtual QCString trDirectories()
     { return "Các thư mục"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
@@ -1550,10 +1502,10 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Thư mục" : "thư mục"));
       if (singular) result+=""; else result+="";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1580,7 +1532,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
       return "Biểu đồ các lời gọi cho hàm này:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
@@ -1589,12 +1541,12 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Thông tin về các hàm và các thủ tục thành viên"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Danh sách kiêu dữ liệu"; }
 
@@ -1616,18 +1568,18 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
       }
       result+="các kiểu dữ liệu thành viên";
       result+=" cùng với liên kết với ";
-      if (!extractAll) 
+      if (!extractAll)
       {
          result+="Thông tin cấu trúc dữ liệu cho từng thành viên";
       }
-      else 
+      else
       {
          result+=" các kiểu dữ liệu thuộc:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1639,24 +1591,24 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     virtual QCString trTypeDocumentation()
     { return "Thông tin về kiểu dữ liệu"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Functions/Subroutines"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Thông tin về Function/Subroutine"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Kiểu dữ liệu"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Danh sách Modules"; }
@@ -1695,46 +1647,46 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" Tham chiếu Module";        
+      result+=" Tham chiếu Module";
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Thành viên Module"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Danh sách tất cả ";
       if (!extractAll) result+="(đã được mô tả) ";
       result+="các module thành viên cùng với liên kết tới ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="Thông tin module cho từng thành viên:";
       }
-      else 
+      else
       {
         result+="các module thuộc:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Chỉ mục các Module"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Module" : "module"));
       if (!singular)  result+="";
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1760,24 +1712,24 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Kiểu" : "kiểu"));
       if (!singular)  result+="";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Chương trình con" : "chương trình con"));
       if (!singular)  result+="";
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
index eb278d6..184eaa9 100644 (file)
@@ -1,12 +1,12 @@
 /******************************************************************************
  *
- * 
+ *
  *
  * Copyright (C) 1997-2013 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
  * for any purpose. It is provided "as is" without express or implied warranty.
  * See the GNU General Public License for more details.
  *
@@ -17,7 +17,7 @@
 
  /*
  *  Bronne vir hierdie vertaling (Sources for this translation):
- *  Die Stigting vir Afrikaans se rekenaartermelys: 
+ *  Die Stigting vir Afrikaans se rekenaartermelys:
  *      - http://www.afrikaans.com/rekenaarterme.html
  *  Werkgroep vir Afrikaanse IT-terme:
  *      - http://www.vertaal.org/index.html
@@ -31,19 +31,19 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
   public:
 
     // --- Language control methods -------------------
-    
-    /*! Used for identification of the language. The identification 
-     * should not be translated. It should be replaced by the name 
+
+    /*! Used for identification of the language. The identification
+     * should not be translated. It should be replaced by the name
      * of the language in English using lower-case characters only
-     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
+     * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
      * the identification used in language.cpp.
      */
     virtual QCString idLanguage()
     { return "afrikaans"; }
-    
-    /*! Used to get the LaTeX command(s) for the language support. 
+
+    /*! Used to get the LaTeX command(s) for the language support.
      *  This method should return string with commands that switch
-     *  LaTeX to the desired language.  For example 
+     *  LaTeX to the desired language.  For example
      *  <pre>"\\usepackage[german]{babel}\n"
      *  </pre>
      *  or
@@ -51,7 +51,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
      *  "\\usepackage[latin2]{inputenc}\n"
      *  "\\usepackage[T1]{fontenc}\n"
      *  </pre>
-     * 
+     *
      * The Afrikaans LaTeX does not use such commands.  Because of this
      * the empty string is returned in this implementation.
      */
@@ -62,12 +62,6 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
       return "";
     }
 
-    /*! return the language charset. This will be used for the HTML output */
-    virtual QCString idLanguageCharset()
-    {
-      return "iso-8859-1";
-    }
-
     // --- Language translation methods -------------------
 
     /*! used in the compound documentation before a list of related functions. */
@@ -85,30 +79,30 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     /*! header that is put before the list of typedefs. */
     virtual QCString trMemberTypedefDocumentation()
     { return "Lede Typedef Dokumentasie"; }
-    
+
     /*! header that is put before the list of enumerations. */
     virtual QCString trMemberEnumerationDocumentation()
     { return "Lede Enumerasie Dokumentasie"; }
-    
+
     /*! header that is put before the list of member functions. */
     virtual QCString trMemberFunctionDocumentation()
     { return "Lede Funksie Dokumentasie"; }
-    
+
     /*! header that is put before the list of member attributes. */
     virtual QCString trMemberDataDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Veld Dokumentasie"; 
+        return "Veld Dokumentasie";
       }
       else
       {
-        return "Lede Data Dokumentasie"; 
+        return "Lede Data Dokumentasie";
       }
     }
 
     /*! this is the text of a link put after brief descriptions. */
-    virtual QCString trMore() 
+    virtual QCString trMore()
     { return "Meer detail..."; }
 
     /*! put in the class documentation */
@@ -126,81 +120,81 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     /*! this is the remainder of the sentence after the class name */
     virtual QCString trIncludingInheritedMembers()
     { return ", insluitend alle afgeleide lede."; }
-    
+
     /*! this is put at the author sections at the bottom of man pages.
      *  parameter s is name of the project name.
      */
     virtual QCString trGeneratedAutomatically(const char *s)
     { QCString result="Automaties gegenereer deur Doxygen";
       if (s) result+=(QCString)" vir "+s;
-      result+=" van die bron kode af."; 
+      result+=" van die bron kode af.";
       return result;
     }
 
     /*! put after an enum name in the list of all members */
     virtual QCString trEnumName()
     { return "enum naam"; }
-    
+
     /*! put after an enum value in the list of all members */
     virtual QCString trEnumValue()
     { return "enum waarde"; }
-    
+
     /*! put after an undocumented member in the list of all members */
     virtual QCString trDefinedIn()
-    { return "gedefinie&euml;r in"; }
+    { return "gedefinieër in"; }
 
     // quick reference sections
 
-    /*! This is put above each page as a link to the list of all groups of 
+    /*! This is put above each page as a link to the list of all groups of
      *  compounds or files (see the \\group command).
      */
     virtual QCString trModules()
     { return "Modules"; }
-    
+
     /*! This is put above each page as a link to the class hierarchy */
     virtual QCString trClassHierarchy()
     { return "Klas Hierargie"; }
-    
+
     /*! This is put above each page as a link to the list of annotated classes */
     virtual QCString trCompoundList()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         return "Data Strukture";
       }
       else
       {
-        return "Klas Lys"; 
+        return "Klas Lys";
       }
     }
-    
+
     /*! This is put above each page as a link to the list of documented files */
     virtual QCString trFileList()
-    { return "Le&euml;r Lys"; }
+    { return "Leër Lys"; }
 
     /*! This is put above each page as a link to all members of compounds. */
     virtual QCString trCompoundMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Data Velde"; 
+        return "Data Velde";
       }
       else
       {
-        return "Klas Lede"; 
+        return "Klas Lede";
       }
     }
 
     /*! This is put above each page as a link to all members of files. */
     virtual QCString trFileMembers()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Globals"; 
+        return "Globals";
       }
       else
       {
-        return "Le&euml;r Lede"; 
+        return "Leër Lede";
       }
     }
 
@@ -218,7 +212,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
 
     /*! This is an introduction to the class hierarchy. */
     virtual QCString trClassHierarchyDescription()
-    { 
+    {
       return "Hierdie afgeleide lys word rofweg gesorteer: ";
     }
 
@@ -227,22 +221,22 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     {
       QCString result="Hier is 'n lys van alle  ";
       if (!extractAll) result+="gedokumenteerde ";
-      result+="le&euml;rs met kort beskrywings:";
+      result+="leërs met kort beskrywings:";
       return result;
     }
 
     /*! This is an introduction to the annotated compound list. */
     virtual QCString trCompoundListDescription()
-    { 
-      
+    {
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return " Data strukture met kort beskrywings:"; 
+        return " Data strukture met kort beskrywings:";
       }
       else
       {
         return "Klasse, structs, "
-               "unions en intervlakke met kort beskrywings:"; 
+               "unions en intervlakke met kort beskrywings:";
       }
     }
 
@@ -263,7 +257,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
         result+="klas lede";
       }
       result+=" met skakels na ";
-      if (!extractAll) 
+      if (!extractAll)
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -274,7 +268,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
           result+="die klas dokumentasie vir elke lid:";
         }
       }
-      else 
+      else
       {
         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
         {
@@ -293,19 +287,19 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     {
       QCString result="'n Lys van alle ";
       if (!extractAll) result+="gedokumenteerde ";
-      
+
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
         result+="funksies, veranderlikes, defines, enums, en typedefs";
       }
       else
       {
-        result+="le&euml;r lede";
+        result+="leër lede";
       }
       result+=" met skakels na ";
-      if (extractAll) 
-        result+="die le&euml;rs waaraan hulle behoort:";
-      else 
+      if (extractAll)
+        result+="die leërs waaraan hulle behoort:";
+      else
         result+="die dokumentasie:";
       return result;
     }
@@ -326,38 +320,38 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     virtual QCString trDocumentation()
     { return "Dokumentasie"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * index of all groups.
      */
     virtual QCString trModuleIndex()
     { return "Module Indeks"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * class hierarchy.
      */
     virtual QCString trHierarchicalIndex()
     { return "Hierargiese Indeks"; }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index.
      */
     virtual QCString trCompoundIndex()
     {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
-      { 
+      {
         return "Data Strukture Indeks";
       }
       else
       {
-        return "Klas Indeks"; 
+        return "Klas Indeks";
       }
     }
 
     /*! This is used in LaTeX as the title of the chapter with the
      * list of all files.
      */
-    virtual QCString trFileIndex() 
-    { return "Le&euml;r Indeks"; }
+    virtual QCString trFileIndex()
+    { return "Leër Indeks"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all groups.
@@ -369,14 +363,14 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
      *  the documentation of all classes, structs and unions.
      */
     virtual QCString trClassDocumentation()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Data Strukture Dokumentasie"; 
+        return "Data Strukture Dokumentasie";
       }
       else
       {
-        return "Klas Dokumentasie"; 
+        return "Klas Dokumentasie";
       }
     }
 
@@ -384,7 +378,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
      *  the documentation of all files.
      */
     virtual QCString trFileDocumentation()
-    { return "Le&euml;r Dokumentasie"; }
+    { return "Leër Dokumentasie"; }
 
     /*! This is used in LaTeX as the title of the chapter containing
      *  the documentation of all examples.
@@ -401,123 +395,105 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     /*! This is used in LaTeX as the title of the document */
     virtual QCString trReferenceManual()
     { return "Verwysings Handleiding"; }
-    
-    /*! This is used in the documentation of a file as a header before the 
+
+    /*! This is used in the documentation of a file as a header before the
      *  list of defines
      */
     virtual QCString trDefines()
     { return "Definiesies"; }
 
-    /*! This is used in the documentation of a file as a header before the 
-     *  list of function prototypes
-     */
-    virtual QCString trFuncProtos()
-    { return "Funksie Prototipes"; }
-
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of typedefs
      */
     virtual QCString trTypedefs()
     { return "Typedefs"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of enumerations
      */
     virtual QCString trEnumerations()
     { return "Enumerations"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) functions
      */
     virtual QCString trFunctions()
     { return "Funksies"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trVariables()
     { return "Veranderlikes"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) variables
      */
     virtual QCString trEnumerationValues()
     { return "Enumeration waardes"; }
-    
+
     /*! This is used in the documentation of a file before the list of
      *  documentation blocks for defines
      */
     virtual QCString trDefineDocumentation()
     { return "Define Documentation"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
-     *  of documentation blocks for function prototypes
-     */
-    virtual QCString trFunctionPrototypeDocumentation()
-    { return "Funksie Prototipe Dokumentasie"; }
-
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for typedefs
      */
     virtual QCString trTypedefDocumentation()
     { return "Typedef Dokumentasie"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration types
      */
     virtual QCString trEnumerationTypeDocumentation()
     { return "Enumeration Type Dokumentasie"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for functions
      */
     virtual QCString trFunctionDocumentation()
     { return "Funksie Dokumentasie"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for variables
      */
     virtual QCString trVariableDocumentation()
     { return "Veranderlike Dokumentasie"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds
      */
     virtual QCString trCompounds()
-    { 
+    {
       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
       {
-        return "Data Strukture"; 
+        return "Data Strukture";
       }
       else
       {
-        return "Klasse"; 
+        return "Klasse";
       }
     }
 
-    /*! This is used in the standard footer of each page and indicates when 
-     *  the page was generated 
+    /*! This is used in the standard footer of each page and indicates when
+     *  the page was generated
      */
     virtual QCString trGeneratedAt(const char *date,const char *projName)
-    { 
+    {
       QCString result=(QCString)"Gegenereer op "+date;
       if (projName) result+=(QCString)" vir "+projName;
       result+=(QCString)" deur";
       return result;
     }
-    /*! This is part of the sentence used in the standard footer of each page.
-     */
-    virtual QCString trWrittenBy()
-    {
-      return "geskryf deur";
-    }
 
     /*! this text is put before a class diagram */
     virtual QCString trClassDiagram(const char *clName)
     {
       return (QCString)"Afleidings diagram vir "+clName+":";
     }
-    
+
     /*! this text is generated when the \\internal command is used. */
     virtual QCString trForInternalUseOnly()
     { return "Slegs vir interne gebruik."; }
@@ -549,7 +525,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     /*! this text is generated when the \\exception command is used. */
     virtual QCString trExceptions()
     { return "Exceptions"; }
-    
+
     /*! this text is used in the title page of a LaTeX document. */
     virtual QCString trGeneratedBy()
     { return "Gegenereer deur"; }
@@ -557,7 +533,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990307
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used as the title of page containing all the index of all namespaces. */
     virtual QCString trNamespaceList()
     { return "Namespace Lys"; }
@@ -576,17 +552,17 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
      */
     virtual QCString trFriends()
     { return "Friends"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990405
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! used in the class documentation as a header before the list of all
-     * related classes 
+     * related classes
      */
     virtual QCString trRelatedFunctionDocumentation()
     { return "Friends En Verwante Funksie Dokumentasie"; }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990425
 //////////////////////////////////////////////////////////////////////////
@@ -617,7 +593,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     virtual QCString trFileReference(const char *fileName)
     {
       QCString result=fileName;
-      result+=" Le&euml;r Verwysing"; 
+      result+=" Leër Verwysing";
       return result;
     }
 
@@ -628,7 +604,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
       result+=" Namespace Verwysing";
       return result;
     }
-    
+
     virtual QCString trPublicMembers()
     { return "Publieke Lede Funksies"; }
     virtual QCString trPublicSlots()
@@ -649,7 +625,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     { return "Private Slots"; }
     virtual QCString trStaticPrivateMembers()
     { return "Statiese Private Lede Funksies"; }
-    
+
     /*! this function is used to produce a comma-separated list of items.
      *  use generateMarker(i) to indicate where item i should be put.
      */
@@ -658,23 +634,23 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
       QCString result;
       int i;
       // the inherits list contain `numEntries' classes
-      for (i=0;i<numEntries;i++) 
+      for (i=0;i<numEntries;i++)
       {
         // use generateMarker to generate placeholders for the class links!
-        result+=generateMarker(i); // generate marker for entry i in the list 
+        result+=generateMarker(i); // generate marker for entry i in the list
                                    // (order is left to right)
-        
+
         if (i!=numEntries-1)  // not the last entry, so we need a separator
         {
-          if (i<numEntries-2) // not the fore last entry 
+          if (i<numEntries-2) // not the fore last entry
             result+=", ";
           else                // the fore last entry
             result+=", en ";
         }
       }
-      return result; 
+      return result;
     }
-    
+
     /*! used in class documentation to produce a list of base classes,
      *  if class diagrams are disabled.
      */
@@ -691,7 +667,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
       return "Afgelei van"+trWriteList(numEntries)+".";
     }
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are hidden by this one.
      */
     virtual QCString trReimplementedFromList(int numEntries)
@@ -713,17 +689,17 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
 
     /*! This is an introduction to the page with all namespace members */
     virtual QCString trNamespaceMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="'n Lys van alle ";
       if (!extractAll) result+="gedokumenteerde ";
       result+="namespace lede met skakels na ";
-      if (extractAll) 
+      if (extractAll)
         result+="die namespace dokumentasie vir elke lid:";
-      else 
+      else
         result+="die namespaces waaraan hulle behoort:";
       return result;
     }
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all namespaces.
      */
     virtual QCString trNamespaceIndex()
@@ -768,17 +744,11 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
         case ClassDef::Exception:  result+="eksepsie"; break;
         default: break;
       }
-      result+=" is gegenereer vanaf die volgende le&euml;r";
+      result+=" is gegenereer vanaf die volgende leër";
       if (single) result+=":"; else result+="s:";
       return result;
     }
 
-    /*! This is in the (quick) index as a link to the alphabetical compound
-     * list.
-     */
-    virtual QCString trAlphabeticalList()
-    { return "Alfabetiese Lys"; }
-
 //////////////////////////////////////////////////////////////////////////
 // new since 0.49-990901
 //////////////////////////////////////////////////////////////////////////
@@ -792,7 +762,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     virtual QCString trMainPage()
     { return "Hoof Bladsy"; }
 
-    /*! This is used in references to page that are put in the LaTeX 
+    /*! This is used in references to page that are put in the LaTeX
      *  documentation. It should be an abbreviation of the word page.
      */
     virtual QCString trPageAbbreviation()
@@ -804,11 +774,11 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
 
     virtual QCString trDefinedAtLineInSourceFile()
     {
-      return "Gedefinie&euml;r by lyn @0 van le&euml;r @1.";
+      return "Gedefinieër by lyn @0 van leër @1.";
     }
     virtual QCString trDefinedInSourceFile()
     {
-      return "Definisie in le&euml;r @0.";
+      return "Definisie in leër @0.";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -837,17 +807,17 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     /*! header that is put before the list of constructor/destructors. */
     virtual QCString trConstructorDocumentation()
     {
-      return "Konstruktor & Destruktor Dokumentasie"; 
+      return "Konstruktor & Destruktor Dokumentasie";
     }
     /*! Used in the file documentation to point to the corresponding sources. */
     virtual QCString trGotoSourceCode()
     {
-      return "Skakel na die bron kode van hierdie le&euml;r.";
+      return "Skakel na die bron kode van hierdie leër.";
     }
     /*! Used in the file sources to point to the corresponding documentation. */
     virtual QCString trGotoDocumentation()
     {
-      return "Skakel na die dokumentasie van hierdie le&euml;r.";
+      return "Skakel na die dokumentasie van hierdie leër.";
     }
     /*! Text for the \\pre command */
     virtual QCString trPrecondition()
@@ -894,7 +864,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     virtual QCString trNote()
     {
       return "Nota";
@@ -976,14 +946,14 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     }
     virtual QCString trInclByDepGraph()
     {
-      return "Hierdie diagram verduidelik watter le&euml;rs direk of"
-             "indirek hierdie le&euml;r insluit:";
+      return "Hierdie diagram verduidelik watter leërs direk of"
+             "indirek hierdie leër insluit:";
     }
     virtual QCString trSince()
     {
       return "Sederd";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.1.5
 //////////////////////////////////////////////////////////////////////////
@@ -993,12 +963,12 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     {
       return "Diagram beskrywing";
     }
-    /*! page explaining how the dot graph's should be interpreted 
+    /*! page explaining how the dot graph's should be interpreted
      *  The %A in the text below are to prevent link to classes called "A".
      */
     virtual QCString trLegendDocs()
     {
-      return 
+      return
         "Hierdie bladsy beskryf die diagram konvensies wat gebruik word "
         "deur doxygen.<p>\n"
         "in hierdie voorbeeld:\n"
@@ -1030,7 +1000,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
         "    Used *m_usedClass;\n"
         "};\n"
         "\\endcode\n"
-        "As die \\c MAX_DOT_GRAPH_HEIGHT merker in die konfigurasie le&euml;r "
+        "As die \\c MAX_DOT_GRAPH_HEIGHT merker in die konfigurasie leër "
         "aan 240 gelyk gestel is, word die volgende diagram geproduseer:"
         "<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
         "<p>\n"
@@ -1063,11 +1033,11 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     {
       return "beskrywing";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.0
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a test item */
     virtual QCString trTest()
     {
@@ -1080,16 +1050,6 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     }
 
 //////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    /*! Used as a section header for KDE-2 IDL methods */
-    virtual QCString trDCOPMethods()
-    {
-      return "DCOP Lede Funksies";
-    }
-
-//////////////////////////////////////////////////////////////////////////
 // new since 1.2.2
 //////////////////////////////////////////////////////////////////////////
 
@@ -1145,11 +1105,11 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     {
       return "Waarde:";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.2.5
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! Used as a marker that is put before a \\bug item */
     virtual QCString trBug()
     {
@@ -1165,9 +1125,9 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
 // new since 1.2.6
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as ansicpg for RTF file 
-     * 
-     * The following table shows the correlation of Charset name, Charset Value and 
+    /*! Used as ansicpg for RTF file
+     *
+     * The following table shows the correlation of Charset name, Charset Value and
      * <pre>
      * Codepage number:
      * Charset Name       Charset Value(hex)  Codepage number
@@ -1188,15 +1148,15 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
      * GB2313_CHARSET          134 (x86)             936
      * CHINESEBIG5_CHARSET     136 (x88)             950
      * </pre>
-     * 
+     *
      */
     virtual QCString trRTFansicp()
     {
       return "1252";
     }
-    
 
-    /*! Used as ansicpg for RTF fcharset 
+
+    /*! Used as ansicpg for RTF fcharset
      *  \see trRTFansicp() for a table of possible values.
      */
     virtual QCString trRTFCharSet()
@@ -1209,82 +1169,82 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     {
       return "Indeks";
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trClass(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Klas" : "klas"));
       if (!singular)  result+="se";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trFile(bool first_capital, bool singular)
-    { 
-      QCString result((first_capital ? "Le&euml;r" : "le&euml;r"));
+    {
+      QCString result((first_capital ? "Leër" : "leër"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trNamespace(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Namespace" : "namespace"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGroup(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Groep" : "groep"));
       if (!singular)  result+="e";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trPage(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Bladsy" : "bladsy"));
       if (!singular)  result+="e";
-      return result; 
+      return result;
     }
 
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trMember(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Lid" : "lid"));
       if (!singular)  result = (first_capital ? "Lede" : "lede");
-      return result; 
+      return result;
     }
-   
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trGlobal(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Global" : "global"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1294,10 +1254,10 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     /*! This text is generated when the \\author command is used and
      *  for the author section in man pages. */
     virtual QCString trAuthor(bool first_capital, bool singular)
-    {                                                                         
+    {
       QCString result((first_capital ? "Outeur" : "outeur"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1315,7 +1275,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
 // new since 1.2.13
 //////////////////////////////////////////////////////////////////////////
 
-    /*! used in member documentation blocks to produce a list of 
+    /*! used in member documentation blocks to produce a list of
      *  members that are implemented by this one.
      */
     virtual QCString trImplementedFromList(int numEntries)
@@ -1347,8 +1307,8 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
 // new since 1.2.17
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as the header of the list of item that have been 
-     *  flagged deprecated 
+    /*! Used as the header of the list of item that have been
+     *  flagged deprecated
      */
     virtual QCString trDeprecatedList()
     {
@@ -1359,7 +1319,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
 // new since 1.2.18
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used as a header for declaration section of the events found in 
+    /*! Used as a header for declaration section of the events found in
      * a C# program
      */
     virtual QCString trEvents()
@@ -1379,43 +1339,43 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     /*! Used as a heading for a list of Java class types with package scope.
      */
     virtual QCString trPackageTypes()
-    { 
+    {
       return "Pakket Tipes";
     }
-    /*! Used as a heading for a list of Java class functions with package 
-     * scope. 
+    /*! Used as a heading for a list of Java class functions with package
+     * scope.
      */
     virtual QCString trPackageMembers()
-    { 
+    {
       return "Pakket Funksies";
     }
-    /*! Used as a heading for a list of static Java class functions with 
+    /*! Used as a heading for a list of static Java class functions with
      *  package scope.
      */
     virtual QCString trStaticPackageMembers()
-    { 
+    {
       return "Statiese Pakket Funksies";
     }
-    /*! Used as a heading for a list of Java class variables with package 
+    /*! Used as a heading for a list of Java class variables with package
      * scope.
      */
     virtual QCString trPackageAttribs()
-    { 
+    {
       return "Pakket Eienskappe";
     }
-    /*! Used as a heading for a list of static Java class variables with 
+    /*! Used as a heading for a list of static Java class variables with
      * package scope.
      */
     virtual QCString trStaticPackageAttribs()
-    { 
+    {
       return "Statiese Pakket Eienskappe";
     }
-    
+
 //////////////////////////////////////////////////////////////////////////
 // new since 1.3.1
 //////////////////////////////////////////////////////////////////////////
 
-    /*! Used in the quick index of a class/file/namespace member list page 
+    /*! Used in the quick index of a class/file/namespace member list page
      *  to link to the unfiltered list of all members.
      */
     virtual QCString trAll()
@@ -1432,14 +1392,6 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
 // new since 1.3.3
 //////////////////////////////////////////////////////////////////////////
 
-    /*! When the search engine is enabled this text is put in the header 
-     *  of each page before the field where one can enter the text to search 
-     *  for. 
-     */
-    virtual QCString trSearchForIndex()
-    {
-      return "Soek vir";
-    }
     /*! This string is used as the title for the page listing the search
      *  results.
      */
@@ -1451,7 +1403,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
      *  text can be different depending on the number of documents found.
      *  Inside the text you can put the special marker $num to insert
      *  the number representing the actual number of search results.
-     *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
+     *  The @a numDocuments parameter can be either 0, 1 or 2, where the
      *  value 2 represents 2 or more matches. HTML markup is allowed inside
      *  the returned string.
      */
@@ -1465,13 +1417,13 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
       {
         return "Die soektog het <b>1</b> dokument gevind na gelang van jou navraag.";
       }
-      else 
+      else
       {
         return "Die soektog het <b>$num</b> dokumente gevind na gelang van jou navraag. "
                "Beste resultate eerste.";
       }
     }
-    /*! This string is put before the list of matched words, for each search 
+    /*! This string is put before the list of matched words, for each search
      *  result. What follows is the list of words that matched the query.
      */
     virtual QCString trSearchMatches()
@@ -1487,7 +1439,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
      */
     virtual QCString trSourceFile(QCString& filename)
     {
-      return filename + " Bron kode Le&euml;r";
+      return filename + " Bron kode Leër";
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1498,7 +1450,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
      *  hierarchy.
      */
     virtual QCString trDirIndex()
-    { return "Directory Hi&euml;rargie"; }
+    { return "Directory Hiërargie"; }
 
     /*! This is used as the name of the chapter containing the documentation
      *  of the directories.
@@ -1512,11 +1464,11 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     virtual QCString trDirectories()
     { return "Directories"; }
 
-    /*! This returns a sentences that introduces the directory hierarchy. 
+    /*! This returns a sentences that introduces the directory hierarchy.
      *  and the fact that it is sorted alphabetically per level
      */
     virtual QCString trDirDescription()
-    { return "Hierdie directory hi&euml;rargie is min of meer alfabeties "
+    { return "Hierdie directory hiërargie is min of meer alfabeties "
              "gesorteer:";
     }
 
@@ -1530,10 +1482,10 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
      *  (\a first_capital) and in sigular or plural form (\a singular).
      */
     virtual QCString trDir(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Director" : "director"));
       if (singular) result+="y"; else result+="ies";
-      return result; 
+      return result;
     }
 
 //////////////////////////////////////////////////////////////////////////
@@ -1560,7 +1512,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
       return "Hier is die roep skema vir die funksie:";
     }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for enumeration values
      */
     virtual QCString trEnumerationValueDocumentation()
@@ -1569,12 +1521,12 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
 //////////////////////////////////////////////////////////////////////////
 // new since 1.5.4 (mainly for Fortran)
 //////////////////////////////////////////////////////////////////////////
-    
+
     /*! header that is put before the list of member subprograms (Fortran). */
     virtual QCString trMemberFunctionDocumentationFortran()
     { return "Lede Funksie/Subroetine Dokumentasie"; }
 
-    /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
+    /*! This is put above each page as a link to the list of annotated data types (Fortran). */
     virtual QCString trCompoundListFortran()
     { return "Data Tipes Lys"; }
 
@@ -1596,18 +1548,18 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
       }
       result+="data tipe lede";
       result+=" met skakels na ";
-      if (!extractAll) 
+      if (!extractAll)
       {
          result+="die data strukture dokumentasie vir elke lid";
       }
-      else 
+      else
       {
          result+="die data tipes waaraan hulle behoort:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      * annotated compound index (Fortran).
      */
     virtual QCString trCompoundIndexFortran()
@@ -1619,24 +1571,24 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     virtual QCString trTypeDocumentation()
     { return "Data Tipe Dokumentasie"; }
 
-    /*! This is used in the documentation of a file as a header before the 
+    /*! This is used in the documentation of a file as a header before the
      *  list of (global) subprograms (Fortran).
      */
     virtual QCString trSubprograms()
     { return "Funksies/Subroetines"; }
 
-    /*! This is used in the documentation of a file/namespace before the list 
+    /*! This is used in the documentation of a file/namespace before the list
      *  of documentation blocks for subprograms (Fortran)
      */
     virtual QCString trSubprogramDocumentation()
     { return "Funksies/Subroetine Dokumentasie"; }
 
-    /*! This is used in the documentation of a file/namespace/group before 
+    /*! This is used in the documentation of a file/namespace/group before
      *  the list of links to documented compounds (Fortran)
      */
      virtual QCString trDataTypes()
     { return "Data Tipes"; }
-    
+
     /*! used as the title of page containing all the index of all modules (Fortran). */
     virtual QCString trModulesList()
     { return "Modules Lys"; }
@@ -1675,46 +1627,46 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
     virtual QCString trModuleReference(const char *namespaceName)
     {
       QCString result=namespaceName;
-      result+=" Module Bron";        
+      result+=" Module Bron";
       return result;
     }
-    
+
     /*! This is put above each page as a link to all members of modules. (Fortran) */
     virtual QCString trModulesMembers()
     { return "Module Lede"; }
 
     /*! This is an introduction to the page with all modules members (Fortran) */
     virtual QCString trModulesMemberDescription(bool extractAll)
-    { 
+    {
       QCString result="Hier is 'n lys van alle ";
       if (!extractAll) result+="gedokumenteerde ";
       result+="module lede met skakels na ";
-      if (extractAll) 
+      if (extractAll)
       {
         result+="die module dokumentasie vir elke lid:";
       }
-      else 
+      else
       {
         result+="die modules waaraan hulle behoort:";
       }
       return result;
     }
 
-    /*! This is used in LaTeX as the title of the chapter with the 
+    /*! This is used in LaTeX as the title of the chapter with the
      *  index of all modules (Fortran).
      */
     virtual QCString trModulesIndex()
     { return "Modules Indeks"; }
-    
+
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trModule(bool first_capital, bool singular)
-    {       
+    {
       QCString result((first_capital ? "Module" : "module"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
     /*! This is put at the bottom of a module documentation page and is
      *  followed by a list of files that were used to generate the page.
@@ -1740,24 +1692,24 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
       return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trType(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Tipe" : "tipe"));
       if (!singular)  result+="s";
-      return result; 
+      return result;
     }
     /*! This is used for translation of the word that will possibly
-     *  be followed by a single name or by a list of names 
+     *  be followed by a single name or by a list of names
      *  of the category.
      */
     virtual QCString trSubprogram(bool first_capital, bool singular)
-    { 
+    {
       QCString result((first_capital ? "Subprogram" : "subprogram"));
       if (!singular)  result+="me";
-      return result; 
+      return result;
     }
 
     /*! C# Type Constraint list */
diff --git a/src/translatordecoder.h b/src/translatordecoder.h
deleted file mode 100644 (file)
index 6537774..0000000
+++ /dev/null
@@ -1,821 +0,0 @@
-/******************************************************************************
- *
- * 
- *
- * Copyright (C) 1997-2013 by Dimitri van Heesch.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby 
- * granted. No representations are made about the suitability of this software 
- * for any purpose. It is provided "as is" without express or implied warranty.
- * See the GNU General Public License for more details.
- *
- * Documents produced by Doxygen are derivative works derived from the
- * input used in their production; they are not affected by this license.
- *
- */
-
-#ifndef TRANSLATORDECODER_H
-#define TRANSLATORDECODER_H
-
-#include "translator.h"
-#include "portable.h"
-
-/** Decoder adapter for translator file that are not yet UTF-8 encoded. */
-class TranslatorDecoder : public Translator
-{
-  public:
-
-    TranslatorDecoder(Translator *translator) : m_translator(translator) 
-    {
-      m_toUtf8   = portable_iconv_open("UTF-8",translator->idLanguageCharset()); 
-      m_fromUtf8 = portable_iconv_open(translator->idLanguageCharset(),"UTF-8"); 
-    }
-    virtual ~TranslatorDecoder() 
-    { 
-      if (m_toUtf8!=(void *)(-1))   portable_iconv_close(m_toUtf8);
-      if (m_fromUtf8!=(void *)(-1)) portable_iconv_close(m_fromUtf8);
-      delete m_translator; 
-    }
-   
-    /*! This method is used to provide warning message that is displayed
-     *  if the user chooses a language whose translation is not up to date. 
-     *  It is implemented by the adapter classes.
-     */
-    virtual QCString updateNeededMessage() { return m_translator->updateNeededMessage(); }
-
-    // Please, have a look at comments inside the translator_en.h file
-    // to learn the meaning of the following methods.  The translator_en.h
-    // file contains the TranslatorEnglish implementation, which is 
-    // always up-to-date (by definition).
-   
-    // --- Language control methods -------------------
-    
-    QCString idLanguage()  
-    { return m_translator->idLanguage(); }
-    QCString latexLanguageSupportCommand()  
-    { return m_translator->latexLanguageSupportCommand(); }
-    QCString idLanguageCharset()  
-    { return m_translator->idLanguageCharset(); }
-
-    QCString recode(const QCString &s,void *cd) 
-    {
-      if (cd==(void*)(-1)) return s;
-      int iSize        = s.length();
-      int oSize        = iSize*4+1;
-      QCString output(oSize);
-      size_t iLeft     = iSize;
-      size_t oLeft     = oSize;
-      char *iPtr       = s.data();
-      char *oPtr       = output.data();
-      if (!portable_iconv(cd,&iPtr,&iLeft,&oPtr,&oLeft))
-      {
-        oSize -= (int)oLeft;
-        output.resize(oSize+1);
-        output.at(oSize)='\0';
-        return output;
-      }
-      else
-      {
-        return s;
-      }
-    }
-    QCString toUtf8(const QCString &s) 
-    {
-      return recode(s,m_toUtf8);
-    }
-    QCString fromUtf8(const QCString &s) 
-    {
-      return recode(s,m_fromUtf8);
-    }
-
-    // --- Language translation methods -------------------
-
-    QCString trRelatedFunctions()  
-    { return toUtf8(m_translator->trRelatedFunctions()); }
-    QCString trRelatedSubscript()  
-    { return toUtf8(m_translator->trRelatedSubscript()); }
-    QCString trDetailedDescription()  
-    { return toUtf8(m_translator->trDetailedDescription()); }
-    QCString trMemberTypedefDocumentation()  
-    { return toUtf8(m_translator->trMemberTypedefDocumentation()); }
-    QCString trMemberEnumerationDocumentation()  
-    { return toUtf8(m_translator->trMemberEnumerationDocumentation()); }
-        
-    QCString trMemberFunctionDocumentation()  
-    { return toUtf8(m_translator->trMemberFunctionDocumentation()); }
-    QCString trMemberDataDocumentation()  
-    { return toUtf8(m_translator->trMemberDataDocumentation()); }
-    QCString trMore()  
-    { return toUtf8(m_translator->trMore()); }
-    QCString trListOfAllMembers()  
-    { return toUtf8(m_translator->trListOfAllMembers()); }
-    QCString trMemberList()  
-    { return toUtf8(m_translator->trMemberList()); }
-    QCString trThisIsTheListOfAllMembers()  
-    { return toUtf8(m_translator->trThisIsTheListOfAllMembers()); }
-    QCString trIncludingInheritedMembers()  
-    { return toUtf8(m_translator->trIncludingInheritedMembers()); }
-    QCString trGeneratedAutomatically(const char *s)  
-    { return toUtf8(m_translator->trGeneratedAutomatically(fromUtf8(s))); }
-    QCString trEnumName()  
-    { return toUtf8(m_translator->trEnumName()); }
-    QCString trEnumValue()  
-    { return toUtf8(m_translator->trEnumValue()); }
-    QCString trDefinedIn()  
-    { return toUtf8(m_translator->trDefinedIn()); }
-
-    // quick reference sections
-
-    QCString trModules()  
-    { return toUtf8(m_translator->trModules()); }
-    QCString trClassHierarchy()  
-    { return toUtf8(m_translator->trClassHierarchy()); }
-    QCString trCompoundList()  
-    { return toUtf8(m_translator->trCompoundList()); }
-    
-    QCString trFileList()  
-    { return toUtf8(m_translator->trFileList()); }
-    QCString trCompoundMembers()  
-    { return toUtf8(m_translator->trCompoundMembers()); }
-    QCString trFileMembers()  
-    { return toUtf8(m_translator->trFileMembers()); }
-    QCString trRelatedPages()  
-    { return toUtf8(m_translator->trRelatedPages()); }
-    QCString trExamples()  
-    { return toUtf8(m_translator->trExamples()); }
-    QCString trSearch()  
-    { return toUtf8(m_translator->trSearch()); }
-    QCString trClassHierarchyDescription()  
-    { return toUtf8(m_translator->trClassHierarchyDescription()); }
-    QCString trFileListDescription(bool extractAll)  
-    { return toUtf8(m_translator->trFileListDescription(extractAll)); }
-    QCString trCompoundListDescription()  
-    { return toUtf8(m_translator->trCompoundListDescription()); }
-    QCString trCompoundMembersDescription(bool extractAll)  
-    { return toUtf8(m_translator->trCompoundMembersDescription(extractAll)); }
-    QCString trFileMembersDescription(bool extractAll)  
-    { return toUtf8(m_translator->trFileMembersDescription(extractAll)); }
-    QCString trExamplesDescription()  
-    { return toUtf8(m_translator->trExamplesDescription()); }
-    QCString trRelatedPagesDescription()  
-    { return toUtf8(m_translator->trRelatedPagesDescription()); }
-    QCString trModulesDescription()  
-    { return toUtf8(m_translator->trModulesDescription()); }
-    
-    // index titles (the project name is prepended for these) 
-
-    QCString trDocumentation()  
-    { return toUtf8(m_translator->trDocumentation()); }
-    QCString trModuleIndex()  
-    { return toUtf8(m_translator->trModuleIndex()); }
-    QCString trHierarchicalIndex()  
-    { return toUtf8(m_translator->trHierarchicalIndex()); }
-    QCString trCompoundIndex()  
-    { return toUtf8(m_translator->trCompoundIndex()); }
-    QCString trFileIndex()  
-    { return toUtf8(m_translator->trFileIndex()); } 
-    QCString trModuleDocumentation()  
-    { return toUtf8(m_translator->trModuleDocumentation()); }
-    QCString trClassDocumentation()  
-    { return toUtf8(m_translator->trClassDocumentation()); }
-    QCString trFileDocumentation()  
-    { return toUtf8(m_translator->trFileDocumentation()); }
-    QCString trExampleDocumentation()  
-    { return toUtf8(m_translator->trExampleDocumentation()); }
-    QCString trPageDocumentation()  
-    { return toUtf8(m_translator->trPageDocumentation()); }
-    QCString trReferenceManual()  
-    { return toUtf8(m_translator->trReferenceManual()); }
-    QCString trDefines()  
-    { return toUtf8(m_translator->trDefines()); }
-    QCString trFuncProtos()  
-    { return toUtf8(m_translator->trFuncProtos()); }
-    QCString trTypedefs()  
-    { return toUtf8(m_translator->trTypedefs()); }
-    QCString trEnumerations()  
-    { return toUtf8(m_translator->trEnumerations()); }
-    QCString trFunctions()  
-    { return toUtf8(m_translator->trFunctions()); }
-    QCString trVariables()  
-    { return toUtf8(m_translator->trVariables()); }
-    QCString trEnumerationValues()  
-    { return toUtf8(m_translator->trEnumerationValues()); }
-    QCString trDefineDocumentation()  
-    { return toUtf8(m_translator->trDefineDocumentation()); }
-    QCString trFunctionPrototypeDocumentation()  
-    { return toUtf8(m_translator->trFunctionPrototypeDocumentation()); }
-    QCString trTypedefDocumentation()  
-    { return toUtf8(m_translator->trTypedefDocumentation()); }
-    QCString trEnumerationTypeDocumentation()  
-    { return toUtf8(m_translator->trEnumerationTypeDocumentation()); }
-    QCString trFunctionDocumentation()  
-    { return toUtf8(m_translator->trFunctionDocumentation()); }
-    QCString trVariableDocumentation()  
-    { return toUtf8(m_translator->trVariableDocumentation()); }
-    QCString trCompounds()  
-    { return toUtf8(m_translator->trCompounds()); }
-    QCString trGeneratedAt(const char *date,const char *projName)  
-    { return toUtf8(m_translator->trGeneratedAt(fromUtf8(date),fromUtf8(projName))); }
-    QCString trWrittenBy()  
-    { return toUtf8(m_translator->trWrittenBy()); }
-    QCString trClassDiagram(const char *clName)  
-    { return toUtf8(m_translator->trClassDiagram(fromUtf8(clName))); }
-    QCString trForInternalUseOnly()  
-    { return toUtf8(m_translator->trForInternalUseOnly()); }
-    QCString trWarning()  
-    { return toUtf8(m_translator->trWarning()); }
-    QCString trVersion()  
-    { return toUtf8(m_translator->trVersion()); }
-    QCString trDate()  
-    { return toUtf8(m_translator->trDate()); }
-    QCString trReturns()  
-    { return toUtf8(m_translator->trReturns()); }
-    QCString trSeeAlso()  
-    { return toUtf8(m_translator->trSeeAlso()); }
-    QCString trParameters()  
-    { return toUtf8(m_translator->trParameters()); }
-    QCString trExceptions()  
-    { return toUtf8(m_translator->trExceptions()); }
-    QCString trGeneratedBy()  
-    { return toUtf8(m_translator->trGeneratedBy()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 0.49-990307
-//////////////////////////////////////////////////////////////////////////
-    
-    QCString trNamespaceList()  
-    { return toUtf8(m_translator->trNamespaceList()); }
-    QCString trNamespaceListDescription(bool extractAll)  
-    { return toUtf8(m_translator->trNamespaceListDescription(extractAll)); }
-    QCString trFriends()  
-    { return toUtf8(m_translator->trFriends()); }
-    
-//////////////////////////////////////////////////////////////////////////
-// new since 0.49-990405
-//////////////////////////////////////////////////////////////////////////
-    
-    QCString trRelatedFunctionDocumentation()  
-    { return toUtf8(m_translator->trRelatedFunctionDocumentation()); }
-    
-//////////////////////////////////////////////////////////////////////////
-// new since 0.49-990425
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trCompoundReference(const char *clName,
-                                 ClassDef::CompoundType compType,
-                                 bool isTemplate)  
-    { return toUtf8(m_translator->trCompoundReference(fromUtf8(clName),compType,isTemplate)); }
-
-    
-    QCString trFileReference(const char *fileName)  
-    { return toUtf8(m_translator->trFileReference(fromUtf8(fileName))); }
-    QCString trNamespaceReference(const char *namespaceName)  
-    { return toUtf8(m_translator->trNamespaceReference(fromUtf8(namespaceName))); }
-    
-    QCString trPublicMembers()  
-    { return toUtf8(m_translator->trPublicMembers()); }
-    QCString trPublicSlots()  
-    { return toUtf8(m_translator->trPublicSlots()); }
-    QCString trSignals()  
-    { return toUtf8(m_translator->trSignals()); }
-    QCString trStaticPublicMembers()  
-    { return toUtf8(m_translator->trStaticPublicMembers()); }
-    QCString trProtectedMembers()  
-    { return toUtf8(m_translator->trProtectedMembers()); }
-    QCString trProtectedSlots()  
-    { return toUtf8(m_translator->trProtectedSlots()); }
-    QCString trStaticProtectedMembers()  
-    { return toUtf8(m_translator->trStaticProtectedMembers()); }
-    QCString trPrivateMembers()  
-    { return toUtf8(m_translator->trPrivateMembers()); }
-    QCString trPrivateSlots()  
-    { return toUtf8(m_translator->trPrivateSlots()); }
-    QCString trStaticPrivateMembers()  
-    { return toUtf8(m_translator->trStaticPrivateMembers()); }
-    QCString trWriteList(int numEntries)  
-    { return toUtf8(m_translator->trWriteList(numEntries)); }
-    QCString trInheritsList(int numEntries)  
-    { return toUtf8(m_translator->trInheritsList(numEntries)); }
-    QCString trInheritedByList(int numEntries)  
-    { return toUtf8(m_translator->trInheritedByList(numEntries)); }
-    QCString trReimplementedFromList(int numEntries)  
-    { return toUtf8(m_translator->trReimplementedFromList(numEntries)); }
-    QCString trReimplementedInList(int numEntries)  
-    { return toUtf8(m_translator->trReimplementedInList(numEntries)); }
-    QCString trNamespaceMembers()  
-    { return toUtf8(m_translator->trNamespaceMembers()); }
-    QCString trNamespaceMemberDescription(bool extractAll)  
-    { return toUtf8(m_translator->trNamespaceMemberDescription(extractAll)); }
-    
-    QCString trNamespaceIndex()  
-    { return toUtf8(m_translator->trNamespaceIndex()); }
-    QCString trNamespaceDocumentation()  
-    { return toUtf8(m_translator->trNamespaceDocumentation()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 0.49-990522
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trNamespaces()  
-    { return toUtf8(m_translator->trNamespaces()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 0.49-990728
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
-                                          bool single)  
-    { return toUtf8(m_translator->trGeneratedFromFiles(compType,single)); }
-    
-    
-    QCString trAlphabeticalList()  
-    { return toUtf8(m_translator->trAlphabeticalList()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 0.49-990901
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trReturnValues()  
-    { return toUtf8(m_translator->trReturnValues()); }
-    QCString trMainPage()  
-    { return toUtf8(m_translator->trMainPage()); }
-    QCString trPageAbbreviation()  
-    { return toUtf8(m_translator->trPageAbbreviation()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 0.49-991003
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trDefinedAtLineInSourceFile()  
-    { return toUtf8(m_translator->trDefinedAtLineInSourceFile()); }
-    QCString trDefinedInSourceFile()  
-    { return toUtf8(m_translator->trDefinedInSourceFile()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 0.49-991205
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trDeprecated()  
-    { return toUtf8(m_translator->trDeprecated()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.0.0
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trCollaborationDiagram(const char *clName)  
-    { return toUtf8(m_translator->trCollaborationDiagram(fromUtf8(clName))); }
-    QCString trInclDepGraph(const char *fName)  
-    { return toUtf8(m_translator->trInclDepGraph(fromUtf8(fName))); }
-    QCString trConstructorDocumentation()  
-    { return toUtf8(m_translator->trConstructorDocumentation()); }
-    QCString trGotoSourceCode()  
-    { return toUtf8(m_translator->trGotoSourceCode()); }
-    QCString trGotoDocumentation()  
-    { return toUtf8(m_translator->trGotoDocumentation()); }
-    QCString trPrecondition()  
-    { return toUtf8(m_translator->trPrecondition()); }
-    QCString trPostcondition()  
-    { return toUtf8(m_translator->trPostcondition()); }
-    QCString trInvariant()  
-    { return toUtf8(m_translator->trInvariant()); }
-    QCString trInitialValue()  
-    { return toUtf8(m_translator->trInitialValue()); }
-    QCString trCode()  
-    { return toUtf8(m_translator->trCode()); }
-
-    QCString trGraphicalHierarchy()  
-    { return toUtf8(m_translator->trGraphicalHierarchy()); }
-    QCString trGotoGraphicalHierarchy()  
-    { return toUtf8(m_translator->trGotoGraphicalHierarchy()); }
-    QCString trGotoTextualHierarchy()  
-    { return toUtf8(m_translator->trGotoTextualHierarchy()); }
-    QCString trPageIndex()  
-    { return toUtf8(m_translator->trPageIndex()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.1.0
-//////////////////////////////////////////////////////////////////////////
-    
-    QCString trNote()  
-    { return toUtf8(m_translator->trNote()); }
-    QCString trPublicTypes()  
-    { return toUtf8(m_translator->trPublicTypes()); }
-    QCString trPublicAttribs()  
-    { return toUtf8(m_translator->trPublicAttribs()); }
-    QCString trStaticPublicAttribs()  
-    { return toUtf8(m_translator->trStaticPublicAttribs()); }
-    QCString trProtectedTypes()  
-    { return toUtf8(m_translator->trProtectedTypes()); }
-    QCString trProtectedAttribs()  
-    { return toUtf8(m_translator->trProtectedAttribs()); }
-    QCString trStaticProtectedAttribs()  
-    { return toUtf8(m_translator->trStaticProtectedAttribs()); }
-    QCString trPrivateTypes()  
-    { return toUtf8(m_translator->trPrivateTypes()); }
-    QCString trPrivateAttribs()  
-    { return toUtf8(m_translator->trPrivateAttribs()); }
-    QCString trStaticPrivateAttribs()  
-    { return toUtf8(m_translator->trStaticPrivateAttribs()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.1.3
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trTodo()  
-    { return toUtf8(m_translator->trTodo()); }
-    QCString trTodoList()  
-    { return toUtf8(m_translator->trTodoList()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.1.4
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trReferencedBy()  
-    { return toUtf8(m_translator->trReferencedBy()); }
-    QCString trRemarks()  
-    { return toUtf8(m_translator->trRemarks()); }
-    QCString trAttention()  
-    { return toUtf8(m_translator->trAttention()); }
-    QCString trInclByDepGraph()  
-    { return toUtf8(m_translator->trInclByDepGraph()); }
-    QCString trSince()  
-    { return toUtf8(m_translator->trSince()); }
-    
-//////////////////////////////////////////////////////////////////////////
-// new since 1.1.5
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trLegendTitle()  
-    { return toUtf8(m_translator->trLegendTitle()); }
-    QCString trLegendDocs()  
-    { return toUtf8(m_translator->trLegendDocs()); }
-    QCString trLegend()  
-    { return toUtf8(m_translator->trLegend()); }
-    
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.0
-//////////////////////////////////////////////////////////////////////////
-    
-    QCString trTest()  
-    { return toUtf8(m_translator->trTest()); }
-    QCString trTestList()  
-    { return toUtf8(m_translator->trTestList()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.1
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trDCOPMethods()  
-    { return toUtf8(m_translator->trDCOPMethods()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.2
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trProperties()  
-    { return toUtf8(m_translator->trProperties()); }
-    QCString trPropertyDocumentation()  
-    { return toUtf8(m_translator->trPropertyDocumentation()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.4
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trClasses()  
-    { return toUtf8(m_translator->trClasses()); }
-    QCString trPackage(const char *name)  
-    { return toUtf8(m_translator->trPackage(fromUtf8(name))); }
-    QCString trPackageList()  
-    { return toUtf8(m_translator->trPackageList()); }
-    QCString trPackageListDescription()  
-    { return toUtf8(m_translator->trPackageListDescription()); }
-    QCString trPackages()  
-    { return toUtf8(m_translator->trPackages()); }
-    QCString trDefineValue()  
-    { return toUtf8(m_translator->trDefineValue()); }
-    
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.5
-//////////////////////////////////////////////////////////////////////////
-    
-    QCString trBug()  
-    { return toUtf8(m_translator->trBug()); }
-    QCString trBugList()  
-    { return toUtf8(m_translator->trBugList()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.6
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trRTFansicp()  
-    { return toUtf8(m_translator->trRTFansicp()); }
-    QCString trRTFCharSet()  
-    { return toUtf8(m_translator->trRTFCharSet()); }
-    QCString trRTFGeneralIndex()  
-    { return toUtf8(m_translator->trRTFGeneralIndex()); }
-   
-    // Translation of the word
-
-    QCString trClass(bool first_capital, bool singular)  
-    { return toUtf8(m_translator->trClass(first_capital,singular)); }
-    QCString trFile(bool first_capital, bool singular)  
-    { return toUtf8(m_translator->trFile(first_capital,singular)); }
-    QCString trNamespace(bool first_capital, bool singular)  
-    { return toUtf8(m_translator->trNamespace(first_capital,singular)); }
-    
-    QCString trGroup(bool first_capital, bool singular)  
-    { return toUtf8(m_translator->trGroup(first_capital,singular)); }
-    QCString trPage(bool first_capital, bool singular)  
-    { return toUtf8(m_translator->trPage(first_capital,singular)); }
-    QCString trMember(bool first_capital, bool singular)  
-    { return toUtf8(m_translator->trMember(first_capital,singular)); }
-    QCString trGlobal(bool first_capital, bool singular)  
-    { return toUtf8(m_translator->trGlobal(first_capital,singular)); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.7
-//////////////////////////////////////////////////////////////////////////
-        
-    QCString trAuthor(bool first_capital, bool singular)  
-    { return toUtf8(m_translator->trAuthor(first_capital,singular)); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.11
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trReferences()  
-    { return toUtf8(m_translator->trReferences()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.13
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trImplementedFromList(int numEntries)  
-    { return toUtf8(m_translator->trImplementedFromList(numEntries)); }
-    QCString trImplementedInList(int numEntries)  
-    { return toUtf8(m_translator->trImplementedInList(numEntries)); }
-    
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.16
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trRTFTableOfContents()  
-    { return toUtf8(m_translator->trRTFTableOfContents()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.17
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trDeprecatedList()  
-    { return toUtf8(m_translator->trDeprecatedList()); }
-    
-//////////////////////////////////////////////////////////////////////////
-// new since 1.2.18
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trEvents()  
-    { return toUtf8(m_translator->trEvents()); }
-    QCString trEventDocumentation()  
-    { return toUtf8(m_translator->trEventDocumentation()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.3
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trPackageTypes()  
-    { return toUtf8(m_translator->trPackageTypes()); }
-    QCString trPackageMembers()  
-    { return toUtf8(m_translator->trPackageMembers()); }
-    QCString trStaticPackageMembers()  
-    { return toUtf8(m_translator->trStaticPackageMembers()); }
-    QCString trPackageAttribs()  
-    { return toUtf8(m_translator->trPackageAttribs()); }
-    QCString trStaticPackageAttribs()  
-    { return toUtf8(m_translator->trStaticPackageAttribs()); }
-    
-//////////////////////////////////////////////////////////////////////////
-// new since 1.3.1
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trAll()  
-    { return toUtf8(m_translator->trAll()); }
-    QCString trCallGraph()  
-    { return toUtf8(m_translator->trCallGraph()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.3.3
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trSearchForIndex()  
-    { return toUtf8(m_translator->trSearchForIndex()); }
-    QCString trSearchResultsTitle()  
-    { return toUtf8(m_translator->trSearchResultsTitle()); }
-    QCString trSearchResults(int numDocuments)  
-    { return toUtf8(m_translator->trSearchResults(numDocuments)); }
-    QCString trSearchMatches()  
-    { return toUtf8(m_translator->trSearchMatches()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.3.8
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trSourceFile(QCString& filename)  
-    { return toUtf8(m_translator->trSourceFile(filename)); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.3.9
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trDirIndex()  
-    { return toUtf8(m_translator->trDirIndex()); }
-    QCString trDirDocumentation()  
-    { return toUtf8(m_translator->trDirDocumentation()); }
-    QCString trDirectories()  
-    { return toUtf8(m_translator->trDirectories()); }
-    QCString trDirDescription()  
-    { return toUtf8(m_translator->trDirDescription()); }
-    QCString trDirReference(const char *dirName)  
-    { return toUtf8(m_translator->trDirReference(fromUtf8(dirName))); }
-    QCString trDir(bool first_capital, bool singular)  
-    { return toUtf8(m_translator->trDir(first_capital,singular)); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.4.1
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trOverloadText()  
-    { return toUtf8(m_translator->trOverloadText()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.4.6
-//////////////////////////////////////////////////////////////////////////
-    
-    QCString trCallerGraph()  
-    { return toUtf8(m_translator->trCallerGraph()); }
-    QCString trEnumerationValueDocumentation()  
-    { return toUtf8(m_translator->trEnumerationValueDocumentation()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.5.4
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trMemberFunctionDocumentationFortran()  
-    { return toUtf8(m_translator->trMemberFunctionDocumentationFortran()); }
-    QCString trCompoundListFortran()  
-    { return toUtf8(m_translator->trCompoundListFortran()); }
-    QCString trCompoundMembersFortran()  
-    { return toUtf8(m_translator->trCompoundMembersFortran()); }
-    QCString trCompoundListDescriptionFortran()  
-    { return toUtf8(m_translator->trCompoundListDescriptionFortran()); }
-    QCString trCompoundMembersDescriptionFortran(bool extractAll)  
-    { return toUtf8(m_translator->trCompoundMembersDescriptionFortran(extractAll)); }
-    QCString trCompoundIndexFortran()  
-    { return toUtf8(m_translator->trCompoundIndexFortran()); }
-    QCString trTypeDocumentation()  
-    { return toUtf8(m_translator->trTypeDocumentation()); }
-    QCString trSubprograms()  
-    { return toUtf8(m_translator->trSubprograms()); }
-    QCString trSubprogramDocumentation()  
-    { return toUtf8(m_translator->trSubprogramDocumentation()); }
-    QCString trDataTypes()  
-    { return toUtf8(m_translator->trDataTypes()); }
-    QCString trModulesList()  
-    { return toUtf8(m_translator->trModulesList()); }
-    QCString trModulesListDescription(bool extractAll)  
-    { return toUtf8(m_translator->trModulesListDescription(extractAll)); }
-    QCString trCompoundReferenceFortran(const char *clName,
-                                 ClassDef::CompoundType compType,
-                                 bool isTemplate)  
-    { return toUtf8(m_translator->trCompoundReferenceFortran(fromUtf8(clName),compType,isTemplate)); }
-    QCString trModuleReference(const char *namespaceName)  
-    { return toUtf8(m_translator->trModuleReference(fromUtf8(namespaceName))); }
-    QCString trModulesMembers()  
-    { return toUtf8(m_translator->trModulesMembers()); }
-    QCString trModulesMemberDescription(bool extractAll)  
-    { return toUtf8(m_translator->trModulesMemberDescription(extractAll)); }
-    QCString trModulesIndex()  
-    { return toUtf8(m_translator->trModulesIndex()); }
-    QCString trModule(bool first_capital, bool singular)  
-    { return toUtf8(m_translator->trModule(first_capital,singular)); }
-    QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
-                                          bool single)  
-    { return toUtf8(m_translator->trGeneratedFromFilesFortran(compType,single)); }
-    QCString trType(bool first_capital, bool singular)  
-    { return toUtf8(m_translator->trType(first_capital,singular)); }
-    QCString trSubprogram(bool first_capital, bool singular)  
-    { return toUtf8(m_translator->trSubprogram(first_capital,singular)); }
-    QCString trTypeConstraints()
-    { return toUtf8(m_translator->trTypeConstraints()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.6.0
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trDirRelation(const char *name)
-    { return toUtf8(m_translator->trDirRelation(fromUtf8(name))); }
-    QCString trLoading()
-    { return toUtf8(m_translator->trLoading()); }
-    QCString trGlobalNamespace()
-    { return toUtf8(m_translator->trGlobalNamespace()); }
-    QCString trSearching()
-    { return toUtf8(m_translator->trSearching()); }
-    QCString trNoMatches()
-    { return toUtf8(m_translator->trNoMatches()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.6.3
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trDirDependency(const char *name)
-    { return toUtf8(m_translator->trDirDependency(fromUtf8(name))); }
-    QCString trFileIn(const char *name)
-    { return toUtf8(m_translator->trFileIn(fromUtf8(name))); }
-    QCString trIncludesFileIn(const char *name)
-    { return toUtf8(m_translator->trIncludesFileIn(fromUtf8(name))); }
-    QCString trDateTime(int year,int month,int day,int dayOfWeek,
-                        int hour,int minutes,int seconds,bool includeTime)
-    { return toUtf8(m_translator->trDateTime(year,month,day,dayOfWeek,
-                                             hour,minutes,seconds,includeTime)); 
-    }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.7.5
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trCiteReferences()
-    { return toUtf8(m_translator->trCiteReferences()); }
-    QCString trCopyright()
-    { return toUtf8(m_translator->trCopyright()); }
-    QCString trDirDepGraph(const char *name)
-    { return toUtf8(m_translator->trDirDepGraph(fromUtf8(name))); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.8.0
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trDetailLevel()
-    { return toUtf8(m_translator->trDetailLevel()); }
-    QCString trTemplateParameters()
-    { return toUtf8(m_translator->trTemplateParameters()); }
-    QCString trAndMore(const QCString &number)
-    { return toUtf8(m_translator->trAndMore(fromUtf8(number))); }
-    QCString trEnumGeneratedFromFiles(bool single)
-    { return toUtf8(m_translator->trEnumGeneratedFromFiles(single)); }
-    QCString trEnumReference(const char *name)
-    { return toUtf8(m_translator->trEnumReference(fromUtf8(name))); }
-    QCString trInheritedFrom(const char *members,const char *what)
-    { return toUtf8(m_translator->trInheritedFrom(fromUtf8(members),fromUtf8(what))); }
-    QCString trAdditionalInheritedMembers()
-    { return toUtf8(m_translator->trAdditionalInheritedMembers()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.8.2
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trPanelSynchronisationTooltip(bool enable)
-    { return toUtf8(m_translator->trPanelSynchronisationTooltip(enable)); }
-    QCString trProvidedByCategory()
-    { return toUtf8(m_translator->trProvidedByCategory()); }
-    QCString trExtendsClass()
-    { return toUtf8(m_translator->trExtendsClass()); }
-    QCString trClassMethods()
-    { return toUtf8(m_translator->trClassMethods()); }
-    QCString trInstanceMethods()
-    { return toUtf8(m_translator->trInstanceMethods()); }
-    QCString trMethodDocumentation()
-    { return toUtf8(m_translator->trMethodDocumentation()); }
-    QCString trDesignOverview()
-    { return toUtf8(m_translator->trDesignOverview()); }
-
-//////////////////////////////////////////////////////////////////////////
-// new since 1.8.4
-//////////////////////////////////////////////////////////////////////////
-
-    QCString trInterfaces()
-    { return toUtf8(m_translator->trInterfaces()); }
-    QCString trServices()
-    { return toUtf8(m_translator->trServices()); }
-    QCString trConstantGroups()
-    { return toUtf8(m_translator->trConstantGroups()); }
-    QCString trConstantGroupReference(const char *namespaceName)
-    { return toUtf8(m_translator->trConstantGroupReference(fromUtf8(namespaceName))); }
-    QCString trServiceReference(const char *sName)
-    { return toUtf8(m_translator->trServiceReference(fromUtf8(sName))); }
-    QCString trSingletonReference(const char *sName)
-    { return toUtf8(m_translator->trSingletonReference(fromUtf8(sName))); }
-    QCString trServiceGeneratedFromFiles(bool single)
-    { return toUtf8(m_translator->trServiceGeneratedFromFiles(single)); }
-    QCString trSingletonGeneratedFromFiles(bool single)
-    { return toUtf8(m_translator->trSingletonGeneratedFromFiles(single)); }
-
-
-//////////////////////////////////////////////////////////////////////////
-  private:
-    Translator *m_translator;
-    void *m_toUtf8;
-    void *m_fromUtf8;
-
-};
-
-#endif
index 0d70d43..58214bd 100644 (file)
@@ -1593,6 +1593,12 @@ ClassDef *getResolvedClass(Definition *scope,
   {
     result = getResolvedClassRec(scope,fileScope,n,pTypeDef,pTemplSpec,pResolvedType);
   }
+  if (result==0) // for nested classes imported via tag files, the scope may not
+                 // present, so we check the class name directly as well.
+                 // See also bug701314
+  {
+    result = getClass(n);
+  }
   if (!mayBeUnlinkable && result && !result->isLinkable()) 
   {
     if (!mayBeHidden || !result->isHidden())
@@ -1721,7 +1727,7 @@ nextChar:
       growBuf.addChar('>');
     }
     else if (i>0 && c==',' && !isspace((uchar)s.at(i-1))
-        && ((i<l-1 && isId(s.at(i+1)))
+        && ((i<l-1 && (isId(s.at(i+1)) || s.at(i+1)=='[')) // the [ is for attributes (see bug702170)
           || (i<l-2 && s.at(i+1)=='$' && isId(s.at(i+2)))  // for PHP
           || (i<l-3 && s.at(i+1)=='&' && s.at(i+2)=='$' && isId(s.at(i+3)))))  // for PHP
     {
@@ -1843,11 +1849,15 @@ int findParameterList(const QString &name)
         ++templateDepth;
         pos=nextOpenPos-1;
       }
-      else
+      else if (nextClosePos!=-1)
       {
         --templateDepth;
         pos=nextClosePos-1;
       }
+      else // more >'s than <'s, see bug701295
+      {
+        return -1;
+      }
     }
     else
     {
@@ -1869,20 +1879,24 @@ int findParameterList(const QString &name)
 
 bool rightScopeMatch(const QCString &scope, const QCString &name)
 {
+  int sl=scope.length();
+  int nl=name.length();
   return (name==scope || // equal 
-      (scope.right(name.length())==name && // substring 
-       scope.at(scope.length()-name.length()-1)==':' // scope
-      ) 
-      );
+          (scope.right(nl)==name && // substring 
+           sl-nl>1 && scope.at(sl-nl-1)==':' && scope.at(sl-nl-2)==':' // scope
+          
+         );
 }
 
 bool leftScopeMatch(const QCString &scope, const QCString &name)
 {
+  int sl=scope.length();
+  int nl=name.length();
   return (name==scope || // equal 
-      (scope.left(name.length())==name && // substring 
-       scope.at(name.length())==':' // scope
-      ) 
-      );
+          (scope.left(nl)==name && // substring 
+           sl>nl+1 && scope.at(nl)==':' && scope.at(nl+1)==':' // scope
+          
+         );
 }
 
 
@@ -2406,57 +2420,17 @@ QCString fileToString(const char *name,bool filter,bool isSourceCode)
       err("file `%s' not found\n",name);
       return "";
     }
-    QCString filterName = getFileFilter(name,isSourceCode);
-    if (filterName.isEmpty() || !filter)
-    {
-      f.setName(name);
-      fileOpened=f.open(IO_ReadOnly);
-      if (fileOpened)
-      {
-        int fsize=f.size();
-        QCString contents(fsize+2);
-        f.readBlock(contents.data(),fsize);
-        if (fsize==0 || contents[fsize-1]=='\n') 
-          contents[fsize]='\0';
-        else
-          contents[fsize]='\n'; // to help the scanner
-        contents[fsize+1]='\0';
-        f.close();
-        int newSize = filterCRLF(contents.data(),fsize+2);
-        if (newSize!=fsize+2) 
-        {
-          contents.resize(newSize);
-        }
-        return transcodeCharacterStringToUTF8(contents);
-      }
-    }
-    else // filter the input
+    BufStr buf(fi.size());
+    fileOpened=readInputFile(name,buf,filter,isSourceCode);
+    if (fileOpened)
     {
-      QCString cmd=filterName+" \""+name+"\"";
-      Debug::print(Debug::ExtCmd,0,"Executing popen(`%s`)\n",cmd.data());
-      FILE *f=portable_popen(cmd,"r");
-      if (!f)
-      {
-        err("could not execute filter %s\n",filterName.data());
-        return "";
-      }
-      const int bSize=4096;
-      QCString contents(bSize);
-      int totalSize=0;
-      int size;
-      while ((size=(int)fread(contents.data()+totalSize,1,bSize,f))==bSize)
+      int s = buf.size();
+      if (s>1 && buf.at(s-2)!='\n')
       {
-        totalSize+=bSize;
-        contents.resize(totalSize+bSize); 
+        buf.at(s-1)='\n';
+        buf.addChar(0);
       }
-      totalSize = filterCRLF(contents.data(),totalSize+size)+2;
-      contents.resize(totalSize);
-      contents.at(totalSize-2)='\n'; // to help the scanner
-      contents.at(totalSize-1)='\0';
-      portable_pclose(f);
-      Debug::print(Debug::FilterOutput, 0, "Filter output\n");
-      Debug::print(Debug::FilterOutput,0,"-------------\n%s\n-------------\n",contents.data());
-      return transcodeCharacterStringToUTF8(contents);
+      return buf.data();
     }
   }
   if (!fileOpened)  
@@ -3897,7 +3871,7 @@ static void findMembersWithSpecificName(MemberName *mn,
  *     file fd.
  */
 bool getDefs(const QCString &scName,
-             const QCString &memberName, 
+             const QCString &mbName, 
              const char *args,
              MemberDef *&md, 
              ClassDef *&cd, 
@@ -3911,10 +3885,12 @@ bool getDefs(const QCString &scName,
             )
 {
   fd=0, md=0, cd=0, nd=0, gd=0;
-  if (memberName.isEmpty()) return FALSE; /* empty name => nothing to link */
+  if (mbName.isEmpty()) return FALSE; /* empty name => nothing to link */
 
   QCString scopeName=scName;
+  QCString memberName=mbName;
   scopeName = substitute(scopeName,"\\","::"); // for PHP
+  memberName = substitute(memberName,"\\","::"); // for PHP
   //printf("Search for name=%s args=%s in scope=%s forceEmpty=%d\n",
   //          memberName.data(),args,scopeName.data(),forceEmptyScope);
 
@@ -3968,8 +3944,9 @@ bool getDefs(const QCString &scName,
         className=mScope;
       }
 
-      ClassDef *fcd=getResolvedClass(Doxygen::globalScope,0,className);
-      //printf("Trying class scope %s: %p\n",className.data(),fcd);
+      MemberDef *tmd=0;
+      ClassDef *fcd=getResolvedClass(Doxygen::globalScope,0,className,&tmd);
+      //printf("Trying class scope %s: fcd=%p tmd=%p\n",className.data(),fcd,tmd);
       // todo: fill in correct fileScope!
       if (fcd &&  // is it a documented class
           fcd->isLinkable() 
@@ -3987,30 +3964,30 @@ bool getDefs(const QCString &scName,
         }
         for (mmli.toFirst();(mmd=mmli.current());++mmli)
         {
-          //if (mmd->isLinkable())
-          //{
-          ArgumentList *mmdAl = mmd->argumentList();
-          bool match=args==0 || 
-            matchArguments2(mmd->getOuterScope(),mmd->getFileDef(),mmdAl,
-                fcd,fcd->getFileDef(),argList,
-                checkCV
-                );  
-          //printf("match=%d\n",match);
-          if (match)
+          if (!mmd->isStrongEnumValue())
           {
-            ClassDef *mcd=mmd->getClassDef();
-            if (mcd)
+            ArgumentList *mmdAl = mmd->argumentList();
+            bool match=args==0 || 
+              matchArguments2(mmd->getOuterScope(),mmd->getFileDef(),mmdAl,
+                  fcd,fcd->getFileDef(),argList,
+                  checkCV
+                  );  
+            //printf("match=%d\n",match);
+            if (match)
             {
-              int m=minClassDistance(fcd,mcd);
-              if (m<mdist && mcd->isLinkable())
+              ClassDef *mcd=mmd->getClassDef();
+              if (mcd)
               {
-                mdist=m;
-                cd=mcd;
-                md=mmd;
+                int m=minClassDistance(fcd,mcd);
+                if (m<mdist && mcd->isLinkable())
+                {
+                  mdist=m;
+                  cd=mcd;
+                  md=mmd;
+                }
               }
             }
           }
-          //}
         }
         if (argList)
         {
@@ -4043,7 +4020,7 @@ bool getDefs(const QCString &scName,
         //printf("  >Succes=%d\n",mdist<maxInheritanceDepth);
         if (mdist<maxInheritanceDepth) 
         {
-          if (!md->isLinkable()) 
+          if (!md->isLinkable() || md->isStrongEnumValue()
           {
             md=0; // avoid returning things we cannot link to
             cd=0;
@@ -4057,6 +4034,34 @@ bool getDefs(const QCString &scName,
           }
         }
       } 
+      if (tmd && tmd->isEnumerate() && tmd->isStrong()) // scoped enum
+      {
+        //printf("Found scoped enum!\n");
+        MemberList *tml = tmd->enumFieldList();
+        if (tml)
+        {
+          MemberListIterator tmi(*tml);
+          MemberDef *emd;
+          for (;(emd=tmi.current());++tmi)
+          {
+            if (emd->localName()==mName)
+            {
+              if (emd->isLinkable())
+              {
+                cd=tmd->getClassDef();
+                md=emd;
+                return TRUE;
+              }
+              else
+              {
+                cd=0;
+                md=0;
+                return FALSE;
+              }
+            }
+          }
+        }
+      }
       /* go to the parent scope */
       if (scopeOffset==0)
       {
@@ -4071,6 +4076,7 @@ bool getDefs(const QCString &scName,
   }
   if (mn && scopeName.isEmpty() && mScope.isEmpty()) // Maybe a related function?
   {
+    //printf("Global symbol\n");
     MemberListIterator mmli(*mn);
     MemberDef *mmd, *fuzzy_mmd = 0;
     ArgumentList *argList = 0;
@@ -4104,7 +4110,7 @@ bool getDefs(const QCString &scName,
 
     mmd = mmd ? mmd : fuzzy_mmd;
 
-    if (mmd)
+    if (mmd && !mmd->isStrongEnumValue())
     {
       md = mmd;
       cd = mmd->getClassDef();
@@ -4138,7 +4144,8 @@ bool getDefs(const QCString &scName,
           fnd->isLinkable()
          )
       {
-        //printf("Function inside existing namespace `%s'\n",namespaceName.data());
+        //printf("Symbol inside existing namespace `%s' count=%d\n",
+        //    namespaceName.data(),mn->count());
         bool found=FALSE;
         MemberListIterator mmli(*mn);
         MemberDef *mmd;
@@ -4146,7 +4153,26 @@ bool getDefs(const QCString &scName,
         {
           //printf("mmd->getNamespaceDef()=%p fnd=%p\n",
           //    mmd->getNamespaceDef(),fnd);
-          if (mmd->getNamespaceDef()==fnd /* && mmd->isLinkable() */ )
+          MemberDef *emd = mmd->getEnumScope();
+          if (emd && emd->isStrong())
+          {
+            //printf("yes match %s<->%s!\n",mScope.data(),emd->localName().data());
+            if (emd->getNamespaceDef()==fnd && 
+                rightScopeMatch(mScope,emd->localName()))
+            {
+              //printf("found it!\n");
+              nd=fnd;
+              md=mmd;
+              found=TRUE;
+            }
+            else
+            {
+              md=0;
+              cd=0;
+              return FALSE;
+            }
+          }
+          else if (mmd->getNamespaceDef()==fnd /* && mmd->isLinkable() */ )
           { // namespace is found
             bool match=TRUE;
             ArgumentList *argList=0;
@@ -4202,6 +4228,36 @@ bool getDefs(const QCString &scName,
           }
         }
       }
+      else
+      {
+        //printf("not a namespace\n");
+        bool found=FALSE;
+        MemberListIterator mmli(*mn);
+        MemberDef *mmd;
+        for (mmli.toFirst();((mmd=mmli.current()) && !found);++mmli)
+        {
+          MemberDef *tmd = mmd->getEnumScope();
+          //printf("try member %s tmd=%s\n",mmd->name().data(),tmd?tmd->name().data():"<none>");
+          int ni=namespaceName.findRev("::");
+          //printf("namespaceName=%s ni=%d\n",namespaceName.data(),ni);
+          bool notInNS = tmd && ni==-1 && tmd->getNamespaceDef()==0 && (mScope.isEmpty() || mScope==tmd->name());
+          bool sameNS  = tmd && tmd->getNamespaceDef() && namespaceName.left(ni)==tmd->getNamespaceDef()->name();
+          //printf("notInNS=%d sameNS=%d\n",notInNS,sameNS);
+          if (tmd && tmd->isStrong() && // C++11 enum class
+              (notInNS || sameNS) &&
+              namespaceName.length()>0  // enum is part of namespace so this should not be empty
+             )
+          {
+            md=mmd;
+            fd=mmd->getFileDef();
+            gd=mmd->getGroupDef();
+            if (gd && gd->isLinkable()) fd=0; else gd=0;
+            //printf("Found scoped enum %s fd=%p gd=%p\n",
+            //    mmd->name().data(),fd,gd);
+            return TRUE;
+          }
+        }
+      }
       if (scopeOffset==0)
       {
         scopeOffset=-1;
@@ -4234,8 +4290,10 @@ bool getDefs(const QCString &scName,
           //printf("member is linkable md->name()=`%s'\n",md->name().data());
           fd=md->getFileDef();
           gd=md->getGroupDef();
+          MemberDef *tmd = md->getEnumScope();
           if (
-              (gd && gd->isLinkable()) || (fd && fd->isLinkable()) 
+              (gd && gd->isLinkable()) || (fd && fd->isLinkable()) ||
+              (tmd && tmd->isStrong())
              )
           {
             members.append(md);
@@ -4248,7 +4306,8 @@ bool getDefs(const QCString &scName,
       {
         md=members.last();
       }
-      if (md) // found a matching global member
+      if (md && (md->getEnumScope()==0 || !md->getEnumScope()->isStrong())) 
+           // found a matching global member, that is not a scoped enum value (or uniquely matches)
       {
         fd=md->getFileDef();
         gd=md->getGroupDef();
@@ -4462,6 +4521,7 @@ bool resolveRef(/* in */  const char *scName,
   {
     //printf("after getDefs checkScope=%d nameStr=%s cd=%p nd=%p\n",checkScope,nameStr.data(),cd,nd);
     if (checkScope && md && md->getOuterScope()==Doxygen::globalScope && 
+        !md->isStrongEnumValue() &&
         (!scopeStr.isEmpty() || nameStr.find("::")>0))
     {
       // we did find a member, but it is a global one while we were explicitly 
@@ -4503,6 +4563,14 @@ bool resolveRef(/* in */  const char *scName,
   {
     return resolveRef(scName,name,inSeeBlock,resContext,resMember,FALSE,0,checkScope);
   }
+  if (bracePos!=-1) // Try without parameters as well, could be a contructor invocation
+  {
+    *resContext=getClass(fullName.left(bracePos));
+    if (*resContext)
+    {
+      return TRUE;
+    }
+  }
   //printf("resolveRef: %s not found!\n",name);
 
   return FALSE;
@@ -6905,6 +6973,34 @@ struct Marker
   int size; // size of the marker
 };
 
+/** For a string \a s that starts with a command name, returns the character 
+ *  offset within that string representing the first character after the 
+ *  command. For an alias with argument, this is the offset to the
+ *  character just after the argument list.
+ *
+ *  Examples:
+ *  - s=="a b"      returns 1
+ *  - s=="a{2,3} b" returns 6
+ *  = s=="#"        returns 0
+ */
+static int findEndOfCommand(const char *s)
+{
+  const char *p = s;
+  char c;
+  int i=0;
+  if (p)
+  {
+    while ((c=*p) && isId(c)) p++;
+    if (c=='{')
+    {
+      QCString args = extractAliasArgs(p,0);
+      i+=args.length();
+    }
+    i+=p-s;
+  }
+  return i;
+}
+
 /** Replaces the markers in an alias definition \a aliasValue 
  *  with the corresponding values found in the comma separated argument 
  *  list \a argList and the returns the result after recursive alias expansion.
@@ -6920,11 +7016,17 @@ static QCString replaceAliasArguments(const QCString &aliasValue,const QCString
   int s=0;
   for (i=0;i<l;i++)
   {
-    if (argList.at(i)==',' && (i==0 || argList.at(i-1)!='\\')) 
+    char c = argList.at(i);
+    if (c==',' && (i==0 || argList.at(i-1)!='\\')) 
     {
       args.append(new QCString(argList.mid(s,i-s)));
       s=i+1; // start of next argument
     }
+    else if (c=='@' || c=='\\')
+    {
+      // check if this is the start of another aliased command (see bug704172)
+      i+=findEndOfCommand(argList.data()+i+1);
+    }
   }
   if (l>s) args.append(new QCString(argList.right(l-s)));
   //printf("found %d arguments\n",args.count());
@@ -7084,6 +7186,7 @@ static QCString expandAliasRec(const QCString s)
   return result;
 }
 
+
 int countAliasArguments(const QCString argList)
 {
   int count=1;
@@ -7091,8 +7194,15 @@ int countAliasArguments(const QCString argList)
   int i;
   for (i=0;i<l;i++) 
   {
-    if (argList.at(i)==',' && (i==0 || argList.at(i-1)!='\\')) count++;
+    char c = argList.at(i);
+    if (c==',' && (i==0 || argList.at(i-1)!='\\')) count++;
+    else if (c=='@' || c=='\\')
+    {
+      // check if this is the start of another aliased command (see bug704172)
+      i+=findEndOfCommand(argList.data()+i+1);
+    }
   }
+  //printf("countAliasArguments=%d\n",count);
   return count;
 }
 
@@ -7237,7 +7347,7 @@ static int transcodeCharacterBuffer(const char *fileName,BufStr &srcBuf,int size
 }
 
 //! read a file name \a fileName and optionally filter and transcode it
-bool readInputFile(const char *fileName,BufStr &inBuf)
+bool readInputFile(const char *fileName,BufStr &inBuf,bool filter,bool isSourceCode)
 {
   // try to open file
   int size=0;
@@ -7246,8 +7356,8 @@ bool readInputFile(const char *fileName,BufStr &inBuf)
 
   QFileInfo fi(fileName);
   if (!fi.exists()) return FALSE;
-  QCString filterName = getFileFilter(fileName,FALSE);
-  if (filterName.isEmpty())
+  QCString filterName = getFileFilter(fileName,isSourceCode);
+  if (filterName.isEmpty() || !filter)
   {
     QFile f(fileName);
     if (!f.open(IO_ReadOnly))
@@ -7313,7 +7423,7 @@ bool readInputFile(const char *fileName,BufStr &inBuf)
         Config_getString("INPUT_ENCODING"),"UTF-8");
   }
 
-  inBuf.addChar('\n'); /* to prevent problems under Windows ? */
+  //inBuf.addChar('\n'); /* to prevent problems under Windows ? */
 
   // and translate CR's
   size=inBuf.curPos()-start;
@@ -7324,7 +7434,7 @@ bool readInputFile(const char *fileName,BufStr &inBuf)
     inBuf.shrink(newSize); // resize the array
     //printf(".......resizing from %d to %d result=[%s]\n",oldPos+size,oldPos+newSize,dest.data());
   }
-  inBuf.at(inBuf.curPos())='\0';
+  inBuf.addChar(0);
   return TRUE;
 }
 
index e19e829..1aba005 100644 (file)
@@ -372,7 +372,8 @@ QCString convertCharEntitiesToUTF8(const QCString &s);
 
 void stackTrace();
 
-bool readInputFile(const char *fileName,BufStr &inBuf);
+bool readInputFile(const char *fileName,BufStr &inBuf,
+                   bool filter=TRUE,bool isSourceCode=FALSE);
 QCString filterTitle(const QCString &title);
 
 bool patternMatch(const QFileInfo &fi,const QStrList *patList);
index 8e20419..11da962 100644 (file)
@@ -42,6 +42,7 @@
 #include "config.h"
 #include "classdef.h"
 #include "filedef.h"
+#include "tooltip.h"
 
 #define YY_NEVER_INTERACTIVE 1
 #define YY_NO_INPUT 1
@@ -63,7 +64,7 @@ static bool isFuncProto=FALSE;
 static bool isComponent=FALSE;
 static bool isPackageBody=FALSE;
 static bool isProto = FALSE;
-
+static bool       g_startCode = FALSE;
 static QCString   g_PrevString;
 static QCString   g_CurrClass;
 static QDict<QCString>g_vhdlKeyDict;   
@@ -185,6 +186,7 @@ static void startCodeLine()
   //if (g_currentFontClass) { g_code->endFontClass(); }
   if (g_sourceFileDef)
   {
+    g_startCode=TRUE;
     //QCString lineNumber,lineAnchor;
     //lineNumber.sprintf("%05d",g_yyLineNr);
     //lineAnchor.sprintf("l%05d",g_yyLineNr);
@@ -247,12 +249,15 @@ static void endCodeLine()
 
 static void nextCodeLine()
 {
+  if (g_startCode)
+  {
+    endCodeLine();    // </div>
+  }
   const char *fc = g_currentFontClass;
-  endCodeLine();
   if (g_yyLineNr<g_inputLines) 
   {
     g_currentFontClass = fc;
-    startCodeLine();
+    startCodeLine();  //<div>
   }
 }
 
@@ -347,7 +352,7 @@ static void writeWord(const char *word,const char* curr_class=0,bool classLink=F
 /*! write a code fragment `text' that may span multiple lines, inserting
  * line numbers for each line.
  */
-static void codifyLines(const char *text,const char *cl=0,bool classlink=FALSE)
+static void codifyLines(const char *text,const char *cl=0,bool classlink=FALSE,bool comment=FALSE)
 {
   if (text==0) return;
   //printf("codifyLines(%d,\"%s\")\n",g_yyLineNr,text);
@@ -365,12 +370,21 @@ static void codifyLines(const char *text,const char *cl=0,bool classlink=FALSE)
       line = line.left((int)(p-sp)-1);
       //*(p-1)='\0';
       //g_code->codify(sp);
-      writeWord(line,cl,classlink);
+      if (comment)
+      {
+        writeFont("keyword",line.data());
+      }
+      else
+      {
+        writeWord(line,cl,classlink);
+      }
       nextCodeLine();
     }
     else
     {
-      //g_code->codify(sp);
+      if (comment)
+        writeFont("keyword",sp);
+      else
       writeWord(sp,cl,classlink);
       done=TRUE;
     }
@@ -382,10 +396,19 @@ static void codifyLines(const char *text,const char *cl=0,bool classlink=FALSE)
  * split into multiple links with the same destination, one for each line.
  */
 static void writeMultiLineCodeLink(CodeOutputInterface &ol,
-                  const char *ref,const char *file,
-                  const char *anchor,const char *text,
-                 const char *tooltip)
+                  Definition *d,
+                  const char *text)
 {
+  static bool sourceTooltips = Config_getBool("SOURCE_TOOLTIPS");
+  TooltipManager::instance()->addTooltip(d);
+  QCString ref  = d->getReference();
+  QCString file = d->getOutputFileBase();
+  QCString anchor = d->anchor();
+  QCString tooltip; 
+  if (!sourceTooltips) // fall back to simple "title" tooltips
+  {
+    tooltip = d->briefDescriptionAsTooltip();
+  }
   bool done=FALSE;
   char *p=(char *)text;
   while (!done)
@@ -442,11 +465,7 @@ static void generateFuncLink(CodeOutputInterface &ol,MemberDef* mdef)
 
   if (mdef && mdef->isLinkable()) // is it a linkable class
   {
-    writeMultiLineCodeLink(ol,mdef->getReference(),
-                             mdef->getOutputFileBase(),
-                             mdef->anchor(),
-                             mdef->name(),
-                             mdef->briefDescriptionAsTooltip());
+    writeMultiLineCodeLink(ol,mdef,mdef->name());
     addToSearchIndex(memberName);
     return;
   }
@@ -483,11 +502,7 @@ static void generateMemLink(CodeOutputInterface &ol,QCString &clName,QCString& m
 
   if (md && md->isLinkable()) // is it a linkable class
   {
-    writeMultiLineCodeLink(ol,md->getReference(),
-                             md->getOutputFileBase(),
-                             md->anchor(),
-                             memberName,
-                             md->briefDescriptionAsTooltip());
+    writeMultiLineCodeLink(ol,md,memberName);
     addToSearchIndex(memberName);
     return;
   }
@@ -519,11 +534,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,const char *clName
       //{
       //  temp=VhdlDocGen::getClassName(cd);
       //}
-      writeMultiLineCodeLink(ol,cd->getReference(),
-                               cd->getOutputFileBase(),
-                               cd->anchor(),
-                               temp,
-                               cd->briefDescriptionAsTooltip());
+      writeMultiLineCodeLink(ol,cd,temp);
       addToSearchIndex(className);
       return;
     }
@@ -1465,9 +1476,9 @@ XILINX      "INST"|"NET"|"PIN"|"BLKNM"|"BUFG"|"COLLAPSE"|"CPLD"|"COMPGRP"|"CONFI
                           }  
                           else // normal comment
                           {
-                            startFontClass("keyword");
-                            codifyLines(text);
-                            endFontClass();
+                            //    startFontClass("keyword");
+                            codifyLines(text,0,FALSE,TRUE);
+                            //    endFontClass();
                           }
                          }
 <*>{TEXTT}               { // found normal or special comment after something
@@ -1480,9 +1491,9 @@ XILINX      "INST"|"NET"|"PIN"|"BLKNM"|"BUFG"|"COLLAPSE"|"CPLD"|"COMPGRP"|"CONFI
                           }  
                           else // normal comment
                           {
-                            startFontClass("keyword");
-                            codifyLines(text);
-                            endFontClass();
+                            //   startFontClass("keyword");
+                            codifyLines(text,0,FALSE,TRUE);
+                            //   endFontClass();
                           }
                          }
 
@@ -1505,6 +1516,7 @@ void parseVhdlCode(CodeOutputInterface &od,const char *className,const QCString
 {
   //printf("***parseCode() exBlock=%d exName=%s fd=%p\n",exBlock,exName,fd);
   if (s.isEmpty()) return;
+  TooltipManager::instance()->clearTooltips();
   if (memberDef)
   {
     ClassDef *dd=memberDef->getClassDef();
@@ -1575,14 +1587,17 @@ void parseVhdlCode(CodeOutputInterface &od,const char *className,const QCString
   {
     endCodeLine();
   }
+  if (fd)
+  {
+    TooltipManager::instance()->writeTooltips(*g_code);
+  }
   if (cleanupSourceDef)
   {
     // delete the temporary file definition used for this example
     delete g_sourceFileDef;
     g_sourceFileDef=0;
   }
-  return;
+  g_startCode=FALSE;
 }
 
 void codeFreeVhdlScanner()
index 8545c90..a9af81a 100644 (file)
@@ -2583,6 +2583,7 @@ void VhdlDocGen::writeSource(MemberDef *mdef,OutputList& ol,QCString & cname)
   pIntf->parseCode(ol,                   // codeOutIntf
                        0,                // scope
                        codeFragment,     // input
+                       SrcLangExt_VHDL,  // lang
                        FALSE,            // isExample
                        0,                // exampleName
                        mdef->getFileDef(),            // fileDef
@@ -3188,6 +3189,8 @@ void VhdlDocGen::writeRecUnitDocu(
   {
     QCString n=ql[i].utf8();
     ol.startParameterType(first,"");
+    ol.endParameterType();
+    ol.startParameterName(TRUE);
     VhdlDocGen::formatString(n,ol,md);
     if ((len-i)>1)
     {
index 12c2d13..6ad8316 100644 (file)
@@ -59,6 +59,7 @@ class VHDLLanguageScanner : public ParserInterface
     void parseCode(CodeOutputInterface &codeOutIntf,
                    const char *scopeName,
                    const QCString &input,
+                   SrcLangExt lang,
                    bool isExampleBlock,
                    const char *exampleName=0,
                    FileDef *fileDef=0,
index 934a985..fb0dcb7 100644 (file)
@@ -796,6 +796,7 @@ void VHDLLanguageScanner::parseInput(const char *fileName,
 void VHDLLanguageScanner::parseCode(CodeOutputInterface &codeOutIntf,
     const char *scopeName,
     const QCString &input,
+    SrcLangExt /*lang*/,
     bool isExampleBlock,
     const char *exampleName,
     FileDef *fileDef,
index 5bae376..d9b5df9 100644 (file)
@@ -105,73 +105,73 @@ void XmlDocVisitor::visit(DocSymbol *s)
     case DocSymbol::Nbsp:          m_t << "<nonbreakablespace/>"; break;
     case DocSymbol::Aelig:         m_t << "<aelig/>"; break;
     case DocSymbol::AElig:         m_t << "<AElig/>"; break;
-    case DocSymbol::GrkGamma:      m_t << "<Gamma>"; break;
-    case DocSymbol::GrkDelta:      m_t << "<Delta>"; break;
-    case DocSymbol::GrkTheta:      m_t << "<Theta>"; break;
-    case DocSymbol::GrkLambda:     m_t << "<Lambda>"; break;
-    case DocSymbol::GrkXi:         m_t << "<Xi>"; break;
-    case DocSymbol::GrkPi:         m_t << "<Pi>"; break;
-    case DocSymbol::GrkSigma:      m_t << "<Sigma>"; break;
-    case DocSymbol::GrkUpsilon:    m_t << "<Upsilon>"; break;
-    case DocSymbol::GrkPhi:        m_t << "<Phi>"; break;
-    case DocSymbol::GrkPsi:        m_t << "<Psi>"; break;
-    case DocSymbol::GrkOmega:      m_t << "<Omega>"; break;
-    case DocSymbol::Grkalpha:      m_t << "<alpha>"; break;
-    case DocSymbol::Grkbeta:       m_t << "<beta>"; break;
-    case DocSymbol::Grkgamma:      m_t << "<gamma>"; break;
-    case DocSymbol::Grkdelta:      m_t << "<delta>"; break;
-    case DocSymbol::Grkepsilon:    m_t << "<epsilon>"; break;
-    case DocSymbol::Grkzeta:       m_t << "<zeta>"; break;
-    case DocSymbol::Grketa:        m_t << "<eta>"; break;
-    case DocSymbol::Grktheta:      m_t << "<theta>"; break;
-    case DocSymbol::Grkiota:       m_t << "<iota>"; break;
-    case DocSymbol::Grkkappa:      m_t << "<kappa>"; break;
-    case DocSymbol::Grklambda:     m_t << "<lambda>"; break;
-    case DocSymbol::Grkmu:         m_t << "<mu>"; break;
-    case DocSymbol::Grknu:         m_t << "<nu>"; break;
-    case DocSymbol::Grkxi:         m_t << "<xi>"; break;
-    case DocSymbol::Grkpi:         m_t << "<pi>"; break;
-    case DocSymbol::Grkrho:        m_t << "<rho>"; break;
-    case DocSymbol::Grksigma:      m_t << "<sigma>"; break;
-    case DocSymbol::Grktau:        m_t << "<tau>"; break;
-    case DocSymbol::Grkupsilon:    m_t << "<upsilon>"; break;
-    case DocSymbol::Grkphi:        m_t << "<phi>"; break;
-    case DocSymbol::Grkchi:        m_t << "<chi>"; break;
-    case DocSymbol::Grkpsi:        m_t << "<psi>"; break;
-    case DocSymbol::Grkomega:      m_t << "<omega>"; break;
-    case DocSymbol::Grkvarsigma:   m_t << "<sigmaf>"; break;
-    case DocSymbol::Section:       m_t << "<sect>"; break;
-    case DocSymbol::Degree:        m_t << "<deg>"; break;
-    case DocSymbol::Prime:         m_t << "<prime>"; break;
-    case DocSymbol::DoublePrime:   m_t << "<Prime>"; break;
-    case DocSymbol::Infinity:      m_t << "<infin>"; break;
-    case DocSymbol::EmptySet:      m_t << "<empty>"; break;
-    case DocSymbol::PlusMinus:     m_t << "<plusmn>"; break;
-    case DocSymbol::Times:         m_t << "<times>"; break;
-    case DocSymbol::Minus:         m_t << "<minus>"; break;
-    case DocSymbol::CenterDot:     m_t << "<sdot>"; break;
-    case DocSymbol::Partial:       m_t << "<part>"; break;
-    case DocSymbol::Nabla:         m_t << "<nabla>"; break;
-    case DocSymbol::SquareRoot:    m_t << "<radic>"; break;
-    case DocSymbol::Perpendicular: m_t << "<perp>"; break;
-    case DocSymbol::Sum:           m_t << "<sum>"; break;
-    case DocSymbol::Integral:      m_t << "<int>"; break;
-    case DocSymbol::Product:       m_t << "<prod>"; break;
-    case DocSymbol::Similar:       m_t << "<sim>"; break;
-    case DocSymbol::Approx:        m_t << "<asymp>"; break;
-    case DocSymbol::NotEqual:      m_t << "<ne>"; break;
-    case DocSymbol::Equivalent:    m_t << "<equiv>"; break;
-    case DocSymbol::Proportional:  m_t << "<prop>"; break;
-    case DocSymbol::LessEqual:     m_t << "<le>"; break;
-    case DocSymbol::GreaterEqual:  m_t << "<ge>"; break;
-    case DocSymbol::LeftArrow:     m_t << "<larr>"; break;
-    case DocSymbol::RightArrow:    m_t << "<rarr>"; break;
-    case DocSymbol::SetIn:         m_t << "<isin>"; break;
-    case DocSymbol::SetNotIn:      m_t << "<notin>"; break;
-    case DocSymbol::LeftCeil:      m_t << "<lceil>"; break;
-    case DocSymbol::RightCeil:     m_t << "<rceil>"; break;
-    case DocSymbol::LeftFloor:     m_t << "<lfloor>"; break;
-    case DocSymbol::RightFloor:    m_t << "<rfloor>"; break;
+    case DocSymbol::GrkGamma:      m_t << "<Gamma/>"; break;
+    case DocSymbol::GrkDelta:      m_t << "<Delta/>"; break;
+    case DocSymbol::GrkTheta:      m_t << "<Theta/>"; break;
+    case DocSymbol::GrkLambda:     m_t << "<Lambda/>"; break;
+    case DocSymbol::GrkXi:         m_t << "<Xi/>"; break;
+    case DocSymbol::GrkPi:         m_t << "<Pi/>"; break;
+    case DocSymbol::GrkSigma:      m_t << "<Sigma/>"; break;
+    case DocSymbol::GrkUpsilon:    m_t << "<Upsilon/>"; break;
+    case DocSymbol::GrkPhi:        m_t << "<Phi/>"; break;
+    case DocSymbol::GrkPsi:        m_t << "<Psi/>"; break;
+    case DocSymbol::GrkOmega:      m_t << "<Omega/>"; break;
+    case DocSymbol::Grkalpha:      m_t << "<alpha/>"; break;
+    case DocSymbol::Grkbeta:       m_t << "<beta/>"; break;
+    case DocSymbol::Grkgamma:      m_t << "<gamma/>"; break;
+    case DocSymbol::Grkdelta:      m_t << "<delta/>"; break;
+    case DocSymbol::Grkepsilon:    m_t << "<epsilon/>"; break;
+    case DocSymbol::Grkzeta:       m_t << "<zeta/>"; break;
+    case DocSymbol::Grketa:        m_t << "<eta/>"; break;
+    case DocSymbol::Grktheta:      m_t << "<theta/>"; break;
+    case DocSymbol::Grkiota:       m_t << "<iota/>"; break;
+    case DocSymbol::Grkkappa:      m_t << "<kappa/>"; break;
+    case DocSymbol::Grklambda:     m_t << "<lambda/>"; break;
+    case DocSymbol::Grkmu:         m_t << "<mu/>"; break;
+    case DocSymbol::Grknu:         m_t << "<nu/>"; break;
+    case DocSymbol::Grkxi:         m_t << "<xi/>"; break;
+    case DocSymbol::Grkpi:         m_t << "<pi/>"; break;
+    case DocSymbol::Grkrho:        m_t << "<rho/>"; break;
+    case DocSymbol::Grksigma:      m_t << "<sigma/>"; break;
+    case DocSymbol::Grktau:        m_t << "<tau/>"; break;
+    case DocSymbol::Grkupsilon:    m_t << "<upsilon/>"; break;
+    case DocSymbol::Grkphi:        m_t << "<phi/>"; break;
+    case DocSymbol::Grkchi:        m_t << "<chi/>"; break;
+    case DocSymbol::Grkpsi:        m_t << "<psi/>"; break;
+    case DocSymbol::Grkomega:      m_t << "<omega/>"; break;
+    case DocSymbol::Grkvarsigma:   m_t << "<sigmaf/>"; break;
+    case DocSymbol::Section:       m_t << "<sect/>"; break;
+    case DocSymbol::Degree:        m_t << "<deg/>"; break;
+    case DocSymbol::Prime:         m_t << "<prime/>"; break;
+    case DocSymbol::DoublePrime:   m_t << "<Prime/>"; break;
+    case DocSymbol::Infinity:      m_t << "<infin/>"; break;
+    case DocSymbol::EmptySet:      m_t << "<empty/>"; break;
+    case DocSymbol::PlusMinus:     m_t << "<plusmn/>"; break;
+    case DocSymbol::Times:         m_t << "<times/>"; break;
+    case DocSymbol::Minus:         m_t << "<minus/>"; break;
+    case DocSymbol::CenterDot:     m_t << "<sdot/>"; break;
+    case DocSymbol::Partial:       m_t << "<part/>"; break;
+    case DocSymbol::Nabla:         m_t << "<nabla/>"; break;
+    case DocSymbol::SquareRoot:    m_t << "<radic/>"; break;
+    case DocSymbol::Perpendicular: m_t << "<perp/>"; break;
+    case DocSymbol::Sum:           m_t << "<sum/>"; break;
+    case DocSymbol::Integral:      m_t << "<int/>"; break;
+    case DocSymbol::Product:       m_t << "<prod/>"; break;
+    case DocSymbol::Similar:       m_t << "<sim/>"; break;
+    case DocSymbol::Approx:        m_t << "<asymp/>"; break;
+    case DocSymbol::NotEqual:      m_t << "<ne/>"; break;
+    case DocSymbol::Equivalent:    m_t << "<equiv/>"; break;
+    case DocSymbol::Proportional:  m_t << "<prop/>"; break;
+    case DocSymbol::LessEqual:     m_t << "<le/>"; break;
+    case DocSymbol::GreaterEqual:  m_t << "<ge/>"; break;
+    case DocSymbol::LeftArrow:     m_t << "<larr/>"; break;
+    case DocSymbol::RightArrow:    m_t << "<rarr/>"; break;
+    case DocSymbol::SetIn:         m_t << "<isin/>"; break;
+    case DocSymbol::SetNotIn:      m_t << "<notin/>"; break;
+    case DocSymbol::LeftCeil:      m_t << "<lceil/>"; break;
+    case DocSymbol::RightCeil:     m_t << "<rceil/>"; break;
+    case DocSymbol::LeftFloor:     m_t << "<lfloor/>"; break;
+    case DocSymbol::RightFloor:    m_t << "<rfloor/>"; break;
     default:
                              err("unknown symbol found\n");
   }
@@ -246,12 +246,18 @@ void XmlDocVisitor::visit(DocStyleChange *s)
 void XmlDocVisitor::visit(DocVerbatim *s)
 {
   if (m_hide) return;
+  QCString lang = m_langExt;
+  if (!s->language().isEmpty()) // explicit language setting
+  {
+    lang = s->language();
+  }
+  SrcLangExt langExt = getLanguageFromFileName(lang);
   switch(s->type())
   {
     case DocVerbatim::Code: // fall though
       m_t << "<programlisting>"; 
-      Doxygen::parserManager->getParser(m_langExt)
-                            ->parseCode(m_ci,s->context(),s->text(),
+      Doxygen::parserManager->getParser(lang)
+                            ->parseCode(m_ci,s->context(),s->text(),langExt,
                                         s->isExample(),s->exampleFile());
       m_t << "</programlisting>"; 
       break;
@@ -310,6 +316,7 @@ void XmlDocVisitor::visit(DocAnchor *anc)
 void XmlDocVisitor::visit(DocInclude *inc)
 {
   if (m_hide) return;
+  SrcLangExt langExt = getLanguageFromFileName(inc->extension());
   switch(inc->type())
   {
     case DocInclude::IncWithLines:
@@ -320,6 +327,7 @@ void XmlDocVisitor::visit(DocInclude *inc)
          Doxygen::parserManager->getParser(inc->extension())
                                ->parseCode(m_ci,inc->context(),
                                            inc->text(),
+                                           langExt,
                                            inc->isExample(),
                                            inc->exampleFile(), &fd);
          m_t << "</programlisting>"; 
@@ -330,6 +338,7 @@ void XmlDocVisitor::visit(DocInclude *inc)
       Doxygen::parserManager->getParser(inc->extension())
                             ->parseCode(m_ci,inc->context(),
                                         inc->text(),
+                                        langExt,
                                         inc->isExample(),
                                         inc->exampleFile());
       m_t << "</programlisting>"; 
@@ -352,6 +361,7 @@ void XmlDocVisitor::visit(DocInclude *inc)
                             ->parseCode(m_ci,
                                         inc->context(),
                                         extractBlock(inc->text(),inc->blockId()),
+                                        langExt,
                                         inc->isExample(),
                                         inc->exampleFile()
                                        );
@@ -373,6 +383,7 @@ void XmlDocVisitor::visit(DocIncOperator *op)
     pushEnabled();
     m_hide = TRUE;
   }
+  SrcLangExt langExt = getLanguageFromFileName(m_langExt);
   if (op->type()!=DocIncOperator::Skip) 
   {
     popEnabled();
@@ -380,7 +391,7 @@ void XmlDocVisitor::visit(DocIncOperator *op)
     {
       Doxygen::parserManager->getParser(m_langExt)
                             ->parseCode(m_ci,op->context(),
-                                        op->text(),op->isExample(),
+                                        op->text(),langExt,op->isExample(),
                                         op->exampleFile());
     }
     pushEnabled();
@@ -587,7 +598,7 @@ void XmlDocVisitor::visitPre(DocSection *s)
   if (!s->anchor().isEmpty()) m_t << "_1" << s->anchor();
   m_t << "\">" << endl;
   m_t << "<title>";
-  filter(s->title());
+  filter(convertCharEntitiesToUTF8(s->title()));
   m_t << "</title>" << endl;
 }
 
index b1bfc9c..9caa935 100644 (file)
@@ -257,6 +257,12 @@ class XMLCodeGenerator : public CodeOutputInterface
       writeXMLLink(m_t,ref,file,anchor,name,tooltip);
       col+=qstrlen(name);
     }
+    void writeTooltip(const char *, const DocLinkInfo &, const char *,
+                      const char *, const SourceLinkInfo &, const SourceLinkInfo &
+                     )
+    {
+      XML_DB(("(writeToolTip)\n"));
+    }
     void startCodeLine(bool) 
     {
       XML_DB(("(startCodeLine)\n"));
@@ -299,21 +305,6 @@ class XMLCodeGenerator : public CodeOutputInterface
       m_external.resize(0);
       m_insideCodeLine=FALSE;
     }
-    void startCodeAnchor(const char *id) 
-    {
-      XML_DB(("(startCodeAnchor)\n"));
-      if (m_insideCodeLine && !m_insideSpecialHL && m_normalHLNeedStartTag)
-      {
-        m_t << "<highlight class=\"normal\">";
-        m_normalHLNeedStartTag=FALSE;
-      }
-      m_t << "<anchor id=\"" << id << "\">";
-    }
-    void endCodeAnchor() 
-    {
-      XML_DB(("(endCodeAnchor)\n"));
-      m_t << "</anchor>";
-    }
     void startFontClass(const char *colorClass) 
     {
       XML_DB(("(startFontClass)\n"));
@@ -456,11 +447,13 @@ static void writeXMLDocBlock(FTextStream &t,
 void writeXMLCodeBlock(FTextStream &t,FileDef *fd)
 {
   ParserInterface *pIntf=Doxygen::parserManager->getParser(fd->getDefFileExtension());
+  SrcLangExt langExt = getLanguageFromFileName(fd->getDefFileExtension());
   pIntf->resetCodeParserState();
   XMLCodeGenerator *xmlGen = new XMLCodeGenerator(t);
   pIntf->parseCode(*xmlGen,  // codeOutIntf
                 0,           // scopeName
                 fileToString(fd->absFilePath(),Config_getBool("FILTER_SOURCE_FILES")),
+                langExt,     // lang
                 FALSE,       // isExampleBlock
                 0,           // exampleName
                 fd,          // fileDef
@@ -896,9 +889,8 @@ static void generateXMLForMember(MemberDef *md,FTextStream &ti,FTextStream &t,De
       }
     }
   }
-  // avoid that extremely large tables are written to the output. 
-  // todo: it's better to adhere to MAX_INITIALIZER_LINES.
-  if (!md->initializer().isEmpty() && md->initializer().length()<2000)
+
+  if (md->hasOneLineInitializer() || md->hasMultiLineInitializer())
   {
     t << "        <initializer>";
     linkifyText(TextGeneratorXMLImpl(t),def,md->getBodyDef(),md,md->initializer());
@@ -1838,20 +1830,22 @@ static void generateXMLForPage(PageDef *pd,FTextStream &ti,bool isExample)
     QCString title;
     if (!pd->title().isEmpty() && pd->title().lower()!="notitle")
     {
-      title = filterTitle(Doxygen::mainPage->title());
+      title = filterTitle(convertCharEntitiesToUTF8(Doxygen::mainPage->title()));
     }
     else 
     {
       title = Config_getString("PROJECT_NAME");
     }
-    t << "    <title>" << convertToXML(title) << "</title>" << endl;
+    t << "    <title>" << convertToXML(convertCharEntitiesToUTF8(title)) 
+      << "</title>" << endl;
   }
   else
   {
     SectionInfo *si = Doxygen::sectionDict->find(pd->name());
     if (si)
     {
-      t << "    <title>" << convertToXML(si->title) << "</title>" << endl;
+      t << "    <title>" << convertToXML(convertCharEntitiesToUTF8(si->title)) 
+        << "</title>" << endl;
     }
   }
   writeInnerPages(pd->getSubPages(),t);
diff --git a/testing/001/indexpage.xml b/testing/001/indexpage.xml
new file mode 100644 (file)
index 0000000..06d680b
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Text <emphasis>argument</emphasis> more text. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/001_a.dox b/testing/001_a.dox
new file mode 100644 (file)
index 0000000..c37136b
--- /dev/null
@@ -0,0 +1,5 @@
+// objective: test the \a and \mainpage commands
+// check: indexpage.xml
+/** \mainpage
+ *  Text \a argument more text.
+ */
diff --git a/testing/002/indexpage.xml b/testing/002/indexpage.xml
new file mode 100644 (file)
index 0000000..1eba9d5
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>
+        <indexentry>
+          <primaryie>keyword</primaryie>
+          <secondaryie/>
+        </indexentry>
+      </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/002_addindex.dox b/testing/002_addindex.dox
new file mode 100644 (file)
index 0000000..b1c941f
--- /dev/null
@@ -0,0 +1,5 @@
+// objective: test \addindex command
+// check: indexpage.xml
+/** \mainpage
+ *  \addindex keyword
+ */
diff --git a/testing/003/indexpage.xml b/testing/003/indexpage.xml
new file mode 100644 (file)
index 0000000..a4f42e2
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para><ref refid="index_1myanchor" kindref="member">See Anchor</ref> Some text. <anchor id="index_1myanchor"/>More text. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/003_anchor.dox b/testing/003_anchor.dox
new file mode 100644 (file)
index 0000000..b28fc5e
--- /dev/null
@@ -0,0 +1,8 @@
+// objective: test \anchor command
+// check: indexpage.xml
+/** \mainpage
+ *  \ref myanchor "See Anchor"
+ *  Some text.
+ *  \anchor myanchor
+ *  More text.
+ */
diff --git a/testing/004/indexpage.xml b/testing/004/indexpage.xml
new file mode 100644 (file)
index 0000000..3d0a713
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para><itemizedlist><listitem><para><computeroutput>AlignLeft</computeroutput> left alignment. </para></listitem><listitem><para><computeroutput>AlignCenter</computeroutput> center alignment. </para></listitem><listitem><para><computeroutput>AlignRight</computeroutput> right alignment</para></listitem></itemizedlist>
+No other types of alignment are supported.</para>
+      <para><itemizedlist><listitem><para><computeroutput>AlignLeft</computeroutput> left alignment. </para></listitem><listitem><para><computeroutput>AlignCenter</computeroutput> center alignment. </para></listitem><listitem><para><computeroutput>AlignRight</computeroutput> right alignment</para></listitem></itemizedlist>
+No other types of alignment are supported. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/004_arg.dox b/testing/004_arg.dox
new file mode 100644 (file)
index 0000000..c6ea8e5
--- /dev/null
@@ -0,0 +1,15 @@
+// objective: test \arg and \li commands
+// check: indexpage.xml
+/** \mainpage
+  \arg \c AlignLeft left alignment.
+  \arg \c AlignCenter center alignment.
+  \arg \c AlignRight right alignment
+
+  No other types of alignment are supported.
+
+  \li \c AlignLeft left alignment.
+  \li \c AlignCenter center alignment.
+  \li \c AlignRight right alignment
+
+  No other types of alignment are supported.
+*/
diff --git a/testing/005/indexpage.xml b/testing/005/indexpage.xml
new file mode 100644 (file)
index 0000000..5a2e6f9
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>
+        <simplesect kind="attention">
+          <para>Attention message. </para>
+        </simplesect>
+        <simplesect kind="note">
+          <para>Something to note. </para>
+        </simplesect>
+        <simplesect kind="remark">
+          <para>A remark. </para>
+        </simplesect>
+        <simplesect kind="warning">
+          <para>A warning message. </para>
+        </simplesect>
+        <simplesect kind="par">
+          <title/>
+          <para>Second paragraph </para>
+        </simplesect>
+        <simplesect kind="par">
+          <title>User defined paragraph.</title>
+          <para>Contents of paragraph. </para>
+        </simplesect>
+        <simplesect kind="par">
+          <title/>
+          <para>More text in a new paragraph. </para>
+        </simplesect>
+      </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/005_attention.dox b/testing/005_attention.dox
new file mode 100644 (file)
index 0000000..c3c390e
--- /dev/null
@@ -0,0 +1,14 @@
+// objective: test \attention, \not, \remark, \warning, and \par commands
+// check: indexpage.xml
+/** \mainpage
+ *  \attention Attention message.
+ *  \note Something to note.
+ *  \remark A remark.
+ *  \warning A warning message.
+ *  \par 
+ *  Second paragraph
+ *  \par User defined paragraph.
+ *  Contents of paragraph.
+ *  \par
+ *  More text in a new paragraph.
+ */
diff --git a/testing/006/indexpage.xml b/testing/006/indexpage.xml
new file mode 100644 (file)
index 0000000..edb2904
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>
+        <simplesect kind="author">
+          <para>John Doe </para>
+          <simplesectsep/>
+          <para>Jane Doe </para>
+        </simplesect>
+        <simplesect kind="authors">
+          <para>David, Steven </para>
+        </simplesect>
+        <simplesect kind="since">
+          <para>version 1.2 </para>
+        </simplesect>
+        <simplesect kind="version">
+          <para>1.8-beta2 </para>
+        </simplesect>
+      </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/006_author.dox b/testing/006_author.dox
new file mode 100644 (file)
index 0000000..ba07c1e
--- /dev/null
@@ -0,0 +1,9 @@
+// objective: test the \author, \since, and \version command
+// check: indexpage.xml
+/** \mainpage
+ *  \author John Doe
+ *  \author Jane Doe
+ *  \authors David, Steven
+ *  \since version 1.2
+ *  \version 1.8-beta2
+ */
diff --git a/testing/007/indexpage.xml b/testing/007/indexpage.xml
new file mode 100644 (file)
index 0000000..9b22813
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Text <bold>bold</bold> normal text. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/007_b.dox b/testing/007_b.dox
new file mode 100644 (file)
index 0000000..887c19f
--- /dev/null
@@ -0,0 +1,5 @@
+// objective: test the \b command
+// check: indexpage.xml
+/** \mainpage
+ *  Text \b bold normal text.
+ */
diff --git a/testing/008/008__brief_8c.xml b/testing/008/008__brief_8c.xml
new file mode 100644 (file)
index 0000000..3416798
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="008__brief_8c" kind="file">
+    <compoundname>008_brief.c</compoundname>
+    <briefdescription>
+      <para>A brief description. </para>
+    </briefdescription>
+    <detaileddescription>
+      <para>More details. </para>
+    </detaileddescription>
+    <location file="008_brief.c"/>
+  </compounddef>
+</doxygen>
diff --git a/testing/008_brief.c b/testing/008_brief.c
new file mode 100644 (file)
index 0000000..773eaf1
--- /dev/null
@@ -0,0 +1,7 @@
+// objective: test \brief and \file command
+// check: 008__brief_8c.xml
+/** \file
+ *  \brief A brief description.
+ * 
+ *  More details.
+ */
diff --git a/testing/009/bug.xml b/testing/009/bug.xml
new file mode 100644 (file)
index 0000000..1d80134
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="bug" kind="page">
+    <compoundname>bug</compoundname>
+    <title>Bug List</title>
+    <detaileddescription>
+      <para>
+        <variablelist>
+          <varlistentry>
+            <term><anchor id="bug_1_bug000001"/>Class <ref refid="class_bug" kindref="compound">Bug</ref></term>
+          </varlistentry>
+          <listitem>
+            <para>Class bug.  </para>
+          </listitem>
+          <varlistentry>
+            <term><anchor id="bug_1_bug000002"/>Member <ref refid="class_bug_1a1f720954dd97cd1203e80501a6eae74c" kindref="member">Bug::foo</ref>  ()</term>
+          </varlistentry>
+          <listitem>
+            <para>Function bug<itemizedlist><listitem><para>list item 1 in bug</para></listitem><listitem><para>list item 2 in bug</para></listitem></itemizedlist>
+</para>
+          </listitem>
+        </variablelist>
+      </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/009/class_bug.xml b/testing/009/class_bug.xml
new file mode 100644 (file)
index 0000000..75a3fa1
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_bug" kind="class" prot="public">
+    <compoundname>Bug</compoundname>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="class_bug_1a1f720954dd97cd1203e80501a6eae74c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void Bug::foo</definition>
+        <argsstring>()</argsstring>
+        <name>foo</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>Description <xrefsect id="bug_1_bug000002"><xreftitle>Bug</xreftitle><xrefdescription><para>Function bug<itemizedlist><listitem><para>list item 1 in bug</para></listitem><listitem><para>list item 2 in bug</para></listitem></itemizedlist>
+</para></xrefdescription></xrefsect></para>
+          <para>More text. </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="009_bug.cpp" line="25" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>
+        <xrefsect id="bug_1_bug000001">
+          <xreftitle>Bug</xreftitle>
+          <xrefdescription>
+            <para>Class bug. </para>
+          </xrefdescription>
+        </xrefsect>
+      </para>
+    </detaileddescription>
+    <location file="009_bug.cpp" bodystart="15" bodyend="26"/>
+    <listofallmembers>
+      <member refid="class_bug_1a1f720954dd97cd1203e80501a6eae74c" prot="public" virt="non-virtual">
+        <scope>Bug</scope>
+        <name>foo</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/009/class_deprecated.xml b/testing/009/class_deprecated.xml
new file mode 100644 (file)
index 0000000..2420466
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_deprecated" kind="class" prot="public">
+    <compoundname>Deprecated</compoundname>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="class_deprecated_1a1d5f6803e72c625727e7083d1722dbf9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void Deprecated::deprecated</definition>
+        <argsstring>()</argsstring>
+        <name>deprecated</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>Do deprecated things. <xrefsect id="deprecated_1_deprecated000002"><xreftitle>Deprecated</xreftitle><xrefdescription><para>No not use this function anymore. </para></xrefdescription></xrefsect></para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="009_bug.cpp" line="35" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>
+        <xrefsect id="deprecated_1_deprecated000001">
+          <xreftitle>Deprecated</xreftitle>
+          <xrefdescription>
+            <para>This class is deprecated </para>
+          </xrefdescription>
+        </xrefsect>
+      </para>
+    </detaileddescription>
+    <location file="009_bug.cpp" bodystart="29" bodyend="36"/>
+    <listofallmembers>
+      <member refid="class_deprecated_1a1d5f6803e72c625727e7083d1722dbf9" prot="public" virt="non-virtual">
+        <scope>Deprecated</scope>
+        <name>deprecated</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/009/class_reminder.xml b/testing/009/class_reminder.xml
new file mode 100644 (file)
index 0000000..2f3c641
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_reminder" kind="class" prot="public">
+    <compoundname>Reminder</compoundname>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="class_reminder_1a173b5218bb11287b0e86a550d9f0728d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void Reminder::reminder</definition>
+        <argsstring>()</argsstring>
+        <name>reminder</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>
+            <xrefsect id="reminders_1_reminders000002">
+              <xreftitle>Reminder</xreftitle>
+              <xrefdescription>
+                <para>Need to rework this before the next release. </para>
+              </xrefdescription>
+            </xrefsect>
+          </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="009_bug.cpp" line="59" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>
+        <xrefsect id="reminders_1_reminders000001">
+          <xreftitle>Reminder</xreftitle>
+          <xrefdescription>
+            <para>A reminder </para>
+          </xrefdescription>
+        </xrefsect>
+      </para>
+    </detaileddescription>
+    <location file="009_bug.cpp" bodystart="55" bodyend="60"/>
+    <listofallmembers>
+      <member refid="class_reminder_1a173b5218bb11287b0e86a550d9f0728d" prot="public" virt="non-virtual">
+        <scope>Reminder</scope>
+        <name>reminder</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/009/class_test.xml b/testing/009/class_test.xml
new file mode 100644 (file)
index 0000000..505617f
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_test" kind="class" prot="public">
+    <compoundname>Test</compoundname>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="class_test_1a9fc54b716f326514a4c5f434137f4fc0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void Test::test</definition>
+        <argsstring>()</argsstring>
+        <name>test</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>
+            <xrefsect id="test_1_test000002">
+              <xreftitle>Test</xreftitle>
+              <xrefdescription>
+                <para>more things to test. </para>
+              </xrefdescription>
+            </xrefsect>
+          </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="009_bug.cpp" line="51" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>
+        <xrefsect id="test_1_test000001">
+          <xreftitle>Test</xreftitle>
+          <xrefdescription>
+            <para>This is part of testing </para>
+          </xrefdescription>
+        </xrefsect>
+      </para>
+    </detaileddescription>
+    <location file="009_bug.cpp" bodystart="47" bodyend="52"/>
+    <listofallmembers>
+      <member refid="class_test_1a9fc54b716f326514a4c5f434137f4fc0" prot="public" virt="non-virtual">
+        <scope>Test</scope>
+        <name>test</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/009/class_todo.xml b/testing/009/class_todo.xml
new file mode 100644 (file)
index 0000000..0ac555f
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_todo" kind="class" prot="public">
+    <compoundname>Todo</compoundname>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="class_todo_1a9e70ec9176ac4c1b20e011b4daddc9d8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void Todo::todo</definition>
+        <argsstring>()</argsstring>
+        <name>todo</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>
+            <xrefsect id="todo_1_todo000002">
+              <xreftitle>Todo</xreftitle>
+              <xrefdescription>
+                <para>more things to do here </para>
+              </xrefdescription>
+            </xrefsect>
+          </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="009_bug.cpp" line="43" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>
+        <xrefsect id="todo_1_todo000001">
+          <xreftitle>Todo</xreftitle>
+          <xrefdescription>
+            <para>This still needs to be done. </para>
+          </xrefdescription>
+        </xrefsect>
+      </para>
+    </detaileddescription>
+    <location file="009_bug.cpp" bodystart="39" bodyend="44"/>
+    <listofallmembers>
+      <member refid="class_todo_1a9e70ec9176ac4c1b20e011b4daddc9d8" prot="public" virt="non-virtual">
+        <scope>Todo</scope>
+        <name>todo</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/009/deprecated.xml b/testing/009/deprecated.xml
new file mode 100644 (file)
index 0000000..0613b25
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="deprecated" kind="page">
+    <compoundname>deprecated</compoundname>
+    <title>Deprecated List</title>
+    <detaileddescription>
+      <para>
+        <variablelist>
+          <varlistentry>
+            <term><anchor id="deprecated_1_deprecated000001"/>Class <ref refid="class_deprecated" kindref="compound">Deprecated</ref></term>
+          </varlistentry>
+          <listitem>
+            <para>This class is deprecated  </para>
+          </listitem>
+          <varlistentry>
+            <term><anchor id="deprecated_1_deprecated000002"/>Member <ref refid="class_deprecated_1a1d5f6803e72c625727e7083d1722dbf9" kindref="member">Deprecated::deprecated</ref>  ()</term>
+          </varlistentry>
+          <listitem>
+            <para>No not use this function anymore. </para>
+          </listitem>
+        </variablelist>
+      </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/009/reminders.xml b/testing/009/reminders.xml
new file mode 100644 (file)
index 0000000..e9983ed
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="reminders" kind="page">
+    <compoundname>reminders</compoundname>
+    <title>Reminders</title>
+    <detaileddescription>
+      <para>
+        <variablelist>
+          <varlistentry>
+            <term><anchor id="reminders_1_reminders000001"/>Class <ref refid="class_reminder" kindref="compound">Reminder</ref></term>
+          </varlistentry>
+          <listitem>
+            <para>A reminder  </para>
+          </listitem>
+          <varlistentry>
+            <term><anchor id="reminders_1_reminders000002"/>Member <ref refid="class_reminder_1a173b5218bb11287b0e86a550d9f0728d" kindref="member">Reminder::reminder</ref>  ()</term>
+          </varlistentry>
+          <listitem>
+            <para>Need to rework this before the next release. </para>
+          </listitem>
+        </variablelist>
+      </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/009/test.xml b/testing/009/test.xml
new file mode 100644 (file)
index 0000000..14395bf
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="test" kind="page">
+    <compoundname>test</compoundname>
+    <title>Test List</title>
+    <detaileddescription>
+      <para>
+        <variablelist>
+          <varlistentry>
+            <term><anchor id="test_1_test000001"/>Class <ref refid="class_test" kindref="compound">Test</ref></term>
+          </varlistentry>
+          <listitem>
+            <para>This is part of testing  </para>
+          </listitem>
+          <varlistentry>
+            <term><anchor id="test_1_test000002"/>Member <ref refid="class_test_1a9fc54b716f326514a4c5f434137f4fc0" kindref="member">Test::test</ref>  ()</term>
+          </varlistentry>
+          <listitem>
+            <para>more things to test. </para>
+          </listitem>
+        </variablelist>
+      </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/009/todo.xml b/testing/009/todo.xml
new file mode 100644 (file)
index 0000000..4b731e3
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="todo" kind="page">
+    <compoundname>todo</compoundname>
+    <title>Todo List</title>
+    <detaileddescription>
+      <para>
+        <variablelist>
+          <varlistentry>
+            <term><anchor id="todo_1_todo000001"/>Class <ref refid="class_todo" kindref="compound">Todo</ref></term>
+          </varlistentry>
+          <listitem>
+            <para>This still needs to be done.  </para>
+          </listitem>
+          <varlistentry>
+            <term><anchor id="todo_1_todo000002"/>Member <ref refid="class_todo_1a9e70ec9176ac4c1b20e011b4daddc9d8" kindref="member">Todo::todo</ref>  ()</term>
+          </varlistentry>
+          <listitem>
+            <para>more things to do here </para>
+          </listitem>
+        </variablelist>
+      </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/009_bug.cpp b/testing/009_bug.cpp
new file mode 100644 (file)
index 0000000..285c77e
--- /dev/null
@@ -0,0 +1,62 @@
+// objective: test the \bug, \deprecated, \todo, \test, and \xrefitem commands
+// check: class_bug.xml
+// check: class_deprecated.xml
+// check: class_todo.xml
+// check: class_test.xml
+// check: class_reminder.xml
+// check: bug.xml
+// check: deprecated.xml
+// check: todo.xml
+// check: test.xml
+// check: reminders.xml
+// config: ALIASES = "reminder=\xrefitem reminders \"Reminder\" \"Reminders\""
+
+/** \bug Class bug. */
+class Bug
+{
+  public:
+    /** Description
+     *  \bug Function bug
+     *  - list item 1 in bug
+     *  - list item 2 in bug
+     *
+     *  More text.
+     */
+     void foo();
+};
+
+/** \deprecated This class is deprecated */
+class Deprecated
+{
+  public:
+    /** Do deprecated things.
+     *  \deprecated No not use this function anymore. 
+     */
+    void deprecated();
+};
+
+/** \todo This still needs to be done. */
+class Todo
+{
+  public:
+    /** \todo more things to do here */
+    void todo();
+};
+
+/** \test This is part of testing */
+class Test
+{
+  public:
+    /** \test more things to test. */
+    void test();
+};
+
+/** \reminder A reminder */
+class Reminder
+{
+  public:
+    /** \reminder Need to rework this before the next release. */
+    void reminder();
+};
+
+
diff --git a/testing/010/indexpage.xml b/testing/010/indexpage.xml
new file mode 100644 (file)
index 0000000..61f515c
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Text <computeroutput>code</computeroutput> normal text.</para>
+      <para>Text <computeroutput>code</computeroutput> normal text. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/010_c.dox b/testing/010_c.dox
new file mode 100644 (file)
index 0000000..a26b5fd
--- /dev/null
@@ -0,0 +1,7 @@
+// objective: test the \c and \p commands
+// check: indexpage.xml
+/** \mainpage
+ *  Text \c code normal text.
+ *
+ *  Text \p code normal text.
+ */
diff --git a/testing/011/category_integer_07_arithmetic_08.xml b/testing/011/category_integer_07_arithmetic_08.xml
new file mode 100644 (file)
index 0000000..9d64d98
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="category_integer_07_arithmetic_08" kind="category" prot="public">
+    <compoundname>Integer(Arithmetic)</compoundname>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="category_integer_07_arithmetic_08_1a12f411c5872ba3bafb8ea7dd1826cf2a" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
+        <type>id</type>
+        <definition>id Integer(Arithmetic)::add:</definition>
+        <argsstring>(Integer *addend)</argsstring>
+        <name>add:</name>
+        <param>
+          <type><ref refid="interface_integer" kindref="compound">Integer</ref> *</type>
+          <declname>addend</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>add operation </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="011_category.m" line="8" column="1"/>
+      </memberdef>
+      <memberdef kind="function" id="category_integer_07_arithmetic_08_1ae4ff0b0c62b6809e8f5bcee9baa6e521" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
+        <type>id</type>
+        <definition>id Integer(Arithmetic)::sub:</definition>
+        <argsstring>(Integer *subtrahend)</argsstring>
+        <name>sub:</name>
+        <param>
+          <type><ref refid="interface_integer" kindref="compound">Integer</ref> *</type>
+          <declname>subtrahend</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>substract operation </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="011_category.m" line="8" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>A category </para>
+    </detaileddescription>
+    <location file="011_category.m" bodystart="17" bodyend="-1"/>
+    <listofallmembers>
+      <member refid="category_integer_07_arithmetic_08_1a12f411c5872ba3bafb8ea7dd1826cf2a" prot="public" virt="virtual">
+        <scope>Integer(Arithmetic)</scope>
+        <name>add:</name>
+      </member>
+      <member refid="category_integer_07_arithmetic_08_1ae4ff0b0c62b6809e8f5bcee9baa6e521" prot="public" virt="virtual">
+        <scope>Integer(Arithmetic)</scope>
+        <name>sub:</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/011/interface_integer.xml b/testing/011/interface_integer.xml
new file mode 100644 (file)
index 0000000..bdbcad2
--- /dev/null
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="interface_integer" kind="class" prot="public">
+    <compoundname>Integer</compoundname>
+    <basecompoundref prot="public" virt="non-virtual">Object</basecompoundref>
+    <sectiondef kind="protected-attrib">
+      <memberdef kind="variable" id="interface_integer_1a35e89216966d8179a1b77f14b8211fda" prot="protected" static="no" mutable="no">
+        <type>int</type>
+        <definition>int Integer::integer</definition>
+        <argsstring/>
+        <name>integer</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>data member </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="011_category.m" bodystart="8" bodyend="-1"/>
+      </memberdef>
+    </sectiondef>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="interface_integer_1a7b55035e1b0e8e7d4c8587f54a760819" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
+        <type>int</type>
+        <definition>int Integer::integer</definition>
+        <argsstring>()</argsstring>
+        <name>integer</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>getter </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="011_category.m" line="8" column="1"/>
+      </memberdef>
+      <memberdef kind="function" id="interface_integer_1ad2f47761103b2442ff7b3fbfe33ec6c9" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
+        <type>id</type>
+        <definition>id Integer::integer:</definition>
+        <argsstring>(int _integer)</argsstring>
+        <name>integer:</name>
+        <param>
+          <type>int</type>
+          <declname>_integer</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>setter </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="011_category.m" line="8" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>An interface </para>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="1">
+        <label>Object</label>
+      </node>
+      <node id="0">
+        <label>Integer</label>
+        <link refid="interface_integer"/>
+        <childnode refid="1" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="3">
+        <label>Object</label>
+      </node>
+      <node id="2">
+        <label>Integer</label>
+        <link refid="interface_integer"/>
+        <childnode refid="3" relation="public-inheritance">
+        </childnode>
+      </node>
+    </collaborationgraph>
+    <location file="011_category.m" bodystart="6" bodyend="-1"/>
+    <listofallmembers>
+      <member refid="interface_integer_1a35e89216966d8179a1b77f14b8211fda" prot="protected" virt="non-virtual">
+        <scope>Integer</scope>
+        <name>integer</name>
+      </member>
+      <member refid="interface_integer_1a7b55035e1b0e8e7d4c8587f54a760819" prot="public" virt="virtual">
+        <scope>Integer</scope>
+        <name>integer</name>
+      </member>
+      <member refid="interface_integer_1ad2f47761103b2442ff7b3fbfe33ec6c9" prot="public" virt="virtual">
+        <scope>Integer</scope>
+        <name>integer:</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/011_category.m b/testing/011_category.m
new file mode 100644 (file)
index 0000000..8cb4d3a
--- /dev/null
@@ -0,0 +1,30 @@
+// objective: test the \interface and \category command
+// check: category_integer_07_arithmetic_08.xml
+// check: interface_integer.xml
+# import <objc/Object.h>
+@interface Integer : Object {
+ /** data member */
+ int integer;
+}
+/** getter */
+- (int) integer;
+/** setter */
+- (id) integer: (int) _integer;
+@end
+
+@interface Integer (Arithmetic)
+/** add operation */
+- (id) add: (Integer *) addend;
+/** substract operation */
+- (id) sub: (Integer *) subtrahend;
+@end
+
+/** \interface Integer
+ *  An interface 
+ */
+
+/** \category Integer(Arithmetic)
+ *  A category
+ */
diff --git a/testing/012/citelist.xml b/testing/012/citelist.xml
new file mode 100644 (file)
index 0000000..29e7dcd
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="citelist" kind="page">
+    <compoundname>citelist</compoundname>
+    <title>Bibliographic References</title>
+    <detaileddescription>
+      <para>
+        <variablelist>
+          <varlistentry>
+            <term><anchor id="_1CITEREF_knuth79"/>[1]</term>
+          </varlistentry>
+          <listitem>
+            <para>Donald<nonbreakablespace/>E. Knuth. <emphasis>Tex and Metafont, New Directions in Typesetting</emphasis>. American Mathematical Society and Digital Press, Stanford, 1979.</para>
+            <para/>
+          </listitem>
+        </variablelist>
+      </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/012/indexpage.xml b/testing/012/indexpage.xml
new file mode 100644 (file)
index 0000000..926b53b
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>See <ref refid="citelist_1CITEREF_knuth79" kindref="member">[1]</ref> for more info. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/012_cite.dox b/testing/012_cite.dox
new file mode 100644 (file)
index 0000000..9bcb2c5
--- /dev/null
@@ -0,0 +1,7 @@
+// objective: test the \cite command
+// check: indexpage.xml
+// check: citelist.xml
+// config: CITE_BIB_FILES = sample.bib
+/** \mainpage
+ *  See \cite knuth79 for more info.
+ */
diff --git a/testing/013/class_t1.xml b/testing/013/class_t1.xml
new file mode 100644 (file)
index 0000000..2a9b415
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_t1" kind="class" prot="public">
+    <compoundname>T1</compoundname>
+    <includes refid="013__class_8h" local="yes">inc/013_class.h</includes>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>A class </para>
+    </detaileddescription>
+    <location file="013_class.h" bodystart="10" bodyend="12"/>
+    <listofallmembers>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/013/class_t2.xml b/testing/013/class_t2.xml
new file mode 100644 (file)
index 0000000..9c85ff6
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_t2" kind="class" prot="public">
+    <compoundname>T2</compoundname>
+    <includes refid="013__class_8h" local="no">013_class.h</includes>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>class <ref refid="class_t2" kindref="compound">T2</ref> </para>
+    </detaileddescription>
+    <location file="013_class.h" bodystart="14" bodyend="16"/>
+    <listofallmembers>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/013/class_t3.xml b/testing/013/class_t3.xml
new file mode 100644 (file)
index 0000000..49e7a16
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_t3" kind="class" prot="public">
+    <compoundname>T3</compoundname>
+    <includes refid="013__class_8h" local="no">013_class.h</includes>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>class <ref refid="class_t3" kindref="compound">T3</ref> </para>
+    </detaileddescription>
+    <location file="013_class.h" bodystart="18" bodyend="20"/>
+    <listofallmembers>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/013/class_t4.xml b/testing/013/class_t4.xml
new file mode 100644 (file)
index 0000000..d87571d
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_t4" kind="class" prot="public">
+    <compoundname>T4</compoundname>
+    <includes refid="013__class_8h" local="yes">inc/013_class.h</includes>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>class <ref refid="class_t4" kindref="compound">T4</ref> </para>
+    </detaileddescription>
+    <location file="013_class.h" bodystart="22" bodyend="24"/>
+    <listofallmembers>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/013_class.h b/testing/013_class.h
new file mode 100644 (file)
index 0000000..346250b
--- /dev/null
@@ -0,0 +1,37 @@
+// objective: test the \class and \headerfile commands
+// check: class_t1.xml
+// check: class_t2.xml
+// check: class_t3.xml
+// check: class_t4.xml
+
+/** A class 
+ *  \headerfile 013_class.h "inc/013_class.h"
+ */
+class T1
+{
+};
+
+class T2
+{
+};
+
+class T3
+{
+};
+
+class T4
+{
+};
+
+/** \class T2
+ *  \headerfile <>
+ *  class T2
+ */
+
+/** \class T3 013_class.h
+ *  class T3
+ */
+
+/** \class T4 013_class.h "inc/013_class.h"
+ *  class T4
+ */
diff --git a/testing/014/indexpage.xml b/testing/014/indexpage.xml
new file mode 100644 (file)
index 0000000..9662b9c
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>
+        <programlisting>
+          <codeline lineno="1">
+            <highlight class="normal">*<sp/></highlight>
+            <highlight class="comment">#<sp/>comment<sp/>in<sp/>Python</highlight>
+            <highlight class="normal"/>
+          </codeline>
+          <codeline lineno="2">
+            <highlight class="normal">*<sp/></highlight>
+            <highlight class="keyword">class<sp/></highlight>
+            <highlight class="normal">Python:</highlight>
+          </codeline>
+          <codeline lineno="3">
+            <highlight class="normal">*<sp/><sp/><sp/></highlight>
+            <highlight class="keywordflow">pass</highlight>
+            <highlight class="normal"/>
+          </codeline>
+          <codeline lineno="4">
+            <highlight class="normal">*<sp/></highlight>
+          </codeline>
+        </programlisting>
+      </para>
+      <para>
+        <programlisting>
+          <codeline>
+            <highlight class="normal">*<sp/></highlight>
+            <highlight class="comment">//<sp/>comment<sp/>in<sp/>a<sp/>code<sp/>block</highlight>
+            <highlight class="normal"/>
+          </codeline>
+          <codeline>
+            <highlight class="normal">*<sp/></highlight>
+            <highlight class="keyword">class<sp/></highlight>
+            <highlight class="normal">Cpp<sp/>{};</highlight>
+          </codeline>
+          <codeline>
+            <highlight class="normal">*<sp/></highlight>
+          </codeline>
+        </programlisting>
+      </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/014_code.dox b/testing/014_code.dox
new file mode 100644 (file)
index 0000000..871a44c
--- /dev/null
@@ -0,0 +1,14 @@
+// objective: test the \code command
+// check: indexpage.xml
+/** \mainpage
+ * \code{.py}
+ * # comment in Python
+ * class Python:
+ *   pass
+ * \endcode
+ *
+ * \code{.cpp}
+ * // comment in a code block
+ * class Cpp {};
+ * \endcode
+ */
diff --git a/testing/015/015__cond_8c.xml b/testing/015/015__cond_8c.xml
new file mode 100644 (file)
index 0000000..39baed7
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="015__cond_8c" kind="file">
+    <compoundname>015_cond.c</compoundname>
+    <sectiondef kind="func">
+      <memberdef kind="function" id="015__cond_8c_1a2521dcda743ec66ad8e030113d6e0c63" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void cond_enabled</definition>
+        <argsstring>()</argsstring>
+        <name>cond_enabled</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="015_cond.c" bodystart="20" bodyend="22"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="015_cond.c"/>
+  </compounddef>
+</doxygen>
diff --git a/testing/015_cond.c b/testing/015_cond.c
new file mode 100644 (file)
index 0000000..ab3044c
--- /dev/null
@@ -0,0 +1,30 @@
+// objective: test the \cond command
+// check: 015__cond_8c.xml
+// config: ENABLED_SECTIONS = COND_ENABLED
+
+/** \file
+ *  Text \a argument more text.
+ */
+
+/// \cond
+
+/** A function */
+void func();
+
+/** A macro */
+#define MACRO 42
+
+/// \endcond
+
+/// \cond COND_ENABLED
+void cond_enabled()
+{
+}
+/// \endcond
+
+/** \cond COND_DISABLED */
+void cond_disabled()
+{
+}
+/** \endcond */
+
diff --git a/testing/016/016__copydoc_8c.xml b/testing/016/016__copydoc_8c.xml
new file mode 100644 (file)
index 0000000..dd1de8f
--- /dev/null
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="016__copydoc_8c" kind="file">
+    <compoundname>016_copydoc.c</compoundname>
+    <sectiondef kind="func">
+      <memberdef kind="function" id="016__copydoc_8c_1af721a79655a3857b98d70fa6ada8a916" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void func</definition>
+        <argsstring>(int i)</argsstring>
+        <name>func</name>
+        <param>
+          <type>int</type>
+          <declname>i</declname>
+        </param>
+        <briefdescription>
+          <para>Brief description. </para>
+        </briefdescription>
+        <detaileddescription>
+          <para>Detailed description. </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="016_copydoc.c" line="11" column="1"/>
+      </memberdef>
+      <memberdef kind="function" id="016__copydoc_8c_1a119dbcf2f0bc3ec1fbf77fcd35dec6df" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void func_brief</definition>
+        <argsstring>()</argsstring>
+        <name>func_brief</name>
+        <briefdescription>
+          <para>Brief description. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="016_copydoc.c" line="14" column="1"/>
+      </memberdef>
+      <memberdef kind="function" id="016__copydoc_8c_1a3c1e44de2b412b5218b55e216cebb4ac" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void func_details</definition>
+        <argsstring>()</argsstring>
+        <name>func_details</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>Detailed description. </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="016_copydoc.c" line="17" column="1"/>
+      </memberdef>
+      <memberdef kind="function" id="016__copydoc_8c_1a2535f29ea009c3d7449264671e15afe9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void func_doc</definition>
+        <argsstring>()</argsstring>
+        <name>func_doc</name>
+        <briefdescription>
+          <para>Brief description. </para>
+        </briefdescription>
+        <detaileddescription>
+          <para>Detailed description. More text. </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="016_copydoc.c" line="22" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>Text <emphasis>argument</emphasis> more text. </para>
+    </detaileddescription>
+    <location file="016_copydoc.c"/>
+  </compounddef>
+</doxygen>
diff --git a/testing/016_copydoc.c b/testing/016_copydoc.c
new file mode 100644 (file)
index 0000000..bb8b1bb
--- /dev/null
@@ -0,0 +1,23 @@
+// objective: test the \copydoc, \copybrief, \copydetails, and \details commands
+// check: 016__copydoc_8c.xml
+
+/** \file
+ *  Text \a argument more text.
+ */
+
+/** \brief Brief description.
+ *  \details Detailed description.
+ */
+void func(int i);
+
+/** \copybrief func(int) */
+void func_brief();
+
+/** \copydetails func(int) */
+void func_details();
+
+/** \copydoc func(int)
+ *  More text.
+ */
+void func_doc();
+
diff --git a/testing/017/indexpage.xml b/testing/017/indexpage.xml
new file mode 100644 (file)
index 0000000..f1bfc5e
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>
+        <simplesect kind="copyright">
+          <para>Dimitri van Heesch </para>
+        </simplesect>
+        <simplesect kind="date">
+          <para>July 13 2013 </para>
+        </simplesect>
+      </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/017_copyright.dox b/testing/017_copyright.dox
new file mode 100644 (file)
index 0000000..2351180
--- /dev/null
@@ -0,0 +1,6 @@
+// objective: test \copyright and \date commands
+// check: indexpage.xml
+/** \mainpage
+ *  \copyright Dimitri van Heesch
+ *  \date July 13 2013
+ */
diff --git a/testing/018/018__def_8c.xml b/testing/018/018__def_8c.xml
new file mode 100644 (file)
index 0000000..b55a2eb
--- /dev/null
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="018__def_8c" kind="file">
+    <compoundname>018_def.c</compoundname>
+    <sectiondef kind="define">
+      <memberdef kind="define" id="018__def_8c_1a824c99cb152a3c2e9111a2cb9c34891e" prot="public" static="no">
+        <name>MACRO</name>
+        <initializer>42</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>A macro definition </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="018_def.c" line="8" column="9"/>
+      </memberdef>
+    </sectiondef>
+    <sectiondef kind="enum">
+      <memberdef kind="enum" id="018__def_8c_1aa57b8491d1d8fc1014dd54bcf83b130a" prot="public" static="no">
+        <name>E</name>
+        <enumvalue id="018__def_8c_1aa57b8491d1d8fc1014dd54bcf83b130aab1710e6a49014ba389d57c8753c530f4" prot="public">
+          <name>E1</name>
+          <briefdescription>
+          </briefdescription>
+          <detaileddescription>
+          </detaileddescription>
+        </enumvalue>
+        <enumvalue id="018__def_8c_1aa57b8491d1d8fc1014dd54bcf83b130aace9a5783f96994d28bc6ec5c9ece8c80" prot="public">
+          <name>E2</name>
+          <briefdescription>
+          </briefdescription>
+          <detaileddescription>
+          </detaileddescription>
+        </enumvalue>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>An enum </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="018_def.c" bodystart="13" bodyend="13"/>
+      </memberdef>
+    </sectiondef>
+    <sectiondef kind="typedef">
+      <memberdef kind="typedef" id="018__def_8c_1a1d1cfd8ffb84e947f82999c682b666a7" prot="public" static="no">
+        <type>int</type>
+        <definition>Type</definition>
+        <argsstring/>
+        <name>Type</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>A type definition. </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="018_def.c" bodystart="12" bodyend="-1"/>
+      </memberdef>
+    </sectiondef>
+    <sectiondef kind="var">
+      <memberdef kind="variable" id="018__def_8c_1a335628f2e9085305224b4f9cc6e95ed5" prot="public" static="no" mutable="no">
+        <type>int</type>
+        <definition>var</definition>
+        <argsstring/>
+        <name>var</name>
+        <initializer>= 10</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>A variable </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="018_def.c" bodystart="9" bodyend="-1"/>
+      </memberdef>
+    </sectiondef>
+    <sectiondef kind="func">
+      <memberdef kind="function" id="018__def_8c_1aee50dbe7d43d2202b490a6977a325584" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>func</definition>
+        <argsstring>(int)</argsstring>
+        <name>func</name>
+        <param>
+          <type>int</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>A function with one parameter. </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="018_def.c" bodystart="10" bodyend="10"/>
+      </memberdef>
+      <memberdef kind="function" id="018__def_8c_1a2652ccbfb85efa2df3c70ba6c4628f8d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>func</definition>
+        <argsstring>(int, const char *)</argsstring>
+        <name>func</name>
+        <param>
+          <type>int</type>
+        </param>
+        <param>
+          <type>const char *</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>A function with two parameters </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="018_def.c" bodystart="11" bodyend="11"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>Text <emphasis>argument</emphasis> more text. </para>
+    </detaileddescription>
+    <location file="018_def.c"/>
+  </compounddef>
+</doxygen>
diff --git a/testing/018_def.c b/testing/018_def.c
new file mode 100644 (file)
index 0000000..dadc71c
--- /dev/null
@@ -0,0 +1,37 @@
+// objective: test the \def, \var, \fn, and \typedef commands
+// check: 018__def_8c.xml
+
+/** \file
+ *  Text \a argument more text.
+ */
+
+#define MACRO 42
+int var = 10;
+void func(int) {}
+void func(int,const char *) {}
+typedef int Type;
+enum E { E1, E2 };
+
+/** \def MACRO
+ *  A macro definition 
+ */
+
+/** \var var
+ *  A variable
+ */
+
+/** \fn func(int)
+ *  A function with one parameter.
+ */
+
+/** \fn func(int,const char *)
+ *  A function with two parameters
+ */
+
+/** \typedef Type
+ *  A type definition.
+ */
+
+/** \enum E
+ *  An enum
+ */
diff --git a/testing/019/group__g1.xml b/testing/019/group__g1.xml
new file mode 100644 (file)
index 0000000..23d9c31
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="group__g1" kind="group">
+    <compoundname>g1</compoundname>
+    <title>First Group</title>
+    <sectiondef kind="func">
+      <memberdef kind="function" id="group__g1_1gae84463e3941387a9da58279761e18d7e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void func_g1</definition>
+        <argsstring>()</argsstring>
+        <name>func_g1</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>A function in the first group. </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="019_defgroup.c" line="13" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>Text for first group. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/019/group__g2.xml b/testing/019/group__g2.xml
new file mode 100644 (file)
index 0000000..51df509
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="group__g2" kind="group">
+    <compoundname>g2</compoundname>
+    <title>Second Group</title>
+    <innergroup refid="group__g3">Third Group</innergroup>
+    <sectiondef kind="func">
+      <memberdef kind="function" id="group__g2_1gafd310bbec27993e80a5dbaf6c54d5e0b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void func_g2</definition>
+        <argsstring>()</argsstring>
+        <name>func_g2</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>A function in the second group </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="019_defgroup.c" line="23" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>Text for second group. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/019/group__g3.xml b/testing/019/group__g3.xml
new file mode 100644 (file)
index 0000000..1c2b33b
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="group__g3" kind="group">
+    <compoundname>g3</compoundname>
+    <title>Third Group</title>
+    <sectiondef kind="func">
+      <memberdef kind="function" id="group__g3_1ga59de48fb40aec5ee2623cc453fe71643" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void func_g3</definition>
+        <argsstring>()</argsstring>
+        <name>func_g3</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>A function in the third group </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="019_defgroup.c" line="36" column="1"/>
+      </memberdef>
+      <memberdef kind="function" id="group__g3_1gaf32d23522a5d9c3e7fed3dd5710001f7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void func_g3_add</definition>
+        <argsstring>()</argsstring>
+        <name>func_g3_add</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>Another function added to the third group </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="019_defgroup.c" line="45" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>Text for third group. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/019_defgroup.c b/testing/019_defgroup.c
new file mode 100644 (file)
index 0000000..d42d63e
--- /dev/null
@@ -0,0 +1,48 @@
+// objective: test the \defgroup, \addtogroup, and \ingroup command.
+// check: group__g1.xml
+// check: group__g2.xml
+// check: group__g3.xml
+
+/** \defgroup g1 First Group
+ *  Text for first group.
+ */
+
+/** A function in the first group.
+ *  \ingroup g1
+ */
+void func_g1();
+
+//--------------------------------
+
+/** \defgroup g2 Second Group
+ *  Text for second group.
+ */
+/// \{
+
+/** A function in the second group */
+void func_g2();
+
+/// \}
+
+/** \defgroup g3 Third Group
+ *  Text for third group.
+ *  \ingroup g2
+ *  \{
+ */
+
+//--------------------------------
+
+/** A function in the third group */
+void func_g3();
+
+/** \} */
+
+/** \addtogroup g3
+ *  \{ 
+ */
+
+/** Another function added to the third group */
+void func_g3_add();
+
+/** \} */
+
diff --git a/testing/020/indexpage.xml b/testing/020/indexpage.xml
new file mode 100644 (file)
index 0000000..d5bccda
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Text. <htmlonly> 
+HTML
+</htmlonly> <rtfonly> 
+RTF
+</rtfonly> <manonly> 
+Man
+</manonly> <latexonly> 
+LaTeX
+</latexonly>  
+XML
+ <docbookonly> 
+DocBook
+</docbookonly> More text. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/020_only.dox b/testing/020_only.dox
new file mode 100644 (file)
index 0000000..be21136
--- /dev/null
@@ -0,0 +1,24 @@
+// objective: test the \*only and \*endonly commands
+// check: indexpage.xml
+/** \mainpage
+ * Text.
+ * \htmlonly
+ * HTML
+ * \endhtmlonly
+ * \rtfonly
+ * RTF
+ * \endrtfonly
+ * \manonly
+ * Man
+ * \endmanonly
+ * \latexonly
+ * LaTeX
+ * \endlatexonly
+ * \xmlonly
+ * XML
+ * \endxmlonly
+ * \docbookonly
+ * DocBook
+ * \enddocbookonly
+ * More text.
+ */
diff --git a/testing/021/indexpage.xml b/testing/021/indexpage.xml
new file mode 100644 (file)
index 0000000..38ee1ad
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para> Our main function starts like this: <programlisting><codeline/></programlisting> First we create a object <computeroutput>t</computeroutput> of the <ref refid="class_test" kindref="compound">Test</ref> class. <programlisting><codeline><highlight class="normal"><sp/>*<sp/><sp/>First<sp/>we<sp/>create<sp/>a<sp/>object<sp/>\c<sp/>t<sp/>of<sp/>the<sp/><ref refid="class_test" kindref="compound">Test</ref><sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal">.</highlight></codeline></programlisting> Then we call the example member function <programlisting/> After that our little test routine ends. <programlisting/> </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/021_dontinclude.cpp b/testing/021_dontinclude.cpp
new file mode 100644 (file)
index 0000000..9fea1c6
--- /dev/null
@@ -0,0 +1,24 @@
+// objective: test the \dontinclude, \skip, \until, \skipline, \line commands
+// check: indexpage.xml
+// config: EXAMPLE_PATH = .
+/*! A test class. */
+
+class Test
+{
+  public:
+    /// a member function
+    void example();
+};
+
+/*! \mainpage
+ *  \dontinclude 021_dontinclude.cpp
+ *  Our main function starts like this:
+ *  \skip main
+ *  \until {
+ *  First we create a object \c t of the Test class.
+ *  \skipline Test
+ *  Then we call the example member function 
+ *  \line example
+ *  After that our little test routine ends.
+ *  \line }
+ */
diff --git a/testing/022/indexpage.xml b/testing/022/indexpage.xml
new file mode 100644 (file)
index 0000000..83ed868
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Class relations expressed via an inline dot graph: <dot> 
+digraph example {
+  node [shape=record, fontname=Helvetica, fontsize=10];
+  b [ label="class B" URL="\ref B"];
+  c [ label="class C" URL="\ref C"];
+  b -&gt; c [ arrowhead="open", style="dashed" ];
+}
+</dot> </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/022_dot.cpp b/testing/022_dot.cpp
new file mode 100644 (file)
index 0000000..2db7c38
--- /dev/null
@@ -0,0 +1,22 @@
+// objective: test the \dot and \enddot commands
+// check: indexpage.xml
+// config: HAVE_DOT = YES
+// config: DOTFILE_DIRS = .
+
+/*! class B */
+class B {};
+/*! class C */
+class C {};
+
+/*! \mainpage
+Class relations expressed via an inline dot graph:
+\dot
+digraph example {
+  node [shape=record, fontname=Helvetica, fontsize=10];
+  b [ label="class B" URL="\ref B"];
+  c [ label="class C" URL="\ref C"];
+  b -> c [ arrowhead="open", style="dashed" ];
+}
+\enddot
+*/
+
diff --git a/testing/023/indexpage.xml b/testing/023/indexpage.xml
new file mode 100644 (file)
index 0000000..b907db9
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Normal <emphasis>emphasis</emphasis> and more <emphasis>emphasis</emphasis> back to normal. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/023_e.dox b/testing/023_e.dox
new file mode 100644 (file)
index 0000000..5f787b7
--- /dev/null
@@ -0,0 +1,5 @@
+// objective: test the \e, \em commands
+// check: indexpage.xml
+/** \mainpage
+ *  Normal \e emphasis and more \em emphasis back to normal.
+ */
diff --git a/testing/024/indexpage.xml b/testing/024/indexpage.xml
new file mode 100644 (file)
index 0000000..11a385b
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Unconditional (start) Enabled (if). Enabled (else). Unconditional (middle) Enabled (else). Unconditional (end) </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/024_if.dox b/testing/024_if.dox
new file mode 100644 (file)
index 0000000..f24be43
--- /dev/null
@@ -0,0 +1,21 @@
+// objective: test the \if, \ifnot, \elsif, \else, and \endif commands
+// check: indexpage.xml
+// config: ENABLED_SECTIONS = GUARD_ENABLED
+/** \mainpage
+ *  Unconditional (start)
+ *  \if GUARD_ENABLED
+ *  Enabled (if).
+ *    \if (!GUARD_ENABLED)  Disabled (if).\else Enabled (else). \endif
+ *  \else
+ *  Disabled.
+ *  \endif
+ *  Unconditional (middle)
+ *  \ifnot GUARD_ENABLED
+ *  Disabled (ifnot).
+ *  \elseif GUARD_DISABLED
+ *  Disabled (elseif).
+ *  \else
+ *  Enabled (else).
+ *  \endif
+ *  Unconditional (end)
+ */
diff --git a/testing/025/class_test.xml b/testing/025/class_test.xml
new file mode 100644 (file)
index 0000000..8d3f076
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_test" kind="class" prot="public">
+    <compoundname>Test</compoundname>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="class_test_1a47b775f65718978f1ffcd96376f8ecfa" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void Test::example</definition>
+        <argsstring>()</argsstring>
+        <name>example</name>
+        <briefdescription>
+          <para>An example member function. </para>
+        </briefdescription>
+        <detaileddescription>
+          <para>More details about this function. </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="025_example.cpp" bodystart="20" bodyend="20"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+      <para>A <ref refid="class_test" kindref="compound">Test</ref> class. </para>
+    </briefdescription>
+    <detaileddescription>
+      <para>More details about this class. </para>
+    </detaileddescription>
+    <location file="025_example.cpp" bodystart="10" bodyend="18"/>
+    <listofallmembers>
+      <member refid="class_test_1a47b775f65718978f1ffcd96376f8ecfa" prot="public" virt="non-virtual">
+        <scope>Test</scope>
+        <name>example</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/025/example_test_8cpp-example.xml b/testing/025/example_test_8cpp-example.xml
new file mode 100644 (file)
index 0000000..6c0ce90
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="example_test_8cpp-example" kind="example">
+    <compoundname>example_test.cpp</compoundname>
+    <detaileddescription>
+      <para>This is an example of how to use the <ref refid="class_test" kindref="compound">Test</ref> class.</para>
+      <para>More details about this example. <programlisting><codeline><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>main()</highlight></codeline><codeline><highlight class="normal">{</highlight></codeline><codeline><highlight class="normal"><sp/><sp/><ref refid="class_test" kindref="compound">Test</ref><sp/>t;</highlight></codeline><codeline><highlight class="normal"><sp/><sp/>t.<ref refid="class_test_1a47b775f65718978f1ffcd96376f8ecfa" kindref="member">example</ref>();</highlight></codeline><codeline><highlight class="normal">}</highlight></codeline><codeline><highlight class="normal"/></codeline></programlisting> </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/025_example.cpp b/testing/025_example.cpp
new file mode 100644 (file)
index 0000000..39736f8
--- /dev/null
@@ -0,0 +1,26 @@
+// objective: test the \example command
+// check: example_test_8cpp-example.xml
+// check: class_test.xml
+// config: EXAMPLE_PATH = .
+
+/** \brief A Test class.
+ *
+ *  More details about this class.
+ */
+class Test
+{
+  public:
+    /** \brief An example member function.
+     *
+     *  More details about this function.
+     */
+    void example();
+};
+
+void Test::example() {}
+
+/** \example example_test.cpp
+ * This is an example of how to use the Test class.
+ *
+ * More details about this example.
+ */
diff --git a/testing/026/class_test.xml b/testing/026/class_test.xml
new file mode 100644 (file)
index 0000000..f49cc8d
--- /dev/null
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_test" kind="class" prot="public">
+    <compoundname>Test</compoundname>
+    <templateparamlist>
+      <param>
+        <type>class T</type>
+      </param>
+    </templateparamlist>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="class_test_1abf9d5fbdaa4c23d0a513ee9746060779" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>int</type>
+        <definition>int Test&lt; T &gt;::example</definition>
+        <argsstring>(int p1, int p2)</argsstring>
+        <name>example</name>
+        <param>
+          <type>int</type>
+          <declname>p1</declname>
+        </param>
+        <param>
+          <type>int</type>
+          <declname>p2</declname>
+        </param>
+        <exceptions> throw (std::out_of_range)</exceptions>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>An example member function. <parameterlist kind="param"><parameteritem><parameternamelist><parametername>p1</parametername></parameternamelist><parameterdescription><para>First parameter. </para></parameterdescription></parameteritem><parameteritem><parameternamelist><parametername>p2</parametername></parameternamelist><parameterdescription><para>Second parameter. </para></parameterdescription></parameteritem></parameterlist>
+<parameterlist kind="exception"><parameteritem><parameternamelist><parametername>std::out_of_range</parametername></parameternamelist><parameterdescription><para>parameter is out of range. </para></parameterdescription></parameteritem></parameterlist>
+<parameterlist kind="retval"><parameteritem><parameternamelist><parametername>0</parametername></parameternamelist><parameterdescription><para>if p1 and p2 are equal </para></parameterdescription></parameteritem><parameteritem><parameternamelist><parametername>-1</parametername></parameternamelist><parameterdescription><para>if p1 is smaller than p2 </para></parameterdescription></parameteritem><parameteritem><parameternamelist><parametername>1</parametername></parameternamelist><parameterdescription><para>if p1 is bigger than p2 </para></parameterdescription></parameteritem></parameterlist>
+</para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="026_exception.cpp" line="19" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>A <ref refid="class_test" kindref="compound">Test</ref> class. More details about this class. <parameterlist kind="templateparam"><parameteritem><parameternamelist><parametername>T</parametername></parameternamelist><parameterdescription><para>A template parameter. </para></parameterdescription></parameteritem></parameterlist>
+</para>
+    </detaileddescription>
+    <location file="026_exception.cpp" bodystart="8" bodyend="20"/>
+    <listofallmembers>
+      <member refid="class_test_1abf9d5fbdaa4c23d0a513ee9746060779" prot="public" virt="non-virtual">
+        <scope>Test</scope>
+        <name>example</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/026_exception.cpp b/testing/026_exception.cpp
new file mode 100644 (file)
index 0000000..cabb128
--- /dev/null
@@ -0,0 +1,21 @@
+// objective: test the \exception, \param, and \tparam commands
+// check: class_test.xml
+
+/** A Test class.
+ *  More details about this class.
+ *  @tparam T A template parameter.
+ */
+template<class T> class Test
+{
+  public:
+    /** An example member function.
+     *  \param p1 First parameter.
+     *  \param p2 Second parameter.
+     *  \exception std::out_of_range parameter is out of range. 
+     *  \retval  0 if p1 and p2 are equal
+     *  \retval -1 if p1 is smaller than p2
+     *  \retval  1 if p1 is bigger than p2
+     */
+    int example(int p1,int p2) throw(std::out_of_range);
+};
+
diff --git a/testing/027/struct_car.xml b/testing/027/struct_car.xml
new file mode 100644 (file)
index 0000000..0e40922
--- /dev/null
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="struct_car" kind="struct" prot="public">
+    <compoundname>Car</compoundname>
+    <basecompoundref refid="struct_vehicle" prot="public" virt="non-virtual">Vehicle</basecompoundref>
+    <sectiondef kind="protected-attrib">
+      <memberdef kind="variable" id="struct_car_1ab8ff28306286da5a8b14fa9bdccaafaa" prot="protected" static="no" mutable="no">
+        <type>
+          <ref refid="struct_vehicle" kindref="compound">Vehicle</ref>
+        </type>
+        <definition>Vehicle Car::base</definition>
+        <argsstring/>
+        <name>base</name>
+        <briefdescription>
+          <para>Base class. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="027_extends.c" bodystart="69" bodyend="-1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para><ref refid="struct_car" kindref="compound">Car</ref> class. </para>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="1">
+        <label>Vehicle</label>
+        <link refid="struct_vehicle"/>
+        <childnode refid="2" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="2">
+        <label>Object</label>
+        <link refid="struct_object"/>
+      </node>
+      <node id="0">
+        <label>Car</label>
+        <link refid="struct_car"/>
+        <childnode refid="1" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="4">
+        <label>Vehicle</label>
+        <link refid="struct_vehicle"/>
+        <childnode refid="5" relation="public-inheritance">
+        </childnode>
+        <childnode refid="5" relation="usage">
+          <edgelabel>base</edgelabel>
+        </childnode>
+      </node>
+      <node id="5">
+        <label>Object</label>
+        <link refid="struct_object"/>
+      </node>
+      <node id="3">
+        <label>Car</label>
+        <link refid="struct_car"/>
+        <childnode refid="4" relation="public-inheritance">
+        </childnode>
+        <childnode refid="4" relation="usage">
+          <edgelabel>base</edgelabel>
+        </childnode>
+      </node>
+    </collaborationgraph>
+    <location file="027_extends.c" bodystart="67" bodyend="70"/>
+    <listofallmembers>
+      <member refid="struct_car_1ab8ff28306286da5a8b14fa9bdccaafaa" prot="protected" virt="non-virtual">
+        <scope>Car</scope>
+        <name>base</name>
+      </member>
+      <member refid="struct_object_1a71225073d06a793b9a6ea9263ed37b12" prot="public" virt="non-virtual">
+        <scope>Car</scope>
+        <name>objRef</name>
+      </member>
+      <member refid="struct_object_1a924ee0cecc906d148022b3f0d6325cfb" prot="public" virt="non-virtual">
+        <scope>Car</scope>
+        <name>objUnref</name>
+      </member>
+      <member refid="struct_vehicle_1a6891d3d28853bc3fdd075596dc6de9f8" prot="public" virt="non-virtual">
+        <scope>Car</scope>
+        <name>vehicleStart</name>
+      </member>
+      <member refid="struct_vehicle_1a4dcbcba43792dcd673a552b14479ab77" prot="public" virt="non-virtual">
+        <scope>Car</scope>
+        <name>vehicleStop</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/027/struct_object.xml b/testing/027/struct_object.xml
new file mode 100644 (file)
index 0000000..107548d
--- /dev/null
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="struct_object" kind="struct" prot="public">
+    <compoundname>Object</compoundname>
+    <derivedcompoundref refid="struct_vehicle" prot="public" virt="non-virtual">Vehicle</derivedcompoundref>
+    <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="struct_object_1a1b6037fba835e83243ababce426ff9af" prot="private" static="no" mutable="no">
+        <type>int</type>
+        <definition>int Object::ref</definition>
+        <argsstring/>
+        <name>ref</name>
+        <briefdescription>
+          <para>Reference count. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="027_extends.c" bodystart="21" bodyend="-1"/>
+      </memberdef>
+    </sectiondef>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="struct_object_1a71225073d06a793b9a6ea9263ed37b12" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type><ref refid="struct_object" kindref="compound">Object</ref> *</type>
+        <definition>static Object * objRef</definition>
+        <argsstring>(Object *obj)</argsstring>
+        <name>objRef</name>
+        <param>
+          <type><ref refid="struct_object" kindref="compound">Object</ref> *</type>
+          <declname>obj</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>Increments object reference count by one. </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="027_extends.c" line="29" column="1"/>
+      </memberdef>
+      <memberdef kind="function" id="struct_object_1a924ee0cecc906d148022b3f0d6325cfb" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type><ref refid="struct_object" kindref="compound">Object</ref> *</type>
+        <definition>static Object * objUnref</definition>
+        <argsstring>(Object *obj)</argsstring>
+        <name>objUnref</name>
+        <param>
+          <type><ref refid="struct_object" kindref="compound">Object</ref> *</type>
+          <declname>obj</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>Decrements object reference count by one. </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="027_extends.c" line="36" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>Base object class. </para>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="9">
+        <label>Truck</label>
+        <link refid="struct_truck"/>
+        <childnode refid="7" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="7">
+        <label>Vehicle</label>
+        <link refid="struct_vehicle"/>
+        <childnode refid="6" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="6">
+        <label>Object</label>
+        <link refid="struct_object"/>
+      </node>
+      <node id="8">
+        <label>Car</label>
+        <link refid="struct_car"/>
+        <childnode refid="7" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <location file="027_extends.c" bodystart="19" bodyend="22"/>
+    <listofallmembers>
+      <member refid="struct_object_1a71225073d06a793b9a6ea9263ed37b12" prot="public" virt="non-virtual">
+        <scope>Object</scope>
+        <name>objRef</name>
+      </member>
+      <member refid="struct_object_1a924ee0cecc906d148022b3f0d6325cfb" prot="public" virt="non-virtual">
+        <scope>Object</scope>
+        <name>objUnref</name>
+      </member>
+      <member refid="struct_object_1a1b6037fba835e83243ababce426ff9af" prot="private" virt="non-virtual">
+        <scope>Object</scope>
+        <name>ref</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/027/struct_truck.xml b/testing/027/struct_truck.xml
new file mode 100644 (file)
index 0000000..1da9e2f
--- /dev/null
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="struct_truck" kind="struct" prot="public">
+    <compoundname>Truck</compoundname>
+    <basecompoundref refid="struct_vehicle" prot="public" virt="non-virtual">Vehicle</basecompoundref>
+    <sectiondef kind="protected-attrib">
+      <memberdef kind="variable" id="struct_truck_1ad0ac321609dda1a6c552488b05ec7ac8" prot="protected" static="no" mutable="no">
+        <type>
+          <ref refid="struct_vehicle" kindref="compound">Vehicle</ref>
+        </type>
+        <definition>Vehicle Truck::base</definition>
+        <argsstring/>
+        <name>base</name>
+        <briefdescription>
+          <para>Base class. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="027_extends.c" bodystart="79" bodyend="-1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para><ref refid="struct_truck" kindref="compound">Truck</ref> class. </para>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="11">
+        <label>Truck</label>
+        <link refid="struct_truck"/>
+        <childnode refid="12" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="12">
+        <label>Vehicle</label>
+        <link refid="struct_vehicle"/>
+        <childnode refid="13" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="13">
+        <label>Object</label>
+        <link refid="struct_object"/>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="14">
+        <label>Truck</label>
+        <link refid="struct_truck"/>
+        <childnode refid="15" relation="public-inheritance">
+        </childnode>
+        <childnode refid="15" relation="usage">
+          <edgelabel>base</edgelabel>
+        </childnode>
+      </node>
+      <node id="15">
+        <label>Vehicle</label>
+        <link refid="struct_vehicle"/>
+        <childnode refid="16" relation="public-inheritance">
+        </childnode>
+        <childnode refid="16" relation="usage">
+          <edgelabel>base</edgelabel>
+        </childnode>
+      </node>
+      <node id="16">
+        <label>Object</label>
+        <link refid="struct_object"/>
+      </node>
+    </collaborationgraph>
+    <location file="027_extends.c" bodystart="77" bodyend="80"/>
+    <listofallmembers>
+      <member refid="struct_truck_1ad0ac321609dda1a6c552488b05ec7ac8" prot="protected" virt="non-virtual">
+        <scope>Truck</scope>
+        <name>base</name>
+      </member>
+      <member refid="struct_object_1a71225073d06a793b9a6ea9263ed37b12" prot="public" virt="non-virtual">
+        <scope>Truck</scope>
+        <name>objRef</name>
+      </member>
+      <member refid="struct_object_1a924ee0cecc906d148022b3f0d6325cfb" prot="public" virt="non-virtual">
+        <scope>Truck</scope>
+        <name>objUnref</name>
+      </member>
+      <member refid="struct_vehicle_1a6891d3d28853bc3fdd075596dc6de9f8" prot="public" virt="non-virtual">
+        <scope>Truck</scope>
+        <name>vehicleStart</name>
+      </member>
+      <member refid="struct_vehicle_1a4dcbcba43792dcd673a552b14479ab77" prot="public" virt="non-virtual">
+        <scope>Truck</scope>
+        <name>vehicleStop</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/027/struct_vehicle.xml b/testing/027/struct_vehicle.xml
new file mode 100644 (file)
index 0000000..a1f7654
--- /dev/null
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="struct_vehicle" kind="struct" prot="public">
+    <compoundname>Vehicle</compoundname>
+    <basecompoundref refid="struct_object" prot="public" virt="non-virtual">Object</basecompoundref>
+    <derivedcompoundref refid="struct_car" prot="public" virt="non-virtual">Car</derivedcompoundref>
+    <derivedcompoundref refid="struct_truck" prot="public" virt="non-virtual">Truck</derivedcompoundref>
+    <sectiondef kind="protected-attrib">
+      <memberdef kind="variable" id="struct_vehicle_1ad7970f528d429f6fc1725173e93a77c2" prot="protected" static="no" mutable="no">
+        <type>
+          <ref refid="struct_object" kindref="compound">Object</ref>
+        </type>
+        <definition>Object Vehicle::base</definition>
+        <argsstring/>
+        <name>base</name>
+        <briefdescription>
+          <para>Base class. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="027_extends.c" bodystart="45" bodyend="-1"/>
+      </memberdef>
+    </sectiondef>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="struct_vehicle_1a6891d3d28853bc3fdd075596dc6de9f8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void vehicleStart</definition>
+        <argsstring>(Vehicle *obj)</argsstring>
+        <name>vehicleStart</name>
+        <param>
+          <type><ref refid="struct_vehicle" kindref="compound">Vehicle</ref> *</type>
+          <declname>obj</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>Starts the vehicle. </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="027_extends.c" line="53" column="1"/>
+      </memberdef>
+      <memberdef kind="function" id="struct_vehicle_1a4dcbcba43792dcd673a552b14479ab77" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void vehicleStop</definition>
+        <argsstring>(Vehicle *obj)</argsstring>
+        <name>vehicleStop</name>
+        <param>
+          <type><ref refid="struct_vehicle" kindref="compound">Vehicle</ref> *</type>
+          <declname>obj</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>Stops the vehicle. </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="027_extends.c" line="60" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para><ref refid="struct_vehicle" kindref="compound">Vehicle</ref> class. </para>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="20">
+        <label>Truck</label>
+        <link refid="struct_truck"/>
+        <childnode refid="17" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="17">
+        <label>Vehicle</label>
+        <link refid="struct_vehicle"/>
+        <childnode refid="18" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="18">
+        <label>Object</label>
+        <link refid="struct_object"/>
+      </node>
+      <node id="19">
+        <label>Car</label>
+        <link refid="struct_car"/>
+        <childnode refid="17" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="21">
+        <label>Vehicle</label>
+        <link refid="struct_vehicle"/>
+        <childnode refid="22" relation="public-inheritance">
+        </childnode>
+        <childnode refid="22" relation="usage">
+          <edgelabel>base</edgelabel>
+        </childnode>
+      </node>
+      <node id="22">
+        <label>Object</label>
+        <link refid="struct_object"/>
+      </node>
+    </collaborationgraph>
+    <location file="027_extends.c" bodystart="43" bodyend="46"/>
+    <listofallmembers>
+      <member refid="struct_vehicle_1ad7970f528d429f6fc1725173e93a77c2" prot="protected" virt="non-virtual">
+        <scope>Vehicle</scope>
+        <name>base</name>
+      </member>
+      <member refid="struct_object_1a71225073d06a793b9a6ea9263ed37b12" prot="public" virt="non-virtual">
+        <scope>Vehicle</scope>
+        <name>objRef</name>
+      </member>
+      <member refid="struct_object_1a924ee0cecc906d148022b3f0d6325cfb" prot="public" virt="non-virtual">
+        <scope>Vehicle</scope>
+        <name>objUnref</name>
+      </member>
+      <member refid="struct_vehicle_1a6891d3d28853bc3fdd075596dc6de9f8" prot="public" virt="non-virtual">
+        <scope>Vehicle</scope>
+        <name>vehicleStart</name>
+      </member>
+      <member refid="struct_vehicle_1a4dcbcba43792dcd673a552b14479ab77" prot="public" virt="non-virtual">
+        <scope>Vehicle</scope>
+        <name>vehicleStop</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/027_extends.c b/testing/027_extends.c
new file mode 100644 (file)
index 0000000..7860abd
--- /dev/null
@@ -0,0 +1,93 @@
+// objective: test the \extends, \implements, \memberof, \private, and \public commands
+// check: struct_object.xml
+// check: struct_vehicle.xml
+// check: struct_car.xml
+// check: struct_truck.xml
+
+/**
+ * \file 
+ */
+
+typedef struct Object Object;   //!< Object type
+typedef struct Vehicle Vehicle; //!< Vehicle type
+typedef struct Car Car;         //!< Car type
+typedef struct Truck Truck;     //!< Truck type
+
+/*!
+ * Base object class.
+ */
+struct Object
+{
+  int ref;    //!< \private Reference count.
+};
+
+
+/*!
+ * Increments object reference count by one.
+ * \public \memberof Object
+ */
+static Object * objRef(Object *obj);
+
+
+/*!
+ * Decrements object reference count by one.
+ * \public \memberof Object
+ */
+static Object * objUnref(Object *obj);
+
+
+/*!
+ * Vehicle class.
+ * \extends Object
+ */
+struct Vehicle
+{
+  Object base;    //!< \protected Base class.
+};
+
+
+/*!
+ * Starts the vehicle.
+ * \public \memberof Vehicle
+ */
+void vehicleStart(Vehicle *obj);
+
+
+/*!
+ * Stops the vehicle.
+ * \public \memberof Vehicle
+ */
+void vehicleStop(Vehicle *obj);
+
+
+/*!
+ * Car class.
+ * \implements Vehicle
+ */
+struct Car
+{
+  Vehicle base;    //!< \protected Base class.
+};
+
+
+/*!
+ * Truck class.
+ * \implements Vehicle
+ */
+struct Truck
+{
+  Vehicle base;    //!< \protected Base class.
+};
+
+
+/*!
+ * Main function.
+ *
+ * Ref vehicleStart(), objRef(), objUnref().
+ */
+int main(void)
+{
+  Car c;
+  vehicleStart((Vehicle*) &c);
+}
+
diff --git a/testing/028/indexpage.xml b/testing/028/indexpage.xml
new file mode 100644 (file)
index 0000000..d508adb
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Here are some formulas:<orderedlist><listitem><para>The distance between <formula id="0">$(x_1,y_1)$</formula> and <formula id="1">$(x_2,y_2)$</formula> is <formula id="2">$\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}$</formula>.</para></listitem><listitem><para>Unnumbered formula: <formula id="3">\[ |I_2|=\left| \int_{0}^T \psi(t) \left\{ u(a,t)- \int_{\gamma(t)}^a \frac{d\theta}{k(\theta,t)} \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi \right\} dt \right| \]</formula></para></listitem><listitem><para>Formula in different environment <formula id="4">\begin{eqnarray*} g &amp;=&amp; \frac{Gm_2}{r^2} \\ &amp;=&amp; \frac{(6.673 \times 10^{-11}\,\mbox{m}^3\,\mbox{kg}^{-1}\, \mbox{s}^{-2})(5.9736 \times 10^{24}\,\mbox{kg})}{(6371.01\,\mbox{km})^2} \\ &amp;=&amp; 9.82066032\,\mbox{m/s}^2 \end{eqnarray*}</formula> </para></listitem></orderedlist>
+</para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/028_formula.c b/testing/028_formula.c
new file mode 100644 (file)
index 0000000..2a4c5cb
--- /dev/null
@@ -0,0 +1,17 @@
+// objective: test the \f$, \f[, \f], \f{, and \f} commands
+// check: indexpage.xml
+
+/** @mainpage
+Here are some formulas:
+-# The distance between \f$(x_1,y_1)\f$ and \f$(x_2,y_2)\f$ is 
+  \f$\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}\f$.
+-# Unnumbered formula:
+   \f[ |I_2|=\left| \int_{0}^T \psi(t) \left\{ u(a,t)- \int_{\gamma(t)}^a 
+       \frac{d\theta}{k(\theta,t)} \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi \right\} dt \right| \f]
+-# Formula in different environment
+  \f{eqnarray*}{ g &=& \frac{Gm_2}{r^2} \\ 
+                   &=& \frac{(6.673 \times 10^{-11}\,\mbox{m}^3\,\mbox{kg}^{-1}\,
+                       \mbox{s}^{-2})(5.9736 \times 10^{24}\,\mbox{kg})}{(6371.01\,\mbox{km})^2} \\ 
+                       &=& 9.82066032\,\mbox{m/s}^2
+ \f}
+*/
diff --git a/testing/029/029__hideinit_8c.xml b/testing/029/029__hideinit_8c.xml
new file mode 100644 (file)
index 0000000..4bf1516
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="029__hideinit_8c" kind="file">
+    <compoundname>029_hideinit.c</compoundname>
+    <sectiondef kind="var">
+      <memberdef kind="variable" id="029__hideinit_8c_1a799f44203647e4c53bdb0386aa95680f" prot="public" static="no" mutable="no">
+        <type>int</type>
+        <definition>int var1</definition>
+        <argsstring/>
+        <name>var1</name>
+        <initializer>= 10</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>a variable with initializer visible </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="029_hideinit.c" bodystart="7" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="029__hideinit_8c_1ac0da06d47d79ad4b9fb1c0eaf1118c3f" prot="public" static="no" mutable="no">
+        <type>int</type>
+        <definition>int var2</definition>
+        <argsstring/>
+        <name>var2</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>a variable without initializer visible </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="029_hideinit.c" bodystart="12" bodyend="-1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="029_hideinit.c"/>
+  </compounddef>
+</doxygen>
diff --git a/testing/029_hideinit.c b/testing/029_hideinit.c
new file mode 100644 (file)
index 0000000..da3f4a5
--- /dev/null
@@ -0,0 +1,12 @@
+// objective: test the \hideinitializer command
+// check: 029__hideinit_8c.xml
+
+/** \file */
+
+/** a variable with initializer visible */
+int var1 = 10;
+
+/** a variable without initializer visible 
+ *  \hideinitializer
+ */
+int var2 = 20;
diff --git a/testing/030/indexpage.xml b/testing/030/indexpage.xml
new file mode 100644 (file)
index 0000000..62046d4
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Some text. <htmlonly>&lt;h1&gt;Hello world&lt;/h1&gt;
+</htmlonly> More text. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/030_htmlinclude.dox b/testing/030_htmlinclude.dox
new file mode 100644 (file)
index 0000000..a3716e6
--- /dev/null
@@ -0,0 +1,8 @@
+// objective: test the \htmlinclude command
+// check: indexpage.xml
+// config: EXAMPLE_PATH = .
+/** \mainpage
+ * Some text.
+ * \htmlinclude sample.html
+ * More text.
+ */
diff --git a/testing/031/indexpage.xml b/testing/031/indexpage.xml
new file mode 100644 (file)
index 0000000..a0297fa
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Some text. <image type="html" name="sample.png"/>
+ <image type="latex" name="sample.png" width="5cm">Doxygen logo</image>
+ More text. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/031_image.dox b/testing/031_image.dox
new file mode 100644 (file)
index 0000000..96ba43b
--- /dev/null
@@ -0,0 +1,9 @@
+// objective: test the \image command
+// check: indexpage.xml
+// config: IMAGE_PATH = .
+/** \mainpage
+ * Some text.
+ * \image html sample.png
+ * \image latex sample.png "Doxygen logo" width=5cm
+ * More text.
+ */
diff --git a/testing/032/indexpage.xml b/testing/032/indexpage.xml
new file mode 100644 (file)
index 0000000..ba401c8
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Some text. <programlisting><codeline><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>main()</highlight></codeline><codeline><highlight class="normal">{</highlight></codeline><codeline><highlight class="normal"><sp/><sp/>Test<sp/>t;</highlight></codeline><codeline><highlight class="normal"><sp/><sp/>t.example();</highlight></codeline><codeline><highlight class="normal">}</highlight></codeline><codeline><highlight class="normal"/></codeline></programlisting> More text. <programlisting><codeline lineno="1"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>main()</highlight></codeline><codeline lineno="2"><highlight class="normal">{</highlight></codeline><codeline lineno="3"><highlight class="normal"><sp/><sp/>Test<sp/>t;</highlight></codeline><codeline lineno="4"><highlight class="normal"><sp/><sp/>t.example();</highlight></codeline><codeline lineno="5"><highlight class="normal">}</highlight></codeline><codeline lineno="6"><highlight class="normal"/></codeline></programlisting> End. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/032_include.cpp b/testing/032_include.cpp
new file mode 100644 (file)
index 0000000..8aae8e9
--- /dev/null
@@ -0,0 +1,11 @@
+// objective: test the \include and \includelineno commands
+// check: indexpage.xml
+// config: EXAMPLE_PATH = .
+
+/** \mainpage 
+ *  Some text.
+ *  \include example_test.cpp
+ *  More text.
+ *  \includelineno example_test.cpp
+ *  End.
+ */
diff --git a/testing/033/indexpage.xml b/testing/033/indexpage.xml
new file mode 100644 (file)
index 0000000..4b2f47d
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Some text.</para>
+      <para>More visible text. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/033_internal.dox b/testing/033_internal.dox
new file mode 100644 (file)
index 0000000..6e28f22
--- /dev/null
@@ -0,0 +1,12 @@
+// objective: test the \internal and \endinternal commands (1)
+// check: indexpage.xml
+
+/** \mainpage 
+ *  Some text.
+ *  \internal
+ *  Internal text.
+ *  \endinternal
+ *  More visible text.
+ *  \internal
+ *  More internal text.
+ */
diff --git a/testing/034/indexpage.xml b/testing/034/indexpage.xml
new file mode 100644 (file)
index 0000000..e994666
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Some text. </para>
+      <internal>
+        <para>Internal text. </para>
+      </internal>
+      <sect1 id="index_1s1">
+        <title>A Section</title>
+        <para>Some text in the section 1. </para>
+        <internal>
+          <para>Internal text. </para>
+          <sect2 id="index_1ss1">
+            <title>A Subsection</title>
+            <para>Some text in the subsection. </para>
+          </sect2>
+        </internal>
+        <para>Visible text in section 1. </para>
+      </sect1>
+      <sect1 id="index_1s2">
+        <title>Another Section</title>
+        <para>Visible text. </para>
+      </sect1>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/034_internal.dox b/testing/034_internal.dox
new file mode 100644 (file)
index 0000000..01587a9
--- /dev/null
@@ -0,0 +1,21 @@
+// objective: test the \internal and \endinternal commands (2)
+// check: indexpage.xml
+// config: INTERNAL_DOCS = YES
+
+/** \mainpage
+ *  Some text.
+ *  \internal
+ *  Internal text.
+ *  \endinternal
+ *  \section s1 A Section
+ *  Some text in the section 1.
+ *  \internal
+ *  Internal text.
+ *  \subsection ss1 A Subsection
+ *  Some text in the subsection.
+ *  \endinternal
+ *  Visible text in section 1.
+ *  \section s2 Another Section
+ *  Visible text.
+ */
+
diff --git a/testing/035/035__invariant_8c.xml b/testing/035/035__invariant_8c.xml
new file mode 100644 (file)
index 0000000..d036388
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="035__invariant_8c" kind="file">
+    <compoundname>035_invariant.c</compoundname>
+    <sectiondef kind="func">
+      <memberdef kind="function" id="035__invariant_8c_1a92e32ddd4278ab907422d5aaa34cb796" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void func</definition>
+        <argsstring>(int p, int *q)</argsstring>
+        <name>func</name>
+        <param>
+          <type>int</type>
+          <declname>p</declname>
+        </param>
+        <param>
+          <type>int *</type>
+          <declname>q</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>
+            <simplesect kind="invariant">
+              <para>i+j=p </para>
+            </simplesect>
+            <simplesect kind="pre">
+              <para>p&gt;=0 </para>
+            </simplesect>
+            <simplesect kind="post">
+              <para>*q=2^(p+1) </para>
+            </simplesect>
+          </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="035_invariant.c" bodystart="10" bodyend="15"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="035_invariant.c"/>
+  </compounddef>
+</doxygen>
diff --git a/testing/035_invariant.c b/testing/035_invariant.c
new file mode 100644 (file)
index 0000000..28c08f8
--- /dev/null
@@ -0,0 +1,15 @@
+// objective: test \invariant, \pre and \post commands
+// check: 035__invariant_8c.xml
+
+/** \file */
+
+/** \invariant i+j=p
+ *  \pre       p\>=0
+ *  \post      *q=2^(p+1)
+ */
+void func(int p,int *q)
+{
+  int j = p, k=1, i;
+  for (i=0; i<=p; i++) j--,k=k*2;
+  *q = k;
+}
diff --git a/testing/036/036__link_8c.xml b/testing/036/036__link_8c.xml
new file mode 100644 (file)
index 0000000..4347d4b
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="036__link_8c" kind="file">
+    <compoundname>036_link.c</compoundname>
+    <innerclass refid="class_test" prot="public">Test</innerclass>
+    <sectiondef kind="func">
+      <memberdef kind="function" id="036__link_8c_1affb6da6cff1b57cdf8efc0123dceac9b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void func</definition>
+        <argsstring>(int p)</argsstring>
+        <name>func</name>
+        <param>
+          <type>int</type>
+          <declname>p</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>A function </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="036_link.c" line="11" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>See <ref refid="036__link_8c_1affb6da6cff1b57cdf8efc0123dceac9b" kindref="member">the function</ref> for more info. See the <ref refid="class_test" kindref="compound">test</ref> class. </para>
+    </detaileddescription>
+    <location file="036_link.c"/>
+  </compounddef>
+</doxygen>
diff --git a/testing/036_link.c b/testing/036_link.c
new file mode 100644 (file)
index 0000000..901f660
--- /dev/null
@@ -0,0 +1,16 @@
+// objective: test \link command
+// check: 036__link_8c.xml
+
+/** \file 
+ *  See \link func() the function\endlink for more info.
+ *  See the \link Test test\endlink class.
+ */
+
+/** A function
+ */
+void func(int p);
+
+/** A test */
+class Test
+{
+};
diff --git a/testing/037/class_receiver.xml b/testing/037/class_receiver.xml
new file mode 100644 (file)
index 0000000..eb37d47
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_receiver" kind="class" prot="public">
+    <compoundname>Receiver</compoundname>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="class_receiver_1a162099741e0324e6254c9bc570566e40" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void Receiver::Command</definition>
+        <argsstring>(int commandId)</argsstring>
+        <name>Command</name>
+        <param>
+          <type>int</type>
+          <declname>commandId</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>Executable a command on the server </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="037_msc.cpp" line="32" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para><ref refid="class_receiver" kindref="compound">Receiver</ref> class. Can be used to receive and execute commands. After execution of a command, the receiver will send an acknowledgement <msc> 
+  Receiver,Sender;
+  Receiver&lt;-Sender [label="Command()", URL="\ref Command()"];
+  Receiver-&gt;Sender [label="Ack()", URL="\ref Sender::Ack()", ID="1"];
+</msc> </para>
+    </detaileddescription>
+    <location file="037_msc.cpp" bodystart="28" bodyend="33"/>
+    <listofallmembers>
+      <member refid="class_receiver_1a162099741e0324e6254c9bc570566e40" prot="public" virt="non-virtual">
+        <scope>Receiver</scope>
+        <name>Command</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/037/class_sender.xml b/testing/037/class_sender.xml
new file mode 100644 (file)
index 0000000..117ed93
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_sender" kind="class" prot="public">
+    <compoundname>Sender</compoundname>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="class_sender_1a8ad2c6f9baa4e798868fe4a4d45f8fda" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void Sender::Ack</definition>
+        <argsstring>(bool ok)</argsstring>
+        <name>Ack</name>
+        <param>
+          <type>bool</type>
+          <declname>ok</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>Acknowledgement from server </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="037_msc.cpp" line="17" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para><ref refid="class_sender" kindref="compound">Sender</ref> class. Can be used to send a command to the server. The receiver will acknowledge the command by calling <ref refid="class_sender_1a8ad2c6f9baa4e798868fe4a4d45f8fda" kindref="member">Ack()</ref>. <msc> 
+  Sender,Receiver;
+  Sender-&gt;Receiver [label="Command()", URL="\ref Receiver::Command()"];
+  Sender&lt;-Receiver [label="Ack()", URL="\ref Ack()", ID="1"];
+</msc> </para>
+    </detaileddescription>
+    <location file="037_msc.cpp" bodystart="13" bodyend="18"/>
+    <listofallmembers>
+      <member refid="class_sender_1a8ad2c6f9baa4e798868fe4a4d45f8fda" prot="public" virt="non-virtual">
+        <scope>Sender</scope>
+        <name>Ack</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/037_msc.cpp b/testing/037_msc.cpp
new file mode 100644 (file)
index 0000000..84ffc55
--- /dev/null
@@ -0,0 +1,33 @@
+// objective: test the \msc and \endmsc commands
+// check: class_sender.xml
+// check: class_receiver.xml
+
+/** Sender class. Can be used to send a command to the server.
+ *  The receiver will acknowledge the command by calling Ack().
+ *  \msc
+ *    Sender,Receiver;
+ *    Sender->Receiver [label="Command()", URL="\ref Receiver::Command()"];
+ *    Sender<-Receiver [label="Ack()", URL="\ref Ack()", ID="1"];
+ *  \endmsc
+ */
+class Sender
+{
+  public:
+    /** Acknowledgement from server */
+    void Ack(bool ok);
+};
+
+/** Receiver class. Can be used to receive and execute commands.
+ *  After execution of a command, the receiver will send an acknowledgement
+ *  \msc
+ *    Receiver,Sender;
+ *    Receiver<-Sender [label="Command()", URL="\ref Command()"];
+ *    Receiver->Sender [label="Ack()", URL="\ref Sender::Ack()", ID="1"];
+ *  \endmsc
+ */
+class Receiver
+{
+  public:
+    /** Executable a command on the server */
+    void Command(int commandId);
+};
diff --git a/testing/038/indexpage.xml b/testing/038/indexpage.xml
new file mode 100644 (file)
index 0000000..3657034
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Text<linebreak/>
+New line<linebreak/>
+Another line </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/038_n.dox b/testing/038_n.dox
new file mode 100644 (file)
index 0000000..617743c
--- /dev/null
@@ -0,0 +1,7 @@
+// objective: test the \n command
+// check: indexpage.xml
+/** \mainpage
+Text\n
+New line\n
+Another line
+*/
diff --git a/testing/039/class_test.xml b/testing/039/class_test.xml
new file mode 100644 (file)
index 0000000..3f38916
--- /dev/null
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_test" kind="class" prot="public">
+    <compoundname>Test</compoundname>
+    <sectiondef kind="user-defined">
+      <header>A group of functions.</header>
+      <memberdef kind="function" id="class_test_1a09d1d148c3624a636b7590f8cf816a55" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void Test::foo</definition>
+        <argsstring>()</argsstring>
+        <name>foo</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>foo function </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="039_name.cpp" line="16" column="1"/>
+      </memberdef>
+      <memberdef kind="function" id="class_test_1a78e37a450a276b60a5a2fa4a46c86f2e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void Test::bar</definition>
+        <argsstring>()</argsstring>
+        <name>bar</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>bar function </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="039_name.cpp" line="18" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="class_test_1a1a26b34cfe612dacf462b81f74235269" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void Test::ungrouped</definition>
+        <argsstring>()</argsstring>
+        <name>ungrouped</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>ungrouped function </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="039_name.cpp" line="23" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+      <para>A <ref refid="class_test" kindref="compound">Test</ref> class. </para>
+    </briefdescription>
+    <detaileddescription>
+      <para>More details about this class. </para>
+    </detaileddescription>
+    <location file="039_name.cpp" bodystart="8" bodyend="24"/>
+    <listofallmembers>
+      <member refid="class_test_1a78e37a450a276b60a5a2fa4a46c86f2e" prot="public" virt="non-virtual">
+        <scope>Test</scope>
+        <name>bar</name>
+      </member>
+      <member refid="class_test_1a09d1d148c3624a636b7590f8cf816a55" prot="public" virt="non-virtual">
+        <scope>Test</scope>
+        <name>foo</name>
+      </member>
+      <member refid="class_test_1a1a26b34cfe612dacf462b81f74235269" prot="public" virt="non-virtual">
+        <scope>Test</scope>
+        <name>ungrouped</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/039_name.cpp b/testing/039_name.cpp
new file mode 100644 (file)
index 0000000..f07b45c
--- /dev/null
@@ -0,0 +1,25 @@
+// objective: test the \name and \short commands
+// check: class_test.xml
+
+/** \short A Test class.
+ *
+ *  More details about this class.
+ */
+class Test
+{
+  public:
+    /** \name A group of functions.
+     *  \{
+     */
+
+    /** foo function */
+    void foo();
+    /** bar function */
+    void bar();
+
+    /** \} */
+
+    /** ungrouped function */
+    void ungrouped();
+};
+
diff --git a/testing/040/namespace_n_s.xml b/testing/040/namespace_n_s.xml
new file mode 100644 (file)
index 0000000..14ffc26
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="namespace_n_s" kind="namespace">
+    <compoundname>NS</compoundname>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>A namespace </para>
+    </detaileddescription>
+    <location file="040_namespace.cpp" line="5" column="1"/>
+  </compounddef>
+</doxygen>
diff --git a/testing/040_namespace.cpp b/testing/040_namespace.cpp
new file mode 100644 (file)
index 0000000..a90f377
--- /dev/null
@@ -0,0 +1,10 @@
+// objective: test the \namespace command
+// check: namespace_n_s.xml
+
+namespace NS 
+{
+}
+
+/** @namespace NS
+ *  A namespace 
+ */
diff --git a/testing/041/class_test.xml b/testing/041/class_test.xml
new file mode 100644 (file)
index 0000000..294b67c
--- /dev/null
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_test" kind="class" prot="public">
+    <compoundname>Test</compoundname>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="class_test_1a8e7b46ceaf7bd2ab94114b390b3288ca" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void Test::drawRect</definition>
+        <argsstring>(int, int, int, int)</argsstring>
+        <name>drawRect</name>
+        <param>
+          <type>int</type>
+          <defname>x</defname>
+        </param>
+        <param>
+          <type>int</type>
+          <defname>y</defname>
+        </param>
+        <param>
+          <type>int</type>
+          <defname>w</defname>
+        </param>
+        <param>
+          <type>int</type>
+          <defname>h</defname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>This command draws a rectangle with a left upper corner at ( <emphasis>x</emphasis> , <emphasis>y</emphasis> ), width <emphasis>w</emphasis> and height <emphasis>h</emphasis>. </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="041_overload.cpp" bodystart="12" bodyend="12"/>
+      </memberdef>
+      <memberdef kind="function" id="class_test_1ae87a6e26707e684c0d2d07bb3d4a9d7f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void Test::drawRect</definition>
+        <argsstring>(const Rect &amp;r)</argsstring>
+        <name>drawRect</name>
+        <param>
+          <type>const Rect &amp;</type>
+          <declname>r</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="041_overload.cpp" bodystart="13" bodyend="13"/>
+      </memberdef>
+      <memberdef kind="function" id="class_test_1a62a76eed05fa84633d1e460aeeaf875d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void Test::drawRect</definition>
+        <argsstring>(const Point &amp;topLeft, const Point &amp;bottomRight)</argsstring>
+        <name>drawRect</name>
+        <param>
+          <type>const Point &amp;</type>
+          <declname>topLeft</declname>
+        </param>
+        <param>
+          <type>const Point &amp;</type>
+          <declname>bottomRight</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.</para>
+          <para>More text. </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="041_overload.cpp" bodystart="18" bodyend="18"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+      <para>A short description. </para>
+    </briefdescription>
+    <detaileddescription>
+      <para>More text. </para>
+    </detaileddescription>
+    <location file="041_overload.cpp" bodystart="4" bodyend="10"/>
+    <listofallmembers>
+      <member refid="class_test_1a8e7b46ceaf7bd2ab94114b390b3288ca" prot="public" virt="non-virtual">
+        <scope>Test</scope>
+        <name>drawRect</name>
+      </member>
+      <member refid="class_test_1ae87a6e26707e684c0d2d07bb3d4a9d7f" prot="public" virt="non-virtual">
+        <scope>Test</scope>
+        <name>drawRect</name>
+      </member>
+      <member refid="class_test_1a62a76eed05fa84633d1e460aeeaf875d" prot="public" virt="non-virtual">
+        <scope>Test</scope>
+        <name>drawRect</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/041_overload.cpp b/testing/041_overload.cpp
new file mode 100644 (file)
index 0000000..e206acf
--- /dev/null
@@ -0,0 +1,33 @@
+// objective: test the \overload command
+// check: class_test.xml
+
+class Test 
+{
+  public:
+    void drawRect(int,int,int,int);
+    void drawRect(const Rect &r);
+    void drawRect(const Point &topLeft,const Point &bottomRight);
+};
+
+void Test::drawRect(int x,int y,int w,int h) {}
+void Test::drawRect(const Rect &r) {}
+/*! \overload 
+ *
+ *  More text.
+ */
+void Test::drawRect(const Point &topLeft,const Point &bottomRight) {}
+
+/*! \class Test
+ *  \brief A short description.
+ *   
+ *  More text.
+ */
+
+/*! \fn void Test::drawRect(int x,int y,int w,int h)
+ * This command draws a rectangle with a left upper corner at ( \a x , \a y ),
+ * width \a w and height \a h. 
+ */
+
+/*!
+ * \overload void Test::drawRect(const Rect &r)
+ */
diff --git a/testing/042/namespaceorg_1_1doxygen_1_1_test.xml b/testing/042/namespaceorg_1_1doxygen_1_1_test.xml
new file mode 100644 (file)
index 0000000..b48c307
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="namespaceorg_1_1doxygen_1_1_test" kind="namespace">
+    <compoundname>org::doxygen::Test</compoundname>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>A test package. </para>
+    </detaileddescription>
+    <location file="042_package.java" line="4" column="1"/>
+  </compounddef>
+</doxygen>
diff --git a/testing/042_package.java b/testing/042_package.java
new file mode 100644 (file)
index 0000000..f46d55c
--- /dev/null
@@ -0,0 +1,8 @@
+// objective: test the \package command
+// check: namespaceorg_1_1doxygen_1_1_test.xml
+
+package org.doxygen.Test;
+
+/** @package org.doxygen.Test
+ *  A test package.
+ */
diff --git a/testing/043/another.xml b/testing/043/another.xml
new file mode 100644 (file)
index 0000000..f403e8f
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="another" kind="page">
+    <compoundname>another</compoundname>
+    <title>Another Page</title>
+    <detaileddescription>
+      <para>Another page's text. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/043/mypage.xml b/testing/043/mypage.xml
new file mode 100644 (file)
index 0000000..efb09c7
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="mypage" kind="page">
+    <compoundname>mypage</compoundname>
+    <title>Page Title</title>
+    <innerpage refid="another">Another Page</innerpage>
+    <detaileddescription>
+      <para>Text at page level. See <ref refid="mypage_1mysect" kindref="member">Section Title.</ref> for more. </para>
+      <sect1 id="mypage_1mysect">
+        <title>Section Title.</title>
+        <para>Text at section level. See <ref refid="mypage_1mysubsect" kindref="member">Subsection Title.</ref> for more. </para>
+        <sect2 id="mypage_1mysubsect">
+          <title>Subsection Title.</title>
+          <para>Text at subsection level. see <ref refid="mypage_1mysubsubsect" kindref="member">Subsubsection Title.</ref> for more. </para>
+          <sect3 id="mypage_1mysubsubsect">
+            <title>Subsubsection Title.</title>
+            <para>Text at subsubsection level. <ref refid="mypage_1mypara" kindref="member">Paragraph Title.</ref> for more. </para>
+            <sect4 id="mypage_1mypara">
+              <title>Paragraph Title.</title>
+              <para>Text at paragraph level. <ref refid="mypage_1mysect2" kindref="member">Another Section Title.</ref> for more. </para>
+            </sect4>
+          </sect3>
+        </sect2>
+      </sect1>
+      <sect1 id="mypage_1mysect2">
+        <title>Another Section Title.</title>
+        <para>Text at section level.</para>
+        <para>
+          <ref refid="another" kindref="compound">Another Page</ref>
+        </para>
+      </sect1>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/043_page.dox b/testing/043_page.dox
new file mode 100644 (file)
index 0000000..784f58d
--- /dev/null
@@ -0,0 +1,22 @@
+// objective: test \page, \subpage, \*section, \paragraph, and \ref commands
+// check: mypage.xml
+// check: another.xml
+/** \page mypage Page Title
+ *  Text at page level. See \ref mysect for more.
+ *  \section mysect Section Title.
+ *  Text at section level. See \ref mysubsect for more.
+ *  \subsection mysubsect Subsection Title.
+ *  Text at subsection level. see \ref mysubsubsect for more.
+ *  \subsubsection mysubsubsect Subsubsection Title.
+ *  Text at subsubsection level. \ref mypara for more.
+ *  \paragraph mypara Paragraph Title.
+ *  Text at paragraph level. \ref mysect2 for more.
+ *  \section mysect2 Another Section Title.
+ *  Text at section level.
+ *
+ *  \subpage another
+ */
+
+/** \page another Another Page
+ *  Another page's text.
+ */
diff --git a/testing/044/struct_s.xml b/testing/044/struct_s.xml
new file mode 100644 (file)
index 0000000..9505f8c
--- /dev/null
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="struct_s" kind="struct" prot="public">
+    <compoundname>S</compoundname>
+    <includes refid="044__section_8h" local="no">044_section.h</includes>
+    <sectiondef kind="public-attrib">
+      <memberdef kind="variable" id="struct_s_1aff6062601582dff52ace76d285c2e504" prot="public" static="no" mutable="no">
+        <type>int</type>
+        <definition>int S::pub1</definition>
+        <argsstring/>
+        <name>pub1</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>public field </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="044_section.h" bodystart="10" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="struct_s_1a413054db7785010db38c16322c8583cc" prot="public" static="no" mutable="no">
+        <type>int</type>
+        <definition>int S::pub2</definition>
+        <argsstring/>
+        <name>pub2</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>another public field </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="044_section.h" bodystart="12" bodyend="-1"/>
+      </memberdef>
+    </sectiondef>
+    <sectiondef kind="protected-attrib">
+      <memberdef kind="variable" id="struct_s_1ac506df106f05b04ac31b3b6ae1357067" prot="protected" static="no" mutable="no">
+        <type>int</type>
+        <definition>int S::pro1</definition>
+        <argsstring/>
+        <name>pro1</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>protected field </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="044_section.h" bodystart="17" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="struct_s_1a0c535a6122f4ae509a336e3a67f927a4" prot="protected" static="no" mutable="no">
+        <type>int</type>
+        <definition>int S::pro2</definition>
+        <argsstring/>
+        <name>pro2</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>another protected field </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="044_section.h" bodystart="19" bodyend="-1"/>
+      </memberdef>
+    </sectiondef>
+    <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="struct_s_1ab754fee7e3500035f644d0ac528cbfc3" prot="private" static="no" mutable="no">
+        <type>int</type>
+        <definition>int S::pri1</definition>
+        <argsstring/>
+        <name>pri1</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>private field </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="044_section.h" bodystart="24" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="struct_s_1a4b26822a09bcd6b946702e99280826ff" prot="private" static="no" mutable="no">
+        <type>int</type>
+        <definition>int S::pri2</definition>
+        <argsstring/>
+        <name>pri2</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>another private field </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="044_section.h" bodystart="26" bodyend="-1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>A struct </para>
+    </detaileddescription>
+    <location file="044_section.h" bodystart="5" bodyend="27"/>
+    <listofallmembers>
+      <member refid="struct_s_1ab754fee7e3500035f644d0ac528cbfc3" prot="private" virt="non-virtual">
+        <scope>S</scope>
+        <name>pri1</name>
+      </member>
+      <member refid="struct_s_1a4b26822a09bcd6b946702e99280826ff" prot="private" virt="non-virtual">
+        <scope>S</scope>
+        <name>pri2</name>
+      </member>
+      <member refid="struct_s_1ac506df106f05b04ac31b3b6ae1357067" prot="protected" virt="non-virtual">
+        <scope>S</scope>
+        <name>pro1</name>
+      </member>
+      <member refid="struct_s_1a0c535a6122f4ae509a336e3a67f927a4" prot="protected" virt="non-virtual">
+        <scope>S</scope>
+        <name>pro2</name>
+      </member>
+      <member refid="struct_s_1aff6062601582dff52ace76d285c2e504" prot="public" virt="non-virtual">
+        <scope>S</scope>
+        <name>pub1</name>
+      </member>
+      <member refid="struct_s_1a413054db7785010db38c16322c8583cc" prot="public" virt="non-virtual">
+        <scope>S</scope>
+        <name>pub2</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/044_section.h b/testing/044_section.h
new file mode 100644 (file)
index 0000000..ef48051
--- /dev/null
@@ -0,0 +1,28 @@
+// objective: test the \(public|protected|private)section commands
+// check: struct_s.xml
+
+/** A struct */
+struct S
+{
+  /** \publicsection */
+
+  /** public field */
+  int pub1;
+  /** another public field */
+  int pub2;
+
+  /** \protectedsection */
+
+  /** protected field */
+  int pro1;
+  /** another protected field */
+  int pro2;
+
+  /** \privatesection */
+
+  /** private field */
+  int pri1;
+  /** another private field */
+  int pri2;
+};
+
diff --git a/testing/045/indexpage.xml b/testing/045/indexpage.xml
new file mode 100644 (file)
index 0000000..75de4ab
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>
+        <toclist>
+          <tocitem id="index_1item1">First Item</tocitem>
+          <tocitem id="item2_1item2">Second Item</tocitem>
+          <tocitem id="item2_1item3">Third Item</tocitem>
+        </toclist>
+      </para>
+      <para>Some filler text.</para>
+      <sect1 id="index_1item1">
+        <title>First Section</title>
+        <para>Section 1 text. </para>
+      </sect1>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/045_refitem.dox b/testing/045_refitem.dox
new file mode 100644 (file)
index 0000000..a6ba13b
--- /dev/null
@@ -0,0 +1,20 @@
+// objective: test \refitem, \secreflist, \endsecreflist
+// check: indexpage.xml
+/** \mainpage
+ *  \secreflist
+ *  \refitem item1 First Item
+ *  \refitem item2 Second Item
+ *  \refitem item3 Third Item
+ *  \endsecreflist
+ *
+ *  Some filler text.
+ *
+ *  \section item1 First Section
+ *  Section 1 text.
+ */
+
+/** \page item2 A page
+ *  Some text.
+ *  \section item3 Another Section.
+ *  Section 2 text.
+ */
diff --git a/testing/046/046__related_8cpp.xml b/testing/046/046__related_8cpp.xml
new file mode 100644 (file)
index 0000000..0291e84
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="046__related_8cpp" kind="file">
+    <compoundname>046_related.cpp</compoundname>
+    <innerclass refid="class_test" prot="public">Test</innerclass>
+    <sectiondef kind="func">
+      <memberdef kind="function" id="046__related_8cpp_1a1283d836e0611ff772c1b06a31ecbbfe" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void another</definition>
+        <argsstring>()</argsstring>
+        <name>another</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>Another function </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="046_related.cpp" line="28" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="046_related.cpp"/>
+  </compounddef>
+</doxygen>
diff --git a/testing/046/class_test.xml b/testing/046/class_test.xml
new file mode 100644 (file)
index 0000000..3c631ab
--- /dev/null
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="class_test" kind="class" prot="public">
+    <compoundname>Test</compoundname>
+    <sectiondef kind="public-func">
+      <memberdef kind="function" id="class_test_1a1683da699dc049d74101488d143c8e98" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void Test::method</definition>
+        <argsstring>()</argsstring>
+        <name>method</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>A method </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="046_related.cpp" line="14" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <sectiondef kind="related">
+      <memberdef kind="function" id="class_test_1a51a683fa4fcec142ab1574e00a7b6860" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void function</definition>
+        <argsstring>()</argsstring>
+        <name>function</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>A function.</para>
+          <para>
+            <simplesect kind="see">
+              <para>
+                <ref refid="class_test_1a1283d836e0611ff772c1b06a31ecbbfe" kindref="member">another()</ref>
+              </para>
+            </simplesect>
+          </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="046_related.cpp" line="22" column="1"/>
+      </memberdef>
+      <memberdef kind="function" id="class_test_1a1283d836e0611ff772c1b06a31ecbbfe" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>void</type>
+        <definition>void another</definition>
+        <argsstring>()</argsstring>
+        <name>another</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>Another function </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="046_related.cpp" line="28" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+      <para>A test class <simplesect kind="see"><para><ref refid="class_test_1a1683da699dc049d74101488d143c8e98" kindref="member">Test::method()</ref></para></simplesect>
+</para>
+    </detaileddescription>
+    <location file="046_related.cpp" bodystart="10" bodyend="15"/>
+    <listofallmembers>
+      <member refid="class_test_1a1283d836e0611ff772c1b06a31ecbbfe" prot="public" virt="non-virtual">
+        <scope>Test</scope>
+        <name>another</name>
+      </member>
+      <member refid="class_test_1a51a683fa4fcec142ab1574e00a7b6860" prot="public" virt="non-virtual">
+        <scope>Test</scope>
+        <name>function</name>
+      </member>
+      <member refid="class_test_1a1683da699dc049d74101488d143c8e98" prot="public" virt="non-virtual">
+        <scope>Test</scope>
+        <name>method</name>
+      </member>
+    </listofallmembers>
+  </compounddef>
+</doxygen>
diff --git a/testing/046_related.cpp b/testing/046_related.cpp
new file mode 100644 (file)
index 0000000..a8deb5a
--- /dev/null
@@ -0,0 +1,28 @@
+// objective: test the \related, \relatedalso, \see, and \sa commands
+// check: class_test.xml
+// check: 046__related_8cpp.xml
+
+/** @file */
+
+/** A test class 
+ *  @see Test::method()
+ */
+class Test 
+{
+  public:
+    /** A method */
+    void method();
+};
+
+/*!
+ * A function.
+ * \related Test
+ * \sa another()
+ */
+void function();
+
+/*!
+ * Another function
+ * \relatedalso Test
+ */
+void another();
diff --git a/testing/047/047__return_8cpp.xml b/testing/047/047__return_8cpp.xml
new file mode 100644 (file)
index 0000000..2ed45d1
--- /dev/null
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="047__return_8cpp" kind="file">
+    <compoundname>047_return.cpp</compoundname>
+    <sectiondef kind="func">
+      <memberdef kind="function" id="047__return_8cpp_1aab0ee031d46db05d47213d2625ab6aac" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>int</type>
+        <definition>int func1</definition>
+        <argsstring>()</argsstring>
+        <name>func1</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>Test function 1. <simplesect kind="return"><para>A integer. </para></simplesect>
+</para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="047_return.cpp" line="9" column="1"/>
+      </memberdef>
+      <memberdef kind="function" id="047__return_8cpp_1aa1d4878589351db8276c79f98ed9fb7d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>int</type>
+        <definition>int func2</definition>
+        <argsstring>()</argsstring>
+        <name>func2</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>Test function 2. <simplesect kind="return"><para>A integer. </para></simplesect>
+</para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="047_return.cpp" line="14" column="1"/>
+      </memberdef>
+      <memberdef kind="function" id="047__return_8cpp_1abee09dd9ed9ce93df5a931d16faac09a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+        <type>int</type>
+        <definition>int func3</definition>
+        <argsstring>()</argsstring>
+        <name>func3</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>Test function 3. <simplesect kind="return"><para>A integer. </para></simplesect>
+</para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="047_return.cpp" line="19" column="1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="047_return.cpp"/>
+  </compounddef>
+</doxygen>
diff --git a/testing/047_return.cpp b/testing/047_return.cpp
new file mode 100644 (file)
index 0000000..7585986
--- /dev/null
@@ -0,0 +1,20 @@
+// objective: test the \result, \return, and \returns commands
+// check: 047__return_8cpp.xml
+
+/** \file */
+
+/** Test function 1.
+ *  \result A integer.
+ */
+int func1();
+
+/** Test function 2.
+ *  \return A integer.
+ */
+int func2();
+
+/** Test function 3.
+ *  \returns A integer.
+ */
+int func3();
+
diff --git a/testing/048/048__showinit_8c.xml b/testing/048/048__showinit_8c.xml
new file mode 100644 (file)
index 0000000..a44ccb9
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="048__showinit_8c" kind="file">
+    <compoundname>048_showinit.c</compoundname>
+    <sectiondef kind="var">
+      <memberdef kind="variable" id="048__showinit_8c_1a799f44203647e4c53bdb0386aa95680f" prot="public" static="no" mutable="no">
+        <type>int</type>
+        <definition>int var1</definition>
+        <argsstring/>
+        <name>var1</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>a variable with initializer hidden due to MAX_INITIALIZER_LINES </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="048_showinit.c" bodystart="8" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="048__showinit_8c_1ac0da06d47d79ad4b9fb1c0eaf1118c3f" prot="public" static="no" mutable="no">
+        <type>int</type>
+        <definition>int var2</definition>
+        <argsstring/>
+        <name>var2</name>
+        <initializer>= 20</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+          <para>a variable with initializer visible </para>
+        </detaileddescription>
+        <inbodydescription>
+        </inbodydescription>
+        <location file="048_showinit.c" bodystart="13" bodyend="-1"/>
+      </memberdef>
+    </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="048_showinit.c"/>
+  </compounddef>
+</doxygen>
diff --git a/testing/048_showinit.c b/testing/048_showinit.c
new file mode 100644 (file)
index 0000000..a37865d
--- /dev/null
@@ -0,0 +1,13 @@
+// objective: test the \showinit command
+// check: 048__showinit_8c.xml
+// config: MAX_INITIALIZER_LINES = 0
+
+/** \file */
+
+/** a variable with initializer hidden due to MAX_INITIALIZER_LINES */
+int var1 = 10;
+
+/** a variable with initializer visible 
+ *  \showinitializer
+ */
+int var2 = 20;
diff --git a/testing/049/indexpage.xml b/testing/049/indexpage.xml
new file mode 100644 (file)
index 0000000..0f3a63b
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>A bubble sort algoritm First get the inputs <programlisting><codeline><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal">(i=0<sp/>;<sp/>i&lt;n<sp/>;<sp/>i++)</highlight></codeline><codeline><highlight class="normal"><sp/><sp/>{</highlight></codeline><codeline><highlight class="normal"><sp/><sp/><sp/><sp/>printf(</highlight><highlight class="stringliteral">"<sp/>Array[%d]<sp/>=<sp/>"</highlight><highlight class="normal">,i);</highlight></codeline><codeline><highlight class="normal"><sp/><sp/><sp/><sp/>scanf(</highlight><highlight class="stringliteral">"%d"</highlight><highlight class="normal">,&amp;arr[i]);</highlight></codeline><codeline><highlight class="normal"><sp/><sp/>}</highlight></codeline></programlisting>Then do the bubbling <programlisting><codeline><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal">(i=0<sp/>;<sp/>i&lt;n<sp/>;<sp/>i++)</highlight></codeline><codeline><highlight class="normal"><sp/><sp/>{</highlight></codeline><codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal">(j=0<sp/>;<sp/>j&lt;n-i-1<sp/>;<sp/>j++)</highlight></codeline><codeline><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline><codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal">(arr[j]&gt;arr[j+1])<sp/></highlight><highlight class="comment">//Swapping<sp/>Condition<sp/>is<sp/>Checked</highlight><highlight class="normal"/></codeline><codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline><codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>temp=arr[j];</highlight></codeline><codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>arr[j]=arr[j+1];</highlight></codeline><codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>arr[j+1]=temp;</highlight></codeline><codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline><codeline><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline><codeline><highlight class="normal"><sp/><sp/>}</highlight></codeline></programlisting>Then write the result <programlisting><codeline><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal">(i=0<sp/>;<sp/>i&lt;n<sp/>;<sp/>i++)</highlight></codeline><codeline><highlight class="normal"><sp/><sp/>{</highlight></codeline><codeline><highlight class="normal"><sp/><sp/><sp/><sp/>printf(</highlight><highlight class="stringliteral">"<sp/>%4d"</highlight><highlight class="normal">,arr[i]);</highlight></codeline><codeline><highlight class="normal"><sp/><sp/>}</highlight></codeline></programlisting></para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/049_snippet.cpp b/testing/049_snippet.cpp
new file mode 100644 (file)
index 0000000..2749a62
--- /dev/null
@@ -0,0 +1,13 @@
+// objective: test the \snippet command
+// check: indexpage.xml
+// config: EXAMPLE_PATH = .
+
+/** \mainpage
+ *  A bubble sort algoritm
+ *  First get the inputs
+ *  \snippet snippet_test.cpp input
+ *  Then do the bubbling
+ *  \snippet snippet_test.cpp bubble
+ *  Then write the result
+ *  \snippet snippet_test.cpp output
+ */
diff --git a/testing/050/indexpage.xml b/testing/050/indexpage.xml
new file mode 100644 (file)
index 0000000..73b6d4f
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Some normal text. <verbatim>A verbatim section with a /* C comment */ in it
+</verbatim> Showing a file as verbatim <verbatim>@book{knuth79,
+        author = "Donald E. Knuth",
+        title = "Tex and Metafont, New Directions in Typesetting",
+        year = "1979",
+        publisher = "American Mathematical Society and Digital Press",
+        address = "Stanford"
+}
+</verbatim> More text after the verbatim section. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/050_verbatim.dox b/testing/050_verbatim.dox
new file mode 100644 (file)
index 0000000..0ff315f
--- /dev/null
@@ -0,0 +1,14 @@
+// objective: test \verbatim and \verbinclude commands
+// check: indexpage.xml
+// config: EXAMPLE_PATH = .
+/** 
+\mainpage 
+Some normal text.
+\verbatim
+A verbatim section with a /* C comment */ in it
+\endverbatim
+Showing a file as verbatim
+\verbinclude sample.bib
+More text after the verbatim section.
+
+*/
diff --git a/testing/051/indexpage.xml b/testing/051/indexpage.xml
new file mode 100644 (file)
index 0000000..4f13f56
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Dollar $ At @ Backslash \ Amphasand &amp; Less &lt; Greater &gt; Hash # Percent % Quote " Dot . Double colon :: Pipe | </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/051_escape.dox b/testing/051_escape.dox
new file mode 100644 (file)
index 0000000..1497ad1
--- /dev/null
@@ -0,0 +1,18 @@
+// objective: test various characters that should be escaped
+// check: indexpage.xml
+/** 
+\mainpage 
+Dollar \$ 
+At \@
+Backslash \\
+Amphasand \&
+Less \<
+Greater \>
+Hash \#
+Percent \%
+Quote \"
+Dot \.
+Double colon \::
+Pipe \|
+
+*/
diff --git a/testing/052/indexpage.xml b/testing/052/indexpage.xml
new file mode 100644 (file)
index 0000000..792bee4
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>This is English. Output for all languages. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/052_tilde.dox b/testing/052_tilde.dox
new file mode 100644 (file)
index 0000000..81a8c9b
--- /dev/null
@@ -0,0 +1,9 @@
+// objective: test \~ command
+// check: indexpage.xml
+/** 
+\mainpage 
+\~english This is English.
+\~dutch Dit is Nederlands.
+\~german Dies ist Deutsch.
+\~ Output for all languages.
+*/
diff --git a/testing/053/indexpage.xml b/testing/053/indexpage.xml
new file mode 100644 (file)
index 0000000..828fe96
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+  <compounddef id="indexpage" kind="page">
+    <compoundname>index</compoundname>
+    <title>My Project</title>
+    <detaileddescription>
+      <para>Dit is Nederlands. Output for all languages. </para>
+    </detaileddescription>
+  </compounddef>
+</doxygen>
diff --git a/testing/053_tilde.dox b/testing/053_tilde.dox
new file mode 100644 (file)
index 0000000..73cafa3
--- /dev/null
@@ -0,0 +1,10 @@
+// objective: test \~ command with non default OUTPUT_LANGUAGE
+// check: indexpage.xml
+// config: OUTPUT_LANGUAGE = Dutch
+/** 
+\mainpage 
+\~english This is English.
+\~dutch Dit is Nederlands.
+\~german Dies ist Deutsch.
+\~ Output for all languages.
+*/
diff --git a/testing/Doxyfile b/testing/Doxyfile
new file mode 100644 (file)
index 0000000..e1486d3
--- /dev/null
@@ -0,0 +1,7 @@
+# start with defaults
+QUIET = YES
+GENERATE_HTML = NO
+GENERATE_LATEX = NO
+GENERATE_XML = YES
+XML_PROGRAMLISTING = NO
+CASE_SENSE_NAMES = NO
diff --git a/testing/Makefile b/testing/Makefile
new file mode 100644 (file)
index 0000000..f40107f
--- /dev/null
@@ -0,0 +1,3 @@
+tests: 
+       @perl runtests.pl --doxygen ../bin/doxygen
+
diff --git a/testing/README b/testing/README
new file mode 100644 (file)
index 0000000..993ff48
--- /dev/null
@@ -0,0 +1,48 @@
+Doxygen regession test suite
+============================
+
+This directory contains a set of regression tests. Each test consists of a 
+file starting with a 3 digit number and a corresponding directory whose name 
+has the same 3 digit number. The directory contains one or more reference 
+files that are compared against the XML output produced by doxygen. If the 
+result is the same, there is no regression and the test passes. If there is a 
+difference the test fails and the difference (in diff -u format) will be shown.
+
+The runtest.pl script responsible for running the tests takes a number of 
+optional parameters:
+-id n:        run test with number n only (the option may be specified 
+              multiple times) default is to run all tests.
+-updateref:   update the reference files. Should be used in combination 
+              with -id to update the reference file(s) for the given test.
+-all:         can be used in combination with -updateref to update the
+              reference files for all tests.
+-doxygen exe: run the specified doxygen executable.
+-xmllint exe: run the specified xmllint executable.
+
+The runtest.pl has the following dependenies on 3rd party tools:
+- perl    to run the script
+- xmllint to normalize the XML output
+- diff    to show the differences in case a test fails
+Each test file can have a number of special comment lines that are extracted by
+the runtest.pl script and take the form:
+// <identifier>: 'argument' 
+Where <identifier> can be one of:
+- objective: 'argument' provides the objective for the test (i.e. its purpose)
+- check:     'argument' names a file that is generated by doxygen, which should 
+             be compared against the reference.
+- config:    'argument' is a line that is added to the default Doxyfile used to
+             run doxygen on the test file.
+
+Example to run all tests:
+    perl runtest.pl
+
+Example to run a test
+    perl runtest.pl -id 10
+
+Example to update the reference files for a test
+    perl runtest.pl -updateref -id 10
+
+There is also a Makefile, which can be used to run all tests by simply
+invoking make.
+
diff --git a/testing/example_test.cpp b/testing/example_test.cpp
new file mode 100644 (file)
index 0000000..f589023
--- /dev/null
@@ -0,0 +1,6 @@
+void main()
+{
+  Test t;
+  t.example();
+}
+
diff --git a/testing/runtests.pl b/testing/runtests.pl
new file mode 100755 (executable)
index 0000000..bbbd1be
--- /dev/null
@@ -0,0 +1,252 @@
+#!/usr/bin/perl
+
+# perl script to execute doxygen's regression test suite.
+#
+# Copyright (C) 1997-2013 by Dimitri van Heesch.
+#
+# Permission to use, copy, modify, and distribute this software and its
+# documentation under the terms of the GNU General Public License is hereby 
+# granted. No representations are made about the suitability of this software 
+# for any purpose. It is provided "as is" without express or implied warranty.
+# See the GNU General Public License for more details.
+#
+# Documents produced by Doxygen are derivative works derived from the
+# input used in their production; they are not affected by this license.
+
+use strict;
+use warnings;
+
+use Getopt::Long;
+use Test::More;
+use File::Path qw(make_path remove_tree);
+use File::Copy qw(copy);
+
+my $Test = Test::Builder->new;
+my $opt_doxygen_exe = 'doxygen';
+my $opt_xmllint_exe = 'xmllint';
+my $opt_updateref = '';
+my @opt_test_ids;
+my $opt_all = '';
+
+GetOptions( 'updateref'  => \$opt_updateref,
+            'doxygen=s'  => \$opt_doxygen_exe,
+            'xmllint=s'  => \$opt_xmllint_exe,
+            'id=i'       => \@opt_test_ids,
+            'all'        => \$opt_all
+          );
+
+sub read_two_files {
+  my $first   = shift;
+  my $second  = shift;
+  my $filter  = shift;
+  my $success = 1;
+  my @errors;
+
+  unless (open FIRST, "$first") {
+    $success = 0;
+    push @errors, "$first absent";
+  }
+  unless (open SECOND, "$second") {
+    $success = 0;
+    push @errors, "$second absent";
+  }
+  return ($success, @errors) unless $success;
+
+  my $first_lines  = join "",<FIRST>;
+  my $second_lines = join "",<SECOND>;
+  
+  close FIRST;
+  close SECOND;
+
+  return ($success, $first_lines, $second_lines);
+}
+
+sub compare_ok {
+  my $got_file      = shift;
+  my $expected_file = shift;
+  my $name          = shift;
+  my @read_result   = read_two_files($got_file, $expected_file);
+  my $files_exist   = shift @read_result;
+
+  if ($files_exist) {
+    my ($got, $expected) = @read_result;
+    my $diff = `diff -u $got_file $expected_file`;
+    my $failed = length $diff;
+    return ($failed,"Difference between generated output and reference:\n$diff");
+  }
+  else {
+    return (1,join "\n", @read_result);
+  }
+}
+
+sub chop_volatile {
+  my $line = shift;
+  $line =~ s/version="\d\.\d.\d+"/version=""/g; # strip version
+  $line =~ s/file=".*\/(.*)"/file="$1"/g; # strip location
+  return $line;
+}
+
+sub get_config {
+  my $file = shift;
+  my %config;
+  open F,"<$file";
+  while (<F>) {
+    if (/\/\/\s*(\S+):\s*(.*)$/) {
+      my $key = $1;
+      my $val = $2;
+      chomp $val;
+      $config{$key} = [] unless defined $config{$key};
+      push @{$config{$key}},$val;
+    }
+  }
+  return %config;
+}
+
+sub perform_test {
+  my $test_file = shift;
+  my %config = get_config($test_file);
+  my $test_name = "[$test_file]: $config{'objective'}[0]";
+  my $test_id = $test_file;
+  $test_id =~ s/^(\d+).*$/$1/;
+  my $test_out = "test_output_${test_id}";
+
+  if (scalar($config{'check'})==0) {
+    $Test->ok(0, $test_name);
+    $Test->diag("Test doesn't specify any files to check");
+    return;
+  }
+
+  # prepare test environment
+  remove_tree("$test_out");
+  make_path("$test_out");
+  copy("Doxyfile","$test_out");
+  open(F,">>$test_out/Doxyfile");
+  print F "INPUT = $test_file\n";
+  print F "XML_OUTPUT = $test_out/out\n";
+  foreach my $cfg (@{$config{'config'}}) {
+    print F "$cfg\n";
+  }
+  close(F);
+
+  # run doxygen
+  if (system("$opt_doxygen_exe $test_out/Doxyfile")!=0) {
+    $Test->ok(0, $test_name);
+    $Test->diag("Failed to run doxygen");
+    return;
+  } 
+
+  # look for files to check against the reference
+  foreach my $fn (@{$config{'check'}}) {
+    if (!-f "$test_out/out/$fn") {
+      $Test->ok(0, $test_name);
+      $Test->diag("Non-existing file $test_out/out/$fn after 'check:' statement");
+      return;
+    }
+    # run xmllint on the output file
+    my @lines = `$opt_xmllint_exe --format --noblanks --nowarning $test_out/out/$fn`;
+    if (scalar(@lines)>0 && open(F,">$test_out/$fn")) {
+      foreach my $line (@lines) {
+        print F chop_volatile($line);
+      }
+      close(F);
+    } else {
+      $Test->ok(0, $test_name);
+      $Test->diag("Failed to run xmllint on the doxygen output file $test_out/out/$fn");
+    }
+    my ($failed,$msg) = compare_ok("$test_out/$fn","$test_id/$fn",$test_name);
+    if ($failed) {
+      $Test->ok(0, $test_name);
+      $Test->diag($msg);
+      return;
+    }
+  }
+
+  # test passed
+  remove_tree("$test_out");
+  $Test->ok(1, $test_name);
+}
+
+sub update_test {
+  my $test_file = shift;
+  my %config = get_config($test_file);
+  my $test_name = "[$test_file]: $config{'objective'}[0]";
+  my $test_id = $test_file;
+  $test_id =~ s/^(\d+).*$/$1/;
+  my $test_out = $test_id;
+
+  # prepare reference environment
+  remove_tree("$test_out");
+  make_path("$test_out");
+  copy("Doxyfile","$test_out");
+  open(F,">>$test_out/Doxyfile");
+  print F "INPUT = $test_file\n";
+  print F "XML_OUTPUT = $test_out/out\n";
+  foreach my $cfg (@{$config{'config'}}) {
+    print F "$cfg\n";
+  }
+  close(F);
+
+  print "Updating reference for $test_name\n";
+
+  # run doxygen
+  if (system("$opt_doxygen_exe $test_out/Doxyfile")!=0) {
+    print("Error: failed to run doxygen");
+    return;
+  } 
+  my $err=0;
+
+  # look for files to prepare as reference
+  foreach my $fn (@{$config{'check'}}) {
+    if (!-f "$test_out/out/$fn") {
+      printf("Error: Non-existing file $test_out/out/$fn after 'check:' statement\n");
+      $err=1;
+    }
+    # run xmllint on the output file
+    if (!$err) {
+      my @lines = `$opt_xmllint_exe --format --noblanks --nowarning $test_out/out/$fn`;
+      if (scalar(@lines)>0 && open(F,">$test_out/$fn")) {
+        foreach my $line (@lines) {
+          print F chop_volatile($line);
+        }
+        close(F);
+      } else {
+        printf("Error: Failed to run xmllint on the doxygen output file $test_out/out/$fn\n");
+        $err=1;
+      }
+    }
+  }
+
+  if (!$err) {
+    # clean-up
+    remove_tree("$test_out/out");
+    unlink("$test_out/Doxyfile");
+  }
+}
+
+# get the tests
+my @tests;
+if (scalar(@opt_test_ids)==0 && $opt_updateref && !$opt_all) {
+  printf("Error: updateref option requires -id to update a test or -all to update all\n");
+  exit(1);
+}
+if (scalar(@opt_test_ids)>0) {
+  foreach my $t (@opt_test_ids) {
+    push @tests, glob("${t}_* 0${t}_* 00${t}_*");
+  }
+} else {
+  @tests = glob('[0-9][0-9][0-9]_*');
+}
+
+if ($opt_updateref) {
+  # update reference
+  foreach my $test (@tests) {
+    update_test($test);
+  }
+} else {
+  # run tests
+  plan tests => scalar(@tests);
+  foreach my $test (@tests) {
+    perform_test($test);
+  }
+}
+
diff --git a/testing/sample.bib b/testing/sample.bib
new file mode 100644 (file)
index 0000000..436e8cd
--- /dev/null
@@ -0,0 +1,7 @@
+@book{knuth79,
+        author = "Donald E. Knuth",
+        title = "Tex and Metafont, New Directions in Typesetting",
+        year = "1979",
+        publisher = "American Mathematical Society and Digital Press",
+        address = "Stanford"
+}
diff --git a/testing/sample.html b/testing/sample.html
new file mode 100644 (file)
index 0000000..159202e
--- /dev/null
@@ -0,0 +1 @@
+<h1>Hello world</h1>
diff --git a/testing/sample.png b/testing/sample.png
new file mode 100644 (file)
index 0000000..3ff17d8
Binary files /dev/null and b/testing/sample.png differ
diff --git a/testing/snippet_test.cpp b/testing/snippet_test.cpp
new file mode 100644 (file)
index 0000000..763f6be
--- /dev/null
@@ -0,0 +1,41 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+void main()
+{
+  int i,n,temp,j,arr[25];
+  printf("Enter the number of elements in the Array: ");
+  scanf("%d",&n);
+  printf("\nEnter the elements:\n\n");
+
+  /* [input] */
+  for(i=0 ; i<n ; i++)
+  {
+    printf(" Array[%d] = ",i);
+    scanf("%d",&arr[i]);
+  }
+  /* [input] */
+
+  // [bubble]
+  for(i=0 ; i<n ; i++)
+  {
+    for(j=0 ; j<n-i-1 ; j++)
+    {
+      if(arr[j]>arr[j+1]) //Swapping Condition is Checked
+      {
+        temp=arr[j];
+        arr[j]=arr[j+1];
+        arr[j+1]=temp;
+      }
+    }
+  }
+  // [bubble]
+
+  printf("\nThe Sorted Array is:\n\n");
+  /* [output] */
+  for(i=0 ; i<n ; i++)
+  {
+    printf(" %4d",arr[i]);
+  }
+  /* [output] */
+}
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 0230328..1162b76
@@ -9,7 +9,7 @@ CONFIG                  = qt warn_on release
 
 TMAKE_CC               = cc
 TMAKE_CFLAGS           = -pipe 
-TMAKE_CFLAGS_WARN_ON   = -Wall -W -Wno-deprecated-declarations -Wno-invalid-source-encoding
+TMAKE_CFLAGS_WARN_ON   = -Wall -W -Wno-deprecated-declarations 
 TMAKE_CFLAGS_WARN_OFF  =
 TMAKE_CFLAGS_RELEASE   = -O2
 TMAKE_CFLAGS_DEBUG     = -g -fstack-protector
index 0a5eb97..d2e3a40 100644 (file)
@@ -9,7 +9,7 @@ CONFIG                  = qt warn_on release
 
 TMAKE_CC               = cc
 TMAKE_CFLAGS           = -pipe -arch i386 -arch ppc 
-TMAKE_CFLAGS_WARN_ON   = -Wall -W -Wno-deprecated-declarations -Wno-invalid-source-encoding
+TMAKE_CFLAGS_WARN_ON   = -Wall -W -Wno-deprecated-declarations
 TMAKE_CFLAGS_WARN_OFF  =
 TMAKE_CFLAGS_RELEASE   = -O2
 TMAKE_CFLAGS_DEBUG     = -g
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
diff --git a/winbuild/.gitignore b/winbuild/.gitignore
new file mode 100644 (file)
index 0000000..a073474
--- /dev/null
@@ -0,0 +1,7 @@
+Debug/
+Debug64/
+Release/
+Release64/
+Doxygen.ncb
+Doxygen.suo
+*.user
\ No newline at end of file
index fb4ae8d..1822438 100644 (file)
                                </FileConfiguration>
                        </File>
                        <File
-                               RelativePath="..\src\store.cpp"
+                               RelativePath="..\src\sqlite3gen.cpp"
                                >
                        </File>
                        <File
-                               RelativePath="..\src\sqlite3gen.cpp"
+                               RelativePath="..\src\store.cpp"
                                >
                        </File>
                        <File
                                >
                        </File>
                        <File
-                               RelativePath="..\src\translator.cpp"
+                               RelativePath="..\src\tooltip.cpp"
                                >
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                               AdditionalIncludeDirectories=""
-                                               PreprocessorDefinitions=""
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration
-                                       Name="Debug|x64"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                               AdditionalIncludeDirectories=""
-                                               PreprocessorDefinitions=""
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration
-                                       Name="Release|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                               AdditionalIncludeDirectories=""
-                                               PreprocessorDefinitions=""
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration
-                                       Name="Release|x64"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                               AdditionalIncludeDirectories=""
-                                               PreprocessorDefinitions=""
-                                       />
-                               </FileConfiguration>
-                       </File>
+                       </File>                 
                        <File
                                RelativePath="..\src\util.cpp"
                                >
                                >
                        </File>
                        <File
+                               RelativePath="..\src\tooltip.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\src\translator.h"
                                >
                        </File>
                                >
                        </File>
                        <File
-                               RelativePath="..\src\translatordecoder.h"
-                               >
-                       </File>
-                       <File
                                RelativePath="..\src\unistd.h"
                                >
                                <FileConfiguration
index 880dc51..228dccc 100644 (file)
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-       ProjectType="Visual C++"
-       Version="9.00"
-       Name="doxywizard"
-       ProjectGUID="{77C9C2D3-EA3F-3D59-8B4C-0ED852890172}"
-       Keyword="Qt4VSv1.0"
-       TargetFrameworkVersion="131072"
-       >
-       <Platforms>
-               <Platform
-                       Name="Win32"
-               />
-       </Platforms>
-       <ToolFiles>
-       </ToolFiles>
-       <Configurations>
-               <Configuration
-                       Name="Debug|Win32"
-                       OutputDirectory="."
-                       IntermediateDirectory="obj\"
-                       ConfigurationType="1"
-                       UseOfMFC="0"
-                       ATLMinimizesCRunTimeLibraryUsage="false"
-                       >
-                       <Tool
-                               Name="VCPreBuildEventTool"
-                       />
-                       <Tool
-                               Name="VCCustomBuildTool"
-                       />
-                       <Tool
-                               Name="VCXMLDataGeneratorTool"
-                       />
-                       <Tool
-                               Name="VCWebServiceProxyGeneratorTool"
-                       />
-                       <Tool
-                               Name="VCMIDLTool"
-                               WarningLevel="0"
-                               DefaultCharType="0"
-                               EnableErrorChecks="1"
-                       />
-                       <Tool
-                               Name="VCCLCompilerTool"
-                               AdditionalOptions="-Zm200 -w34100 -w34189 -Zm200 -w34100 -w34189 -w34100 -w34189"
-                               Optimization="4"
-                               AdditionalIncludeDirectories="&quot;..\..\..\Qt\4.4.3\include\QtCore&quot;,&quot;..\..\..\Qt\4.4.3\include\QtCore&quot;,&quot;..\..\..\Qt\4.4.3\include\QtGui&quot;,&quot;..\..\..\Qt\4.4.3\include\QtGui&quot;,&quot;..\..\..\Qt\4.4.3\include\QtXml&quot;,&quot;..\..\..\Qt\4.4.3\include\QtXml&quot;,&quot;..\..\..\Qt\4.4.3\include&quot;,&quot;..\addon\doxywizard&quot;,&quot;c:\Qt\4.4.3\include\ActiveQt&quot;,&quot;..\addon\doxywizard\moc&quot;,&quot;..\addon\doxywizard&quot;,&quot;.&quot;,..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005"
-                               PreprocessorDefinitions="_WINDOWS,UNICODE,WIN32,QT_LARGEFILE_SUPPORT,QT_NO_CAST_FROM_ASCII,QT_NO_CAST_TO_ASCII,QT_XML_LIB,QT_GUI_LIB,QT_CORE_LIB,QT_THREAD_SUPPORT"
-                               GeneratePreprocessedFile="0"
-                               ExceptionHandling="1"
-                               RuntimeLibrary="1"
-                               BufferSecurityCheck="false"
-                               TreatWChar_tAsBuiltInType="false"
-                               RuntimeTypeInfo="true"
-                               AssemblerListingLocation="obj\"
-                               ObjectFile="obj\"
-                               ProgramDataBaseFileName=".\"
-                               WarningLevel="3"
-                               SuppressStartupBanner="true"
-                               DebugInformationFormat="3"
-                       />
-                       <Tool
-                               Name="VCManagedResourceCompilerTool"
-                       />
-                       <Tool
-                               Name="VCResourceCompilerTool"
-                               PreprocessorDefinitions="_WINDOWS,UNICODE,WIN32,QT_LARGEFILE_SUPPORT,QT_NO_CAST_FROM_ASCII,QT_NO_CAST_TO_ASCII,QT_XML_LIB,QT_GUI_LIB,QT_CORE_LIB,QT_THREAD_SUPPORT,_DEBUG"
-                       />
-                       <Tool
-                               Name="VCPreLinkEventTool"
-                       />
-                       <Tool
-                               Name="VCLinkerTool"
-                               IgnoreImportLibrary="true"
-                               AdditionalOptions="&quot;/MANIFESTDEPENDENCY:type=&apos;win32&apos; name=&apos;Microsoft.Windows.Common-Controls&apos; version=&apos;6.0.0.0&apos; publicKeyToken=&apos;6595b64144ccf1df&apos; language=&apos;*&apos; processorArchitecture=&apos;*&apos;&quot; &quot;/MANIFESTDEPENDENCY:type=&apos;win32&apos; name=&apos;Microsoft.Windows.Common-Controls&apos; version=&apos;6.0.0.0&apos; publicKeyToken=&apos;6595b64144ccf1df&apos; language=&apos;*&apos; processorArchitecture=&apos;*&apos;&quot;"
-                               AdditionalDependencies="c:\Qt\4.4.3\lib\qtmaind.lib c:\Qt\4.4.3\lib\QtXmld.lib c:\Qt\4.4.3\lib\QtGuid.lib c:\Qt\4.4.3\lib\QtCored.lib kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib winspool.lib msimg32.lib"
-                               OutputFile="debug\doxywizard.exe"
-                               SuppressStartupBanner="true"
-                               AdditionalLibraryDirectories="c:\Qt\4.4.3\lib"
-                               GenerateDebugInformation="true"
-                               ProgramDatabaseFile=""
-                               SubSystem="2"
-                               LargeAddressAware="2"
-                               LinkTimeCodeGeneration="0"
-                               RandomizedBaseAddress="1"
-                               DataExecutionPrevention="0"
-                       />
-                       <Tool
-                               Name="VCALinkTool"
-                       />
-                       <Tool
-                               Name="VCManifestTool"
-                       />
-                       <Tool
-                               Name="VCXDCMakeTool"
-                       />
-                       <Tool
-                               Name="VCBscMakeTool"
-                       />
-                       <Tool
-                               Name="VCFxCopTool"
-                       />
-                       <Tool
-                               Name="VCAppVerifierTool"
-                       />
-                       <Tool
-                               Name="VCPostBuildEventTool"
-                       />
-               </Configuration>
-               <Configuration
-                       Name="Release|Win32"
-                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-                       IntermediateDirectory="obj\"
-                       ConfigurationType="1"
-                       UseOfMFC="0"
-                       ATLMinimizesCRunTimeLibraryUsage="false"
-                       >
-                       <Tool
-                               Name="VCPreBuildEventTool"
-                       />
-                       <Tool
-                               Name="VCCustomBuildTool"
-                       />
-                       <Tool
-                               Name="VCXMLDataGeneratorTool"
-                       />
-                       <Tool
-                               Name="VCWebServiceProxyGeneratorTool"
-                       />
-                       <Tool
-                               Name="VCMIDLTool"
-                               WarningLevel="0"
-                               DefaultCharType="0"
-                               EnableErrorChecks="1"
-                       />
-                       <Tool
-                               Name="VCCLCompilerTool"
-                               AdditionalOptions="-Zm200 -w34100 -w34189 -Zm200 -w34100 -w34189 -w34100 -w34189"
-                               Optimization="2"
-                               AdditionalIncludeDirectories="&quot;..\..\..\Qt\4.4.3\include\QtCore&quot;,&quot;..\..\..\Qt\4.4.3\include\QtCore&quot;,&quot;..\..\..\Qt\4.4.3\include\QtGui&quot;,&quot;..\..\..\Qt\4.4.3\include\QtGui&quot;,&quot;..\..\..\Qt\4.4.3\include\QtXml&quot;,&quot;..\..\..\Qt\4.4.3\include\QtXml&quot;,&quot;..\..\..\Qt\4.4.3\include&quot;,&quot;..\addon\doxywizard&quot;,&quot;c:\Qt\4.4.3\include\ActiveQt&quot;,&quot;..\addon\doxywizard\moc&quot;,&quot;..\addon\doxywizard&quot;,&quot;.&quot;,..\..\..\Qt\4.4.3\mkspecs\win32-msvc2008"
-                               PreprocessorDefinitions="QT_NO_DEBUG,NDEBUG,_WINDOWS,UNICODE,WIN32,QT_LARGEFILE_SUPPORT,QT_NO_CAST_FROM_ASCII,QT_NO_CAST_TO_ASCII,QT_NO_DEBUG,QT_XML_LIB,QT_GUI_LIB,QT_CORE_LIB,QT_THREAD_SUPPORT,NDEBUG"
-                               GeneratePreprocessedFile="0"
-                               ExceptionHandling="1"
-                               RuntimeLibrary="0"
-                               BufferSecurityCheck="false"
-                               TreatWChar_tAsBuiltInType="false"
-                               RuntimeTypeInfo="true"
-                               AssemblerListingLocation="obj\"
-                               ObjectFile="obj\"
-                               ProgramDataBaseFileName=".\"
-                               WarningLevel="3"
-                               SuppressStartupBanner="true"
-                               DebugInformationFormat="0"
-                       />
-                       <Tool
-                               Name="VCManagedResourceCompilerTool"
-                       />
-                       <Tool
-                               Name="VCResourceCompilerTool"
-                               PreprocessorDefinitions="QT_NO_DEBUG,NDEBUG,_WINDOWS,UNICODE,WIN32,QT_LARGEFILE_SUPPORT,QT_NO_CAST_FROM_ASCII,QT_NO_CAST_TO_ASCII,QT_NO_DEBUG,QT_XML_LIB,QT_GUI_LIB,QT_CORE_LIB,QT_THREAD_SUPPORT"
-                       />
-                       <Tool
-                               Name="VCPreLinkEventTool"
-                       />
-                       <Tool
-                               Name="VCLinkerTool"
-                               IgnoreImportLibrary="true"
-                               AdditionalOptions="&quot;/MANIFESTDEPENDENCY:type=&apos;win32&apos; name=&apos;Microsoft.Windows.Common-Controls&apos; version=&apos;6.0.0.0&apos; publicKeyToken=&apos;6595b64144ccf1df&apos; language=&apos;*&apos; processorArchitecture=&apos;*&apos;&quot; &quot;/MANIFESTDEPENDENCY:type=&apos;win32&apos; name=&apos;Microsoft.Windows.Common-Controls&apos; version=&apos;6.0.0.0&apos; publicKeyToken=&apos;6595b64144ccf1df&apos; language=&apos;*&apos; processorArchitecture=&apos;*&apos;&quot;"
-                               AdditionalDependencies="c:\Qt\4.4.3\lib\qtmain.lib c:\Qt\4.4.3\lib\QtXml.lib c:\Qt\4.4.3\lib\QtGui.lib c:\Qt\4.4.3\lib\QtCore.lib kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib winspool.lib msimg32.lib"
-                               OutputFile="..\bin\doxywizard.exe"
-                               LinkIncremental="1"
-                               SuppressStartupBanner="true"
-                               AdditionalLibraryDirectories="c:\Qt\4.4.3\lib"
-                               IgnoreAllDefaultLibraries="false"
-                               IgnoreDefaultLibraryNames="libcmtd.lib"
-                               GenerateDebugInformation="false"
-                               ProgramDatabaseFile=""
-                               SubSystem="2"
-                               LargeAddressAware="2"
-                               LinkTimeCodeGeneration="0"
-                               RandomizedBaseAddress="1"
-                               DataExecutionPrevention="0"
-                       />
-                       <Tool
-                               Name="VCALinkTool"
-                       />
-                       <Tool
-                               Name="VCManifestTool"
-                       />
-                       <Tool
-                               Name="VCXDCMakeTool"
-                       />
-                       <Tool
-                               Name="VCBscMakeTool"
-                       />
-                       <Tool
-                               Name="VCFxCopTool"
-                       />
-                       <Tool
-                               Name="VCAppVerifierTool"
-                       />
-                       <Tool
-                               Name="VCPostBuildEventTool"
-                       />
-               </Configuration>
-       </Configurations>
-       <References>
-       </References>
-       <Files>
-               <Filter
-                       Name="Source Files"
-                       Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-                       >
-                       <File
-                               RelativePath="..\addon\doxywizard\doxywizard.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\expert.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\inputbool.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\inputint.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\inputstring.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\inputstrlist.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\src\version.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\wizard.cpp"
-                               >
-                       </File>
-               </Filter>
-               <Filter
-                       Name="Header Files"
-                       Filter="h;hpp;hxx;hm;inl;inc;xsd"
-                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-                       >
-                       <File
-                               RelativePath="..\addon\doxywizard\config.h"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\doxywizard.h"
-                               >
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\doxywizard.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\doxywizard.h -o moc\moc_doxywizard.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\doxywizard.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_doxywizard.cpp"
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration
-                                       Name="Release|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\doxywizard.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\doxywizard.h -o moc\moc_doxywizard.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\doxywizard.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_doxywizard.cpp"
-                                       />
-                               </FileConfiguration>
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\expert.h"
-                               >
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\expert.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\expert.h -o moc\moc_expert.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\expert.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_expert.cpp"
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration
-                                       Name="Release|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\expert.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\expert.h -o moc\moc_expert.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\expert.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_expert.cpp"
-                                       />
-                               </FileConfiguration>
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\helplabel.h"
-                               >
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\helplabel.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\helplabel.h -o moc\moc_helplabel.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\helplabel.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_helplabel.cpp"
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration
-                                       Name="Release|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\helplabel.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\helplabel.h -o moc\moc_helplabel.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\helplabel.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_helplabel.cpp"
-                                       />
-                               </FileConfiguration>
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\inputbool.h"
-                               >
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\inputbool.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputbool.h -o moc\moc_inputbool.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\inputbool.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_inputbool.cpp"
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration
-                                       Name="Release|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\inputbool.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputbool.h -o moc\moc_inputbool.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\inputbool.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_inputbool.cpp"
-                                       />
-                               </FileConfiguration>
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\inputint.h"
-                               >
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\inputint.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputint.h -o moc\moc_inputint.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\inputint.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_inputint.cpp"
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration
-                                       Name="Release|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\inputint.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputint.h -o moc\moc_inputint.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\inputint.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_inputint.cpp"
-                                       />
-                               </FileConfiguration>
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\inputstring.h"
-                               >
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\inputstring.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputstring.h -o moc\moc_inputstring.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\inputstring.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_inputstring.cpp"
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration
-                                       Name="Release|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\inputstring.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputstring.h -o moc\moc_inputstring.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\inputstring.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_inputstring.cpp"
-                                       />
-                               </FileConfiguration>
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\inputstrlist.h"
-                               >
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\inputstrlist.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputstrlist.h -o moc\moc_inputstrlist.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\inputstrlist.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_inputstrlist.cpp"
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration
-                                       Name="Release|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\inputstrlist.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputstrlist.h -o moc\moc_inputstrlist.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\inputstrlist.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_inputstrlist.cpp"
-                                       />
-                               </FileConfiguration>
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\version.h"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\wizard.h"
-                               >
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\wizard.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\wizard.h -o moc\moc_wizard.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\wizard.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_wizard.cpp"
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration
-                                       Name="Release|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="MOC ..\addon\doxywizard\wizard.h"
-                                               CommandLine="C:\Qt\4.4.3\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtCore&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtGui&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include\QtXml&quot; -I&quot;..\..\..\Qt\4.4.3\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I..\..\..\Qt\4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\wizard.h -o moc\moc_wizard.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\wizard.h;C:\Qt\4.4.3\bin\moc.exe"
-                                               Outputs="moc\moc_wizard.cpp"
-                                       />
-                               </FileConfiguration>
-                       </File>
-               </Filter>
-               <Filter
-                       Name="Generated Files"
-                       Filter="cpp;c;cxx;moc;h;def;odl;idl;res;"
-                       UniqueIdentifier="{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}"
-                       >
-                       <File
-                               RelativePath="config_lex.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="moc\moc_doxywizard.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="moc\moc_expert.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="moc\moc_helplabel.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="moc\moc_inputbool.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="moc\moc_inputint.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="moc\moc_inputstring.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="moc\moc_inputstrlist.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="moc\moc_wizard.cpp"
-                               >
-                       </File>
-                       <File
-                               RelativePath="rcc\qrc_doxywizard.cpp"
-                               >
-                       </File>
-               </Filter>
-               <Filter
-                       Name="Lex / Yacc Files"
-                       Filter="l;y"
-                       UniqueIdentifier="{E12AE0D2-192F-4d59-BD23-7D3FA58D3183}"
-                       ParseFiles="false"
-                       >
-                       <File
-                               RelativePath="..\addon\doxywizard\config.l"
-                               >
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="Lex ..\addon\doxywizard\config.l"
-                                               CommandLine="flex -Pconfig ..\addon\doxywizard\config.l &amp;&amp;   del config_lex.cpp &amp;&amp;   move lex.config.c config_lex.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\config.l;flex"
-                                               Outputs="config_lex.cpp"
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration
-                                       Name="Release|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="Lex ..\addon\doxywizard\config.l"
-                                               CommandLine="flex -Pconfig ..\addon\doxywizard\config.l &amp;&amp;   del config_lex.cpp &amp;&amp;   move lex.config.c config_lex.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\config.l;flex"
-                                               Outputs="config_lex.cpp"
-                                       />
-                               </FileConfiguration>
-                       </File>
-               </Filter>
-               <Filter
-                       Name="Resource Files"
-                       Filter="qrc;*"
-                       UniqueIdentifier="{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}"
-                       ParseFiles="false"
-                       >
-                       <File
-                               RelativePath="..\addon\doxywizard\doxywizard.qrc"
-                               >
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="RCC ..\addon\doxywizard\doxywizard.qrc"
-                                               CommandLine="C:\Qt\4.4.3\bin\rcc.exe -name doxywizard ..\addon\doxywizard\doxywizard.qrc -o rcc\qrc_doxywizard.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\doxywizard.qrc;C:\Qt\4.4.3\bin\rcc.exe"
-                                               Outputs="rcc\qrc_doxywizard.cpp"
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration
-                                       Name="Release|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="RCC ..\addon\doxywizard\doxywizard.qrc"
-                                               CommandLine="C:\Qt\4.4.3\bin\rcc.exe -name doxywizard ..\addon\doxywizard\doxywizard.qrc -o rcc\qrc_doxywizard.cpp&#x0D;&#x0A;"
-                                               AdditionalDependencies="..\addon\doxywizard\doxywizard.qrc;C:\Qt\4.4.3\bin\rcc.exe"
-                                               Outputs="rcc\qrc_doxywizard.cpp"
-                                       />
-                               </FileConfiguration>
-                       </File>
-                       <File
-                               RelativePath="..\addon\doxywizard\doxywizard.rc"
-                               >
-                       </File>
-               </Filter>
-       </Files>
-       <Globals>
-       </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?>\r
+<VisualStudioProject\r
+       ProjectType="Visual C++"\r
+       Version="9,00"\r
+       Name="doxywizard"\r
+       ProjectGUID="{77C9C2D3-EA3F-3D59-8B4C-0ED852890172}"\r
+       Keyword="Qt4VSv1.0"\r
+       TargetFrameworkVersion="131072"\r
+       >\r
+       <Platforms>\r
+               <Platform\r
+                       Name="Win32"\r
+               />\r
+       </Platforms>\r
+       <ToolFiles>\r
+       </ToolFiles>\r
+       <Configurations>\r
+               <Configuration\r
+                       Name="Debug|Win32"\r
+                       OutputDirectory="."\r
+                       IntermediateDirectory="obj\"\r
+                       ConfigurationType="1"\r
+                       UseOfMFC="0"\r
+                       ATLMinimizesCRunTimeLibraryUsage="false"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                               WarningLevel="0"\r
+                               DefaultCharType="0"\r
+                               EnableErrorChecks="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               AdditionalOptions="-Zm200 -w34100 -w34189 -Zm200 -w34100 -w34189 -w34100 -w34189"\r
+                               Optimization="4"\r
+                               AdditionalIncludeDirectories="&quot;$(QT_DIR)\include\QtCore&quot;,&quot;$(QT_DIR)\include\QtCore&quot;,&quot;$(QT_DIR)\include\QtGui&quot;,&quot;$(QT_DIR)\include\QtGui&quot;,&quot;$(QT_DIR)\include\QtXml&quot;,&quot;$(QT_DIR)\include\QtXml&quot;,&quot;$(QT_DIR)\include&quot;,&quot;..\addon\doxywizard&quot;,&quot;c:\Qt\4.4.3\include\ActiveQt&quot;,&quot;..\addon\doxywizard\moc&quot;,&quot;..\addon\doxywizard&quot;,&quot;.&quot;,$(QT_DIR)\mkspecs\win32-msvc2005"\r
+                               PreprocessorDefinitions="_WINDOWS,UNICODE,WIN32,QT_LARGEFILE_SUPPORT,QT_NO_CAST_FROM_ASCII,QT_NO_CAST_TO_ASCII,QT_XML_LIB,QT_GUI_LIB,QT_CORE_LIB,QT_THREAD_SUPPORT"\r
+                               GeneratePreprocessedFile="0"\r
+                               ExceptionHandling="1"\r
+                               RuntimeLibrary="1"\r
+                               BufferSecurityCheck="false"\r
+                               TreatWChar_tAsBuiltInType="false"\r
+                               RuntimeTypeInfo="true"\r
+                               AssemblerListingLocation="obj\"\r
+                               ObjectFile="obj\"\r
+                               ProgramDataBaseFileName=".\"\r
+                               WarningLevel="3"\r
+                               SuppressStartupBanner="true"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                               PreprocessorDefinitions="_WINDOWS,UNICODE,WIN32,QT_LARGEFILE_SUPPORT,QT_NO_CAST_FROM_ASCII,QT_NO_CAST_TO_ASCII,QT_XML_LIB,QT_GUI_LIB,QT_CORE_LIB,QT_THREAD_SUPPORT,_DEBUG"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               IgnoreImportLibrary="true"\r
+                               AdditionalOptions="&quot;/MANIFESTDEPENDENCY:type=&apos;win32&apos; name=&apos;Microsoft.Windows.Common-Controls&apos; version=&apos;6.0.0.0&apos; publicKeyToken=&apos;6595b64144ccf1df&apos; language=&apos;*&apos; processorArchitecture=&apos;*&apos;&quot; &quot;/MANIFESTDEPENDENCY:type=&apos;win32&apos; name=&apos;Microsoft.Windows.Common-Controls&apos; version=&apos;6.0.0.0&apos; publicKeyToken=&apos;6595b64144ccf1df&apos; language=&apos;*&apos; processorArchitecture=&apos;*&apos;&quot;"\r
+                               AdditionalDependencies="c:\Qt\4.4.3\lib\qtmaind.lib c:\Qt\4.4.3\lib\QtXmld.lib c:\Qt\4.4.3\lib\QtGuid.lib c:\Qt\4.4.3\lib\QtCored.lib kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib winspool.lib msimg32.lib"\r
+                               OutputFile="debug\doxywizard.exe"\r
+                               SuppressStartupBanner="true"\r
+                               AdditionalLibraryDirectories="c:\Qt\4.4.3\lib"\r
+                               GenerateDebugInformation="true"\r
+                               ProgramDatabaseFile=""\r
+                               SubSystem="2"\r
+                               LargeAddressAware="2"\r
+                               LinkTimeCodeGeneration="0"\r
+                               RandomizedBaseAddress="1"\r
+                               DataExecutionPrevention="0"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Release|Win32"\r
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+                       IntermediateDirectory="obj\"\r
+                       ConfigurationType="1"\r
+                       UseOfMFC="0"\r
+                       ATLMinimizesCRunTimeLibraryUsage="false"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                               WarningLevel="0"\r
+                               DefaultCharType="0"\r
+                               EnableErrorChecks="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               AdditionalOptions="-Zm200 -w34100 -w34189 -Zm200 -w34100 -w34189 -w34100 -w34189"\r
+                               Optimization="2"\r
+                               AdditionalIncludeDirectories="&quot;$(QT_DIR)\include\QtCore&quot;,&quot;$(QT_DIR)\include\QtCore&quot;,&quot;$(QT_DIR)\include\QtGui&quot;,&quot;$(QT_DIR)\include\QtGui&quot;,&quot;$(QT_DIR)\include\QtXml&quot;,&quot;$(QT_DIR)\include\QtXml&quot;,&quot;$(QT_DIR)\include&quot;,&quot;..\addon\doxywizard&quot;,&quot;c:\Qt\4.4.3\include\ActiveQt&quot;,&quot;..\addon\doxywizard\moc&quot;,&quot;..\addon\doxywizard&quot;,&quot;.&quot;,$(QT_DIR)\mkspecs\win32-msvc2008"\r
+                               PreprocessorDefinitions="QT_NO_DEBUG,NDEBUG,_WINDOWS,UNICODE,WIN32,QT_LARGEFILE_SUPPORT,QT_NO_CAST_FROM_ASCII,QT_NO_CAST_TO_ASCII,QT_NO_DEBUG,QT_XML_LIB,QT_GUI_LIB,QT_CORE_LIB,QT_THREAD_SUPPORT,NDEBUG"\r
+                               GeneratePreprocessedFile="0"\r
+                               ExceptionHandling="1"\r
+                               RuntimeLibrary="0"\r
+                               BufferSecurityCheck="false"\r
+                               TreatWChar_tAsBuiltInType="false"\r
+                               RuntimeTypeInfo="true"\r
+                               AssemblerListingLocation="obj\"\r
+                               ObjectFile="obj\"\r
+                               ProgramDataBaseFileName=".\"\r
+                               WarningLevel="3"\r
+                               SuppressStartupBanner="true"\r
+                               DebugInformationFormat="0"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                               PreprocessorDefinitions="QT_NO_DEBUG,NDEBUG,_WINDOWS,UNICODE,WIN32,QT_LARGEFILE_SUPPORT,QT_NO_CAST_FROM_ASCII,QT_NO_CAST_TO_ASCII,QT_NO_DEBUG,QT_XML_LIB,QT_GUI_LIB,QT_CORE_LIB,QT_THREAD_SUPPORT"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               IgnoreImportLibrary="true"\r
+                               AdditionalOptions="&quot;/MANIFESTDEPENDENCY:type=&apos;win32&apos; name=&apos;Microsoft.Windows.Common-Controls&apos; version=&apos;6.0.0.0&apos; publicKeyToken=&apos;6595b64144ccf1df&apos; language=&apos;*&apos; processorArchitecture=&apos;*&apos;&quot; &quot;/MANIFESTDEPENDENCY:type=&apos;win32&apos; name=&apos;Microsoft.Windows.Common-Controls&apos; version=&apos;6.0.0.0&apos; publicKeyToken=&apos;6595b64144ccf1df&apos; language=&apos;*&apos; processorArchitecture=&apos;*&apos;&quot;"\r
+                               AdditionalDependencies="c:\Qt\4.4.3\lib\qtmain.lib c:\Qt\4.4.3\lib\QtXml.lib c:\Qt\4.4.3\lib\QtGui.lib c:\Qt\4.4.3\lib\QtCore.lib kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib winspool.lib msimg32.lib"\r
+                               OutputFile="..\bin\doxywizard.exe"\r
+                               LinkIncremental="1"\r
+                               SuppressStartupBanner="true"\r
+                               AdditionalLibraryDirectories="c:\Qt\4.4.3\lib"\r
+                               IgnoreAllDefaultLibraries="false"\r
+                               IgnoreDefaultLibraryNames="libcmtd.lib"\r
+                               GenerateDebugInformation="false"\r
+                               ProgramDatabaseFile=""\r
+                               SubSystem="2"\r
+                               LargeAddressAware="2"\r
+                               LinkTimeCodeGeneration="0"\r
+                               RandomizedBaseAddress="1"\r
+                               DataExecutionPrevention="0"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+       </Configurations>\r
+       <References>\r
+       </References>\r
+       <Files>\r
+               <Filter\r
+                       Name="Source Files"\r
+                       Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
+                       >\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\doxywizard.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\expert.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\inputbool.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\inputint.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\inputstring.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\inputstrlist.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\src\version.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\wizard.cpp"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+               <Filter\r
+                       Name="Header Files"\r
+                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
+                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
+                       >\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\config.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\doxywizard.h"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="Debug|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\doxywizard.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\doxywizard.h -o moc\moc_doxywizard.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\doxywizard.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_doxywizard.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\doxywizard.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\doxywizard.h -o moc\moc_doxywizard.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\doxywizard.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_doxywizard.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\expert.h"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="Debug|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\expert.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\expert.h -o moc\moc_expert.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\expert.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_expert.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\expert.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\expert.h -o moc\moc_expert.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\expert.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_expert.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\helplabel.h"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="Debug|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\helplabel.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\helplabel.h -o moc\moc_helplabel.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\helplabel.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_helplabel.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\helplabel.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\helplabel.h -o moc\moc_helplabel.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\helplabel.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_helplabel.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\inputbool.h"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="Debug|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\inputbool.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputbool.h -o moc\moc_inputbool.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\inputbool.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_inputbool.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\inputbool.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputbool.h -o moc\moc_inputbool.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\inputbool.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_inputbool.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\inputint.h"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="Debug|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\inputint.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputint.h -o moc\moc_inputint.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\inputint.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_inputint.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\inputint.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputint.h -o moc\moc_inputint.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\inputint.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_inputint.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\inputstring.h"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="Debug|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\inputstring.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputstring.h -o moc\moc_inputstring.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\inputstring.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_inputstring.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\inputstring.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputstring.h -o moc\moc_inputstring.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\inputstring.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_inputstring.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\inputstrlist.h"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="Debug|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\inputstrlist.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputstrlist.h -o moc\moc_inputstrlist.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\inputstrlist.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_inputstrlist.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\inputstrlist.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\inputstrlist.h -o moc\moc_inputstrlist.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\inputstrlist.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_inputstrlist.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\version.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\wizard.h"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="Debug|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\wizard.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\wizard.h -o moc\moc_wizard.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\wizard.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_wizard.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="MOC ..\addon\doxywizard\wizard.h"\r
+                                               CommandLine="$(QT_DIR)\bin\moc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtCore&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtGui&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include\QtXml&quot; -I&quot;$(QT_DIR)\include&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;c:\Qt\4.4.3\include\ActiveQt&quot; -I&quot;..\addon\doxywizard\moc&quot; -I&quot;..\addon\doxywizard&quot; -I&quot;.&quot; -I$(QT_DIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 ..\addon\doxywizard\wizard.h -o moc\moc_wizard.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\wizard.h;$(QT_DIR)\bin\moc.exe"\r
+                                               Outputs="moc\moc_wizard.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                       </File>\r
+               </Filter>\r
+               <Filter\r
+                       Name="Generated Files"\r
+                       Filter="cpp;c;cxx;moc;h;def;odl;idl;res;"\r
+                       UniqueIdentifier="{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}"\r
+                       >\r
+                       <File\r
+                               RelativePath="config_lex.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\configdoc.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="moc\moc_doxywizard.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="moc\moc_expert.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="moc\moc_helplabel.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="moc\moc_inputbool.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="moc\moc_inputint.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="moc\moc_inputstring.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="moc\moc_inputstrlist.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="moc\moc_wizard.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="rcc\qrc_doxywizard.cpp"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+               <Filter\r
+                       Name="Lex / Yacc Files"\r
+                       Filter="l;y"\r
+                       UniqueIdentifier="{E12AE0D2-192F-4d59-BD23-7D3FA58D3183}"\r
+                       ParseFiles="false"\r
+                       >\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\config.l"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="Debug|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="Lex ..\addon\doxywizard\config.l"\r
+                                               CommandLine="flex -Pconfig ..\addon\doxywizard\config.l &amp;&amp;   del config_lex.cpp &amp;&amp;   move lex.config.c config_lex.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\config.l;flex"\r
+                                               Outputs="config_lex.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="Lex ..\addon\doxywizard\config.l"\r
+                                               CommandLine="flex -Pconfig ..\addon\doxywizard\config.l &amp;&amp;   del config_lex.cpp &amp;&amp;   move lex.config.c config_lex.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\config.l;flex"\r
+                                               Outputs="config_lex.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                       </File>\r
+               </Filter>\r
+               <Filter\r
+                       Name="Resource Files"\r
+                       Filter="qrc;*"\r
+                       UniqueIdentifier="{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}"\r
+                       ParseFiles="false"\r
+                       >\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\doxywizard.qrc"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="Debug|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="RCC ..\addon\doxywizard\doxywizard.qrc"\r
+                                               CommandLine="$(QT_DIR)\bin\rcc.exe -name doxywizard ..\addon\doxywizard\doxywizard.qrc -o rcc\qrc_doxywizard.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\doxywizard.qrc;$(QT_DIR)\bin\rcc.exe"\r
+                                               Outputs="rcc\qrc_doxywizard.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               Description="RCC ..\addon\doxywizard\doxywizard.qrc"\r
+                                               CommandLine="$(QT_DIR)\bin\rcc.exe -name doxywizard ..\addon\doxywizard\doxywizard.qrc -o rcc\qrc_doxywizard.cpp&#x0D;&#x0A;"\r
+                                               AdditionalDependencies="..\addon\doxywizard\doxywizard.qrc;$(QT_DIR)\bin\rcc.exe"\r
+                                               Outputs="rcc\qrc_doxywizard.cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\addon\doxywizard\doxywizard.rc"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+       </Files>\r
+       <Globals>\r
+       </Globals>\r
+</VisualStudioProject>\r
index 73d0724..f271f33 100644 (file)
@@ -44,7 +44,7 @@
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
-                               AdditionalIncludeDirectories="&quot;S:\xapian\xapian-core-1.2.8\include&quot;,..\qtools"\r
+                               AdditionalIncludeDirectories="&quot;$(XAPIAN_DIR)\xapian-core-1.2.8\include&quot;,..\qtools"\r
                                PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"\r
                                MinimalRebuild="true"\r
                                BasicRuntimeChecks="3"\r
@@ -67,7 +67,7 @@
                                AdditionalDependencies="qtools.lib xapian.lib uuid.lib rpcrt4.lib ws2_32.lib"\r
                                OutputFile="..\bin\doxyindexer.exe"\r
                                LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="&quot;S:\xapian\Debug&quot;;Debug"\r
+                               AdditionalLibraryDirectories="&quot;$(XAPIAN_DIR)\Debug&quot;;Debug"\r
                                GenerateManifest="false"\r
                                IgnoreAllDefaultLibraries="false"\r
                                IgnoreDefaultLibraryNames=""\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
-                               AdditionalIncludeDirectories="&quot;S:\xapian\include&quot;,..\qtools"\r
+                               AdditionalIncludeDirectories="&quot;$(XAPIAN_DIR)\include&quot;,..\qtools"\r
                                PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"\r
                                MinimalRebuild="true"\r
                                BasicRuntimeChecks="3"\r
                                AdditionalDependencies="qtools.lib xapian.lib uuid.lib rpcrt4.lib ws2_32.lib"\r
                                OutputFile="..\bin\doxyindexer.exe"\r
                                LinkIncremental="2"\r
-                               AdditionalLibraryDirectories="&quot;S:\xapian\Debug64&quot;;Debug64"\r
+                               AdditionalLibraryDirectories="&quot;$(XAPIAN_DIR)\Debug64&quot;;Debug64"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile=".\Debug64\$(TargetName).pdb"\r
                                SubSystem="1"\r
                                Name="VCCLCompilerTool"\r
                                Optimization="2"\r
                                EnableIntrinsicFunctions="true"\r
-                               AdditionalIncludeDirectories="&quot;S:\xapian\xapian-core-1.2.8\include&quot;,..\qtools"\r
+                               AdditionalIncludeDirectories="&quot;$(XAPIAN_DIR)\include&quot;,..\qtools"\r
                                PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
                                AdditionalDependencies="qtools.lib xapian.lib uuid.lib rpcrt4.lib ws2_32.lib"\r
                                OutputFile="..\bin\Release\doxyindexer.exe"\r
                                LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="&quot;S:\xapian\Release&quot;;Release"\r
+                               AdditionalLibraryDirectories="&quot;$(XAPIAN_DIR)\Release&quot;;Release"\r
                                GenerateManifest="false"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile=".\Release\$(TargetName).pdb"\r
                                Name="VCCLCompilerTool"\r
                                Optimization="2"\r
                                EnableIntrinsicFunctions="true"\r
-                               AdditionalIncludeDirectories="&quot;S:\xapian\include&quot;,..\qtools"\r
+                               AdditionalIncludeDirectories="&quot;$(XAPIAN_DIR)\include&quot;,..\qtools"\r
                                PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"\r
                                RuntimeLibrary="0"\r
                                EnableFunctionLevelLinking="true"\r
                                AdditionalDependencies="qtools.lib xapian.lib uuid.lib rpcrt4.lib ws2_32.lib"\r
                                OutputFile="..\bin\Release64\doxyindexer.exe"\r
                                LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="&quot;S:\xapian\Release64&quot;;Release64"\r
+                               AdditionalLibraryDirectories="&quot;$(XAPIAN_DIR)\Release64&quot;;Release64"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile=".\Release64\$(TargetName).pdb"\r
                                SubSystem="1"\r
diff --git a/winbuild/pack_the_distribution_for_windows.py b/winbuild/pack_the_distribution_for_windows.py
new file mode 100644 (file)
index 0000000..a1b6c19
--- /dev/null
@@ -0,0 +1,232 @@
+#! python2\r
+\r
+from __future__ import print_function\r
+\r
+import os\r
+import re\r
+import shutil\r
+import subprocess\r
+import sys\r
+import textwrap\r
+\r
+\r
+def gitSHA_date_time():\r
+    cmd = 'git rev-parse --short HEAD'\r
+    p = subprocess.Popen(cmd, stdout=subprocess.PIPE)\r
+    output = p.communicate()[0]\r
+    output = output.decode('ASCII')\r
+    p.wait()\r
+    sha = output.strip()\r
+\r
+    cmd = 'git show -s --format="%ci" ' + sha\r
+    p = subprocess.Popen(cmd, stdout=subprocess.PIPE)\r
+    output = p.communicate()[0]\r
+    output = output.decode('ASCII')\r
+    p.wait()\r
+    date = output.strip()\r
+    lst = date.split()               # string like '2013-06-21 09:23:47 +0200'\r
+    dstamp = lst[0].replace('-', '') # '20130621' for the date\r
+    tstamp = lst[1].replace(':', '') # '092347' for the time\r
+\r
+    return sha, dstamp, tstamp\r
+\r
+\r
+def getDoxygenVersion():\r
+    # ... from the VERSION file.\r
+    sdir, fname = getThisScriptPathAndName()\r
+    version_fname = os.path.join(sdir, '..', 'VERSION')\r
+\r
+    with open(version_fname) as f:\r
+        lst = f.readlines()\r
+\r
+    doxver = lst[0].strip()\r
+\r
+    m = re.match(r'^(?P<ver>[0-9.]+)(-(?P<date>\d{8}))?', doxver)\r
+    assert m\r
+    ver = m.group('ver')\r
+    return ver\r
+\r
+\r
+def getThisScriptPathAndName():\r
+    script_fname = os.path.realpath(__file__)\r
+    sdir, fname = os.path.split(script_fname)\r
+    return sdir, fname\r
+\r
+\r
+def getEmptyDistribDir():\r
+    # Get this script full path, name, and the script subdir name\r
+    # (for checking the location).\r
+    sdir, fname = getThisScriptPathAndName()\r
+    subdir = os.path.basename(sdir)\r
+    assert subdir == 'winbuild'\r
+\r
+    # The distribution directory will be a subdirectory of the "../__put"\r
+    # (created if it does not exist, not the part of the git repo).\r
+    target_dir = os.path.normpath(os.path.join(sdir, '..', '__put'))\r
+    if not os.path.exists(target_dir):\r
+        os.mkdir(target_dir)\r
+    assert os.path.isdir(target_dir)\r
+\r
+    # The distribution subdir is composed out of 'Doxygen-', version stamp,\r
+    # timestamp, and commit id (partial SHA). Ignore the date from the VERSION\r
+    # file, take the commit date.\r
+    ver = getDoxygenVersion()\r
+    sha, dstamp, tstamp = gitSHA_date_time()\r
+    dist_subdir = 'Doxygen-' + ver + '-' + dstamp + tstamp\r
+    dist_dir = os.path.join(target_dir, dist_subdir)\r
+    print(dist_dir)\r
+    if os.path.isdir(dist_dir):\r
+        print("Removing the existing '{}'".format(dist_dir))\r
+        shutil.rmtree(dist_dir)\r
+    assert not os.path.exists(dist_dir)\r
+    print("Creating the new '{}'".format(dist_dir))\r
+    os.mkdir(dist_dir)\r
+    assert os.path.isdir(dist_dir)\r
+\r
+    return dist_dir\r
+\r
+\r
+def copyBinaries(dist_dir, subdir):\r
+    '''Copy the Windows binaries (doxygen.exe only) to the dist_dir directory.'''\r
+\r
+    # Source file should exist.\r
+    sdir, fname = getThisScriptPathAndName()\r
+    src = os.path.normpath(os.path.join(sdir, '..', 'bin', subdir, 'doxygen.exe'))\r
+    assert os.path.isfile(src)\r
+\r
+    # Destination directory must not exist. It must be created first.\r
+    dst_dir = os.path.normpath(os.path.join(dist_dir, 'bin', subdir))\r
+    assert not os.path.isdir(dst_dir)\r
+    os.makedirs(dst_dir)\r
+\r
+    # Copy the file.\r
+    print("Copying '{}'".format(src))\r
+    shutil.copy2(src, dst_dir)\r
+\r
+\r
+def getBinariesZipBareName():\r
+    ver = getDoxygenVersion()\r
+    sha, dstamp, tstamp = gitSHA_date_time()\r
+    fname = 'doxygenw{}_{}.zip'.format(dstamp, ver.replace('.', '_'))\r
+    return fname\r
+\r
+\r
+def getTranslatorReportZipBareName():\r
+    ver = getDoxygenVersion()\r
+    sha, dstamp, tstamp = gitSHA_date_time()\r
+    fname = 'tr{}_{}.zip'.format(dstamp, ver.replace('.', '_'))\r
+    return fname\r
+\r
+\r
+def zipBinaries(distr_dir):\r
+    # Build the zip filename. It is to be located at the same level as distr_dir.\r
+    zip_bare_name = getBinariesZipBareName()\r
+    dst, distr_subdir = os.path.split(distr_dir)\r
+    zip_full_name = os.path.join(dst, zip_bare_name)\r
+\r
+    if os.path.isfile(zip_full_name):\r
+        print("Removing the existing '{}'".format(zip_full_name))\r
+        os.remove(zip_full_name)\r
+\r
+    # Change the working directory to destination directory and zip from\r
+    # there using the bare names so that the full path is not zipped inside.\r
+    wd = os.getcwd()\r
+    os.chdir(dst)\r
+    print("Zipping new '{}'".format(zip_full_name))\r
+    subprocess.call('zip -r {} {}'.format(zip_bare_name, distr_subdir), shell=True)\r
+    os.chdir(wd)  # back to the original working directory\r
+\r
+\r
+def buildAndZipTranslatorReport(distr_dir):\r
+    # Build the translator report zip filename. It is to be located at the same\r
+    # level as distr_dir.\r
+    zip_bare_name = getTranslatorReportZipBareName()\r
+    dst, subdir = os.path.split(distr_dir)\r
+    zip_full_name = os.path.join(dst, zip_bare_name)\r
+\r
+    if os.path.isfile(zip_full_name):\r
+        print("Removing the existing '{}'".format(zip_full_name))\r
+        os.remove(zip_full_name)\r
+    print("Zipping new '{}'".format(zip_full_name))\r
+\r
+    # Change the working directory to the doc one and generate\r
+    # the translator report.\r
+    sdir, fname = getThisScriptPathAndName()\r
+    docdir = os.path.join(sdir, '..', 'doc')\r
+    assert os.path.isdir(docdir)\r
+    wd = os.getcwd()\r
+    os.chdir(docdir)\r
+    subprocess.call('python translator.py', shell=True)\r
+\r
+    # Zip the generated translator_report.txt.\r
+    subprocess.call('zip -r {} {}'.format(zip_full_name,\r
+                                          'translator_report.txt'), shell=True)\r
+\r
+    os.chdir(wd)  # back to the original working directory\r
+\r
+\r
+def mailto():\r
+\r
+    # Information for the letter.\r
+    ver = getDoxygenVersion()\r
+    sha, dstamp, tstamp = gitSHA_date_time()\r
+    doxzipname = getBinariesZipBareName()\r
+    trzipname = getTranslatorReportZipBareName()\r
+\r
+    subject = 'Windows binaries available for {}-{} at SourceForge'.format(ver, dstamp)\r
+    subject = subject.replace(' ', '%20')\r
+\r
+    body = textwrap.dedent('''\\r
+        Hi,\r
+\r
+        If interested, you can download the doxygen binaries\r
+        compiled for MS Windows from\r
+\r
+          http://sourceforge.net/projects/doxygen/files/snapshots/doxygen-1.8-svn/windows\r
+\r
+        This is the place where you should find also the next\r
+        releases.  Name of the archive file is\r
+\r
+          {}\r
+\r
+        The related translator report can be found inside the directory\r
+\r
+          http://sourceforge.net/projects/doxygen/files/snapshots/doxygen-1.8-svn/translator_reports/\r
+\r
+        Name of the archive file is\r
+\r
+          {}\r
+\r
+        The binaries are NOT created automatically, so it may\r
+        happen that some newer sources were not compiled\r
+        because I am not present to do that or I forgot... ;)\r
+\r
+        Regards,\r
+            Petr\r
+\r
+        --\r
+        Petr Prikryl (prikryl at atlas dot cz)''').format(doxzipname, trzipname)\r
+    body = body.replace('\n', '%0d')\r
+\r
+    # Make the mailto URI and launch the mailer.\r
+    to_addr = 'doxygen-users@lists.sourceforge.net'\r
+    mailtoURI = 'mailto:%s?subject=%s&body=%s' % (to_addr, subject, body)\r
+    os.startfile(mailtoURI)\r
+\r
+\r
+if __name__ == '__main__':\r
+    # Create the empty directory for the distribution files.\r
+    dist_dir = getEmptyDistribDir()\r
+\r
+    # Copy the compiled binaries to the distribution directory and zip them.\r
+    copyBinaries(dist_dir, 'Debug')\r
+    copyBinaries(dist_dir, 'Debug64')\r
+    copyBinaries(dist_dir, 'Release')\r
+    copyBinaries(dist_dir, 'Release64')\r
+    zipBinaries(dist_dir)\r
+\r
+    # The translator report...\r
+    buildAndZipTranslatorReport(dist_dir)\r
+\r
+    # Launch the mailer with the generated message body.\r
+    mailto()
\ No newline at end of file