 |
Doxygen Release 1.2.18
Changes
- Running doxygen with the "-d Validate" option will activate a
new documentation parser. The parser will produce output for
Html, Latex, XML and RTF output (man page output still needs to be done).
For XML output this new parser will always be used.
Please try it and let me know if you see unexpected errors or
invalid output. This parser will replace the old one in the
next release.
The main advantages of the new parser are that it actually checks the
syntax of the documentation blocks and will produce valid output
by design.
For debugging purposes, adding "-d PrintTree" along
with "-d Validate" will let doxygen dump the abstract syntax tree of
each documentation block to the output in a pretty printed way
(this reflects the structure built-up by the parser).
- A number of new XML tags are introduced along with the new parser,
these include: umlaut, acute, grave, circ, tilde, szlig, cedil, ring
nonbreakablespace, toclist, tocitem, xrefsect, xrefdescription,
and xreftitle.
- Changed the way code fragments are represented in XML to simplify
validation.
- Changed the way \page, \section, and \subsection are handled in LaTeX
(and RTF).
-
\page now results in a section in latex (of the related pages chapter)
-
\section is now a subsection within that page section (used to be a
section, so at the same level as \page)
-
\subsection is now a subsubsection within a subsection (used to be a
subsection).
- Included a number of patches by Kristian Ede:
- Undocumented private friend classes no longer cause warnings
- Undocumented private classes no longer cause warnings
- Undocumented members are now hidden if they are
default constuctors, destructors or reimplemented.
- Pages introduced via \page are now context aware. This means that
if you put them inside a class or namespace, names do not have
to be prefixed with a full scope to create a link in the documentation.
- Boolean values in doxywizard can no longer be toggled by clicking
anywhere on the line on which they appear, but only by clicking on
the name or checkbox.
New features
- @deprecated is now treated as @todo, @test, and @bug, which means
that a list of all deprecated items is generated.
Thanks to Angela Marshall for the patch.
- Enum value documentation was added to the XML output.
- Files ending with ".inc" are now recognised as PHP files
(thanks to Marcus Ahlfors).
- Included updated documentation for language translators
(thanks to Petr Prikryl).
- Included language updates for Czech, Slovak, Brazillan, Croatian,
Portuguese, Russian, Polish, Japanese and Serbian.
Include language support for Catalan (thanks to Albert Mora)
- Included .dsp update by Simon Goodwin (already needs to be updated
again :-( )
- Added new configuration options XML_DTD and XML_SCHEMA to set the
DTD or Schema used in the XML output.
- Include new commands \subsubsection and \paragraph which add two
section level below \section and \subsection (thanks to
Dirk Reiners for the patch)
Bug fixes
- Fixed lock-up bug in RTF output when using tables.
- The internal comment conversion routine was confused by lines of the
form //*************
- Fixed recursive lockup for template arguments of the form
"typename A = ::A"
- Description part of @name did not (always) appear in the resulting
documentation.
- Alphabetic index showed package scope using "::" even when
OPTIMIZE_OUTPUT_JAVA was set to YES. The same happened for class and
namespace HTML page titles.
- New versions of dot (graphviz >=1.8.8) broke clickable images
for versions of doxygen <=1.2.17. Now fixed for newer doxygen
releases in a backwards compatible way thanks to a patch by John Ellson.
- Fixed compile problem for 64 bit machines (pointer to int cast).
- Included patch to build Doxygen 1.2.17 on AIX 4.3 by Russ Allbery
- \if ... \else ... \endif blocks now also work in //!< style comments.
- Fixed a couple of memory leaks in the code parser.
- Fixed case where member function was put in the member variable
section (thanks to Mahadevan R)
- Fixed bug causing link targets not to appear in the output.
- Setting BRIEF_MEMBER_DESC set to NO for a member that did not have
a detailed description while setting ALWAYS_DETAILED to YES caused the
documentation not to appear in the output at all.
- Fixed todo list linking problems for hyperlinked pdf output and
grouped pages.
- Putting a function declaration and its definition in the same group
could lead to wrong links using @ref.
- Undocumented but grouped members did not appear in the output.
- The declaration and definition of overloaded global functions
was not always properly matched, causing functions not to appear
in the documentation.
- Nested C-comments were confusing the preprocessor, causing it to
incorrectly skip comment blocks.
- An empty line was not always being recognized as a paragraph break
(thanks to Stephen Pope for the fix).
- An aliased \endif in a skipped section was not handled properly.
Doxygen Release 1.2.17
Changes
- XML: The index of the XML output now has @refid instead of @id's,
and includes a "kind" attribute for the compounds and members for easier
filtering.
- Improved dot image generation speed for large projects by changing
the way the best-fitting graph is computed (thanks to Philip Bergen
for the suggestion).
- @name now automatically starts a member group section (previously
a @{ command was needed). The member group continues until a new @name
command is found or until the end of a compound is reached. @{ ... @}
commands can still be used for backward compatibility or to end a member
group before the end of a compound. @defgroup and friends still require
explicit @{ ... @} blocks.
- Changed the way \todo, \bug, and \test are handled internally.
This should have no visible effect on the outside, but makes it much
easier to add similar commands and also saves a bit of memory on average.
New features
- Added initial support for parsing PHP code (thanks to a patch by
Jan Borsodi). For a PHP file the following additional commands are
available:
- \private
- makes the current item private
- \protected
- makes the current item protected
- \public
- makes the current item public
- \privatesection
- changes to private section(same as private: in C++)
- \protectedsection
- changes to protected section(same as protected: in C++)
- \publicsection
- changes to public section(same as public: in C++)
- \static
- changes the current item to static
- \pure
- changes the current item to pure virtual
- New command @copydoc that can be used to copy a documentation block
of some item and paste it in another documentation block.
- i18n: Added support for the Serbian language (thanks to Dejan Milosavljevic).
Included a new language option Japanese-en for combined Japanese
and english.
- Included patch for dealing with variable argument macros in @param
(thanks to Alfred Heggestad).
- Added new option MULTILINE_CPP_IS_BRIEF to make doxygen treat
a multi-line brief comment block as a brief description. Set this to
YES to obtain the behaviour of version 1.2.15 and earlier. Default as
of version 1.2.16 is to treat multi-line C++ comment block as a
detailed description.
- New option CHM_FILE to set the .chm file (and path) to use for
Html Help output.
- New option HHC_LOCATION to set the location of the Html Help compiler.
If given doxygen will automatically run the compiler to create the
.chm file.
- Included .dsp & .dsw files to build doxygen from DevStudio in the
wintools dir. Thanks to Simon Goodwin for providing these.
- Included new command $year that can be use in header and footer
files to produce the current year (thanks to Michael Beck for the patch).
Bug fixes
- Fixed lock-up bug when writing RTF output with verbatim sections.
- The tree view showed entries in C++ style even if OPTIMIZE_OUTPUT_JAVA
was set to YES.
- Documentation blocks for function arguments in a documented header
file did not show up if the function definition was parsed first.
- Inheritance relations in Java where not always correctly resolved if
the base class was explicitly scoped.
- Fixed some non-standard conformance issues in the HTML output (thanks to
John Levon for the patch).
- Usage relations for variables whose type was a qualified typedef were
not properly resolved.
- Fixed potential crash bug (null-pointer dereference) in source browser
parser.
- Comment blocks ending with an empty /// comment line were not
properly handled by the comment conversion code.
- @relates is no longer needed for a friend function documented in
the source file (thanks to Johan Eriksson for the fix).
- Doxygen could link include files to non-existing source files, if they
pointed to external files but were also found in the include path.
- "make install_docs" was broken.
- Fixed parse bug for conversion operators of the form "operator ::X*()"
- XML output fixes:
- derivedcompoundref was not terminated properly.
- innerpage and innergroup were closed twice.
- Removed auto-generated section titles from the detailed descriptions
in the XML output.
- para tags in simple section in the XML output were not properly matched
- PDF output fixes:
- Fixed pdflatex reruns in the Makefile when USE_PDFLATEX was YES. It
should now run the proper amount of times (thanks to Simon Goodwin
for the fix).
- Links to items in the bug list were broken for the PDF output.
- Fixed bug in PDF output that resulted in links to non-existing
source pages.
- Fixed bug in URL parsing that caused invalid PDF output for the
doxygen manual.
- Doxygen logo did not appear in the PDF manual.
- RTF output fixes/improvements by Janet Swisher,
Gordon Machel & Martin Vuille:
- Included fix for loading RTF style-sheets
- reference list and title were merged
- First word of company name was lost.
- Main page title was not substituted.
- There were two pages numbered "i" in the document.
- Added a heading to the table of contents page.
- Depending on the order in which things are
documented, there were extra, empty paragraphs
thrown in.
- Added a number of debugging comments
and changed some existing ones to make it easier
to relate the comment in the RTF to the name of
the method that generates it.
- operator|() caused invalid entries in the latex index.
- Fixed bug parsing URLs with curly braces in documentation blocks.
- Html help output now uses the correct language code if non english
language is selected.
- Fixed bug in generate makefile for latex output (thanks to Petr
Prikryl)
- Fixed source browser bug: a comment just before a function body
confused the parser.
- Fixed problem handling function typedefs.
- \endif appeared in output when used via ALIASES in a brief description.
- Included heuristic to distiguish between a variable definition
with initialization via a constructor and a function prototype
(e.g. "Test var(initVal);", v.s. "Test func(SomeType);").
- Fixed lock-up problem when to @brief were put after each other in a
comment block.
- Images for include dependency graphs were unclickable.
- Members in source fragments and examples were not linked to their
member group documentation if available.
- For initializers of the form ' ', the space was removed in the output.
- \dotfile generated files did not get generated correctly because dot
could not find the specified font.
- Third argument of \class did not always work.
- The pattern argument for the @skip, @skipline, @until and @line commands
now extents until the end of the line (as suggested by the documentation)
instead of just the first word.
Doxygen Release 1.2.16
Changes
- Verbatim and preformatted sections
are now represented with a new "preformatted" tag in the XML output.
- The HIDE_UNDOC_RELATIONS option is no longer depending on
HAVE_DOT being set to YES.
- A dot is only added after a brief description if it starts
with a capital (thanks to Ondrej Jombik for the patch).
- Doxygen now treats blocks of C++ comments such as
//! Detailed
//! Description
as a detailed description
(such blocks used to be treated as brief descriptions!).
A single line C++ comments still represents a brief description,
for multiline brief description an explicit @brief can be used.
See the updated documentation for more examples.
- XML: Added class name to inheritance relations that are written to the
XML output.
- Images included with \dotfile are now centered in the latex output
(thanks to Nils Strom for the patch).
New features
- Included language update for Slovene.
- CGI_URL now allows URLs that start with cgi: (for KDE KIO slave support)
- Made include dependency graphs available from the XML parser API.
- Added patch to support multi-byte RTF output (thanks to Sato Ryunosuke)
- Gary Lee added language support for Chinese-Traditional.
- Thanks to a patch by Loïc the RTF output now supports (non-nested)
tables.
- Added compilation support for cygwin (win32-g++ target).
Thanks to Ryunosuke Sato for the patch.
- Added new option DETAILS_AT_TOP to put the detailed documentation
at the top of a documentation page where normally only the brief
descriptions would be shown (based on a patch by Elliott Hughes).
- XML: Added member template parameters to the XML output.
Bug fixes
- Improved portability of the png code: updated zlib to version 1.1.4,
replaced K&R style code by ansi code, fixed compile problem with
pngenc.cpp on some platforms.
- Fixed recursive lock-up problem that could occur for certain cases
in which recursive template inheritance was used.
- The cross-package inheritance relations were broken for Java code.
I fixed this by treating Java import statement as C++ using statements.
Please report any problems that remain.
- Alias commands put in separate parameter documentation blocks
were not resolved.
- The documentation for arguments, documented with a seperate
documentation block, was not consistently shown in source and header
files, depending on the order of the input files.
- The characters '(', ')', '$', ''', and ';' were not recognised
as part of an URL.
- Grouped enum values could not share the same documentation block
even when DISTRIBUTE_GROUP_DOC is YES.
- The end caption tag was missing a closing > in the XML output.
- Fixed bug with table captions in XML output.
- Removed warning when documenting include guard-like defines.
- The \package command was broken. Fixed cases where :: appeared in
the output when OPTIMIZE_OUTPUT_JAVA was set to YES.
- Fixed scoping problem using \class for documenting nested classes inside
template classes.
- Fixed invalid output bug when putting "-" items inside @arg or @li
lists.
- Fixed problem referencing functions using {@link ... } with explicit
argument lists.
- Fixed bug when parsing "typedef struct{}TypeName;" (i.e. without
a space before the struct).
- Fixed argument matching bug for global functions having undocumented
classes, imported via using declarations, as their parameter type.
- Fixed bug in conditional section handling for cases like:
@if guard text @else more text @endif
- The html help files did not honour the HTML_FILE_EXTENSION settings.
- Removed bogus warning when using @param for function-type
parameters.
- Include statements in the source browser output now link to the
right include file in case of ambiguities.
- The include lines in the file documentation didn't link to files that
were imported from tag files.
- The include dependency graph did not show include files if they
were directly or indirectly imported from tag files. Existing tag
files need to be regenerated to make use of this.
- XML: The refid of members in listofallmembers section in the XML output
was wrong. The ulink tag did not end properly in the XML output.
The Value of ambiguityscope in the XML output was not properly escaped.
LaTeX page reference texts appeared in the XML output.
- Included language update for Brazilian.
- Doxygen now treats "const int *" and "int const *" (i.e. with
reordered const) as equivalent types.
- The preprocessor now avoids recursive includes, which helps
to parse files that do not have proper #ifndef-#define .. #endif guards.
- Matching arguments with types "unsigned long int" and
"unsigned long int blah" removed argument name.
Same for "int" and "const int blah".
- Fixed LaTeX output bug that occurs when using \dotfile in combination
with USE_PDFLATEX = YES (thanks to Nils Strom for the patch).
- Links to static functions in the documentation, now point to the
local file in case of ambiguities.
- Comments of the form /*/**/ confused the source browser.
- Fixed bug parsing "class C : public ::C {};" inside a namespace.
- Fixed bug in tag file reader when parsing includes.
- The include dependencies were wrong if an include file name was part of
the input but the #include specifically asked for another file
not part of the input but with the same name.
Doxygen Release 1.2.15
Changes
New features
- Included language update for Russian and Romanian translations.
- EPS images included with "\image latex" are automatically converted
to pdf's when USE_PDFLATEX is set to YES.
- Added two new commands: LATEX_CMD_NAME and MAKEINDEX_CMD_NAME to
set the name of the latex and makeindex tools to be used for latex
output (thanks to Konno Akihisa for the patch).
- Improved support for Java. Packages are now treated like
C++ namespaces and there is a new option OPTIMIZE_OUTPUT_JAVA
that, when enabled, provides more Java-oriented output. Please
report any Java-related problems that remain.
- Extended XML parser API (see addon/doxmlparser/include/doxmlintf.h)
with full access to documentation blocks.
Made inheritance/collaboration diagrams accessible via the
XML parser API (see addon/doxmlparser/include/doxmlintf.h).
Reorganised the internals of the XML parser so the API does
not require destructors. Made the parser more portable (it should
compile with gcc and M$ visual C++ now).
Bug fixes
- Using "@param x,y,z" resulted bogus warnings about undocumented
parameters.
- "doxygen -w latex header.tex doxygen.sty Doxyfile" caused a segmentation
fault (thanks to Aric Cyr for the patch).
- Fixed argument matching problem that occurred in some rare cases
that involved "using" of namespaces.
- Using /**< Brief.\ more brief. Details. */ with ENABLE_JAVADOC = YES,
now removes the slash just like it did with /**...*/ style comments.
- Using an ordered, html-style list inside a @param command
resulted in invalid output if list item contained blank lines.
- STRIP_FROM_PATH now also works with Windows style paths
(e.g. C:\MyPath\)
- A module can now appear more than once in the module tree
(thanks to Itai Frenkel for the patch).
- In some cases the tree view showed leaf elements as non-leafs.
- Fixed a number of cases where illegal characters could end up in
the XML output.
- If a function in a base class was (re)implemented by serveral classes
only one of them appeared in the "(re)implemented in" list.
- graph_legend.gif was hardcoded in translator_*.h files.
Note to translators: this has affected all translator files, so please
update your local translator file!
- In some cases a grouped member within a namespace did not appear
in the group's documentation.
- Namespace members were not properly cross-referenced with in the
source browser output.
- Using directives inside anonymous namespaces had no effect.
- Fixed bug in the preprocessor when parsing '"' as the argument to
a function macro.
- The argument of commands like \c did not produce a link to
external documentation if possible, while links to local
documentation were generated.
Doxygen Release 1.2.14
Changes
New features
Bug fixes
- The start of a comment (/*) embedded in a page or example block
caused parse problems.
- operator%= member caused latex error when in pdf hyperlink mode.
- fixed parse problem for global function typedefs like "typedef int f()"
- Qt slots weren't included in the reference/referenced by relations
(thanks to Gordon Machel for the patch).
- Fixed parse problem that occurred when the <SUP> tag was used in
a brief description.
- Private members sometimes showed up in the all member list even though
EXTRACT_PRIVATE was NO.
- Doxygen now exits with code 0 if there is no error (previously it
returned 1 in some cases were no error occurred).
- Calling "doxygen -g -" now writes the config file to stdout
(this already worked when using "doxygen -g-").
- Undocumented classes exposed when setting EXTRACT_ALL to YES, could
result in broken links in the class hierarchy.
- Exception specifications in Java were not parsed properly.
- If INLINE_INHERITED_MEMB was YES, pure vitual members of base classes
reachable via multiple paths appeared more than once in the
documentation.
- Removed potential recursive loop when computing reimplements relations
for template instances.
- Fixed argument matching problem when matching "a<int *>" with
a<int * >"
- Links in the documentation of grouped namespace members were not
pointing to the group but to the namespace.
- For template specializations the title of an html page contained
plain < and > characters.
- When computing source references undocumented members could introduce
non-existing relations for documented members in front of it.
- Fixed escaping problem in Makefile generated for latex output.
- File names were sometimes prefixed for undocumented classes in the
class hierarchy.
- When computing the list of all members, interface members are now
treated as virtual.
- Protected members of a base class did not appear as such in the list of
all members of derived classes.
- Fixed problem with ending itemized lists before paragraph commands
(like @see), which resulted in invalid output.
- The version number in config files generated by doxywizard was
always 0.1.
- Having a macro function and typedef with the same name confused doxygen.
- An \endverbatim command at the end of a \name section was not parsed.
- Stars (*) at the start of a line in /**< ... */ style comments
after a parameter were included in the result.
- Putting a C-style comment in a @code block was not handled properly.
Doxygen Release 1.2.13.1
Bug fixes
- Links to grouped members were broken.
- The Module index was broken in HTML and subgroups were still not
sorted properly.
- Selecting a non-default language was not possible in doxywizard
(thanks to Heiko Schaefer for the patch).
- Ending a dash-style list was not possible by starting a new paragraph
anymore.
- Fixed "exceptions" tag mismatch in the XML output.
- extern "C" blocks inside source files incorrectly included header files
during preprocessing.
- Compiling doxywizard on Unix with Qt-3.x didn't work because
libdoxycfg was linked with qtools from Qt-2.x.
- Fixed potential memory corruption when generation the graphical class
hierarchy (nodes were deleted more than once).
New features
- Added support for multi-method declarations such as: int func1(),func2();
- Included updated DTD for validating the XML output produced by doxygen,
thanks to Angelo Hulshout.
- Included support for Japanese-ShiftJIS translation,
thanks to Ryunosuke Sato.
- Included update for Slovak translator, thanks to Stanislav Kudlac.
- Thanks to a patch by Pascal Flammant tables in the documentation
can now have captions using <caption> ... </caption>
within a table definition.
- A dash-style list can now be ended without ending the paragraph.
See the list-section of the documentation for an example.
Doxygen Release 1.2.13
Changes
- Changed the way @internal works. The "For internal use only" message,
now appears (along with the internal documentation)
if and only if INTERNAL_DOCS = YES.
- Subgroups are no longer sorted but presented in declaration order.
- Members inside todo/test/bug lists are now shown with qualified
names again.
- Reorganized the XML parser. It is now structured as a library,
a header file, and a test application. See addon/doxmlparser for
details.
New features
- Included languages updates for French, Portuguese,
Korean, Italian, Dutch, Slovene, Brazil, German and Portuguese.
Thanks to Harry Kalogirou doxygen now has support for output in
the Greek language.
- Included patch by Adam Doppelt to make doxysearch work
better with windows/IIS.
- Added more info to the XML output: include dependencies,
member groups, re-implement relations, const/volatile specifiers,
namespace info, related pages, inner classes, inner namespaces.
- Added some logic to deal with member specializations.
They should now be added as additional members to a class instead of
being ignored and producing a warning.
- Thanks to a patch by Bruce Korb, author of
autogen, doxygen now
has output support for producing autogen definition files. To do
this set GENERATE_AUTOGEN_DEF to YES in the config file.
- The \relates command can now be used for macros as well.
- New option INLINE_INHERITED_MEMB which can be enabled to include all
directly and indirectly inherited members inside the
documentation of a class as if they were real members (inspired by
a patch sent by Ted Drain).
- Added option EXTRACT_LOCAL_CLASSES which can be used to show
or hide classes and structs defined in source files.
- Thanks to an install script written by David Greig, the windows
version of doxygen now comes with a windows installer based on
Jordan Russell's
Inno Setup.
Bug fixes
- Fixed potential bogus link in the references list.
- Auto detection of idl files was broken.
- Preprocessor did not parse hexadecimal values correctly.
- Fixed XML output problem (too many </highlight> tags).
- Documentation for nested classes inside other nested classes was
not written to the output.
- Fixed problem mixing paragraph commands (like \param) with
hyphen-style lists.
- Modules index in LaTeX was broken.
- STRIP_FROM_PATH now works for windows-style paths as well.
Thanks to Joël Conraud for the patch.
- For functions whose declaration was grouped and whose definition
contained a documentation block with a todo/test/bug item,
the item did not appear in the todo/test/bug list.
- In the source browser output, the "=" in variable initializers
was outputted as "==".
- Fixed parse problem for typedefs of function pointers returning
a template instance.
- Fixed bug in parsing method pointer function arguments of the
form "void f(void (C::*m)() const)"
Doxygen Release 1.2.12
Changes
- Improved the speed of the todo/test/bug list generation considerably.
- The list of all members of a class now shows for each member,
the class in which the member is defined.
- Rewrote a substantial part of the source code parser
(SOURCE_BROWSER = YES). It is now more context sensitive and
will generate more/better links.
New features
- Added new option HIDE_UNDOC_RELATIONS that can be set to NO to show
any undocumented inheritance and usage relations from the various
graphs.
- Included updates for translations to Chinese (thanks to Charlie Liu)
Slovene (thanks to Matjaz Ostroversnik), Russian
(thanks to Alexandr Chelpanov), Czech (thanks to Petr Prikryl)
and Croatian (thanks to Boris Bralo). Included Petr's translator
adapter simplifications. Included Latin2 patch by Mitja Udovc.
- Updated the graph legend page.
- Added option REFERENCES_RELATION that can be enabled in combination
with SOURCE_BROWSER to produce for each function
a list of all called/used members/functions/variables.
The reverse list can now be enabled/disabled using the
new REFERENCED_BY_RELATION option.
- Added native support for typedefs of the form
"typedef void (__stdcall *name)()", where __stdcall can be any
identifier.
- Included a patch by Stephen Goudge which adds an option
EXAMPLE_RECURSIVE to indicate whether or not example files should
be searched recursively.
- Included patch by Erik Zeek to add EOL translation to the
config file output.
- Doxygen now searches the current directory for source files if
the INPUT and FILE_PATTERNS are empty (thanks to Johan Eriksson
for ideas and code)
- Reference to/referenced by information is now included in the XML
output.
Bug fixes
- Fixed more RTF problems and added an RTF integrity check that
is performed on the generated RTF output (bracket matching).
- Refined the macro detection in the preprocessor a little, so it does
not match constructors and functions so easily.
- the % prefix didn't work for scoped items.
- References to groups defined in tag files did not work.
- documentation for classes inside namespaces was generated multiple
times.
- Running doxytag on qt-3.0.0 resulted in a tag file containing
non-breakable spaces.
- The \package statement did not work correctly for packages whose name
contained a dot.
- Fixed Parser bug for java initializers of the form = "\"/*";
- Fixed LaTeX output problem when using \par followed by a (-) list.
- Fixed LaTeX output bug in the related page index.
- Commands inside a conditional section would still appear in the
result even if the section was disabled.
- Included idea by Roberto Bagnara to make running "make" in the LaTeX
output autodetect how many times latex has to be run.
- Included a patch by Johan Eriksson to fix a link problem in the
"list of all member" for grouped members.
- Fixed potential crash when \todo was used without arguments.
- The HIDE_UNDOC_CLASSES option did not work correctly for template
instances when set to YES.
- \line, \skipline and \until introduced too many new lines.
- Doxygen did not parse "struct {} typedef S;" correctly.
Doxygen Release 1.2.11.1
Changes
- Included update for Slovak translation (thanks to Stanislav Kudlac)
Bug fixes
- Fixed RTF output bugs.
- When preprocessing was disabled, the input was truncated for sources
containing CR's (i.e. sources edited on Windows).
- Syntax highlighting C-style comments was broken.
- Links to members in undocumented groups were broken.
- Deep class hierarchies caused "nested too deep" error in LaTeX output.
- providing one documentation block for grouped, related members did
not work.
- Documentation pages for documented classes nested inside
undocumented classes or namespaces were not generated.
Doxygen Release 1.2.11
Changes
- Undocumented friend class declarations now link to their class
if documented.
- Undocumented template classes (and other "used" types)
are now shown in the collaboration diagram.
- Changed the look of the various indices (file/class/namespace/...)
in the HTML output.
New features
- The source browser option now generates links to (documented)
globals and fields. Especially useful for C code.
- Input containing CR+LF (DOS/Windows) or CR only (Mac) are now
automatically converted to LF.
- New config option SKIP_FUNCTION_MACROS that when set to YES
(the default) makes doxygen's preprocessor automatically remove all
function macros that are alone on a line and do not end with a
semicolon. These are typically used as boiler-plate code and
confuse the parser if not removed.
- Added class collaboration and inheritance diagram descriptions
to the XML output. Also added source browser output for each file.
- Added a developers part to the manual, with some information on
how doxygen is structured internally.
Bug fixes
- Using HIDE_UNDOC_MEMBERS=YES and ENUM_VALUES_PER_LINE=1 resulted in
blank lines in the HTML-output.
- "friend class A::B" caused a bogus warning.
- Fixed problem generating tag files for the Qt-3.0.0 beta releases.
- Fixed parameter list layout problem in the HTML output.
- Fixed some (all?) compile problems on Solaris.
- Class hierarchy was not correct if a template class inherited from
a template argument, which was also a documented class.
- When substituting template arguments, default values of
template arguments were not substituted themselves.
- Fixed a number of XML output bugs (thanks to Christian Hammond).
- Fixed bug parsing character literals.
- Fixed bug in RTF output (bracket mismatch).
- Inializer of the last enum value of an enum did not always appear.
- Dots were removed from return types in Java.
- In some cases a broken "More..." link was generated after
a brief class description.
- Text of a section title containing was truncated if it contained an
asterix.
- Fixed crash bug when filtering CR+LF's from input (thanks to Petr
Prykril).
- Fixed generated makefile dependencies for USE_PDFLATEX = YES
(thanks to Marcus Holland-Moritz)
- "\retval #VALUE" now links to VALUE if documented. The same works
for \exception and \throws
(and since the argument is a class no # is needed).
- Sorting the alphabetical list was broken for nested classes.
Doxygen Release 1.2.10
New features
- Relations between templates and their instances are now visualized
in the inheritance and collaboration graphs. Can be disabled
by setting TEMPLATE_RELATIONS to NO in the config file.
- A Java package can now be documented using a comment block containing a
@package command or by putting a documentation block in front of a
package statement.
- Added new command \dotfile which can be used to include a user
specified dot file as an image in the documentation. The new config
option DOTFILE_DIRS should be used to specify directories in which
doxygen should look for dot files (thanks to Samit Basu for the patch).
- Added new build target macosx-c++ to build doxygen for Mac OS X
(Thanks to Jason Harris for telling me what needed to be changed).
- Added --enable-langs option to the configure script which can be used
to compile-in support for a specified set of languages (thanks to
Vitaly Repin for the patch).
- Included update for Russian & Italian translation.
- Included translator.pl update received from Petr.
Bug fixes
- Fix compile problem for the Irix compiler (thanks to Dirk Reiners)
- Some generated &nsbp; entities where missing a ; in the HTML output.
For some browsers this resulted in argument types & names being
glued together.
- The heading of parameter and return value lists was not bold anymore in
the HTML output.
- "Reimplemented to/from" member links now work between template base
classes and their derived classes.
- Not all documented templates class were regarded as documented
(unless EXTRACT_ALL was set to YES).
- Fixed recursive lock-up problem for recursive templates of the form:
template<class T> class A : public A<typename T::B> {}
- The labels in the alphabetical list were broken when namespaces were
used.
- An error was given for import statements in Java sources.
- The "list of all members" was no longer generated for nested classes.
- Fixed bug in XML output causing mis matched <para> tags.
- Fixed parse problem for enum initializers like: "enumVal = A<T,C>::val"
- \hideinitializer did not hide the initializer of enum values.
- Undocumented enums and enum values now behave correctly when
HIDE_UNDOC_MEMBERS is set to YES.
- Fixed a problem with using \if inside alias definitions.
- Fixed & changed the layout of function arguments a little.
- Typedef struct{}Name was not parsed properly without adding more spaces.
- Static initializer blocks were not properly parsed in Java classes.
- Members of an unnamed namespace are now treated as static, and will
only appear in the documentation if EXTRACT_STATIC is set to YES.
- Classes are sorted by their name, i.s.o. full scope again.
- Improved argument matching for members defined within (nested)
namespaces.
Doxygen Release 1.2.9.1
Changes
- Bug/test/todo items of members are now grouped
together with their compound.
New features
- Added three new conditional commands: \ifnot, \else and \elseif
(thanks to Fabian Cenedese).
Bug fixes
- The .spec file still assumed the --with-xmlgen switch was available.
- Template instances caused double entries in the class list
(in LaTeX) and broke RTF output.
- \if and \endif can now be used to make structural commands like
\brief, \ingroup, and \defgroup conditional.
- The "const" in "func(B * const)" was parsed as a variable name.
- Template specializations of the form A<N::C> where not handled
properly.
- Putting \relates in a function documentation block that was
within a namespace, while referring to another namespace did not work.
- Doxywizard always complained it could not read the config file.
- Doxywizard did not properly update boolean and integer values.
- Fixed recursive lock-up problem when recursive templates were used.
- LaTeX output was broken when PDF_HYPERLINKS was enabled and templates
were used.
- Private friends were hidden even though friends have no access control.
- Argument matching was sensitive to spaces in some cases.
- Bug/test/todo item in class members did not always result in the
generation of the list.
Doxygen Release 1.2.9
Changes
- Friend class declarations are now treated as normal members.
- Completely rewrote the way templates are handled.
Doxygen now (internally) computes all template instances it encounters.
This has the following advantages:
- Template instances are now shown in the hierarchical index
and in all class diagrams in a uniform way.
- The list of all members is now correct for classes deriving
from a template.
Since there is a lot of new code, some more testing won't hurt
to mature the code. If you are using templates, please try this
version for me and report any problems.
- Started moving the XML output generator back into doxygen.
As a result the GENERATE_XML option has reappeared.
- Function arguments names are now nicely aligned in the generated
HTML output. Thanks to Joe Bester for doing most of the work.
New features
- Added GNU install tool auto detection to the configure script.
- Included update for French translation (thanks to Xavier Outhier)
Olexij Tkatchenko has added support for the Ukrainian language.
Included update for Portuguese and Brazillian.
- Added --docdir option to the configure script.
- Using the non-commercial version of Qt for windows, it is now
possible to build doxywizard for windows.
- Made preprocessor parse error messages somewhat more informative.
Bug fixes
- Image references to dot images were broken in the RTF output
(thanks to Henning Moll for the fix).
- Linebreaks are now done with \par instead of \line in the RTF
output (thanks to Henning Moll).
- Removed bogus warnings when parsing tag files.
- The detailed description in a @name block can now be more than
plain text.
- Included fix for the tree view script for the mozilla browser
(thanks to Alec Panovici).
- Grouping members with the same signature but with a different scopes
is now possible.
- Related functions could not be grouped.
- MAN_LINKS option was broken (fixed by Patrick Ohly).
- Including a file with \include in LaTeX caused the leading text
to appear in a smaller font size.
- Improved the documentation and spec file (thanks to Jens Seidel).
Fixed some typos in the docs. Thanks to Wouter Slegers.
- JavaDoc style links such as @{link #var} and @{link #var label}
now work.
- "doxygen -g -s" now creates a file named Doxyfile i.s.o "-s"
- Fixed a null pointer referencing problem (thanks to Nick Pratt)
- 8-bits characters are now correctly handled within the argument
of \b, \c or \e.
- Reimplemented links were broken for grouped members (thanks to
Johan Eriksson for the fix).
- Enabling the Tree view didn't result in proper RTF and LaTeX output
(thanks to Paul Sydney for the fix).
- Merged patches by Joe Bester:
- Could not link to @anchors in the main page on external packages.
- All external modules and pages were linked to or appended
(even the TODO page, etc), even when EXTRACT_ALL is set to NO.
- The section containing structs and unions is labeled
"Class Documentation" (in the English translation) even when
the OPTIMIZE_OUTPUT_FOR_C was set to YES.
- using the IDL keyword "import" in other languages did not work
correctly.
- members of a privately inherited base class were not shown in the
list of all members, while they were accessible from the derived class.
- Reworked part of the template handling. Doxygen should now be
capable of handling nested template classes correctly. Please test
this if you are using these contructs. Thanks to Christoph Koegl
for providing some difficult test cases.
- Fixed parse problem when parsing << as part of the first
argument of a typedef.
- Further improved typedef resolution.
- The LATEX_HEADER-config option disabled the \mainpage-output
(thanks to Eric Reinhart for the fix).
- Merged a patch by Erik Zeek, to allow compilation under BCB5
- Spaces in arguments of preprocessor macros were not treated properly.
- Fixed argument matching bug that caused doxygen to treat
f(type t) and f(type_t t) as the same function.
"void func(const ::A)" was interpreted as "void func(const::A)",
where "const" would have to be a class name.
- static file members were not auto-linked even if EXTRACT_STATIC was set
to YES.
Doxygen Release 1.2.8.1
Changes
- Enum values of a grouped (with @ingroup) enum are now automatically
added to the same group.
New features
- Included update for Brazilian translation.
- Add support for < > & ' "
in the documentation,
since these commands after occur in Java documentation.
Bug fixes
- Parameters appeared in the documentation for undocumented
arguments (and twice if they were also documented with @param).
- Specifying boolean tags twice in the config file resulted in
an invalid value (both boolean values were appended).
- Fixed a number of typos (thanks to Jens Seidel).
- When a paragraph header was directly followed by an
item list doxygen did not render the first item properly.
- The "More..." link was often omitted for grouped members.
- "dangerous" characters like ":" are now escaped from man page
file names
Doxygen Release 1.2.8
Changes
- Doxygen now uses a more natural naming scheme for man pages.
- Man page and rtf output are now disabled by default.
New features
- The dot generated inheritance and collaboration graphs for classes
should now show the proper template instantation for the derived/used
classes. For instance it should show that class S uses class V
(indirectly) in the following example:
class V {};
template<class T> class U1 { T *m_t; };
template<class T> class U2 { U1<T> *m_t; };
template<class T> class B1 { U2<T> *m_t; };
template<class T> class B2 : public B1<T> {};
class S : public B2<V> {};
Please report any example of class hierarchies that are not shown
properly.
- Added doc/translator.pl script created by Petr Prikryl.
Its main purpose is to extract information from doxygen's sources
related to internationalization (i.e. the translator classes), to
avoid duplication of information (i.e. doc/language.doc is now
generated) and to generate reports about the status of the translations
(e.g. missing methods).
- Stanislav Kudlac added support for Slovak language and
Erik Søe Sørensen added support for Danish.
Applied language updates for
Italian, Croatian, Spanish, Czech, German & Russian.
- Added support for "KBD" HTML tags (thanks to Albin Wu).
- Added man patch by Patrick Ohly which allows to create freestyle
man pages using \page and puts man page with non-default extension
in the correct directory.
- Added MAN_LINKS option (thanks to Patrick Ohly for the patch).
- Added grouping patches by Patrick Ohly:
There are now three commands to define a group:
\defgroup name title
\addtogroup name [title]
\weakgroup name [title]
\defgroup must be used exactly once for a group, so you should
provide a title. Without the title you will get a warning and
doxygen will use the name as title (this is the old behaviour).
/** \addtogroup name */
can be used to add documentation or
members to a group (as in 1.2.7), but the group is created if
it doesn't exist yet. You can provide the title later
with another block:
/**
* \addgroup name title
* documentation
*/
Setting different titles will trigger a warning without overwriting
the title once more.
\weakgroup is exactly the same as \addtogroup, but if a member
is put into such a group with \weakgroup name @{ @}
and into
another group with \[def|addto]group @{ @} , then it will be
placed into the other group without issuing a warning.
Actually there is a four-level hierarchy for grouping with
(from strongest to weakest) \ingroup, \defgroup, \addtogroup,
\weakgroup. You will get warnings when putting members into
groups with commands of the same level, but only when you really
document this member. This will not trigger a warning and put
variable a into Group1:
/** \addtogroup Group1 */
/*@{*/
/** this is the real group */
extern int a;
/*@}*/
/** \addtogroup Group2 */
/*@{*/
extern int a;
/*@}*/
Bug fixes
- Fixed a bug in the LaTeX output generation (empty lists).
- Doxygen can now distiguishing f(const A) from f(const B)
even though they match from a syntactical point of view.
- A template base class that is actually an inherited template
argument of the derived class is no longer shown in the output
indices and hierarchies.
- TOC_EXPAND could result in a broken tree view
(patch by Alexandr Chalpanov).
- If a base class had member names which has the same name as enumerator
values in a derived class, the enumerator values did not show up in
the documentation (thanks to John Harris for reporting this).
- Applied a number of patches sent by Jens Seidel.
- Fixed compiler limit problem on Windows (thanks to Trevor Robinson).
- Add -dBATCH in system calls to ghostscipt (needed for formulas)
to avoid a command prompt for newer versions of ghostscript
(thanks to Marvin Wolfthal).
- In some situations doxygen wanted to write a files containing a \n.
- Environment variables can now also be used for non-string values
in the config file, like for example QUIET = $(QUIET_ON)
- Fixed a number of typo's in the docs (thanks to Philippe Lhoste &
Jens Seidel).
- Inheritance through typedefs within a namespace did not yield the
correct inheritance diagram.
- References to anchors in grouped members or pages were not
correctly resolved.
- Fixed a problem with argument matching for arguments that contained
classes imported via a using declaration.
Doxygen Release 1.2.7
Changes
- The configgen tool is now replaced by a more dynamic parser. This
will allow future output generators to add specific options without
changing or recompiling the doxygen engine. Doxywizard has also been
updated to use this new parser. Developers that wish to add new
configuration options, please look at Config::create() in src/config.l
- Changed the way the translators work internally (thanks to Petr
Prikryl for ideas and code) and updated the documentation regarding
language support and maintenance. Users of languages other than
English will get a warning message if the translation for their
language is not up to date.
- Did some internal cleaning up to make things
more consistent and easier to maintain. Please let me know if you
think something has been broken in the process.
- Doxygen now uses a more unique output file name mangling scheme, which
generates unique file names even if entity names (like class names)
only differ in case.
- Setting ALLEXTERNALS = NO now hides external pages in the page index.
New features
- \image is now supported for RTF output (thanks to Joe Ninety).
- New RTF_EXTENSIONS_FILE that can be used to configure the RTF output
(thanks to Joe Ninety for the patch).
- Added new command \htmlinclude that can be used to include a
HTML file as is in the HTML documentation.
(thanks to Uwe Wojak for the patch)
- can now be put in the documentation to force a
non-breakable space.
- Included support for the gcc extension #include_next
(thanks to Jac Goudsmit for the patch).
- Included translation for Brazilian Portuguese sent by Fabio Jun
Takada Chino. Add update for the Czech translation
(thanks to Petr Prikryl). Also included updates for German
(thanks to Jens Seidel), Russian (thanks to Alexandr Chelpanov) and
Croatian (thanks to Boris Bralo).
- Added RPM spec file update by Jens Seidel.
- Added SHORT_NAMES option which can be set to YES to make doxygen
generate short (but non-informative) output file names.
- Added new command \addtogroup that can be used to extend a group
defined with \defgroup with extra members and/or documentation.
Bug fixes
- Inline sources weren't appearing for undocumented non-inline members.
- Doxygen did not subgroup in case the parent group was
found after the child group. (thanks to Johan Eriksson for the patch
that fixes this).
- Specifying a directory at the INPUT that ends with a \ did not
make doxygen recurse the down the directory tree in Windows.
- Fixed two small bugs that caused segfaults on
NetBSD and Linux on 64bit Alpha's (thanks to Rex McMaster
and Ovidiu Toader).
- "Referenced by" section now starts at a new paragraph
(thanks to Joe Ninety).
- Setting OPTIMIZE_OUTPUT_FOR_C still produced some C++-ish
sentences for the list of all struct/union fields.
- Undocumented friend functions were listed as friend classes.
- A CORBA IDL union with a switch was not always recognised correctly.
- doxygen did not handle try-function-blocks with multiple catch clauses
properly.
- \bug and co. were not working for static members.
- Formulas weren't correctly re-generated when changed.
- relative include paths containing /../ were not linked, since they
were not normalized.
- Locally included files where not searched in the directory containing
the file that did the inclusion, only in the paths specified with
INCLUDE_PATH.
- Fixed problem with numbers in the generated eps file for non-english
systems (thanks to Vsevolod Novikov).
- Generated bookmarks in the RTF output not starting with a letter caused
problems (thanks to Jonathan Beaupre for the fix).
- Putting å in the docs wasn't working as expected.
- Fixed a number of typo's in the docs (thanks to Jens Seidel and
Philippe Lhoste).
- Autolinking could create links inside user defined HTML links.
- Email addresses in the docs starting with an "a" and put inside sharp
brackets were not properly displayed (thanks to Abramo Bagnara for
the fix).
- Fix several man page output bugs (thanks a patch by Patrick Ohly).
Doxygen Release 1.2.6
Changes
- The \bug command now works like the \todo and \test commands; each item
documented with \bug will be cross-referenced with a bug list. The list
can be disabled by setting GENERATE_BUGLIST to NO in the config file.
New features
- Included updates for Croatian, Czech and German,
Japanese, Italian and Russian translations.
- Added option GENERATE_CHI that can be used to control whether
or not an .chi file should be generated by the HtmlHelp compiler
(default is NO).
- Added option DOT_CLEANUP that when set to NO leaves the intermediate
dot files in the output directory.
- Added option BINARY_TOC to enable/disable use of a binary table of
contents in a .chm file (thanks to Martin Slater for the patch).
- Added option TOC_EXPAND to when enabled shows the members of a
group in the treeview and HTML help table of contents (thanks again
to Martin Slater).
- Included group support for man page output (thanks to Joe Bester for
the patch).
- Added option SHOW_USED_FILES that can be used to disable the
list of used files normally generated at bottom of the documentation
of classes and structs (thanks to Joe Bester).
- Updated the doxbar tool:
- the addin no longer requires administrator privileges to work
(thanks to Michael Beck)
- the existance of files is now checked (thanks to Pekka Pessi).
- .odl and .inl files are recognised (thanks to Pekka Pessi).
Bug fixes
- doxygen.css was also used by the treeview even if the user specified
his/her own stylesheet.
- Inline source blocks (INLINE_SOURCES=YES) were sometimes truncated
at the wrong closing bracket (thanks to Jac Goudsmit for the fix).
- Some references to subsections were not correctly generated
(thanks to Stefan Ruppert for the fix).
- Fixed IDL union parse problem (thanks to Richard Hash).
- Latex output sometimes contained $\ast$ for code fragments.
- lonely *'s were not removed inside a <pre> and <code> blocks.
- Applied patch sent by Joe Bester to make the treeview
javascript work with Mozilla. Still has some problems though.
- Fixed a bug in code parser regarding string detection, inside
the argument list of a function.
- Using a command alias starting with \class (or other structural
commands) did not give the expected result.
- A function pointer returned as the template argument of a template
class that itself is the return type of a function was not
parsed properly.
- In IDL, typedef's followed by an attribute list where not parsed
properly.
- The list of all members now shows all privately accessible members
if EXTRACT_PRIVATE is set to YES, instead of just the non-inherited
private members.
- Fixed autolink problem for grouped members.
- Mutliple static global functions with the same name (but in different
files), which were forward declared, could make doxygen put
the wrong documentation block at the wrong global function.
- Support for Norwegian was not enabled.
- The correct charset is now set when the treeview is used (thanks to
Boris Bralo).
- For inline source fragments of member functions, the types
of the arguments are now also taken into account for
cross-referencing.
- A sentence ending with a dot, directly followed by a \n was not
handled correctly.
- File reference extracted from a tag file could something cause
doxygen to generate a bogus warning.
- Parsing large arrays of hex numbers took very long when the source
browser was enabled.
- Fixed install rule in the Makefile
- Doxygen now parses try-function-blocks correctly.
- A zero initialized function pointer inside a namespace was
misinterpreted as a pure virtual function.
- Applied Joe Bester's patch that fixes some LaTeX output problems.
- Java Package info was not correctly read from a tag file.
- Todo items in the documentation of grouped members were not
correctly referenced from the todo list.
- Removed bogus "a" entries from appearing in doxysearch's search results.
- Putting <a href="..."><img src="..."></a> in the
docs will now work as expected for HTML.
- Fixed problems with >pre>...>/pre> block in LaTeX.
- Putting ç in the docs now preduces a c-cedille.
Doxygen Release 1.2.5
Changes
- Split up doxygen into a library and an executable part,
and moved the XML generation part to a separate front-end
(see addon/xmlgen).
- Having SOURCE_BROWSER set to YES does not automatically
imply that a member is documented.
- Typedefs of classes are now shown in (dot) inheritance graphs with
their typedef name instead of the resolved name.
- Upgraded Qt files to 2.2.3 to fix some compile issues.
New features
- Added initial support for Java. The parsing of Java code
should be ok. There is a new "packages" index, with a list
of all parsed Java packages, each of which can be documented
(but not yet in the Java way using package.html) and contains
links to the interfaces and classes in the package. The code
parser still needs work (It doesn't do much cross-referencing yet).
Also any explicit package scope for classes is basically ignored,
so you cannot have two classes with the same name in different
packages.
Let me know if you know of other improvements.
- Added support for the Java style of linking (using
{@link package.object#item()} as syntax)
- Added file, compound and namespace members to the treeview index.
- New configuration option MAX_INITIALIZER_LINES that can be
used to control when/if the initial values of variable and defines
are shown in the documentation.
- OPTIMIZE_OUTPUT_FOR_C flag that when set to YES makes doxygen produce
output that looks more natural for C programmers.
- Included Czech language update sent by Petr Prikryl.
- Added "Binary TOC=YES" and "Create CHI file=YES" to the HtmlHelp
project file for better integration with MSDN.
- I've updated the doxbar tool:
- sources are appended to the INPUT line of the template config file
- sources mentioned in the .dsp with quotes (i.e. "c:\bla.cpp") are now
handled properly (thanks to Robert Radtke for the fix).
Bug fixes
- Fixed 0-pointer bug that could crash doxygen in some cases.
- Starting a list in a brief JavaDoc-style description splitted
the list into two invalid parts if a list item ended with a dot.
- Fixed a problem with linking to grouped class members.
- Indenting of code fragment in LaTeX output was not always correct.
Also for code lines starting with a * the * was removed.
- Typedefs where not properly extracted from tag files.
- Links to operators in a "See also" section did only work if the
arguments list was given.
- Fixed parse bug in the code parser for the case where "<"
and ">" were found on a line but couldn't possibly be a
template scope.
- The "More..." links was incorrect for members of class grouped
with @ingroup.
- Fixed preprocessor parse bug that occurred when parsing string
literal "...\\" as an macro argument.
- Fixed buffer overflow problems when parsing very long input lines
(thanks to Arnault Bonafos).
- References to pages and anchors imported via tag files did not work.
- Local references to page anchors did not work.
- Windows only: doxygen leaked process handles while running dot
(thanks to Jeroen ter Hofstede for the fix).
- Undefining (with #undef) a define set using PREDEFINED now
longer has an effect.
- Functions appeared twice in modules if the prototype and definition
did not match exactly.
- the word "operator" in todo items caused problems.
- Fixed some more problems with references to external pages,
local references to sections, and naming conflicts with multiple
todo/test lists.
- "char a:1, b:2" resulting in output including both bitfields for b.
- The protection level of the members in the all-member list was not
always correct.
- Fixed some typos in the Dutch and German translations.
- \todo's in the docs of #define did not end up on the todo list.
- "typedef volatile struct {} name;" was not handled properly.
- HTML header and footer file are now read only once.
- Fixed 2 memory leaks.
Doxygen Release 1.2.4
Changes
New features
Bug fixes
- If source files were put in the input before header files, the
declaration against definition matching did not work for
global functions (thanks to Frank Warmerdam for reporting this).
- The template argument type and name of template functions
were not separated by a space.
- A comma separated list of member reference variables (like int &i,&j;)
was not parsed correctly.
- Removed bogus warning when excluding non-existent files or directories
- Fixed problem parsing nameless bit padding fields.
- Fixed a pointer bug in the XML generation that could crash doxygen.
- The code parser did not cross-reference functions inside namespaces
and nested classes.
- Only the first member of a member group was shown in a group
definition.
- REPEAT_BRIEF = NO now works for class, namespace and file documentation
as well.
- No macro-expansion was done on a file that was #include'd in a body
of a class or enum.
- Fixed macro concatenation bug in the preprocessor.
- Global functions that were \ingroup'd could appear twice in a group
in some cases.
- % and & can now be used in the URL in the documentation.
- \c,\e and \b now also generate a link if they have the name of a
documented file as their argument.
- Made the FILTER_SOURCE_FILES actually do something
(it was always treated as enabled).
- Fixed two bugs in the autolist feature (thanks to Ken Wong)
- Fix macro expansion bug in the preprocessor, when macro's
where used as the argument of an #include.
- // did not work inside the argument of a \todo or \test command.
- Doxygen did not parse arrays of function pointers properly.
- Fixed parse bug for templates with nested template arguments.
- Fixed parsing problem for template arguments
containing << or >> operators
- Fixed some problems with the DOT_PATH config option on windows.
- Group title and file names are now shown in the latex index instead
of the label names.
- Portability: Added workaround for SGI MipsPro compiler, that
(hopefully) prevents it from crashing while compiling doxygen.
Worked around a number of compile problems with HP's C++ compiler.
- Fixed problem with doxygen calling epstopdf.bat in Windows.
- Fixed some problems that occurred when regenerating the
doxygen manual on Windows.
- Fixed some output formatting problems regarding templates.
- Global functions, typedefs, and enums did not get linked when
were read in via a tag file.
- Using /* inside an \code ... \endcode block confused the parser.
Doxygen Release 1.2.3
Changes
- enum values are now packed in groups of 4 in the declaration part
of the HTML docs.
-
JAVADOC_AUTOBRIEF is now set to NO by default, because too many
people expect the JavaDoc-style to behave as the Qt-style and
not in the way described in the JavaDoc spec.
- The distribution now includes the part of Qt-2.2.0 that is needed for
compilation of doxygen, doxytag, and doxysearch. I've also created the
missing files for Windows. This allows compilation of doxygen on systems
without X11 or the full Qt. For doxywizard Qt-2.2.x is still required
however.
New features
- Support for the Slovene language (thanks to Matjaz Ostroversnik)
- Bit fields for struct members are now shown in the documentation.
- Enabled "favourites" and "Full text-search" for the generated
HTML Help browser files.
- Added support for M$-IDL properties. The "methods:" section
now also works.
- Added support for Borland C++ builder "__published:" and "__property:"
sections. (__published: is just treated as public:).
- Included update for the Czech language. Thanks to Wang Weihan there is
also support for Chinese output now.
- Added a config option
WARN_LOGFILE to log warnings to a
file for those
people that have to use certain "operating systems" that do not support
redirection of stderr to file.
- Added a config option
GENERATE_LEGEND that can be used to disable the
legend page normally generated for explaining dot graphs.
- Thanks to a patch send by Micha Bieber, doxygen can now be run from
inside doxywizard.
- Environment variables can now be used in the
@INCLUDE_PATH
and @INCLUDE tags in the config file (thanks to Stephen
Goudge).
- Windows compilation/installation instructions are updated (thanks to
Petr Prikryl)
- New config tag
ENUM_VALUES_PER_LINE to set the number of
enum values
that are grouped on one line (default=4).
- #include's inside the body of a class are now expanded.
- The source browser files can now by filtered using the
INPUT_FILTER if FILTER_SOURCE_FILES is set
to YES (thanks to Paul Strauss).
Bug fixes
- For #foo in member documentation doxygen was trying to find
a global variable named foo instead of a member. Use ::foo
to make an explicit link to a global variable in case there is
also a member named foo.
- A bullet list ending with a \par sometimes caused the paragraph to
be indented.
- When
STRIP_CODE_COMMENTS was set to NO, and /*!< .. */ style
comments were used, the code parser got out of sync with the
documentation parser.
- (Hopefully) fixed some Solaris compile problems
(thanks to John Sturton).
- documentation for private slots appeared in the documentation even
though
EXTRACT_PRIVATE was set to NO.
- \relates was not working for nested classes or classes defined
within a namespace.
- namespace alias support was broken with respect to inheritance
relations containing aliased namespace names.
- The documentation of members that are put into a
group (with \ingroup) is now removed from the natural
container of the member. Also the links are now corrected.
- Links from the code parser to static global functions are
now always pointing to the correct file (thanks to Bill Soudan
for the patch).
- Fixed HTML bug in non-indexed namespace member lists.
- Using `:' inside ID's caused problems for some
XML parsers. I'm now using "__" instead. Also removed @ from appearing
in the output when annonymous compounds were used.
- Fixed output bug that is caused by nesting paragraph commands
inside autolists.
- Doxygen no longer generates source files for input files that
end with .doc or .txt
- Fixed argument matching problem that could result in parameter name
changes for overloaded functions. Also fixed buglet for
matching things like "unsigned int" against "unsigned int name"
- Fixed qtools compile problem with ./configure --english-only problem
- Putting documentation between the class and its body now also works
if the class has base classes.
- Fixed parse problem for const function pointers like
"int* (* const name)(long);"
- Slightly changed the HTML output to work around display "bugs" in
Konquerer and Opera (thanks to Achim Spangler).
- Examples in compress HTML help of doxygen's manual has absolute links.
Doxygen Release 1.2.2
Changes
- Verbatim headers are now also created if a documented header
file does not contain a struct or class (unless VERBATIM_HEADERS = NO
of course).
- For member groups, where only the first member is documented, that
documentation is no longer automatically copied to all other
members of the group. You can still enble this by setting
DISTRIBUTE_GROUP_DOC to YES in the config file.
- The \mainpage block now gets its own chapter in Latex/RTF
New features
Bug fixes
- RTF output was broken w.r.t. dot generated images.
- Spacing and blanks inside <pre> ... </pre> block were not
properly preserved.
- Fixed lock-up when parsing "enum A { A };"
- If INLINE_INFO was set to NO an empty property list could be put after
the function definitions.
- Fixed source code linking for the following cases:
A::func().func2()
and a[2]->func() .
- \em %className did not remove the %
- In some cases namespace members ended up multiple times in the
documentatation.
- Fixed a bug in the auto list generation.
- \latexonly inside brief description did not work properly.
- "Referenced By" list did not include constructors with
inline initializers.
- ä and such were not parsed when used as the argument of a section.
- A struct inheriting from a base class was marked as private inheritance
while it should be public inheritance.
- The autobreak routine for long return types was sometimes skipping
characters.
- Class usage relations should now also appear in the collaboration
diagrams for classes within the same namespace, without explicitly
having to mention the namespace.
Doxygen Release 1.2.1
Changes
- I have completely rewritten the \todo code. Now a \todo command have a
paragraph as argument. The todo list has a header for each
item indicating where the todo item was found. The todo list (and
all todo items) can be disabled by setting GENERATE_TODOLIST to NO.
- <pre> ... </pre> blocks now behave as in plain HTML instead of
\code ... \endcode blocks. This also works for LaTeX ofcourse.
These blocks differ from \verbatim ... \endverbatim blocks in that
commands can be used inside these blocks.
New features
Bug fixes
- Running ghostscript on Windows for generating formulas was done
asynchronously, resulting in ghostscript trying to access temporary
files that may already have been deleted by doxygen. Thanks to Robert
Golias for the code to fix this.
- Include dependency graphs failed to get included in LaTeX because
\includegraphics did not like the dots in the generated file names.
Those dots are now escaped by underscores.
- The \remark did not end a brief description in JavaDoc comments,
resulting in a error in the generated LaTeX.
- "
operator >> " was not matched against
"operator>> "
- the (required) space after \addindex ended up in the LaTeX index,
causing all generated entries to be placed after the user added entries.
- "
typedef class A<B> a; " is now correctly handled in inheritance
relations.
- Fixed some typos in the manual
-
\c Class::func(arg) was not autolinked.
- Doxygen stopped reading from stdin after 4096 bytes.
- In code fragments no autolinks for local variables or
dereferenced arguments were generated for template classes.
- autolinking to a namespace member foo from within a class scope also
having a member foo did not work.
- The brief description was prepended before \todo and \test.
The reference from the todo and test lists back to the documentation
did not work for overloaded members.
- specifying width or height for \images was not handled properly.
(width and height were repeated). Now you can also use commands like
\textwidth as the width or height.
- After expanding an environment variable in the config file, the
next environment variable was searched starting at the wrong position.
- Fixed LaTeX/RTF labelname collisions between members of files and
groups, and between classes and groups with the same name.
- HTML image map partly appeared in RTF output when built-in class
diagrams were used causing the RTF file to be truncated.
- Inheritance relation was not determined correctly in case a base
class was imported from another namespace via a using declaration.
- Todo and test items defined with \class or related block, where
sometimes missing from The todo & test
- Preprocessor: Multi-line #define's where not properly parsed & colored
on windows due to \r's
- Preprocessor: expansion of
M(x)A , where M is a macro
that expands to mx, resulted in
"mxA ", instead of "mx A "
- Fixed compile problem with Qt-2.2.0beta1
Doxygen Release 1.2.0
Changes
-
CASE_SENSE_NAMES is now enabled by default.
- In LaTeX
.eps images are now included using the
graphicx package instead of epsfig to simplify the use of pdflatex
(thanks to Pier Giorgio for showing me how that works).
- Reimplemented the
system() call for Unix, so doxygen becomes
interruptable when calling external tools such as dot.
- Changed the way
-w works. It can now also be used to generate
template header and footers.
New features
- Grzegorz Kowal added support for the Polish language. His patch
is now included.
- A
\par command without title argument can now be used to
add a new paragraph with the same indent under the heading of
another command (such as \par , \param ,
\note , etc...)
- Added a legend page explaining the various arrows and box colorings
for the class diagrams generated by dot.
- Merged update for Croatian language.
- Relative paths are now also allowed for the
STRIP_FROM_PATH tag.
- Added a new section to the manual explaining the use of tag files
in more detail. Also move the contents of the INSTALL file into
the "installation" section of the manual.
- Added
ps_2on1 and pdf_2on1 targets to the
Makefile generated in the
LaTeX directory. These can be used to generate manual with 2
logical pages on 1 physical pages (Thanks to Onno).
- Merged Czech language update from Petr Prikryl. Merged Spanish
language update sent by Lucas Cruz.
- Added standard GNU long options
--help and
--version .
- Added a
-w option that can be used to generate template
style sheet files for RTF, HTML, Latex. Thanks to Alexander Bartolich
for the idea and part of the implementation.
- Merged patch from Steve Hespelt, which adds a new configuration
option:
INCLUDE_FILE_PATTERNS . This tag can be used to
set the file patterns for the include files (if left empty the
FILE_PATTERNS will be used, which was also the old
behaviour).
- Added a couple of commands for kdoc compatability:
@p ,
@li , @em .
Also made @ref a bit less strict.
- Portuguese translation by Rui Lopes.
Bug fixes
Doxygen Release 1.1.5
Changes
- If DISABLE_INDEX = YES and a user defined main was specified
(with \mainpage), then no index will be generated anymore.
- RTF output is now enabled by default.
- LaTeX output now uses fancyhdr instead of fancyheader.
- If the search engine is enabled, the default config values will be
put into the generated HTML files, so you do not need to run
the installdox script, if the initial values are ok.
New features
- Added a new config option HIDE_SCOPE_NAMES that can be set to YES
to hide the namespace and class scopes that are put in the
documentation and diagrams.
- added a new type of graph, that can be used to visualize
which files #include (i.e. depend on) a given file. This graph is
enabled by setting HAVE_DOT and INCLUDED_BY_GRAPH to YES.
- added new configuration option EXTRACT_STATIC that can be used
to enable/disable the extraction of static file members. The behaviour
of this option used to be linked with EXTRACT_PRIVATE.
- Added two new configuration options MAX_DOT_GRAPH_WIDTH and
MAX_DOT_GRAPH_HEIGHT that let the user configure how big the
generated dot graph may become.
- Added a new configuration option EXPAND_AS_DEFINED that can
be used in combination with PREPROCESSING = YES, MACRO_EXPANSION = YES,
and EXPAND_PREDEF_ONLY = YES, to expand a given list of macro names,
as they are defined in the sources.
- Merged Alexander Bartolich's RTF style sheet patch.
A new config option RTF_STYLESHEET_FILE is now available with which you
can specify a style sheet file. The style sheet file should contain
a list of assignments. The assignments can be used to overwrite the
definitions of the various styles with user defined settings.
- Added a new command @since for JavaDoc compatibility.
- Added two new commands: \remarks and \attention that work in a
similar way as \warning, \pre, \post, et al.
- If SOURCE_BROWSER = YES, each member function documentation
now includes a list of member functions that call the member
somewhere in their body.
- RCS/CVS tags of the form $word:text$ are now nicely typeset in the
documentation.
- Providing all members of an enum with the same documentation can
now be done with member grouping like this:
/*!
* Rotation values
*/
enum
{
//@{ rotation value
Up=0,
Left=-90,
Right=90,
Down=180,
//@}
};
- Member grouping can by denoted more compactly like this:
//@{ Same documentation for each function
int getFunc1();
int getFunc2();
//@}
/*@{ @name Set functions
* Functions for setting values.
*/
void setFunc1(int v);
void setFunc2(int v);
/*@}*/
- Merged Czech language support patches send by Petr Prikryl. Also
removed some obsolete methods from the translator files.
- Call chains like
a->b()->c() are now followed
by the code parser so c() is linked if documented.
Bug fixes
- the warning message in case of ambigous file matches was containing
a bogus
%s , which could even crash doxygen.
- An autolist followed by a \retval, \param, or \exception did
produced invalid output, resulting in a compile error in LaTeX.
- " has a special meaning in LaTeX when the german babel package
is loaded. Doxygen now produces proper output for text containing
quotes.
- The title of a related page was not properly parsed, causing
HTML special characters to end up in the output for some languages
(German for instance).
- The hierarchy shown in the "Contents" part of the html help
browser did not properly show the hierarchy when it contained
undocumented classes.
- explict compound specifiers in the return type could lead to
parse problems. Example:
enum SomeEnumType_e Func()
{
...
}
This was parsed as an enum definition.
- A user defined style sheet did not get included properly, if it
was specified with a (partial) path in HTML_STYLESHEET.
- Linking in code fragments now works with nested classes
and links to the correct reimplemented member are generated.
- \ingroup did not work when grouping enums
- members of a module were not cross-referenced with the sources.
- Function pointers like
void ( *func )() where not c
orrectly parsed because of the extra spacing between
the `(' and the `*'.
- The const in void
func(int * const val /*< a value. */);
was named part of the name, instead of the type.
- Removed bogus warning in case of global function pointer variables.
Function pointers inside namespaces and member function pointers
did also produce bogus warnings.
- Fixed a misalignment problem with inline source fragments.
Also the initializer list after a colon is now included in an inline
source fragment.
- Case sensitivity of file names was set before the configuration file
was parsed, causing the default value of CASE_SENSE_NAMES to
be used in any case.
- added a space after "file" in the groupdef docs (thanks Hauke)
- Documentation blocks can now also be put just after a class name, like
in:
class C
/*! documentation here */
{
...
};
This was already possible for functions.
- Due to a bracket counting bug, throw clauses where not always
parsed properly.
- Fixed a parse bug for the following code-pattern:
void Class::
// Comment
method() {}
- With the newer Qt versions (2.1.x), passing a null string as the first
argument of
QRegExp::match seems no longer be allowed,
so I added some extra checks to avoid potential crashes.
- The title of the documentation of a template class now explicitly
states that it is a template. (For non-English languages,
this still requires a change to trCompoundReference() in
translator_xx.h).
- Fixed a problem with matching methods of template classes.
- commenting out a section or subsection with
<!-- -->
did not work.
- Fixed some inconsistencies in the configuration page of
the documentation.
- Some operators like
operator[]() ,
operator|() and operator!()
did not appear correctly in the LaTeX index.
- If an include file name matched a directory name, then the
directory could be found first in the INCLUDE_PATH. This resulted in a
scanner error.
- Fixed parse problems that occurred when << or >> was
part of a template argument list.
- Fixed some more parse problems that occurred when parsing base classes
that were nested templates.
- variables whose name started
with an _ like
struct {int x; } _var;
where not properly parsed.
- LaTeX formulas did not work in the brief description of a JavaDoc
style block that was put after an item.
- Empty group definitions were not properly handled.
- References to pages using \ref did not work in LaTeX.
- Members that are typedef's to classes are now shown in the
collaboration diagram.
Doxygen Release 1.1.4
Changes
New features
- In code fragments: added different colors for keywords that are
types, and for keywords that deal with the flow control.
Also added colors for string and character literals.
- Added a new command \nosubgrouping that can be put in the documentation
of a class. It can be used in combination with member-grouping
to avoid that doxygen puts a member group as a subgroup of a
Public/Protected/Private/... section.
Example:
/*! A class.
* \nosubgrouping
*/
class Test
{
public:
/*! \name A member group
*/
//@{
/*! Docs for both members in the group. */
void Member1();
void Member2();
//@}
/*! A member outside of the group. */
void Member3();
};
- Added three new configuration options:
- WARN_IF_UNDOCUMENTED which can be used to turn on or off warning
message related to undocumented entities. This works independently
of the WARNING tag, which is there to enable/disable all
other warning messages.
- WARN_FORMAT which can be used to specify the format of the warnings
produced by doxygen. The argument is a free form string
that must contain a $file, $line and $text marker.
The $file and $line markers will be replaced by the file name and line
number from where the warning originated.
The $text marker will be replaced by the actual warning text.
The default argument format string is:
"$file:$line: $text" .
- DOT_PATH that can be used to specify the path
where the dot tool is to be found, in case it is not in the
default search path.
- Added rudimentary support for using declarations. The following
now works:
/*! Docs for the namespace. */
namespace N
{
/*! Docs for class Test. */
class Test
{
public:
void func();
};
};
using N::Test;
/*! The documentation for func is here */
void Test::func() {}
Using of individual functions remains unsupported.
- collaboration and include dependency graph are now also included
in the LaTeX documentation.
- Thanks to Tim Mensch, doxygen has now has a \todo command, which
can be used put todo items in the documentation.
All items will automatically be cross-referenced with a
(generated) todo list. Here is an example:
/*! \mainpage
* \todo write something useful here.
*/
/*! A class
* \todo Add more comments here
*/
class Test
{
public:
//! \todo implement this function
void func();
/*! Computes stuff.
* \todo can we combine this with Test::func()?
* More docs.
*/
void func2();
};
Note that the arguments of the \todo command ends at the end of the
line.
- membergroups in files can now also be header-less. Example:
/*! @file */
/*! A macro */
#define AMACRO 11
//@{
/*! F1 macros */
#define F1_0 0
#define F1_1 (F1_0 + 1)
#define F1_2 (F1_1 + 2)
//@}
/*! Yet another macro */
#define YAMACRO 10
- The `explicit' and `mutable' keywords are now recognized as
member attributes instead of return types.
- the index page is now added to the HTML help contents.
- In case "no matching member" is found, a list of possible
(but non-matching) candidates is generated along with the warning.
This makes it much easier to see what's wrong.
- added two new commands:
- \hideinitializer which can be put in the documentation to
a variable or the define to hide the initializer or define value.
- \showinitializer which can be used to explicitly show the
initializer of a variable or the value of a define even if it
is longer than 30 lines.
Bug fixes
Doxygen Release 1.1.3
Changes
- Changed the way anonymous enums are handled: they are now handled
just like named enums, which makes the "Enumeration Values" section
obsolete.
- If
/*! \file */
is put into a file (thus without further documentation) then the
file is treated as being documented.
New features
Bug fixes
-
\c func() did not autolink to function "func" anymore.
- template members with multiple arguments were misaligned
in the HTML output.
- Since 1.1.2, environment variable expansion in the config
file always resulted in a single string for each expanded variable
(just as if quotes were put around the environment variable).
The old behaviour is restored again.
- removed redundant spaces in the man page output and fixed the
tab alignment in code fragments.
-
typedef ( bla::*proc)(); was not properly parsed because of the
space after the first opening bracket.
- fixed a problem in the namespace strip routine that could potentially
lock up doxygen.
- Long pre-initialized arrays ended up in the documentation.
- Friend functions that were documented at the declaration were
cross-referenced to the wrong file when using SOURCE_BROWSER=YES.
- When EXTRACT_ALL=YES was used, classes that were
documented with \class appeared twice in the namespace documentation.
- Setting HIDE_UNDOC_CLASS=YES could result in an incorrectly
indented textual class hierarchy. This should now be fixed.
- Members with very long return types caused all member names to
be pushed to the right in the HTML documentation
(if HTML_ALIGN_MEMBERS was YES). Now some line breaks are inserted
at the proper places.
- A couple of people reported that doxygen crashed while it was generating
dot graphs. The cause was likely to be multiple frees of the same
pointer (but I have not been able to reproduce the crash myself).
I've now reimplemented the deletion routine of the dot graph
respresentation, which hopefully fixes this problem.
- Elements of the configuration options in lists, which used quotes
were broken up into smaller pieces anyway. This most notably broke
PREDEFINED in some cases that worked before.
- Detailed description was present for classes, files and namespaces
even if there was only a brief description and REPEAT_BRIEF was NO.
- LaTeX: For German output "deutsch" was used as an option for the babel
package, while it should be "german". For Russian output an encoding
option is added.
- The inheritance relation was incorrect for the inner class of B in the
following situation:
template <class T> class A { public: class inner { }; };
template <class T> class B : public A<T>
{ public: class inner : public A<T>::inner { }; };
- Fixed a bug that prevented the header links of the search engine
from working.
- Undocumented classes & enums made it in the file documentation even if
HIDE_UNDOC_MEMBERS was set to YES.
- Backslashes in includes like
#include "..\blah.h"
did not end up in the include dependency graph.
- If ALPHABETICAL_INDEX=YES but there were no documented classes, part
of the LaTeX output (doxygen.sty a.o.) was not generated
(Thanks to Markus Lepper for reporting this).
- Doxygen can now match arguments containing an explicit namespace
qualifier against arguments containing an implicit qualitifier
(i.e. imported via a using directive).
An example (thanks to Karl Stroetmann):
/*! a class */
class Test
{
public:
void resolve(const std::vector<int>&);
};
using namespace std;
/*! a member */
void Test::resolve(const vector<int>&) {}
- Template specifiers are now shown in dot generated
collaboration graphs.
Doxygen Release 1.1.2
Changes
- Having the source browser set to YES does not longer imply that
a member with a reference to the sources is automatically documented.
- Base classes are shown in declaration order in the class diagrams
- The arguments of a function now each get their own
line in the header above the detailed description. This makes
function with lots of argument much more readable.
- Changed the look of the LaTeX output a bit.
New features
- Thanks to Joerg Baumann, doxygen now has two new commands:
These commands can be used to create conditional documentation blocks.
Sections are disabled by default. To enable them add a guarding
"label" to the
ENABLED_SECTIONS tag in the config file.
Conditional blocks can be nested.
Example:
/*! Normal docs.
* \if Cond1
* Only included if Cond1 is set.
* \endif
* \if Cond2
* Only included if Cond2 is set.
* \if Cond3
* Only included if Cond2 and Cond3 are set.
* \endif
* More text.
* \endif
* Unconditional text.
*/
- Again thanks to Joerg Baumann, URLs and mail addresses are now
hyperlinked in the PDF output
(=latex with
PDF_HYPERLINKS = YES ).
- Added support for member grouping. I reimplemented this
from scratch. I decided to follow the doc++ syntax for the member
grouping. Here are two examples.
Usage: A group is defined by a //@{ .. //@} block
(or /*@{*/../*@}*/ if
you're addited to C style comments :-) Nesting of groups is not
allowed. Before the opening marker of a block a separate comment
block should be placed. This block should contain the @name
(or \name) command to specify the header of the group.
If all members of a user defined member group are in same section
(for instance all are public methods), then the group as a whole
will be listed as subsection of that section.
Example1: Two ways to grouping member of a class
/** A class. Details */
class Test
{
public:
/** @name Group1
* Description of group 1. Details.
*/
//@{
/** Function 1 in group 1. Details. */
void func1InGroup1();
/** Function 2 in group 1. Details. */
void func2InGroup1();
//@}
void func1InGroup2();
void func2InGroup2();
/** Function without group. Details. */
void ungroupedFunction();
};
void Test::func1InGroup1() {}
void Test::func2InGroup1() {}
/** @name Group2 */
//@{
/** Function 2 in group 2. Details. */
void Test::func2InGroup2() {}
/** Function 1 in group 2. Details. */
void Test::func1InGroup2() {}
//@}
Example2: Combining member groups with @defgroup.
/** @defgroup globals Global Functions
* Functions that may be used in any translation unit.
*/
/** @name Debug Functions */
/*@{*/
/** @ingroup globals
* debug printf function.
*/
void debugPrint(const char *s /**< the message to print. */
);
/** @ingroup globals
* assert function.
*/
void my_assert(const char *f, /**< current file. */
int l, /**< current line. */
BOOL e /**< expression to evaluate. */
);
/*@}*/
/** @name Test Functions */
/*@{*/
/** @ingroup globals
* test on-board memory.
* @returns TRUE if successful.
*/
bool testRam();
/** @ingroup globals
* perform CPU self-test.
* @returns TRUE if successful.
*/
bool testCPU();
/*@}*/
- Documented variables (e.g. constants) that are used as initializers
of function parameters are now also cross-referenced.
- Lucas Cruz sent an update for the Spanish translation. This is now
included. Jens Breitenstein sent an update for the German translation.
Philippe Lhoste sent some bug fixes for the French translation.
Alessandro Falappa sent an updated of the Italian translation, which
is now included. Nickolay Semyonov added initial support for the
Russian language. I updated the Dutch translation.
- Thanks to Matthias Andree, the doxygen source package
now contains a .spec file. This can be used to build an .rpm package
for doxygen.
doing:
rpm -ta doxygen-x.y.z.src.tar.gz
will create the rpm (in /usr/src/packages/RPMS/i386/ on my machine).
Running rpm -Uhv as root on the .rpm file will
install/update doxygen.
After that you can use rpm -e doxygen to uninstall it again.
- Umlauts and other accents in the documentation now appear properly in
generated RTF output.
Bug fixes
- Fixed bug in the generated config file (LATEX_BATCHMODE)
- When updating the config file,
TAB_SIZE and
COLS_IN_ALPHA_INDEX
were reset to their default values. Environment variables in
the config file are no longer replaced by their value when updating
the config file.
- The version.cpp file is now automatically updated when creating
a source/cvs package.
- The types of arguments that are prefixed with a namespace scope
are now be matched against non-prefixed names. Example:
namespace std { class string {}; }
//! A class
class Test {
public:
void test(std::string a);
};
using std::string;
//! A member
void Test::test(string a);
Note: The namespace definition has to be part of the
input sources for this to work!
- Fixed a bug in structure of the graphical class hierarchy
(thanks to Paul Bohme for pointing me at this bug)
- Non-function members can now also be documented if they
are inside annonymous namespaces, which themselves are nested in
named namespaces.
- #defines can now grouped with \defgroup and \ingroup as well.
- fixed a bug in the latex output of groups (thanks to Gregory Kurz
for reporting this)
- Doing a \ref to a \anchor in an example did not work.
- static file & namespace members were cross-referenced even though
they were not visible if EXTRACT_PRIVATE is set to NO.
- The following code fragment made doxygen crash, because the
table was split between the brief and detailed section:
/** <table><tr><td>a. </td><tr></table> */
class Test {};
Doxygen now ends the brief description when a <table> tag is encountered.
- \c and \b now also accept numbers and other printable characters,
instead of only identifiers.
- Autolinking did not work if a member with arguments was specified
in the documentation and that member had a const or volatile postfix
in the code. Autolinking did not also not work if a member with
arguments contained digits (thanks to Fred Labrosse for pointing me
at this bug).
- The first line was missed if @code was used for generating man pages.
(Thanks to Joe Bester for the patch).
-
\link create_link(long,int&) bla \endlink
now works (doxygen was confused by the arguments before).
- A brief description after a function definition, followed by a detailed
description now works as expected. Example:
bool func()
{
}
//!< Brief.
/*!< Details. */
- Multi-line brief descriptions after a function declaration or definition
now work as excepted. Example:
bool func()
//!< Brief.
//!< More brief.
- \latexonly fragments were put on a single line causing problems
when latex comments (%'s) are used.
- The license file that came with doxygen was of LGPL, while it
should be GPL. The correct license file is included now.
- The heading of the alphabetical index was duplicated if
classes were present in both upper and lower case.
- If ENABLE_PREPROCESSING=NO and the INPUT_FILTER was used, doxygen
did not filter properly can could even block on input!
- Internationalization should now output proper characters with qt-2.1x.
- If namespace contained a function prototype & a function definition
they both ended up in the documentation.
- <table> without </table> could cause doxygen to crash. Now a
warning is given.
- Multiline variable and enum initializers with lots of spaces were
shown in an ugly way.
Doxygen Release 1.1.1
Changes
- "Reimplements" for a member now points to the most direct
base class that overrides the member instead of the base
class containing the vtable.
- classes, namespaces, and members are now sorted
in a case insensitive way (like in a dictionary).
Was case sensitive.
- Kenji Nagamatsu has send me an update for the Japanese translation
which is now included.
New features
- new option SHOW_INCLUDE_FILES, which can be set to NO to turn of the
list of include files that is generated for each documented file.
- new option STRIP_CODE_COMMENTS, which can be set to NO to keep any
special comment blocks in the generated code fragments.
- Added a new tag to the configuration file: SORT_MEMBER_DOCS. If this
is set to NO the member documentation will appear in declaration
order (as was the case with version 1.0.0 and older).
- Corba IDL exceptions are now also supported by doxygen.
If you do not want to put the documentation in front of the
exception you can use \idlexcept command which behaves like \class.
- Local file:/// URLs are now automatically linked when put in the
documentation.
- For \class and other structural commands you can now use
a backslash (\) at the end of a line to continue the command on
the next line.
Example:
\class Abstract_Server_Session_Implementation \
Abstract_Server_Session_Implementation.h \
ATD/Abstract_Server_Session_Implementation.h
- "make distclean" now removes all generated stuff and results in a
package that is more clean than a normal source package
(i.e. the generated flex & bison code is removed).
- Added command \note (and @note) for a "Note:" paragraph.
- Multi arguments can now be given as a comma separated list
after a \param or \retval command. Example:
void Zoom( int aX1, int aY1, int aX2, int aY2 );
/*! Zoom into the data.
* \param aX1, aY1 Upper left corner.
* \param aX2, aY2 Lower right corner.
*/
- Added 9 new class declaration sections:
Public/Protected/Private Types, for member typedefs & variables.
[Static] Public/Protected/Private Attributes, for member variables.
- Doxygen now has a new command line option -u, that can be used
to upgrade an old configuration file without losing the values that
where edited. In combination with the -s option this can also be used
to strip comments from or add comments to a configuration file.
- Added a new tag LATEX_BATCHMODE that makes latex run in batch mode.
This will run latex non-interactively, and not stop at the first
problem encountered. If the tag is enabled this mode will also be
used when generation formulas for inclusion in the HTML documentation.
- The \ingroup command can now also be used to group a number of
members. The only limitation is that a member can currently be in
one group only (classes, files & namespaces do
not have this limitation).
Bug fixes
- The graphical class hierarchy was not properly generated when
template classes were used.
- Template specialization could not be documented using the
\class command. This is now fixed. Example:
/*!
* \class T<A,int>
* My template specialization of template T.
*/
- Fixed a bug when parsing M$-IDL code, containing
helpstring("bla") attributes. The attributes of a method are no longer
shown in the documentation (the attributes of method arguments
still visible however).
- Improved the search algorithm that tries to connect classes with their
base classes. It should now (hopefully) work correct in all cases
where nested classes and/or namespaces are used.
- Fixed a scanner problem that could cause doxygen to get
confused after parsing struct initializers.
- the DOTFONTPATH environment variable is now automatically set
for Windows. This should make any "missing doxfont.ttf"
messages disappear.
- the extra LaTeX packages specified with EXTRA_PACKAGES can now
also be used when generating formulas for HTML.
- The documentation of a parameters that is part of a member definition,
is now used in the documentation as well.
- Fixed a HTML output bug in the class/file group-pages.
- Links to example files generated with \link ... \endlink where not
correct.
- made the bullet list generation more robust. A space is now required
after the - sign. A list can now start a paragraph.
- the configure script now detects whether or not dot is installed.
- The VERBATIM_HEADERS option didn't have any effect any more.
It should now work again as advertised.
- The IGNORE_PREFIX option can now also deal with a list of prefixes.
- @verbatim ... @endverbatim blocks did not work.
- removed some \n's from the systems calls that run dot. This appears to
cause problems for some people and was not what I intended anyway :^)
- The following construct was not working:
namespace foo { class bar; }
/*! let's go to the bar */
class foo::bar { };
- Members inside annonymous namespaces nested inside named namespaces
were not properly handled.
- When documenting template specializations with the \class command,
the second argument was not interpreted correctly.
- Interface inheritance relations are now always public for IDL
interfaces.
- Templetized related functions showed a double `template' line.
- Related function that had a declaration and a definition
also appeared in file documentation but without documentation.
- Links to files of the include dependency graph were
non existent in some situations.
- Removed warning generated for undocumented friend classes.
- Class reference in the main page ended up in refman.tex
- Source files were generated for files mentioned in tag files.
- The graphical class hierarchy always contained all external class,
regardless of the ALLEXTERNALS flag.
- operator~() was grouped with the constructor/destructors.
- In a number of cases, documented include files, that were
shown in the include dependency diagram where not found to be
documented. As a result the diagram was often not clickable and
incomplete.
- Fixed the graphical class hierarchy. Sometimes classes were missing.
- Added support for the cpp_quote hack inside M$-IDL code.
- The typedef in:
struct MyStruct { int i; };
typedef struct MyStruct * MyStructPtr;
was mistaken for a variable.
-
/** @file
* @brief
* Brief.
*
* Details.
*/
was not properly handled.
- Corba IDL unions now work. Example:
/** \union XYZ
* \brief The XYZ union.
*/
union XYZ switch ( ABC )
{
case A: D_VAR m_d; ///< Docs for a member in case A
case B: E_VAR m_e; ///< Docs for a member in case B
};
- Classes documented with \class and using \ingroup where not always
put into the group.
- In Latex & RTF references to undocumented files where put in the
index.
Doxygen Release 1.1.0
Changes
- Static file members are now hidden if EXTRACT_PRIVATE is set to NO.
- the documentation of members in the class/file descriptions are now
alphabetically sorted by member name for each section. There is a new
section for constructors & destructors.
- merged file, header and source indices into one file index.
As a result, doxygen will generate a hyperlinked source code only
once. This should greatly increase speed and reduce memory usage
for large projects.
New features
- Thanks to Parker Waechter, doxygen now has a new output format: RTF.
This is Microsoft's "portable" document format. Due to the great
"portability" of this format the output produced by doxygen will
probably only look nice with Microsoft's Word 97.
RTF is currently disabled by default. You can set GENERATE_RTF to
YES to enable it. The directory where the RTF output is put, can
be specified using the RTF_OUTPUT tag in the configuration file.
COMPACT_RTF can be enabled to generate more compact RTF.
RTF_HYPERLINKS can be used to generate HTML like cross references
in the document.
- Doxygen can now use the "dot" tool from graphviz 1.5, which is an
open-sourced, cross-platform graph drawing toolkit from AT&T and
Lucent Bell Labs.
Graphviz can be found at
http://www.research.att.com/sw/tools/graphviz/
If you have the "dot" tool available in the path, you can set
HAVE_DOT to YES in the configuration file to let doxygen use it.
Doxygen uses the "dot" tool to generate the following graphs:
- if GRAPHICAL_HIERARCHY is set to YES, a graphical representation
of the overall inheritance diagram will be drawn,
along with the textual one (currently supported for HTML only).
- if INCLUDE_GRAPH is set to YES, an include dependency graph
is generated for each documented file that includes at least one
other file (currently supported for HTML and RTF only).
- if COLLABORATION_GRAPH is set to YES, a graph is drawn for each
documented class and struct that shows:
- the inheritance relation with base classes
(using solid blue/green/red arrows, for public,protected,private
inheritance).
- the containment relations with other structs
and class (using purple dashed arrows with variable names as labels)
(currently supported for HTML and RTF only)
For the include dependency graph and the collaboration graph,
doxygen will render a transitive closure of the relation. If
the diagram becomes too large (currently wider than 1024 pixels),
only the maximum graph depth (as seen from the root of the
graph) that still fits will be drawn. (the nodes that can still be
expanded are shown with a red border in this case).
For HTML all graphs are drawn as client side clickable image maps.
- Each file now has a list the files it includes
(with links to the sources if available)
- For class documentation it is now possible to choose how the
#include statement should look like
(i.e. like "stdio.h" or <stdio.h>).
This can be done using the third argument of
the \class command.
Example: \class myclass myclass.h "mydir/myclass.h"
- If the - character is used as the first character in a comment line
it is interpreted as an item of a bullet list. Subitems are also
possible. Here is an example:
/*!
* A list:
* - item 1
* - subitem 1
* - item 2
* - subitem 1
* - subsubitem
* - subitem 2
* - item 3
* - item 4
*
* Starting a new paragraph in a top level item ends the list!
*/
Notice: tabs can be used for indenting, but the TAB_SIZE tag in the
configuration file must be set correctly!
- Function/member arguments can now be documented, like this
/*! This function finds the first occurrence of a
* substring in a string.
*/
char *strstr(const char *haystack, /*!< the string to search in. */
const char *needle) /*!< the substring to search for. */
{
}
- Three new section commands
\pre , \post and
\invariant are added to describe
preconditions, postcondictions and invariants respectively.
- Variable/enum initializers and define definitions are
now included in documentation (unless the initializer/definition
is more than 30 lines long)
- Added new configuration option IGNORE_PREFIX that can be
used to ignore a specified prefix while generating the alphabetical
class index.
Bug fixes
- All defines were shown as function macros in the documentation section.
- Fixed bug with parsing multi-line defines on Windows (\r problem).
- Protection level of members inside nested anonymous compounds was not
set correctly.
- Class diagram was not correct in case the same class was inherited
via two different paths (bug introduced in 1.0.0).
- If a tag is specified two times in the config file, then the second
definition will correctly overwrite the value of the first occurrence.
- For multiple defines with comments after them only the first was
cross-referenced with the sources.
- Autolinks to #defines looked like function macro even if they weren't.
- Members that were hidden deep in an inheritance tree, got multiple
scope prefixes in the "all members list", while a scope prefix to
the member in the base class was enough to use it unambiguishly.
-
\latexonly ... \endlatexonly in the main page produced
erroneous text in refman.tex
- The keywords in header and footer were only evaluated once.
- Formulas now also work in documentation blocks that are put after an
item.
- The source code could produce links to the wrong class for
a code fragment like
a.f() in
case two classes have the same member variable `a', but with a
different class types and those classes both had the member
function `f'.
- array type arguments (like int a[2]) where not matched if the argument
name of declaration and definition were different.
- memory in code.l is now returned at the appropriate times.
Go back to the main page.
|