Manual: Changelog

Loading...
Searching...
No Matches
Changelog

# 1.13 Series

## Release 1.13.2

(release date 09-01-2025)

### Bug fixes

- issue #8803 Template class with the same name as existing class gets in the same output file [view], [view]
- issue #11308 SVG dot graphs have added padding [view]
- issue #11309 Markdown blockquotes with lists do not render as expected [view]
- issue #11313 Template class specializations are ignored, which leads to invalid links [view]
- issue #11314 "Copy to clipboard" button broken with XHTML [view]
- issue #11320 Documentation fails to build (it freezes, no crash) [view]
- issue #11322 C++ 20 Modules: Links to global functions, links to modules [view]
- issue #11326 Missing description for a class member of a using-declared class [view]
- issue #11330 Snippet trimleft option does not handle newlines well [view], [view]
- issue #11333 rebuilding fedora ignition-transport causes abort in isExplicitPage with doxygen 1.13.1 [view]
- String representation at "show configuration" in doxywizard [view]
- Support for Plus sign code fence directives - GitHub flavor [view]

### Improved user feedback and documentation

- Adding debug and version information to doxycommentview [view], [view], [view], and [view]

## Release 1.13.1

(release date 02-01-2025)

### Minor incompatibilities

- As of doxygen version 1.13.1 and layout version 2.0, Doxygen will insert defaults for elements that are missing in the user defined layout file. This allows for the introduction of new elements, without having to update the user defined layout files to make them appear. For older Doxygen or layout versions, missing elements are still treated as being invisible as before.

### Features

- Add WARN_LAYOUT_FILE option to toggle warnings in layout file [view]

### Bug fixes

- issue #11111 Overloaded functions are mixed when their arguments have template with object in other namespace [view]
- issue #11299 Regression with HTML_DYNAMIC_MENUS = NO, DISABLE_INDEX = NO, and custom LAYOUT_FILE [view]
- issue #11301 Doxygen 1.13.0 ignores visibility="no" for various layout elements [view], [view], [view], [view], [view], [view], and [view]
- issue #11307 C++ 20 module partition: Links to class members not found [view]
- Fix compiler error when compiling doxygen in C++20 mode [view]
- Silence compiler warning in generated ce_parse.cpp [view]
- cmake: Fix flex version check for overriding the register keyword [view]

### Improved user feedback and documentation

- Add module part to customize documentation [view]
- Documentation corrections. [view]

## Release 1.13.0

(release date 28-12-2024)

### Minor incompatibilities

- The defaults for `DISABLE_INDEX` and `GENERATE_TREEVIEW` have been changed to `YES`. If you did not specify them explicitly in your config file and wish to keep the same output, you need to add

      DISABLE_INDEX     = NO
      GENERATE_TREEVIEW = NO

  to your config file.
- If you have `README.md` files in subdirectories, they will be treated as directory descriptions. You can disable this by setting `IMPLICIT_DIR_DOCS=NO` in your config file.

### Features

- issue #11179 Using README.md as directory description via new option IMPLICIT_DIR_DOCS. [view]
- issue #11240 Add CSS class for @p command [view]
- issue #11245 [Small Feature Request] Add class attribute to the @qualifier command in the HTML output [view]
- New option `HIDE_UNDOC_NAMESPACES` which can be used to hide undocumented namespaces (similar to `HIDE_UNDOC_CLASSES`) [view] and [view]
- New option `PLANTUMLFILE_DIRS` and command \plantumlfile to include plantuml files (similar to `DOT_DIRS`, and `\dotfile`) [view]
- New option `AUTOLINK_IGNORE_WORDS` to specific a set of words that should not be linked [view] and [view]
- Update available emojis [view], [view]
- Added `strip` and `nostrip` options to `\include` and `\snippet` to either strip or keep doxygen comments [view]
- Added helper script to live edit & view a doxygen comment block, see addon/doxycommentviewer in the repo [view] and [view]
- Extending autobrief end characters with ? and ! [view]

### Bug fixes

- issue #11134 gswin64c.exe not recognized if path added to EXTERNAL_TOOL_PATH [view]
- issue #3760 C++ using directives are not understood (Origin: bugzilla #617285) [view], [view], [view], [view]
- issue #9921 `HIDE_SCOP_NAMES` and `\ref` [view]
- issue #10569 First sentence after defgroup no longer used as brief description [view]
- issue #10649 Building failure: ISO C++17 does not allow 'register' storage class specifier [-Wregister] [view], [view]
- issue #11012 Doxygen 1.10 and 1.11 not documenting C# enum and its members [view], [view]
- issue #11045 copydoc issue with namespace assignment [view]
- issue #11065 Doxygen version 1.12.0 failing to differentiate certain overloads when using qtbluetooth.tags tag file [view]
- issue #11071 Extra spaces added by GFM special comment parsing cause verbatim blocks [view]
- issue #11082 C include format error [view]
- issue #11085 Partial specialization of C++ variable template is missing from Doxygen output [view]
- issue #11095 Grouping and deriving from a template class leads to "not documented" members. [view]
- issue #11102 Objective-C call graph is not shown when self proper is called [view], [view]
- issue #11107 PHP heredocs with double quotes stop doxygen [view]
- issue #11114 Doxygen 1.12.0 mishandles Markdown section header following `<pre>` HTML markup. [view]
- issue #11116 Graphical glitch with lists and text spilling over on a new line. [view]
- issue #11120 Python variables erratic documentation [view]
- issue #11123 Warning that self is undocumented [view]
- issue #11127 copydoc fails to copy the correct function overload for Doxygen 1.9.5 - trunk (7e1860534d163a9d8882ce3ebb620719f74e75eb) [view]
- issue #11128 Unknown anchors in code [view], [view]
- issue #11130 three-way comparison operator is showing up as "operator" instead of "operator<=>" in related symbols [view]
- issue #11135 The anchors don't work [view]
- issue #11138 Non-reproducible file names in doxygen output [view]
- issue #11144 Template relation doesn't appear on graph [view]
- issue #11147 Functions are incorrectly flagged as undocumented if not generating HTML or LaTeX [view]
- issue #11156 Enabled AUTOLINK_SUPPORT does not turn enum type names to links [view]
- issue #11166 Doc fails on raw string literals [view], [view]
- issue #11169 How to copydoc documentation of functions with spaces? [view]
- issue #11172 Aliases with embed:rst:leading-asterisk no longer work in Doxygen 1.12 [view], [view], [view], [view]
- issue #11184 \ref is unable to resolve references to fields in the documented struct [view]
- issue #11205 Building docs for the llvm-project with doxygen takes more than 20 hours [view]
- issue #11209 `<kbd>` tag gets rewritten as `<code>` [view]
- issue #11210 Support for Numeric code fence directives - GitHub flavor [view]
- issue #11217 heap-buffer-overflow WRITE [view]
- issue #11225 Improve support for code blocks in included markdown files [view], [view]
- issue #11227 Generated documentation for the IDL interface has wrong quotes [view]
- issue #11230 Using-declaration with root namespace qualifier is not a hyperlink in source pages [view]
- issue #11233 SVG in Markdown is not shown [view]
- issue #11237 Xcode project generation failing [view]
- issue #11260 Inherited attribute is repeated twice in python [view]
- issue #11271 man pages incorrectly convert \" to \' [view]
- issue #11273 Using a tilde in the URL of a Markdown image tag breaks the tag if the image is in the IMAGE_PATH [view]
- issue #11280 Comments inside a cpp implementation are duplicated. [view]
- issue #11281 Alias via using within nested namespace results in incorrect symbol name. [view]
- issue #11282 getDefsNew fails to find symbols if a filename matches a namespace name [view]
- issue #11283 C++ 20 Concepts not found in search when inside a namespace [view]
- bug 432893 handling `*` in ODL properties [view]
- bug 729344 Ignoring an items when / or \ is placed after \addindex [view]
- Coverity bug 20240822 (1) [view]
- Coverity bug 20240822 (2) [view]
- Avoid showing internal representation of anonymous scopes in warnings [view]
- Improve showing import relations for C++20 modules [view]
- Don't attempt to merge typedefs from different scopes. [view]
- Compilation error under Cygwin on language.cpp: "too many sections" [view]
- Define defined in multiple, nested, files [view]
- Detect escaped `\cond` command at end of line [view]
- Don't convert CMake environment variables when using `-x_noenv` option [view]
- Don't give timing information with options version / help options [view]
- Fix case where <= or >= or <=> inside template argument would be interpreted wrongly [view]
- Fix out-of-bounds string_view access in Markdown n-/m-dash processing [view]
- Fixed a few Doxyfile typos [view]
- Fix for missing code->docs links for strong enum value [view]
- Fix for wrong code link for enum value [view]
- Fix regex logic in scanner.l [view]
- Fix source code references for objective-c members [view]
- Fixed case giving incorrect 'File ended in the middle of a comment block' warning [view]
- Fixed potential invalid memory access when reading code fragments [view]
- Fixed some issues handling Java and IDL import statements [view]
- Formula doesn't render due to empty lines. [view]
- Handling multiple `<br>` tags [view]
- Handling of `#pragma once` [view], [view]
- Incorrect handling of spaces before `@page` command [view] and [view]
- Incorrect label for enum values [view]
- Incorrect marking of enum values in source browser [view]
- Incorrect warning in case of Python [view]
- Incorrect redirection of debug output from preprocessor [view]
- Multiple parameters with underscores and one `\param` command [view]
- Output when brief description ends with multiple spaces [view]
- Plantuml cache file name [view]
- Remove inconsistency regarding whitespace at the end of template declaration [view]
- Remove some warnings regarding signed/unsigned mismatch [view]
- Remove warnings regarding bison package [view]
- Removing compiler warnings [view]
- Repeated variable names is code browser [view]
- Size of project name when part of "treeview" [view]
- Use style `plainnat` with `natbib` package [view]
- Warning in case of double specification of cite name [view]
- Warning with not closed stylchange [view]
- XSD warnings [view]

### Improved user feedback and documentation

- Update translator_gr.h [view]
- Updated translator_ru.h to match updates from 1.8.15 to 1.11.0 [view]
- Spelling corrections [view], [view], [view], [view], [view], [view]
- Better warning in case of an internal error of a layout element [view]

### Refactoring and cleanup

- Refactoring PR #11290 a bit [view]
- Refactoring: Replace DeepCopyUniquePtr by std::optional [view]
- Refactoring: inline internal IMPL class in classdef.cpp [view]
- Refactoring: make Token behave as an object [view]
- Refactoring: renames for better naming consistency with other classes [view]
- Refactoring: replace insert(std::make_pair(...)) by emplace() [view]
- update TinyDeflate.hh to get fix clang 19.0 [view], [view], [view] and [view]
- Adjust to libfmt-11 changes [view]
- Fix for coverity warning about dead code in memberdef.cpp (CID 218000) [view]
- Fix for coverity warning about dead code in memberdef.cpp (CID 320261) [view]
- Coverity warning [view]
- Replaced -t_notime by -t_time and make -t behave as -t_notime did before [view]
- Optimize handling trimleft in code fragments [view]
- Optimize stripping comment from code fragments [view]
- Cleanup unused lexer definitions [view]
- Consistency enum class CommandType / HtmlTagType [view]

# 1.12 Series

## Release 1.12.0

(release date 07-08-2024)

### Features

- Adding "engine" chen and chronology for plantuml [view]
- Also allow backticks to be combined with emphasis in Markdown [view]

### Bug fixes

- issue #5661 Inheritance by non-documented classes shows the name of the undocumented class (Origin: bugzilla #738840) [view]
- issue #5813 Protected inherited members not documented in derived class if protected functions in base class is not documented (Origin: bugzilla #751453) [view]
- issue #6473 Plantuml parse error [view], [view], [view], [view]
- issue #8256 Possible to get enum values in the Enumeration Type documentation [view], [view]
- issue #8900 markdown: account for punctuation chars before emphasis [view]
- issue #8902 markdown: account for quotation marks before emphasis [view]
- issue #10606 include command via ALIASES does not work anymore (snippetdoc) [view] and [view]
- issue #10696 markdown: allow italicize parentheses [view]
- issue #10835 Two relates group generates warning: found multiple \relates, \relatesalso or \memberof commands in a comment block, using last definition [view]
- issue #10866 Exiting with exit code 1, no warnings, no errors when executed on GitHub Action [view]
- issue #10878 semi-colon after a formula causes error [view]
- issue #10897 Incorrect warning about Objective-C Category method not being documented [view], [view]
- issue #10902 Commands defined via ALIASES tag have an extra space after value [view]
- issue #10902 Improve Markdown Support - blockquotes with special markers parse wrongly [view] and [view]
- issue #10904 Topics page lists modules but no descriptions [view]
- issue #10906 Unable to resolve reference to 'some/path/README.md' for \ref command [view]
- issue #10907 Cite command creates case sensitivity on name [view]
- issue #10915 base class function in code block no longer linked if the code block contains a derived class definition calling the base class function in Doxygen 1.9.5 or later [view]
- issue #10922 Doxywizard Font Size Rendering Problem on 4k HiRes Monitors [view]
- issue #10928 Setting JAVACC_CHAR_TYPE [view]
- issue #10932 message: [generated]:8: warning: invalid argument for command '\iline' [view]
- issue #10935 \snippet{doc} tag in Doxygen v1.11 adds incorrect paragraph with a break before snippet text [view], [view], [view], [view], [view]
- issue #10937 unexpected token TK_COMMAND_BS as the argument of `\ifile` [view], [view]
- issue #10949 Doxygen replaces # by :: [view]
- issue #10950 ASSERT(0) in docnode.cpp [view], [view], [view]
- issue #10951 Computing class inheritance relations -> segmentation fault when run against vulkan-hpp headers [view]
- issue #10952 Bad namespace handling with 'using namespace::member' syntax [view]
- issue #10953 Java Package Lists does not include nested packages [view]
- issue #10955 HTML comment affects output [view]
- issue #10956 Bad indent for list embedded in <dd> in man output [view]
- issue #10959 Capability to render GitHub flavor Markdown comments [view]
- issue #10959 Support of special HTML comments [view]
- issue #10960 Variadic macro expansion with comments [view]
- issue #10962 std:: hypertext link if a class documents std() function [view], [view]
- issue #10964 C++ specialization: warning: explicit link request could not be resolved. [view]
- issue #10969 \ref command does not respect "text" field for template classes in Doxygen 1.10.0 - trunk [view]
- issue #10970 Improvement of end of paragraph detection [view]
- issue #10972 Derived class documentation no longer contains related functions using protected inheritance on Doxygen trunk [view]
- issue #10973 attribute is repeated twice in python [view]
- issue #10977 dontinclude pattern find itself [view]
- issue #10987 Doxygen 1.11.0 for macOS reports 'sh: latex: command not found' [view], [view]
- issue #10989 Incorrect linking in C++ code [view]
- issue #10989 bison: error: '%name-prefix' and '%define api.prefix' cannot be used together [view]
- issue #10991 @snippetdoc not support multi lines [view]
- issue #10994 Automatic link for macro defined in different header file no longer generated [view]
- issue #10995 Build issue: Build picks up wrong git info [view]
- issue #10997 How to tell Doxygen to process an #include within a class definition [view], [view]
- issue #11000 Cannot read properties of undefined (reading 'css') (resize.js:64) [view]
- issue #11006 Unable to get property 'style' of undefined or null reference [view]
- issue #11010 Automatic link to typedef no longer generated if typedef declared twice [view]
- issue #11013 compound.xsd is missing types for some elements [view]
- issue #11015 Faulty xml generated when markdown header is too deep [view]
- issue #11015 In Doxygen 1.11.0, Include Graphs are not made for Java [view]
- issue #11016 Faulty xml generated when markdown header is too deep. [view], [view], [view], [view]
- issue #11031 extra WS in @brief docu block break layout [view]
- issue #11033 Illegal command '\ifile' found as part of a title section [view]
- issue #11036 The body of a macro entirely defined on 1 line gets sucked into the synopsis [view]
- issue #11056 HTML: Interactive SVG "viewHeight" is not defined [view]
- Prevent extra scrollbar in HTML output when using Firefox [view] and [view]
- xmllint error in combination with addindex command [view]
- Files stayed in RTF directory [view]
- Remove temporary file [view]
- Warning in case of `0.` as start of a list. [view]
- With the simple file ``` /// \file ``` and setting ``` GENERATE_RTF=YES ``` we get in the messages a number of times the message: ``` Style 'Heading6' redefines \s5. ``` [view]
- Python class variables type and initial value [view]
- Fix buffer overflow in Markdown parser [view]
- Add code coloring for Fortran RANK statement [view]
- Fixed a number of coverity warnings [view] and [view]
- [fix] multithreading issue with ModuleManager [view]
- fix: use correct option name with system sqlite3 [view]
- Missing filename for tag warnings [view]
- Stop showing classes and concepts in namespace list [view]

### Improved user feedback and documentation

- Document all possible values of dir attribute in param command [view], [view] and [view]
- made row of asterisks same length to align them [view], [view]
- Spelling correction [view] and [view]
- Redirecting link corrected [view]
- Debug output for layout file [view]
- Enable additional asserts in debug builds [view]
- Setup for doxygen documentation [view]

### Refactoring and cleanup

- Changed debug mode define to avoid linker issues on macOS [view]
- Selection possibility of values from an enum (class) by means of `is_any_of` [view]
- Use CMake's FindIconv (see #10887) [view]
- Improve readability of codebase [view]
- Cleanup `Doxygen::terminating` [view]
- Better type safety of enums [view] and [view]
- Refactoring: Remove mutable from DotNode's m_written member variable [view]
- Refactoring: Remove unneeded mutable for MemberDefImpl::m_annScope [view]
- Refactoring: reduce lock contention when adding cross references [view]
- Refactoring: reduce lock contention when reading code fragments [view]
- Refactoring: reduce lock contention when writing tooltips [view]
- Refactoring: remove avoidable const_cast's [view]
- Refactoring: remove mutable from DefinitionAliasImpl [view]
- Refactoring: remove unneeded const_cast's [view]
- Refactoring: remove unused resolveAlias() method from ClassDef/ConceptDef [view]
- Refactoring: Make MemberTypeList a class instead of enum with bit mask [view]
- Prepare CMakeLists.txt for using mutrace (Linux only) [view]

# 1.11 Series

## Release 1.11.0

(release date 20-05-2024)

### Features

- issue #7589 Add Markdown style todo list [view]
- issue #10608 Add support for GitHub Markdown style alerts [view]
- issue #10781 Add a "Run" menu item key-command to DoxyWizard [view]
- Added 'raise' and 'prefix' options to @include{doc} [view], [view]
- Support `link` / `endlink` command in section title [view]
- Add support for @subparagraph and @subsubparagraph [view], [view], [view], [view], [view]
- Translation updates for German/Greek/Polish/Portuguese/Dutch/Chinese [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view]
- `doxyapp --locate` list all overloads by including arguments [view]
- Adding support for "engine" files for plantuml [view]
- Show emoji in HTML treeview [view], [view]
- Add `HTML_CODE_FOLDING` possibility to CHM [view]
- Make `HTML_CODE_FOLDING` possible when `DISABLE_INDEX=YES` [view]
- Add doxyindexer and doxysearch installation [view]
- cmake: always install man pages, only install for the binaries installed [view]
- allow function ptr with `INLINE_SIMPLE_STRUCTS` [view]

### Bug fixes

- bug 783580 hhc.exe fail when a class inherit a class from an external project [view]
- issue #7948 "ilinebr" on every link broke my entire project [view]
- issue #10147 Generating pdf with LuaLateX [view], [view]
- issue #10240 Multi-line doc not recognized in Python class field [view]
- issue #10504 A list inside an alias on a markdown page seems broken, it repeats the alias indefinitely [view], [view], [view]
- issue #10511 C# namespace separators are output in C++ style [view]
- issue #10516 `@copybrief` command does not take effect with 1.10.0 [view], [view], [view]
- issue #10531 Incorrect MinGW link in Installation Instructions [view]
- issue #10544 Doxygen omits closing '>' in method returning `std::function< void(A *) >` [view]
- issue #10546 crash when clang enable [view]
- issue #10552 thick space in latex formula causes error [view]
- issue #10559 \ref fails to resolve reference to a member of a struct nested in a class template specialization (C++) [view], [view], [view]
- issue #10567 Incorrectly closed markdown code block causes doxygen to forget about consecutive macro definitions [view], [view]
- issue #10568 Navtree broken for namespace-links if namespace included in groups [view]
- issue #10570 Error while documenting a C function with array as argument [view]
- issue #10573 Behavior of quotes in markdown type of links [view]
- issue #10582 Problem matching arguments of functions (parameter matching on function pointers) [view]
- issue #10586 Backslash + quote mark causes doxygen not to generate documentation [view]
- issue #10588 C++: Inherited virtual functions duplicated when using Base::func [view]
- issue #10604 External documented functions not found (functions generated by macros). [view]
- issue #10606 include command via ALIASES does not work anymore [view]
- issue #10618 C++ consteval functions need label [view]
- issue #10623 Unexpected "code block" formatting for detailed description of enum values using C++ style comments [view]
- issue #10631 Spurious .PP on Value headings in Macro Definition Documentation in man page [view], [view]
- issue #10636 weird behavior with \hideinheritancegraph [view], [view], [view], [view]
- issue #10639 template instantiation generates warning: no matching class member found for [view]
- issue #10640 copydoc on template function causes warning: @copybrief or @copydoc target not found [view]
- issue #10642 Group titles not carried over into External Search [view], [view]
- issue #10643 doxygen --version shows GIT-NOTFOUND [view]
- issue #10655 Class Member List does not show friend operator parameter list [view]
- issue #10656 Protected types inherited documentation does not extend template instantiation past first level of inheritance [view]
- issue #10666 Scrolling animation can get stuck into infinite loop [view]
- issue #10670 Parsing of python type annotations for member variables vs. static/class variables [view]
- issue #10676 ALIAS for @endcode fails with warning: reached end of file while inside a 'code' block! The command that should end the block seems to be missing! [view] and [view]
- issue #10700 Include command in class documentation [view], and [view]
- issue #10702 @include{doc} [view]
- issue #10703 Incorrect output for a C++ type containing a function pointer [view]
- issue #10707 Issue with doxyfigcaption [view]
- issue #10708 Incorrect parsing to xml of c++11 constructs in methods and functions [view]
- issue #10713 "warning: explicit link request could not be resolved" - but I didn't explicitly request a link [view]
- issue #10717 Issue documenting multiple mixin classes with virtual inheritance [view]
- issue #10719 "unable to resolve reference to ... for \ref command" in file comment - but it's right there [view]
- issue #10726 Error in processing Fortran file with character string returning function [view], [view]
- issue #10740 Guide the user to doxygen_manual.log when building the manual PDF fails [view]
- issue #10747 Alias replaces HTML brackets to HTML codes, e.g "<img src=..." to "&lt;img src=" [view]
- issue #10754 GENERATE_HTMLHELP with \msc & \endmsc is broken because of absolute paths in index.hhp since 1.9.3 [view]
- issue #10760 Inherited template typedef does not extend template instantiation [view]
- issue #10762 Macro define a class name to a different one causes extra whitespace to appear [view], [view]
- issue #10763 CREATE_SUBDIRS and C++20 modules: Doxygen doesn't create directories [view]
- issue #10766 C# cref or \ref doesn't work without full namespace, even for classes in same namespace [view]
- issue #10776 Provide the ability to sort implemented/re-implemented list [view]
- issue #10790 Failed to build "master" branch [view]
- issue #10797 Spurious links generated for C++ keywords and template parameters [view]
- issue #10799 Explicit C# event mistaken for property [view]
- issue #10820 Snippet in same file to share docs [view]
- issue #10823 Inconsistencies on use of separating space before an [ or { in documentation and examples [view], [view]
- issue #10827 member variable with type annotation and not used anywhere of python class is missed [view], [view]
- issue #10828 Duplicate (double) documentation generated for friend function [view]
- issue #10838 not recognize "*, " in python [view]
- issue #10846 Unable to document default argument on friend functions [view], [view]
- issue #10847 typedef of unspecified type causes friend function documentation to be not documented [view]
- issue #10850 Incorrect links generated for cross-references with same name when using tagfiles [view]
- issue #10851 Unable to build documentation from "master" branch [view]
- issue #10858 Markdown: unordered list [view], [view], [view], and [view]
- issue #10859 More restrictive block-id character set in Doxygen >= 1.10 [view]
- issue #10863 Multiple <dd> elements not rendered correctly [view], [view]
- issue #10869 @ref links are incorrect when used in class methods body [view]
- issue #10873 Setting BUILTIN_STL_SUPPORT to YES causes function page to not list all classes with Doxygen 1.8.18 and later [view], [view], [view]
- Added missing words in doxygen's internal search [view]
- Adding sub links to doxygen_crawl file. [view], [view]
- Always set `Compiled file` for HTML help compiler [view]
- Block command in section title [view]
- Clang assisted parsing: correctly parse C++ headers as headers [view]
- Code folding didn't work when CLANG_ASSISTED_PARSING was enabled [view]
- Code sections in Perl documentation not expandable anymore [view]
- Don't import links from tags into crawl file [view]
- Fix clang-assisted parsing with clang >= 14 [view]
- Fix discarding of Slice types during file index generation. [view]
- Fix for LaTeX table overlapping footer issue [view]
- Fix invalid generated link when using Markdown GitHub style link to a section in another file [view]
- Fix issue where ALIAS argument was split over multiple lines [view], [view], [view], [view]
- Fix potential crash if section titles contain unsupported markup [view], [view]
- Fix potential crash processing VHDL code with multithreading enabled [view]
- Fix up C++20 module pseudo-keyword masking variables/members [view]
- Handling escaped commands inside `\if` [view]
- Handling of empty structural command [view]
- Improved handling of C# `<code>` parts [view]
- Incorrect "More.." with `\file` command [view]
- Incorrect handling command character in comment conversion [view], [view]
- Incorrect handling of `$` in an objC string [view]
- Incorrect line number and filename after `\include{doc}` and `\snippet{doc}` [view], [view]
- Incorrect linecount in case of `if` command without condition [view]
- Incorrect recognition of a lex rule pattern. [view]
- Incorrect searchdata.xml for mainpage in case of external search [view]
- Keep utf8 characters together in comments [view], [view]
- No mention of citation reference in treeview [view]
- Parameter names were shown at wrong place for function pointer types [view], [view]
- QT help problems with tag files [view], [view]
- Single line snippet didn't show [view]
- Support unicode characters in referenced file names [view], [view]
- Warning with ingroup command at end of alias [view]
- Warning for Fortran on `\code` command [view]
- Warnings due to multiple "sectioning" commands inside an `\if` type construct [view], [view], [view]
- When having markdown code like: ~~~ [view]
- fix for clang-assisted parsing [view]
- latexgen: fix doxy*section references [view]
- perlmod: show enum type [view]

### Improved user feedback and documentation

- Added missing possible `type`s in the external search description [view]
- Avoid overwriting the member definition when using @fn, @var and friends [view]
- Better warning when in Fortran a comment block is not closed [view]
- Check validity of Doxyfile.xml against all possible names of the settings [view]
- Improve warnings [view], [view]
- Link missing in documentation of `INPUT_FILE_ENCODING` [view]
- Minor documentation updates [view]
- Small documentation correction [view]
- Small improvements internal documentation [view]

### Refactoring and cleanup

- Added nullptr check to catch programming errors [view]
- Consistency for use of `<code>` [view]
- Consistency of argument of `trDocumentation` [view]
- Consistency of arguments with other translator functions [view]
- Flexibility for trDocumentation in respect to the ProjectName [view]
- Make `SrcLangExt` an `enum class` [view], [view], [view]
- Performance optimizations for functions on the critical path [view]
- Refactor `contexts_t` and `contexts` in `htmldocvisitor.cpp` [view], [view]
- Refactor implementation [view], [view]
- Refactoring: Added ENABLE_CLANG_TIDY option and added rule of 0 or rule of 5 special members [view], [view], [view], [view], [view], [view], [view], [view], [view]
- Cleanup unreachable code [view]
- Refactoring: Avoid creating QCString from 0 pointer. [view]
- Refactoring: Fixing warnings like: `Use the "nullptr" literal` [view], [view], [view], [view]
- Refactoring: QCString::resize [view]
- Refactoring: Remove use of GrowBuf in markdown.cpp [view]
- Refactoring: Replace QCString::isNull() by QCString::isEmpty() [view]
- Refactoring: add missing overrides [view]
- Refactoring: make QCString::length() return size_t type [view]
- Refactoring: make sure all variables are initialized [view]
- Refactoring: move from Dispatcher back to inheritance for IndexIntf [view], [view], [view], [view]
- Refactoring: replace BufStr with normal std::string [view]
- Refactoring: replace push by emplace where temporaries are passed [view]
- Refactoring: replace std::set by std::unordered_set when order is not important [view]
- Refactoring: replace ugly use of malloc by std::string [view]
- Refactoring: replaced 0 with nullptr in more places [view]
- Refactoring: use std::string and std::string_view [view], [view], [view], [view]
- Removing double logic [view], [view], [view], [view]
- Replace 0 terminated array by std::vector [view]
- Simplify constructors for output generators [view]
- swap parameter order of cmdName and cmdChar [view]

# 1.10 Series

## Release 1.10.0

(release date 25-12-2023)

### Bug fixes

- issue #4280 bug_651081 Inconsistency between @page and @subpage parsing [view]
- issue #5767 bug_746577 Problem locating unresolvable @ref in case of a MSC image [view]
- issue #6335 bug 793570 Keep the original code indentation [view]
- issue #6996 Missing definitions for BUILTIN_STL_SUPPORT [view]
- issue #7688 Include markdown file in mainpage.dox [view], [view], [view], [view] , [view] , [view] , [view] , [view] , [view] , and [view]
- issue #10263 please add a use_sys_sqlite3 config option [view]
- issue #10282 Infinite loop when parsing a simple header file [view]
- issue #10278 Weird behavior [view]
- issue #10295 typedef of a function incorrectly output in HTML and PDF [view]
- issue #10304 Cannot copydoc operator* [view]
- issue #10306 Some intra-page links include the HTML file name [view]
- issue #10313 [BUG] error when handle types defined with lambda [view] and [view]
- issue #10324 [C#] Using expression-bodied functions with generics generates wrong type constraints. [view]
- issue #10334: Multi line initialization for using [view]
- issue #10343 Missing 'Referenced by' links for macros (C/C++) [view]
- issue #10344 "param ?callable $callback" misinterpreted as undocumented parameter [view]
- issue #10349 Autolinks to functions point to the struct with the same name [view], [view]
- issue #10350 INLINE_GROUPED_CLASSES=YES fails with GROUP_NESTED_COMPOUNDS=NO [view]
- issue #10351 Search subpart research after a search [view]
- issue #10353 Doxygen cannot handle TYPEDEF after PlantUML [view]
- issue #10354 Make polyfill optional, at least. [view]
- issue #10356 CopyDoc target is parsed incorrectly [view]
- issue #10369 Found ';' while parsing initializer list! for member function pointer [view]
- issue #10377 Wrong syntax for output of non-C++ deprecation lists for enum members [view]
- issue #10388 Can't link to a tagfile page in DoxygenLayout? [view]
- issue #10392 GENERATE_XML generates XML files with erroneous </codeline>s in <programlisting> [view]
- issue #10395 Doxygen link generation does not find concepts unless complete path is specified [view]
- issue #10404 Wrong type for overloaded template method in tagfile [view]
- issue #10414 Report warning with wrong file and wrong line number [view], [view], [view]
- issue #10417 Search bar not working [view]
- issue #10447 Add explicit links to static pages [view]
- issue #10449 \include{doc} ignores EXAMPLE_PATH [view], [view], [view], [view]
- issue #10460 `\hideinheritancegraph` not working [view]
- issue #10466 Markdown: inline statements in page headings are escaped and render as text [view]
- issue #10472 Symbols within a namespace after a heavily #ifdef class are omitted in HTML output [view]
- issue #10473 doxygen hangs forever after "Building directory list..." [view], [view], [view]
- issue #10474 doxygen fails to render /some/ Markdown links to local files with relative path [view]
- issue #10475 doxygen does not correctly render link content in Markdown file [view]
- issue #10485 Parsing error with C++20 requires clause if at the end of the function declaration [view]
- issue #10498 `#cmakedefine01` macros are not documented [view], [view]
- issue #10499 Child class with template parameter named differently than parent: unqualified base class in tagfile [view]
- issue #10506 Keyword-like forms of logical operators are not supported in C++ requires clause [view]
- Add missing C++20 module file extension [view]
- Added missing start of paragraph after code fragment [view]
- Content did not scroll when move between anchors [view]
- Correcting count for volatile when checking redundant white space [view]
- Do not lowercase search titles for code and capitalize on page terms [view]
- Escape characters in section headers [view]
- File settings with just a directory are silently ignored [view]
- Fix @enum command with @ingroup [view]
- Fix HTML rendering issue. [view]
- Fix dynamic loading of the side panel [view]
- Fix for source browser backlinks [view]
- Fix indexing words with non-ASCII letters [view]
- Fix non-reproducible search index [view]
- Fixed HTML output issue for (nested) comments inside code blocks [view]
- Fixed code folding issue for macro ending with a comment block [view] and [view]
- Fixed discarding of Slice types during namespace dox generation. [view]
- Fixed issue generating the manual due to missing escapes [view]
- Fixed issue showing wrong inline source fragment for multi-line macros [view]
- Fixed issue with codefragments with TrimLeft [view]
- Fixed regression handling `using A = B<y>x>;` like constructs [view]
- Handling comment in macro name [view]
- Handling of `import` in non cpp files [view]
- Handling of incorrect HTML end comment [view]
- Handling of protection of the Java enum constructs. [view], [view]
- Handling of relative include path in code output processor [view]
- Handling of relative include path in preprocessor [view]
- Improve readability of virtual base class in diagrams in dark mode [view]
- Improve rendering of default parameters in HTML output [view]
- Improve snippet handling [view]
- Improved rendering of sections like @note, @warning, @todo etc. for HTML [view]
- Incorrect jump to anchor inside page when using CTRL-click [view]
- Incorrect link from summary links for classes [view]
- Incorrect showing of hidden call graph [view], [view]
- Incorrect warning and output with `\image` followed by HTML command [view]
- Incorrect warning due to import statement [view]
- Javascript persistency improvements [view]
- Line miscounting in case of structural indicator [view]
- Make parser more robust for unterminated string literals in comments [view]
- Miscounting in case of markdown links [view], [view]
- Prevent reading tag file multiple times [view], [view], [view]
- Prevent recursive lockup when instantiating complex recursive templates [view]
- Problem with `\fC` on man pages [view], [view]
- Properties in python "namespaces" [view]
- Recognition of `<=` inside template construct [view], [view]
- Recognition of `>=` inside template construct [view]
- Recognition of `>=` inside initializer construct [view]
- Reduce code duplication [view], [view]
- Reduce the number of calls to stripWhiteSpace() [view]
- Regression fix broken link to source code when CREATE_SUBDIRS is enabled [view]
- Reinstate list of brief functions [view]
- Reset code parser for examples based on code type [view]
- Simplification and avoid warning for non-option text after image title [view]
- Store group name instead of index as cookie [view]
- Use the file name as the title for \ref file.md [view]
- Warning about internal doxygen inconsistency for python packages [view] and [view]
- Wrong links for stateToString in internal doxygen documentation [view]
- addon/doxmlparser: Include requirements on setup.py [view]
- addon/doxmlparser: Use doxygen VERSION as version [view]

### Features

- New option HTML_COPY_CLIPBOARD to allow copying code fragments to the clipboard [view] , [view] , [view] , [view]
- Adding option PROJECT_ICON to specify icon to show for HTML output [view]
- Added option HTML_PROJECT_COOKIE to allow different project to use different cookies [view]
- Allow optional width= and height= specifiers for PROJECT_LOGO [view]
- Adding JSON output to doxyapp [view] and [view]
- More flexible inheritance graphs regarding show / hide [view]
- More flexible inline sources regarding show / hide [view], [view]
- Portuguese translators updated to 1.10.0. [view]
- Publish doxmlparser to PyPI [view]

### Improved user feedback and documentation

- Make the manual use more modern doxygen output [view]
- Add section explaining how to add "additional documentation" [view]
- Add range possibility in xsd [view] and [view]
- Submit warning when the ingroup command is used with an non-existing group name [view] and [view]
- add LaTeX and perl to testing readme as dependencies [view]
- Improvement of the description of INLINE_SOURCES setting [view], [view]
- Update file extension mapping table in doc/starting.doc [view]
- Documentation correction for sqlite3 [view]
- Adjusting the term "module" to "topic" in documentation [view]
- Remove help info about non existing option [view]
- More consistent warning messages [view], [view]

### Refactoring and cleanup

- Use session cookies and modernize javascripts [view]
- Refactoring: Modernize libversion [view]
- Refactoring: Move class/member specifier bits into own class [view]
- Refactoring: Wrap Entry::section in type safe class EntryType [view]
- Refactoring: modernize dynsections.js [view]
- Refactoring: modernize navtree.js [view]
- Refactoring: modernize search.js [view]
- Refactoring: replace std::bind by lambda in markdown.cpp [view]
- Refactoring: use the same cookie functions for all scripts [view]
- Replace obsolete .ready(...) syntax. [view] and [view]
- Add overflow guard to the dispatcher [view]
- Added const to a couple for references [view]
- Remove double entries [view]
- Remove double mentioning of 'module' in compound.xsd [view]
- Remove double resetting for htmlhelp [view]
- Remove obsolete parts from cmake configuration files [view]
- Remove obsolete tag test [view]
- Remove obsolete vhdl functions [view] and [view]
- Remove unused css entry [view]
- Rename `.doc` to `.dox` in doxygen documentation [view], [view], [view]
- Give functions override attribute [view], [view] and [view] and [view]
- Use system FindSQlite3.cmake [view]

### Improved testing and debugging

- Add debug listing for sections [view]
- Add option `-t_notime` to doxygen [view]

# 1.9 Series

## Release 1.9.8

(release date 25-08-2023)

### Bug fixes

- issue #3476 The encoding of the layout file is not taken into account [view]
- issue #4134 C# abstract/sealed class attributes are not stored in XML output [view]
- issue #7580 No autolink for template functions [view]
- issue #8393 @endcond not behaving as expected (missing warnings, missing output) [view]
- issue #9964 [VHDL] - type and name of type in type-generic entity are swapped [view]
- issue #10056 [1.9.7] Markdown Header ID ignored in subdirectories [view]
- issue #10076 \include and Python [view]
- issue #10078 Newline missing in parser output [view]
- issue #10081 [C++] Inherited virtual functions are not listed as being inherited in child class [view]
- issue #10089 User-provided section labels in markdown files are ignored by doxygen 1.9.7 [view]
- issue #10096 Broken equations [view]
- issue #10097 missing TOC on \subpage [view]
- issue #10101 Spurious warnings for methods in Objective-C categories [view]
- issue #10104 Incorrect handling of unicode characters [view]
- issue #10110 Regression: Specified markdown mainpage '...md' has not been defined as input file [view]
- issue #10115 doxywizard freezes when large amounts of command line output is produced [view], [view]
- issue #10120 Files with same name have a path prefix [view]
- issue #10123 Argument for parameter does not exist and is missing at the same time [view]
- issue #10143 Inheritance [view]
- issue #10145 latex duplicate equations [view]
- issue #10165 doxygen gets confused with duplicate class definitions and recursion detection [view]
- issue #10184 Problems with differently templated user defined conversion operators [view]
- issue #10186 C++: constexpr and / or static trailing return type syntax + void [view]
- issue #10190 References to enumerations within a class named Bool are not properly handled [view]
- issue #10191 Python docstring parsed incorrect [view]
- issue #10193 Using an alias within an alias [view]
- issue #10195Can't create C# classes using XSD.exe [view]
- issue #10209 UML diagrams do not honor HIDE_UNDOC_MEMBERS [view]
- issue #10212 "refid" attribute on "includes" (incType) XML nodes should be marked optional [view]
- issue #10220 \copydoc for file dox does not copy brief [view], [view]
- issue #10234 Feature: Add EXTERNAL_NAMESPACES configuration option, or similar [view]
- issue #10235 Python private class incorrectly expects documentation for its methods [view], [view]
- issue #10235 separator in warning for C# [view]
- issue #10238 Doxygen can't document Global functions [view]
- issue #10252 Doxygen produces wrong link from header file [view]
- issue #10253 Newer version using a lot of RAM compared to older version [view]
- issue #10258 global-buffer-overflow in ManDocVisitor::operator()(DocHtmlList const&) mandocvisitor.cpp:640 [view]
- Fixed problem expanding single parameter aliases [view]
- Fixed problem handling recursive aliases [view]
- Fixed problem parsing C++/CLI 'public ref class' [view]
- Related pages index contained bogus expand/collapse icons [view]
- Problems copy `FORMULA_MACROFILE` [view]
- Variable names seen as keywords in C++ [view]
- Comment in `<protection> :` class part of Cpp [view]
- Correct warning in case automatic setting of doxygen settings [view]
- Position of first line of source browser for RTF output [view]
- Corrections for vhdl comment [view]
- Fix latex quotes in <pre> [view]
- Unclear / double path for file names [view]

### Features

- Add support for C++20 modules, which can be documented by placing documentation before the module declaration or by using the `\module` command. [view] [view], [view], and [view]
- Added interactive code folding to the HTML output [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], and [view]
- parser update to vhdl2017 [view]
- Improve accessibility of the html output via keyboard [view], [view], [view], [view], [view], [view], and [view]
- add CMake option to use system spdlog [view]
- Allow custom separator for ALIASES [view], [view], and [view]
- Support Fulltext search for page and group titles [view], [view], [view], [view], and [view]
- More flexible collaboration graphs regarding show / hide via new commands `\collaborationgraph` and `\hidecollaborationgraph` [view]
- More flexible directory graphs regarding show / hide via new commands `\directorygraph` and `\hidedirectorygraph` [view]
- More flexible group dependency graphs regarding show / hide via new commands `\groupgraph` and `\hidegroupgraph` [view]
- More flexible include graphs regarding show / hide via new commands `\includegraph` and `\hideincludegraph`[view]
- More flexible included by graphs regarding show / hide via new commands `\includedbygraph` and `\hideincludedbygraph`[view]
- Add 'extern' to xml output [view]
- Consistent use of `TIMESTAMP`, which makes `HTML_TIMESTAMP` and `LATEX_TIMESTAMP` obsolete [view]
- Enable link on line of edge in a directory graph [view]

### Improved user feedback and documentation

- Switch dark / light mode on ESC key [view], [view]
- Setting correct version in LaTeX documentation [view], [view]
- Portuguese translators updated to 1.9.8. [view]
- Adding a few links in the documentation [view]
- Check for remaining markers in the used header and footer for HTML and LaTeX [view]
- Correct spelling and grammar in MARKDOWN_ID_STYLE docs [view]
- Add line to README with generateDS version number [view]

### Refactoring and cleanup

- Add sqlite3 as local dependent package [view], [view], [view], [view]
- Added README.md to the sqlite3 directory [view]
- Fixed a number of warnings reported by clang-tidy [view]
- clean: adjust `qisempty()` for better readability [view]
- clean: adjust `qmemmove()` implementation indentation [view]
- clean: adjust `qstrdup()` implementation indentation [view]
- clean: adjust indent and style for `qstrncpy()` [view]
- clean: remove dead code for snprintf macro definition [view]
- clean: replace 0 with nullptr in `qstrcpy()` implementation for better readability [view]
- style: adjust indentation in `qstricmp()` and `qstrnicmp()` [view]
- style: prefer `nullptr` to 0 in `QCString::find()` [view]
- style: remove trailing spaces in GitHub Action workflow file [view]
- style: use 2 spaces in testing/CMakeLists.txt [view]
- Silence 2 coverity warnings [view]
- Refactoring: Add 'override' to virtual methods of symbol definitions [view]
- Refactoring: Replaced prints by tracing in symbolresolver [view]
- Refactoring: move input and result parameters of getDefs into structs [view]
- Refactoring: replace DotRunnerQueue and DotWorkerThread by ThreadPool [view]
- Various performance improvements + added section titles [view]
- Detection of missing / superfluous `\n` in warnings [view], [view], [view], [view], [view]
- Remove Windows compilation warnings [view], [view], [view]
- Remove experimental template engine option [view]
- Cleanup: delete useless macro def, class and function declaration in doxygen.h [view]
- Various restructurings [view]
- Sync etoc_doxygen with upstream 1.2b release [view]

### Improved testing

- Add support for tracing to stdout and stderr [view]
- Added debug option '-d entries' to dump the tree of Entries. [view]
- Testing with `CLANG_ASSISTED_PARSING=YES` [view]
- ci: run tests with explicitly specified env vars [view]
- Non readable error message in tests [view]
- Possibility to exclude tests by number [view], [view]
- Possibility to see the temporary files used for formulas [view]
- Interleave of `stdout` and `stderr` [view]
- Show not up to date message for translator [view]
- Enable warn/err string checking also for clang [view]

## Release 1.9.7

(release date 18-05-2023)

### Bug fixes

- bug 327697 Ignores single-line /*! ... */ comment contents sometimes [view]
- bug 473140 Broken anonymous union data in XML [view]
- bug 548438 VERBATIM_HEADERS - only works with header files with file type [view]
- bug 564252 HTML output for pure virtual function with "throws()" hint is wrong [view]
- bug 594746 [html] wrong <title> value, missing title in page for "Members" pages [view]
- bug 628022 single `-` in `<pre>` busts nesting levels [view]
- bug 636706 Support regular expressions in EXCLUDE_SYMBOLS [view]
- bug 752410 make.bat on UNC paths will start to erase files from c:\windows\system32 [view]
- bug_665439 FILE_VERSION_FILTER incorrectly run for file references from a tagfile with filename "<tagfile>:/my/path" [view]
- bug_676971 HIDE_SCOPE_NAMES also hides template declarations of template member functions in detail description [view]
- issue #6737 end of comment inside code block [view]
- issue #7087 Invalid (X)HTML in case of \mscfile, \dotfile, \diafile [view], [view]
- issue #7386 Method parameters documented inline are not present in documentation when using @copydoc [view]
- issue #8790 doxyrest command returns "duplicate member id group..." [view], [view], [view]
- issue #9159 Doxygen produces ugly empty space in LaTeX and PDF output because of hypertargets [view]
- issue #9254 Markdown page subpage and treeview [view]
- issue #9319 Doc build fails with cairo 1.17.6 [view], [view]
- issue #9368 subsubsection and beyond text rendered inline on LaTeX [view]
- issue #9668 Doxygen confused with enum class in nested namespaces [view]
- issue #9696 bug 466064 Formatting-options for $datetime [view]
- issue #9713 Variables show in "Related Functions" section [view]
- issue #9718 class diagram's width is not correct and class member appears weird [view], [view], [view]
- issue #9719 \ref command does not insert title of referenced page [view], [view], [view]
- issue #9726 \ref command doesn't perform in LaTeX as described in the documentation [view]
- issue #9756 Doxygen produces invalid output for many C# interpolated strings [view]
- issue #9763 Python docstring: brief and detailed description not correctly separated by blank line [view]
- issue #9771 Escaped double-quote in Objective-C string confuses parser [view]
- issue #9779 Doxygen doesn't correctly treat nested \if statements [view]
- issue #9783 Some functions are not listed in "referenced by" [view]
- issue #9810 Math in bibliography [view]
- issue #9816 Missing search files in QCH content [view], [view]
- issue #9831 @exception description paragraph does not accept @ref tag [view], [view]
- issue #9839 Server side search is returning wrong results [view]
- issue #9845 C# parser reads "$" as "Interpolated string expression" which is not correct [view]
- issue #9846 Python functions with and without type hints displayed inconsistently. [view]
- issue #9850 Link to class enum in namespace not working in file reference [view]
- issue #9852 Operator<< not parsed correctly in template class [view]
- issue #9855 HTML: TOC: Smooth scrolling [view]
- issue #9858 Markdown: Heading auto id starting with digit of minus sign [view]
- issue #9861 Links among markdown files don't work if upstream path element contains space [view]
- issue #9883 Performance issues when HAVE_DOT is YES to make \dot work, and CLASS_GRAPH=GRAPH is also used [view]
- issue #9885 References to enum member partially broken since v1.9.5 [view]
- issue #9911 Support ##< for documenting members and variables [view]
- issue #9921 HIDE_SCOPE_NAMES does not hide names in treeview [view]
- issue #9932 Incomplete Style.css [view]
- issue #9935 Doxygen WARN_LOGFILE needs to create folder [view]
- issue #9942 warning: Member try (variable) of namespace lib_validation is not documented. [view]
- issue #9947 Attributes resulting of an unpacked tuple are not documented (Python) [view], [view], [view], [view]
- issue #9950 PlantUML is not fully supported in markdown fenced code blocks [view]
- issue #9963 [VHDL] - Generic parameter list of generic subprograms are not printed [view]
- issue #9963 [view]
- issue #10006 Problem with generated documentation when a method is named 'exception' [view]
- issue #10010 SHOW_HEADERFILE doesn't work well for headers with no file extension [view]
- issue #10013 infinite recursion (stack overflow) in findScopeFromQualifiedName [view]
- issue #10015 Add warning when file set for USE_MDFILE_AS_MAINPAGE isn't found [view]
- issue #10050 Typo in the Doxygen \todo documentation [view]
- avoid csp insecure eval on search box. [view]
- fix sqlite3gen regressions from 592aaa4 [view]
- Fix server based search for PHP 8.1 [view]
- search: Fix incorrect result count in opensearch suggestions [view]
- Don't show `__pad*__` for unnamed bitfields [view]
- Check and copy logo file for rtf output [view]
- Escape `-` sign in fontname settings substring as well [view], [view]
- Latex incorrect handling of backticks in code fragments [view]
- Variables were shown with () in the client side search results [view]
- Prevent bogus type assignment in Python output [view]
- Rename correct file to .bak when using "doxygen -u <some-path>" (issue #10035) [view]
- Double identifiers due to mapping to same id of file names [view], [view]
- Fixed cross referencing issue. [view]
- Limit index fields in hhk file of chm file. [view]
- Hide undocumented group members when `HIDE_UNDOC_MEMBERS=YES` [view]
- Handling of `\noop` command in preprocessor [view]
- Handling of verbatim type sections in preprocessor [view], [view]
- Fixes for type bound procedures in Fortran [view]
- Incorrect warning about not matching number of `#if` / `#endif` [view]
- Text on start line of fenced code block should not be ignored. [view], [view]
- Undefined references in pdf documents [view]
- No anchor should be created for inherited members [view], [view]
- Not documented parameter in case of `const <type>` without argument name [view]
- Prevent list items in section titles [view], [view]

### Features

- New option MSCGEN_TOOL for running mscgen externally [view], [view]
- New option MARKDOWN_ID_STYLE to generate GitHub style identifiers for sections [view]
- New option SITEMAP_URL to generate Sitemaps [view]
- New option TIMESTAMP to disable pages without timestamps (replaces HTML_TIMESTAMP and LATEX_TIMESTAMP) [view]
- Making settings from settings file available via new \doxyconfig command. [view]
- Add '<thead>', '<tbody>' and '<tfoot>' HTML tags as dummies [view]
- Add `point` as email separator [view]
- Improved group handling for defines, static functions, and enums [view], [view], and [view]
- Support visible attribute for all elements in the layout file [view], [view], [view], [view]
- Ignore C11 _Static_assert() [view]
- Adding "engine" ebnf, hcl, and regex for plantuml [view], [view]
- Better handling of punctuation characters in GitHub anchors [view]
- Better representation of brief (union / struct) descriptions in HTML [view]
- Better warning from constant expression evaluation [view]
- Reduce LaTeX warnings [view], [view], [view]
- Support for basic hierarchical grouping in LaTeX output [view]
- Support hierarchical groups in RTF and use the same model for pages [view]
- Improve default LaTeX hypertarget location [view]
- Allow multiple newlines in a Markdown code span. [view], [view], [view]
- Enable possible other LaTeX error modes via new LATEX_BATCHMODE options [view], [view]
- Added option `trimleft` to the command `\snippet` [view]

### Improved user feedback and documentation

- bug 630661 Highlighting lines in a dot graph [view], [view]
- bug 615500 Program Icon under Windows [view], [view]
- doc(commands): Update \class example link [view]
- doc(commands): Update example links for manual.c [view]
- doc(diagrams): Better HTML example link [view]
- doc(grouping): Link memgrp example to file docs [view]
- doc(various): Match HTML and LaTeX example links [view]
- docs(docblocks): Update some example hyperlinks [view]
- Translation of terms in tooltip [view]
- Updated Portuguese, Spanish, and Swedish translators [view], [view], [view], [view], [view]
- Improve readability/contrast of "use" arrows in dark mode [view]
- Hyperlinks in help information of doxywizard [view]
- Fix for some permanent redirects [view]
- Coloring in languages table in manual [view]
- Collect warnings and output them at the end [view]
- Debugging documentation [view]
- Incorrect HTML generated for doxygen manual [view], [view]
- Incorrect and redirect links in documentation [view]
- Incomplete dependency translation report [view]
- Spelling corrections [view], [view], [view], [view], [view], [view], [view], [view]
- Confusing edge tooltips shown [view]
- Applied various cosmetic changes to the HTML output [view]
- Confusing entries in legend explanation [view]
- Consistency in HTML output with multiple runs [view]
- Consistency / links in LaTeX output of the doxygen documentation [view]
- Consistency between HTML and LaTeX / RTF for examples [view]
- Consistency between return type and usage of pid [view]
- Consistency in used debug terminology [view]
- Correct wording of fatal error message [view]
- Documentation `\ianchor` correction [view]
- Preserve whitespace after \showdate format [view]
- Silently ignore `</img>` tag [view]
- Union / Struct indicated as Class in the Xref list [view], [view]
- Labels were not visible in dark mode for some dot graphs [view], [view]
- Fixed problem with the client side search engine (HTML output) [view]
- Improve layout of table with HTML commands on documentation [view]
- Improvement of position of open / closed folder icon [view]
- The CDATA sections in xml code representation should not be interpreted [view]

### Refactoring and cleanup

- Reduce code duplication [view], [view], [view], [view]
- Reduce lock contention in symbol resolver [view]
- Refactor (sub)page handling for LaTeX [view]
- Refactoring: Improve performance of computeMemberRelations() [view]
- Refactoring: Optimize Definition::name() and Definition::localName() [view]
- Refactoring: Remove raw pointer use from cmdmapper [view]
- Refactoring: Store DocNodeVariant pointer inside DocNodes [view]
- Refactoring: Use std::variant for code generators [view]
- Refactoring: add OutputCodeList to specific generators [view]
- Refactoring: add multi-thread support to generateJSNavTree() [view]
- Refactoring: add multi-thread support to writeJavaScriptSearchIndex() [view]
- Refactoring: avoid unneeded DocParser pushContext/popContext calls [view]
- Refactoring: better use of smart pointers for layout module [view]
- Refactoring: embed TokenInfo in doctokenizer as value instead of pointer [view]
- Refactoring: for ScopedTypeVariant use std::variant [view]
- Refactoring: improve argv/argc handling for libclang API [view]
- Refactoring: improve performance of selectBlock() [view]
- Refactoring: let create*Def() functions return std::unique_ptr instead of raw pointer [view]
- Refactoring: make a couple of global enums scoped [view]
- Refactoring: make use of C++17 structured bindings [view]
- Refactoring: move detab() to util.cpp so it can be shared [view]
- Refactoring: move some functionality from generic to more specific files [view]
- Refactoring: optimize addHtmlExtensionIfMissing() [view]
- Refactoring: optimize keyword substitution for LaTeX output [view]
- Refactoring: optimize toLowerChar() [view]
- Refactoring: pass variant by moving instead of copying [view]
- Refactoring: remove BaseOutputDocInterface class [view]
- Refactoring: remove CodeOutputInterface base class from OutputCodeList [view]
- Refactoring: remove toClassDefMutable for const input [view]
- Refactoring: remove toMemberDefMutable for const input [view]
- Refactoring: remove toNamespaceDefMutable for const input [view]
- Refactoring: remove unneeded m_impl indirection from MemberDefImpl [view]
- Refactoring: remove unused code [view]
- Refactoring: remove unused conversion function [view]
- Refactoring: replace types uchar/uint/ulong/int64/uint64 by stdint types [view]
- Refactoring: simplified the way search data from source code is gathered [view]
- Refactoring: simplify ConfigImpl's instance handling [view]
- Refactoring: use OutputCodeList for parsing code instead of CodeOutputInterface [view]
- Refactoring: use smart pointers for Definition class internals [view]
- Refactoring: use smartpointer for Doxygen::searchIndex instance [view]
- Refactoring: use std::unique_ptr for FileState in pre.l [view]
- Refactoring: use std::variant for generators instead of polymorphism [view]
- Refactoring: make MemberVector hold non-const MemberDef pointers [view]
- Optimize findFileDef locking [view]
- Build: Re-enable LEX_FILES_{H,CPP}, streamline [view]
- Various refactorings [view]
- Make configuration default texts configurable [view]
- Make language detection for fenced code blocks more robust [view]
- Make reading configuration utf-8 compatible [view]
- Removed unneeded mutable keyword and added missing lock [view]
- Improve debugging for lexical scanners [view]
- Replace custom tracing/debug prints by tracing via spdlog [view]

### Improved testing

- Add test case for define doc association [view]
- Add test case for direct define documentation [view]
- Add test case for enum doc association [view]
- Add test case for enum field doc association [view]
- Add test case for file doc association [view]
- Add test case for function doc association [view]
- Add test case for static assertions [view]
- Add test case for typedef doc association [view]
- Add test case for variable doc association [view]
- Add test for doc entry association with groups [view]
- testing: Add test case for enum fields [view]
- ci: create workflow to publish Docker image [view]
- runtests.py: Support tests with additional inputs [view]
- Added unit test with unicode characters in the name [view]
- Adding some attributes to dtd validation [view]

## Release 1.9.6

(release date 27-12-2022)

### Bug fixes

- issue #1166: Read error when multi-byte characters in file path name (Origin: bugzilla #145186) [view]
- issue #3244: IGNORE_PREFIX works also on names of functions/methods [view]
- issue #3798: \relates does not find class if it is in an anonymous namespace [view]
- issue #5621: First % in markdown inline code segment a la %PATH% is swallowed, bug 736665 [view]
- issue #9221: Tag File - option to Strip path [view]
- issue #9317: File-scoped nested namespaces in C# [view]
- issue #9319: Doc build fails with cairo 1.17.6 [view]
- issue #9552: False warning "@param documentation sections but no arguments" on using declarations/typedefs [view]
- issue #9566: Same member groups in multibyte characters are separately generated. [view]
- issue #9582: `noexcept(false)`-function is labeled as noexcept [view]
- issue #9584: Warning "Illegal command \ifile found as part of a \c command" in \copydoc, but not original documentation [view]
- issue #9587: Autolinks to functions do not take effect [view]
- issue #9602: Link to namespace in TAGFILES is not resolved with EXTRACT_ALL=NO [view], [view]
- issue #9604: PlantUML @start<engine> not recognized [view]
- issue #9605: fix for unknown entities in the preprocessor conditionals [view], [view]
- issue #9616: Regression in 1.9.4 in HTML Tree View (command \mainpage) [view]
- issue #9617: visible="no" ignored in treeview [view]
- issue #9622: C++ concepts are not linked to namespaces in XML output [view], [view], [view], [view]
- issue #9650: Private methods marked only as override are not documented when EXTRACT_PRIV_VIRTUAL = YES [view]
- issue #9669: Namespaces in arguments of a method breaks cref resolving in C# [view]
- issue #9672: doxygen does not interpret Python docstrings when typed next to SLURM directives [view]
- issue #9678: Unable to resolve reference to template class or its member inside a namespace [view]
- issue #9682: Missing HTML pages and broken links for undocumented C++ concepts [view]
- issue #9697: Minor correction to documentation [view]
- issue #9715: segmentation fault (recursive classes?) [view]
- issue #9720: Recursive class relation warning when using type aliases starting with 57f5ad2 [view]
- issue #9721: \code blocks have blank lines removed in LaTeX/PDF output [view]
- issue #9722: Doxygen Regression when documenting enums for C#(1.94 -> 1.9.5) [view]
- issue #9733: doxygen stops parsing a file if one uses latex formulas and //!< or ///< for inline parameter documentation [view]
- issue #9736: Doxygen will not generate class information for a C# class that contains certain string combinations [view]
- Apply scrollbar styling when rendering the internal docs with WebKit [view]
- Fix a number of threading issues when NUM_PROC_THREADS!=1 [view]
- Fixed a couple of threading issues when NUM_PROC_THREADS!=1 [view]
- Bugfix of malformed UML class diagram generated thru graphviz. [view]
- Bugfix of malformed VHDL process flowchart generated thru graphviz. [view]
- Area tag does not give `alt=""` as of dot 7.0.2 [view], [view], [view]
- Incorrect interactive svg file for dot [view]
- Correcting default HTML stylesheets for color style LIGHT and DARK [view]
- Fixed some issues handling character literals in template arguments [view]
- Removing hierarchy / namespace from layout file results in incorrect RTF / LaTeX document [view]
- Unknown entities in the preprocessor conditionals [view]
- Hash comment in php [view]
- Incorrect man code output in respect to backslashes [view]
- Spurious characters in Fortran Fixed to free format conversion [view], [view]
- Incorrect handling of escaped ilinebr command [view]
- Incorrect return of getUTF8CharAt giving wrong alphabetical index [view]
- Reference to non existing pages with embedded anonymous union / struct [view]

### Features

- Adding Python PEP 526 typing support [view], [view]
- issue #2580: Formatting-options for $datetime [view]
- issue #9702: Add new command \qualifier to add custom tags that would be similar to "inline" and "static" to some functions or classes [view] and [view]
- issue #9549: Feature request: Allow to disable Webkit scrollbar styling [view]
- NUM_PROC_THREAD!=1 will now process formulas on multiple threads [view]
- Treat `__name` variable as private and `_name` variables as protected in Python [view]
- Add support for multiple <summary> sections inside <details> [view], [view], [view], [view], [view], [view], [view] and [view]
- Added option WARN_IF_UNDOC_ENUM_VAL to have warnings for undocumented enum values [view], [view]

### Improved user feedback and documentation

- Documentation correction in config.xml [view]
- HTML_COLORSTYLE improve documentation [view]
- Layout, textual, syntactical changes documentation [view]
- Correction and making more uniform texts for the different lists [view]
- Fix unreadable file warnings for broken symlinks with EXCLUDE_SYMLINKS is set [view]
- Doxywizard: Don't show default text in case no default value present, [view]
- Show "Additional Inherited Members" for LaTeX, RTF, etc. [view]
- Fixed main menu and submenu items for Fortran and VHDL in context of other languages. [view]
- Incorrect documentation for the command `\fileinfo` [view]
- QHP output requires that HTML output is generated [view]
- Dutch and Czech localization update to "new since 1.9.6". [view]
- Portuguese translators updated to 1.9.6 [view] and [view]
- Update translator_fr.h [view], [view], [view], [view], [view], [view]
- Added translation specialization for VHDL in the `trMemberFunctionDocumentation()` method. [view]

### Refactoring and cleanup

- Refactoring: Improve constness of commentcnv interface and added comments [view]
- Refactoring: Minor cleanup of the constant expression parser [view]
- Refactoring: Move global index counters into a Index singleton class [view]
- Refactoring: Move javascript license file to header [view]
- Refactoring: Use Compile Time Regular Expressions instead of reg::Ex [view]
- Refactoring: better split output generator and code generator [view]
- Refactoring: cleanup index interface and implementation [view]
- Refactoring: some minor performance tweaks [view]
- Usage of steady_clock [view]
- Check debug settings by means of the compiler [view]
- Incorrect place of prototype of `dateToString` [view], [view]
- Optimize fragment inclusion performance for INLINE_SOURCES=YES [view]
- Remove redundant functions and typedef [view]

## Release 1.9.5

(release date 26-08-2022)

### Bug fixes

- issue #3165: EXPAND_ONLY_PREDEF neglected within function macro expansions (Origin: bugzilla #559489) [view]
- Macros listed with EXPAND_AS_DEFINED were not recursively expanded [view]
- issue #8215: missing lang attribute and meta description for SEO [view]
- issue #9016: Support collapsible sections in markdown [view]
- issue #9047: Support @param-taint in PHP (permit dashes in command aliases?) [view], [view]
- issue #9096: Call Graph corrupt and/or incomplete (2) [view]
- issue #9236: doxygen x_noenv should always diff system-dependent settings [view]
- issue #9309: Colon on a line by itself [view]
- issue #9312: Build: cache.h:53:14: error: 'exchange' is not a member of 'std' [view]
- issue #9317: File-scoped Namespaces in C# [view]
- issue #9319: Doc build fails with cairo 1.17.6 [view], [view]
- issue #9344: Long bibliography entry looks bad [view]
- issue #9352: Qt Q_GADGET macro is not supported [view]
- issue #9362: Doxyfile environment/quote mishandling in list values [view]
- issue #9367: Current git master does not honor PROJECT_NUMBER in LaTeX [view]
- issue #9378: Dollar Sign Escape Sequence Ignored in Markdown Backtick Syntax (Inline Code) [view]
- issue #9394: Request: Show C++ default member values when INLINE_SIMPLE_STRUCTS=YES [view]
- issue #9399: XML / perlmod fortran output, the type of a parameter of a function is set to the name of the parameter [view]
- issue #9409: Error-message and Line-Number is NOT related to document [view]
- issue #9417: Java: Issue with static initializer if no space after static [view]
- issue #9427: Enhance documentation for filter commands [view]
- issue #9430: HTML layout: a full sidebar overlaps with breadcrumbs [view]
- issue #9440: Fix search label regression [view]
- issue #9476: fatal: Cannot open 'doxygen/graph_legend.dox': No such file or directory [view]
- issue #9500: No output when run doxygen in high level directory [view]
- issue #9515: Function return value problem [view]
- issue #9520: Rest of file silently ignored after a certain string literal [PHP] [view] and [view]
- issue #9386: Problems with the directory dependency graph [view]
- bug 531817 Python: Backslash prevent showing the proper preview [view]
- bug 539818 C Preprocessor enum printing trick not handled properly by Doxygen [view], [view]
- bug 642168 C# "here-docs" not correctly parsed [view]
- bug 786576 regression with ALIASES or image latex interpretation [view]
- bug_572042 ingroup does not allow multiple groupnames [view]
- bug_751023 Predefined macros are handled incorrectly in source browser [view]
- Fixed javascript issue in menu.js causing invalid XHTML output [view]
- Fixed parsing issues with the XHTML output due to the use of &nbsp; [view]
- FileInfo::isSymLink() did not work correctly [view]
- Files Quick Link results in a non existing page [view]
- Added guard to prevent stack overflow in hasNonReferenceSuperClass() [view]
- Give markdown verbatim and fenced code blocks their own command. [view]
- No click possible on chapters in doxygen's CHM documentation [view]

### Features

- Add support for Dark theme (set via HTML_COLORSTYLE with setting DARK, LIGHT, AUTO_DARK, AUTO_LIGHT and TOGGLE).
  Original issue #8404: Dark theme [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], and [view]
- New options DOt_COMMON_ATTR, DOT_EDGE_ATTR, and DOT_NODE_ATTR to configure dot graph, nodes and arrows attributes [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], and [view]
- New option INPUT_FILE_ENCODING to specify input encoding based on a file pattern [view], [view]
- New option FORTRAN_COMMENT_AFTER to configure the fixed format comment start position (default 72).
- Added new commands \fileinfo and \lineinfo to show the current file and line.
  See issue #7046: Add filename and line number support to tags, ala __FILE__ and __LINE__ macros [view] and [view]
- Add support for \showdate command [view], [view], [view], [view], [view], and [view]
- Allow empty HTML <div/> and <span/> tags [view]
- Handling of `@...@` setting with `doxygen -x_noenv` [view], and [view]
- Recognizing and name of implicit Fortran [programs [view]
- Support HTML stylesheets on the Internet [view]
- Issue #9415: fixed format source with wide lines [view]
- End of "here document" can be indented [view]
- Portuguese and Czech translators updated to 1.9.4. [view] and [view]
- issue #9444: Upgrade jQuery UI to latest 1.13 release to get rid of security issues [view]

### Improved user feedback

- Commented function list macro gives warning [view]
- Correction of line counting [view]
- Documenting parameter of function without parameters [view], [view]
- Warning about non closed (nested) comment [view]
- Friendly message on incorrect input [view]
- Make directory traversal more robust for errors (e.g. broken symlinks) [view]

### Deprecated functionality

- With the new dark mode color style the FORMULA_TRANSPARENT and DOT_TRANSPARENT have become obsolete. Pictures always have a transparent background now.
- The specific options DOT_FONTNAME and DOT_FONTSIZE have been replaced be more generic options DOT_COMMON_ATTR, DOT_EDGE_ATTR, and DOT_NODE_ATTR that can be used to customize the way dot images are rendered. When upgrading the Doxyfile (using `doxygen -u`) the existing values of DOT_FONTNAME and DOT_FONTSIZE will be migrated.

### Refactoring and cleanup

- Dependency between examples. [view]
- Enabling include files for lex files [view]
- Enabling dependencies for include files in lex files [view]
- Fix handling of PUBLIC/PRIVATE for procedures in Fortran [view] and [view]
- Fix regressions introduced by changing the way references are resolved [view]
- Fixes: also allow ; and space as attribute separator [view]
- Implementation of lineBreak and nonBreakingSpace in docbook [view]
- Improve test for fortran public/private handling [view]
- Improvement of HTML documentation section [view]
- Incorrect determination of sub-sections for index. [view]
- Incorrect name lex state name used [view]
- Making example configurations consistent [view]
- Missing possibility for Element 'compounddef', attribute 'language' [view]
- More translation tweaks [view]
- Performance tweaks to speed up processing [view]
- Prohibit in-place doxygen builds [view], [view]
- Refactoring and fixes [view]
- Refactoring: Automatically replace incorrect formula.repository [view]
- Refactoring: optimize FileDef::isDocumentationFile() method [view]
- Refactoring: optimize guessSection routine [view]
- Refactoring: reimplement getDefs using symbol resolver [view]
- Refactoring: replace left(n)/right(n) by startsWith/endsWith [view]
- Refactoring: use std::variant for Indices [view]
- Refactoring: use std::variant to switch between search indices [view]
- Remember position of collapse/expand across pages [view]
- Remove dead-code statement as found by coverity [view]
- Remove unused Validate debug option [view]
- Replacing the list of HTML / XML commands by tables [view]
- Restructure build rule to improve readability and remove duplication [view]
- Small spelling correction in doxygen usage [view]
- Test Fortran inheritance over modules [view]
- Use lower().str() to map Fortran identifier [view]
- Workaround for DEPFILE [view], [view]
- Workaround for XHTML not supporting <picture> [view]
- fix shabang [view]
- python: do not use tabs for indentation [view] and [view]
- unset executable flag [view]

## Release 1.9.4

(release date 05-05-2022)

### Bug fixes

- bug 334859 HTMLHELP: Underscore in chm file name prevents linking between chm files [view], [view]
- bug 711041 Undocumented "enum" values in TOC of qhp files causes tag-mismatch and corrupt TOC [view]
- bug 783768 QCH files: classes & their constructors get conflicting keyword handling [view]
- bug_445536 Select folder for STRIP_FROM_PATH [view]
- bug_644899 New diagram implementing environment [view], and [view]
- bug_698167 HIDE_SCOPE_NAMES does not hide namespace scope for functions within it [view]
- bug_711041 Undocumented "enum" values in TOC of qhp files causes tag-mismatch and corrupt TOC. [view], [view], [view]
- issue #6382 computational time issue of Java generics [view], [view]
- issue #6992 Automatic Coverity run [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], and [view]
- issue #7543 Support PlantUML in Markdown [view]
- issue #7873 Combining `///`-style comments with macros containing @cond/@endcond causes a preprocessor error [view]
- issue #8355 Doxywizard 1.9.x doesn't start up properly [view]
- issue #8487 Doxygen doesn't generate links to C# classes in different namespaces [view], [view]
- issue #8784 CLANG_ASSISTED_PARSING tries to parse markdown files [view]
- issue #9003 Button Show HTML-Output doesn't work [view]
- issue #9005 Function prototype matching @fn command, but link between both is not made [view]
- issue #9006 Doxygen 1.9.3 replaces '--' with '&ndash;' inside formula alias [view]
- issue #9007 Using DOT_PATH with a symlink for dot does not always work [view], and [view]
- issue #9027 SEARCHDATA_FILE (searchdata.xml) keyword elements blank [view]
- issue #9028 DoxyVerb environment should terminate the previous paragraph before changing paragraph formatting [view]
- issue #9045 wrong grammar/spelling in German html output [view]
- issue #9051 Wrong "Related page" generating in 1.9.3 (works good in 1.9.1!) from *.md files [view], [view]
- issue #9054 Feature Request: Doxywizard: Customize Doxyfile Line Endings [view]
- issue #9055 Objective C method / property attribute decoration confuses parsing [view]
- issue #9058 Strip leading spaces in QHP file [view], [view]
- issue #9070 Doxygen is not showing all called functions in graph plot [view], [view]
- issue #9074 Menubar Links not Parsed Correctly [view]
- issue #9075 .html Extension Removed from Tag File URLs [view]
- issue #9094 Wrong QHP index structure [view], [view]
- issue #9124 Latex: Does not properly compile when PROJECT_BRIEF contains commas [view]
- issue #9127 Doxywizard truncates standard input passed to doxygen process. [view]
- issue #9135 Qhelpgenerator debug mode [view]
- issue #9136 master does not compile on Mac 12.2.1 [view]
- issue #9138 QHP index contains duplicated file entries [view]
- issue #9143 warning file-line format in Possible candidates [view]
- issue #9144 problem with matching function when using namespace [view]
- issue #9148 No uniquely matching class member, but no candidates are printed. [view]
- issue #9155 Doxygen crash with NUM_PROC_THREADS>1 [view], [view], [view]
- issue #9157 Codebase static analysis shows some potential leaks and nullptr access [view]
- issue #9158 Python: Two classes in one file, second class documentation block copied into its class method block [view]
- issue #9171 XML output for dot file uses relative path in 1.9.3 [view]
- issue #9187 doxygen -x_noenv option to not expand environment variables [view], [view]
- issue #9190 DOC: Mention -x switch in the "Support" page [view], [view]
- issue #9192 "Packages" has a "Packages" in the tree [view]
- issue #9195 fix for warning: documentation for unknown define [view]
- issue #9200 Doxygen cannot resolve link to HTML anchor page [view]
- issue #9211 @file is confused by symlinks (regression since 1.9.1) [view]
- issue #9217 Can't load MathJax 3 extensions [view]
- issue #9229 Crash with Segmentation fault in ClassDefImpl::mergeMembers [view]
- issue #9234 NUM_PROC_THREADS not being honored when processing input [view]
- issue #9241 Undocumented external namespaces from .tags files are shown in output Namespace index [view]
- issue #9243 GHC_NO_DIRENT_D_TYPE should be defined on Solaris [view]
- issue #9251 HTML extensions stripped from DOT SVG links with tagfiles [view]
- issue #9254 Missing first word of page in case of existing \page command in markdown [view]
- issue #9257 Build Error regarding vhdlparser [view]
- issue #9264 Markdown tables not rendered for parameters [view]
- issue #9266 doxygen runtime went from 10minutes to >14hours (lots of using namespace) [view]
- issue #9269 Not able to compile with MSYS2/mingw (file too big) [view], [view], [view]
- issue #9274 Automatic links not working in examples that use C++ source [Potential Bug] [view], [view], [view], [view]
- issue #9276 File-Line is omitted when suggesting possible candidates depending on noMatchCount [view]
- issue #9284 Clicking external link within search results with EXT_LINKS_IN_WINDOW=YES opens the link in the search results box [view]
- issue #9296 gives up after seeing egregiously complex template code [view]
- issue #9298 Segfault in Fortran parser (heap use after free) [view], [view]
- Recognize type= as variable in Fortran [view]
- Concept missing in the layout description [view]
- Detecting end of body in python [view]
- SHOW_FILES=NO could cause broken links for grouped files [view]
- Source code was missing line anchors in the HTML output when using libclang [view]
- Updated Hindi Locale ID (LCID): 0x439 Hindi [view]
- INCLUDE_PATH is not recursive [view]
- Spurious colon in the output [view]
- Global enum incorporates values from an enum class [view]
- Incorrect check on a list item. [view]
- Incorrect doxygen help information [view]
- Incorrect line number in warning message [view]
- Incorrect macro file name in LaTeX [view]
- Incorrect protection for test 28 [view]
- Incorrect representation of some items in HTMLHELP [view]
- Incorrect version in language documentation [view]
- Don't create anchor for \name command [view]
- add missing newline in docu [view]
- synchronize man and help messages [view]

### Features

- Add CINDEX_NO_EXPORTS option when linking against static libclang [view]
- Introduce CREATE_SUBDIRS_LEVEL [view]
- Add for the xml output also xml to the markdown image representation. [view]
- Adding Qt6 support [view]
- Update Bulgarian translation [view]
- Better translation for trPackageMembers [view]
- Refer to chapter Grouping with GROUP_GRAPHS [view]
- HTMLHELP warning on using svg as image format for graphs [view]
- mention doxygen debugging flags on the web [view]
- mention how to get additional usage flags [view]

### Deprecated functionality

- Dropping Qt4 support [view]
- Restrict usable flex version to 2.6.4 and higher [view], and [view]
- Update to require JavaCC 7.0.6 or higher [view]
- C++17 compiler is now required to compile doxygen [view]

### Refactoring and cleanup

- Add null pointer checks for dynamic casts of LayoutDocEntry objects [view]
- Add test possibility to check the structure of the index.qhp file [view]
- Add try-catch around DocParser's destructor to avoid coverity warning [view]
- Added GHC_OS_SOLARIS [view]
- Added missing include and remove redundant code [view]
- Added support for Bulgarian [view]
- Added translation for the Hindi-language and signed up as a maintainer for the same. [view]
- Adjustments according to the new README [view]
- Align latex commands [view]
- Allow multi-threaded computation of tooltips [view]
- Automatically set copyright year in doxygen man page [view]
- Automatically show correct year in about box [view], [view]
- Avoid compiler error on systems where size_t==unsigned int [view]
- Correcting default settings when running HTMLHELP [view]
- Determination of fixed source form. [view]
- Downgrade stale translator warning to message [view]
- Enable always all languages [view]
- Enable the equal sign in the file mask [view]
- Error when generating documentation with formulas a second time [view]
- Extended support for language specified in markdown fenced code blocks [view]
- Fix build with MinGW and Ninja [view]
- Fix debug prints [view]
- Fix e-mail obfuscation issue in the manual [view]
- Fix for merge issue [view]
- Fix for translator.py to deal with =default destructor [view]
- Fix for unsigned int issue [view]
- Fix multi-threading issues if SERVER_BASED_SEARCH=YES [view]
- Fix potential stack overflow [view]
- Fix repeated words [view]
- Fixed potential crash in case cached item was already purged [view]
- Fixed regression that introduced an invalid </p> in HTML [view]
- Fixed version check and did some simplifications and refactoring [view]
- Handling enums in settings that double as boolean [view], [view], [view]
- Handling of value of visible attribute [view]
- Interaction of tests for xhtml and qhp [view]
- Line numbers not shown in gray in source code [view]
- Make better use of capture ranges [view]
- Make boolean representation mapping part of ConfigValues::Info [view]
- Making Windows executable large address aware [view]
- Making tag information better available [view], [view]
- Minor optimization [view]
- Missing <VERSION> in description of doxyparse [view]
- Missing part of output due to wrong emoji command [view]
- Modernize LANGUAGE.HOWTO [view]
- Move editbin logic to a separate cmake file [view]
- Moving punctuation dependency to translator [view], [view], [view]
- Prevent running coverity scan when no commit are made [view]
- Problem compiling under Cygwin [view]
- QCString: make str() accessor return a const& [view]
- QCString: slightly faster mid [view]
- Reduce number of calls into visited map [view]
- Reduced code duplication, optimized performance [view], and [view]
- Refactoring: Moved duplicated functionality into BufStr [view]
- Refactoring: clean up destructors [view]
- Refactoring: implement visitors using std::visit and std::variant [view]
- Refactoring: reimplemented tagreader structures [view]
- Refactoring: remove unneeded class OutputDocInterface [view]
- Refactoring: replace custom variant class by std::variant [view]
- Refactoring: replace old style casts [view], [view], and [view]
- Refactoring: split docparser [view]
- Reference to non existing anchor with "More..." [view]
- Reinstate warnings about stale translations [view]
- Remove retrieval of the process count for tests [view]
- Removed unused function in configgen.py [view]
- Removing obsolete functions [view]
- Replace static Config_Get... by just Config_get... [view]
- Replaced DocNode::kind() by dynamic_cast checks [view]
- Replaced conditional sections by adapter and fixed some signals [view]
- Simplified documentation and implementation a bit [view]
- Split of javascript search index into separate files [view]
- Trace statement in markdown.cpp [view], [view]
- Uniform retrieval file definition [view]
- Uniform retrieval of language code by means of translator unit [view]
- clarify what the last comments in man refer to [view]
- optional command variables and align mkidx and latex command approaches [view]
- pass const& of LinkedRefMap to prevent creating temporary copies [view]

## Release 1.9.3

(release date 31-12-2021)

### Bug fixes

- bug 679192 Missing images from generated qhp file [view]
- bug_161451 @copydoc cannot span multiple lines [view]
- bug_365053 Wrong reference to ::classname [view] and [view]
- bug_411629 ifdef-ed namespaces generate "endif" namespace (C#) [view]
- bug_562008 cpp directives in \code fragments breaks subsequent links replacement [view]
- bug_683640 Docset info.plist file doesn't include feed URL [view], [view]
- bug_684050 line continuation in (auto)linking [view]
- bug_688384 JavaDoc @link does not use code font [view]
- bug_693776 @copydoc not working properly [view]
- bug_712290 A command that will generate a warning during compilation [view]
- bug_722111 - 'function' is displayed as C++ keyword (green) in HTML output [view], [view]
- bug_749992 XML output - "bodyend" inside location tag sometimes prints the wrong row. [view]
- bug_750666 Usergroup (layout.xml) url="[none]" doesn't work [view]
- bug_753629 PLANTUML_JAR_PATH Environment Variable Needs Documenting [view]
- bug_766164 Class Members is missing in the CHM. [view]
- bug_771606 'doxygen -w' should not require existence of header.html/footer.html even if listed in an options file [view], [view]
- bug_772405 *_AUTOBRIEF=YES gobbles end of paragraph from brief [view]
- bug_774111 GENERATE_LEGEND with svg graphs [view], [view]
- bug_774167 Left nav pane [view]
- bug_791832 \static command not working [view]
- bug_792690 Spaces MAKEINDEX_CMD_NAME don't work the same as other config options [view]
- bug_796673 doxygen markdown engine disallow parentheses in image title [view]
- issue #7434 Error in LaTeX output of doxygen documentation of VHDL [view]
- issue #7687 Write directory dependency graphs recursively. [view]
- issue #7807 Incorrect handling of triple backticks with specifying language. [view], [view]
- issue #8528 Markdown links to Markdown pages with explicit page command are broken [view]
- issue #8590 XML: Issue with spacing around <programlisting> [view]
- issue #8724 @ingroup not working with concepts [view], [view]
- issue #8726 Confused by C++20 trailing requires-clause [view]
- issue #8730 Read from invalid IncludeInfo object (version 1.9.2, Ubuntu 20.04) [view]
- issue #8734 @note with @parblock within a table data cell breaks the HTML output [view]
- issue #8738 Fixed sizes in project area of HTML output [view], [view]
- issue #8743 <tt> misinterpreted [view], [view]
- issue #8747 Improve output with WARN_AS_ERROR = FAIL_ON_WARNINGS [view], [view]
- issue #8750 Crashes with 1.9.2 on Ubuntu 21.04 [view], [view]
- issue #8752 Generated filenames depend on undefined behavior - doxygen output not reproducible [view]
- issue #8753 qhp file corrupt when subsection with no parent section [view]
- issue #8755 :: lost in nested names when using markdown [view]
- issue #8757 Segfault when using external search engine [view]
- issue #8767 Order of pages in the tree view changes from 1.9.1 to 1.9.2 [view]
- issue #8785 Markdown runs on <PRE> if class attribute is specified [view]
- issue #8789 qhp/qch broken in master [view], [view]
- issue #8802 Nested \cond sections are not started (#8804) [view]
- issue #8811 Incorrect xml tags in source code listing (XML output) [view]
- issue #8815 fix group close [view]
- issue #8817 If \if, \else or \endif is in a list, the subsequent list entry is not formatted as list entry but in "raw format" [view], [view]
- issue #8838 export "something" { } wrong parsing [view]
- issue #8851 Python call graph is not completely correct [view]
- issue #8853 LaTeX generated output fails to compile [view]
- issue #8854 Class hierarchy diagram is not correct, if inherited from Python built-in class ABC [view], [view], [view]
- issue #8854 Class hierarchy diagram is not correct, if inherited from Python built-in class ABC [view]
- issue #8855 Unable to build 1.9.2 [view]
- issue #8864 Markdown Tables cannot merge cells both horizontally and vertically [view]
- issue #8867 Fortran source file that contains the character literal "import" or 'import' [view], [view]
- issue #8882 Java: Issue with virtual as identifier [view], [view], [view]
- issue #8884 Java: Issue with dotted annotations [view]
- issue #8889 ".html_html" attached to some url links when linking to external library [view], [view]
- issue #8889 Extra ".html" attached to some url links when linking to external library [view], [view]
- issue #8895 [bisected]Directory dependency graph has stopped working [view]
- issue #8898 c#: Inherit documentation from interface property (not working as no docs displayed) [view]
- issue #8903 Overload of function template can cause docs to be repeated [view]
- issue #8905 Documentation: WARN_NO_PARAMDOC not disabled by EXTRACT_ALL? [view], [view]
- issue #8909 Build error with git head GCC (version 12, Nov 2021) [view]
- issue #8911 Undocumented function with C++ requires clause [view]
- issue #8914Double Square Bracket – somewhere – stops Doxygen [view]
- issue #8918 \emoji does not support emoji with ZWJ [view]
- issue #8921 Overloaded function (with templates as change) is not displayed in html page [view]
- issue #8924 Horizontal scroll bar missing in HTML for wide class="dotgraph" objects [view]
- issue #8925 Java: Issue with enum parsing (xml output) [view]
- issue #8932 XML output: table caption doesn't have ID [view]
- issue #8933 Return type "unsigned int constexpr" not parsed properly [view], [view]
- issue #8934 documentation 'DEP' s.b. 'DEB' [view]
- issue #8935 'make docs' fails when building PDF [view]
- issue #8940 Not parsing #if correctly in C++ [view]
- issue #8948 collaboration diagram should include smart pointer members [view], [view]
- issue #8953 Improve markdown image handling [view]
- issue #8956 Section links in markdown mainpage not working [view]
- issue #8965 Allow other names for plantuml.jar [view]
- issue #8973 Incorrect citations for entries with double dash and for cross references [view]
- issue #9857 C# incorrect interpretation of '?'-operators [view]
- Coloring of the nodes in the inheritance graph [view]
- Fixed problem with large HTML tooltips running of the web page. [view]
- Coverity: logically dead code [view]
- Coverity: uninitialized struct elements [view]
- Coverity: side_effect_free: Calling countLines(yyscanner) is only useful for its return value, which is ignored. [view]
- Using in/out in C# results in doubling it [view]
- Restore default SIGINT handler inside the signal handler [view]
- In HTML the @image title did not appear as tooltip and quotes were not properly escaped [view]
- Double member names in python source code [view]
- Fix memory corruption in TextStream. [view]
- Handle decltype(*) return types in declinfo.l [view]
- Warnings when using `CREATE_SUBDIRS` and `HTMLHELP` [view]
- Don't use full path for *file in XML output [view]
- Incorrect handling of JAVA style code statement in preprocessor [view]
- Incorrect linecount in case of JAVADOC_AUTOBRIEF set [view]
- Incorrect markdown links. [view]
- Incorrect warning regarding SQLITE3 settings [view]
- Incorrect warnings due to WARN_IF_DOC_ERROR=NO [view]
- Incorrect xml tags in source code listing (XML output) [view]
- Doxygen stops on invalid namespace name [view]
- Problems with blockquotes in markdown [view]
- Fortran: Warning on empty \cond statement plus extra empty line. [view], [view]
- Escaped double quotes inside double quotes [view]
- Fixed problem where member attributes were not rendered properly [view]
- Forward declaration of enum class. [view]
- Handling \code in non doxygen comment [view]
- Warning with python file starting and ending with __ as file name [view]
- Improve warning location for undocumented parameters/return types [view]
- Limit number of list levels in output [view]
- Unmatched tt tag. [view]
- Value of first @copydoc could end up in the brief description. [view], [view]

### Features

- Write directory dependency graphs recursively. [view]
- Added missing symbols needed to enable SANITIZE_UNDEFINED [view]
- Add the xml output format to the image command as generic format [view]
- Add the HTML and XML commands to the index [view]
- Added explanation for directory dependency graphs in graph manual. [view]
- Avoid tampering with special commands while doing markdown parsing [view] and [view]
- Adding HTML tag <cite> [view]
- Adding engine to xml output for plantuml [view]
- Czech localization update, added all missing Czech localization strings up to 1.9.3 [view]
- translate Chinese upto version 1.9.2 [view]
- Updated Swedish translation to 1.9.2 [view]
- Greek translation updated to 1.9.2. [view]
- Portuguese translators updated to 1.9.3. [view]
- UTF-8 characters in email address [view]
- Support for char32_t etc. in code coloring [view]
- Changed license of doxmlparser from GPLv2 to MIT [view]
- Better error message in case of a fatal error in a lexer [view]
- Better readable warnings / debug messages in case of warning with token / return value in docparser [view]
- value attribute for <li> tag [view] and [view]
- Copy original dotfile to output directory in case of DOT_CLEANUP is not set [view]
- allow using percentual numbers for images dimensions [view]
- Make email obfuscation optional [view]
- Improvement of WARN_LOGFILE possibilities [view], [view]
- No warning in case non existing macro parameter [view]
- HTML tag details [view], [view]
- Include qualified names in `<memberdef>`s in XML output. [view]

### Deprecated functionality

- CLASS_DIAGRAM has become obsolete. The same functionality can now be achieved using HAVE_DOT and CLASS_GRAPH. Old settings in the Doxyfile will be automatically converted when reading or updating it. [view], [view], and [view]

### Refactoring and cleanup

- Add support for optional ranges to reg::Ex and use it util.cpp [view]
- Allow using obsolete config values while upgrading [view], [view]
- Use std::unordered_set for better performance [view]
- Refactoring: Use std::unique_ptr<Private> for PIMPL idiom instead of raw pointer [view]
- Refactoring: changes how context data is cached. [view]
- Refactoring: fixed typo and improved code uniformity [view]
- Refactoring: replace custom reference counting by std::shared_ptr [view]
- Refactoring: replace raw pointers with std::unique_ptr in template.cpp [view]
- Refactoring: replace the last raw pointers by std::unique_ptr in template.cpp [view]
- Refactoring: use fixed maps for properties [view]
- Remove obsolete states from lexer code [view]
- Remove redundant checks in config file [view]
- Remove redundant range checks in config file [view]
- Remove some implicit casts to improve portability of the code [view]
- Remove unnecessary conversions for enum type options [view]
- Optimize Markdown::isBlockCommand() [view]
- Moved util.h:escapePath() to QCString::quoted() [view]
- layout.cpp and tagreader.cpp both defined class ElementCallbacks [view]
- Removed global variables for RTF and Latex, and made some fixes [view]
- Represent enum in the config file also as an enum in the code [view]
- Make generateClassDocs() process files in parallel [view]
- Make generateFileDocs() process files in parallel [view]
- Name of used struct [view]
- Performance enhancements [view]
- Restructuring and fixes [view]
- Better search criterion for RTF INCLUDETEXT [view]
- Consistent messages regarding enabling settings [view]
- Improve type safety of scanner code by not using void* for yyscan_t [view]

## Release 1.9.2

(release date 18-08-2021)

### Bug fixes

- issue #8718: Miss-classifying public field when using coma to initialize several at once in C#. [view]
- issue #8715: links to template specializations with nested template parameters do not work [view]
- issue #8714: Markdown links to template class instantiations do not work [view]
- issue #8713: external markdown links do not respect EXT_LINKS_IN_WINDOW [view]
- issue #8712: Search not working on mobile [view]
- issue #8711: Duplicate tilde in example code listing [view]
- issue #8709: Warnings after #8671 [view]
- issue #8704: Doxygen 1.9.1 hangs when msc issue is detected instead of terminating, also CTRL+C does not work [view]
- issue #8680: Markdown links going via tag files instead of local resolution [view]
- issue #8670: Wrong rendering of Markdown [view], [view], [view]
- issue #8657: Plantuml ditaa diagram is not visible in refman.pdf [view], [view]
- issue #8649: doxygen with php make ugly array parameter output [view]
- issue #8648: positioning at line anchors is disturbed by the navigation bar [view], [view]
- issue #8645: Warning message in case of preprocesssor macro substitution [view]
- issue #8642: invalid argument for command iline [view]
- issue #8633: Line break in C++ nested-name confuses doxygen [view]
- issue #8623: Navigation bar disappears at certain display/window widths [view]
- issue #8622: Greater than in template function declaration not parsed correctly [view]
- issue #8620: Missing parameter in C++ methods [view]
- issue #8617: XML: Issue with $ sign in Java identifiers [view]
- issue #8616: Upgrade jQuery to latest 3.5 or 3.6 release to get rid of security issues. [view]
- issue #8615: Markdown **emphasis** at the beginning of the line is not rendered. [view], [view], [view]
- issue #8604: `LATEX_BATCHMODE` not used for formulas anymore [view]
- issue #8600: Links to enum values are incorrect when using modules. [view]
- issue #8591: Doxygen comment suggestion in help collides with clang-format [view]
- issue #8588: References to multiply nested class is broken with INLINE_SIMPLE_STRUCTS=YES [view]
- issue #8585: INLINE_SOURCES = YES do not generate code inline from sources if there is no @return after @brief. [view]
- issue #8584: navtree js output varies from ASLR [view]
- issue #8564: input buffer overflow, can't enlarge buffer because scanner uses REJECT [view]
- issue #8563: Link not created and the Doxygen comment is placed in the output improperly [view]
- issue #8560: Regression: In Python/xml output, refid and qualified name of base compound not resolved under certain conditions [view], [view] [view]
- Issue #8556: Removed bracket '(' in HTML an XML output [view]
- issue #8552: Javadoc: strange issue with @verbatim ... @endverbatim [view], [view]
- issue #8542: Variadic macro expansion [view]
- issue #8541: Javadoc: external links to classes in java.lang are not resolved [view], [view]
- issue #8525: Links aren't properly rendered when preceded by quoted text [view]
- issue #8522: Javadoc: type attribute of ordered lists not preserved (in xml) [view]
- issue #8518: tag </programlisting> was inserted before </highlight> parsing python file to xml [view], [view]
- issue #8511: Java: linebreak after @link can cause wrong parsing of subsequent doc [view]
- issue #8505: Local search too specific [view]
- issue #8498: Concepts do not respect groups in tree view [view]
- issue #8485: The browser based search doesn't handle underscores correctly [view]
- issue #8480: Python: certain 'reimplements' entries missing [view]
- issue #8476: Call graph regression: Some parts are mixed up [view], [view]
- issue #8474: Crash: double free or corruption (out) [view]
- issue #8471: doxygen 1.9.1 segmentation fault when generating libstdc++ documentation [view]
- issue #8465: Parentheses in return type template are dropped [view]
- issue #8448: [c++] unable to expand recursive macro [view]
- issue #8426: Incorrect line number from tag file [view]
- issue #8425: Would like a way to sort class list but not brief member list [view]
- Issue #8405: Dead link in documentation [view]
- issue #8390: Reusing documentation snippets [view]
- issue #8375: Lowercase search does not find non-ASCII uppercase pages and vice versa [view]
- issue #8375: Lowercase search does not find non-ASCII uppercase pages and vice versa (part 2) [view]
- issue #8371: @defgroup contained in the markdown mainpage.md are not including the @ingroup marked classes in the generated documentation. [view]
- issue #8370: Doxygen 1.9.1 confused by C++ using/typedef declaration [view]
- issue #8362: Text of image repeated 4 times [view]
- issue #8357: XML output does not include cross-references in code-fragments [view]
- issue #8343: doxygen-1.9.1 crashes when parsing config file [view], [view]
- issue #8338: \until and \skipline don't hide doxygen comments like \skip does [view]
- issue #8336: Python class only with async methods support [view]
- issue #8335: "failed to run html help compiler on index.hhp" with doxygen is 1.9.1 [view]
- issue #8329: Force line buffering [view]
- issue #8322: Random output for markdown xml snippet [view]
- issue #8308: Verbatim block followed by markdown header breaks verbatim block [view]
- issue #8281: Out-of-line documentation of scoped enums in the same namespace [view]
- issue #8232: Incorrect link from summary links for namespaces [view]
- issue #8193: Better warning in case of error in dot / msc / dia image [view]
- issue #8160: Use ^^ instead of \n in ALIASES ... [view]
- issue #8011: No callgraph if having more than one 'using namespace's. [view]
- issue #7772: Regression - Class list missing in Group page [1.8.16 -> 1.8.17] [view]
- issue #7273: dot called even when HAVE_DOT is NO [view]
- issue #7195: reserved identifier violation [view]
- issue #6901: Please consider relicensing of Javascript files [view]
- issue #6599: unexpected "[strong]" tag in LaTeX output for C++ class enums. [view]
- issue #6202: bug_782262 Friend functions returning decltype(auto) not inserted in the "friends" group [view]
- issue #5994: bug_765867 Ampersand not rendered correctly in HTML Help index [view]
- issue #5745: bug_744840 <tt> blocks cause error "end of comment while expecting command </code>" [view]
- issue #4672: bug_674442 CREATE_FOLDERS should not create unused folders [view], [view]
- issue #4530: bug_668003 Default LaTeX header misses $-placeholders [view]
- issue #3391: bug_582617 A @cond @endcond in a single comment block kills the remaining of the comment block. [view]
- issue #3175: bug_560861 Class graph does not differentiate same classes in different namespace [view]
- issue #1675: bug_305773 Volatile declaration is missing for variables in XML output [view]
- issue #1535: bug_172256 Todo stops at first sentence. [view]
- Adding some missing C++11/C++20 keywords for syntax highlighting [view]
- Avoid writing artificially created classes to the tag file [view]
- Doxygen was confused by class keyword in 'using A = class B' [view]
- Equation reference for formulas missing for HTML / Docbook / RTF [view]
- Strange HTML tab title in case of a page without title [view]
- Fix bug linking C++ anonymous workspace [view]
- Self recursive Fortran functions did not show a self arrow in the callgraph [view]
- Self recursive functions did not show a self arrow in the callgraph [view]
- Incorrect DOXYFILE_ENCODING upon update [view]

### Features

- issue #2732: Adding support for C++20 concepts (Origin: bugzilla #499352) [view], [view], [view]
- Introducing new sidebar layout via FULL_SIDEBAR option. [view]
- Added -q commandline-parameter for quiet operation [view]
- Add config option SHOW_HEADERFILE [view]
- Add config option WARN_IF_INCOMPLETE_DOC [view]
- Add config options GENERATE_SQLITE3, SQLITE3_OUTPUT and SQLITE3_RECREATE_DB to better control the sqlite3 output. [view]
- Add config option MATHJAX_VERSION to support both MathJax 2.x and 3.x [view]
- Allow more fine tuning of semantic syntax highlighting via CSS classes [view], [view], [view]
- Use language name to get code coloring [view]
- Extra settings for MathJax V3 [view]
- Support vertical alignment in multirow table [view]
- Add option for an anchor to the image command [view]
- Portuguese translators updated to 1.9.0. [view]

### Deprecated functionality

- Deprecated options LATEX_SOURCE_CODE, RTF_SOURCE_CODE and DOCBOOK_PROGRAMLISTING; code listing is now controlled globally via the SOURCE_BROWSER option [view]
- Made OUTPUT_TEXT_DIRECTION option obsolete; it was not maintained [view]
- Replaced the C++ doxmlparser library by a python based module [view]

### Refactoring and cleanup

- Added error handling for invalid numbers passed to \iline [view]
- Added new test case for strong enum values with the same name (based on issue #8281) [view]
- Adding field extern for sqlite output [view]
- Adding support for lex files [view], [view], [view]
- Avoid using std::isspace and friends on potentially multibyte characters [view], [view]
- Better align template based output with the built-in output [view]
- Better handling of option possibility in lex scanner [view]
- Better handling of rules in lex scanners [view]
- Changed plantumlStart from const char *[] to std::set<QCString> [view]
- Cleanup util.h by moving some functions to other files [view]
- Confusing debug output for markdown [view]
- Consistency with other debug messages [view]
- Correct line count and handling of inline comments for macro definitions [view]
- Correction of typing error [view]
- Coverity warnings [view]
- Debug facility for the RTF output [view]
- Detect generateDS and recreate index.py/compound.py automatically [view]
- Determine ghostscript directory (Windows) [view]
- Determine ghostscript directory (Windows) [view]
- Determine latex reruns based on log file contents instead of hardcoded [view]
- Disable qregex.h and fix some warnings and issues [view]
- Empty / obsolete file removed [view]
- Empty class definition. [view]
- Enable parallel processing of the "Generating file sources..." step. [view]
- Environment variables in changelog [view]
- Error messages on ASSERTS [view]
- Extended doxygen version information [view]
- Extending startuml with extra figure types [view], [view]
- Extension during mapping not correctly replaced. [view]
- Fix deadlock when using `WARN_AS_ERROR = YES`. [view]
- Fix difference in behavior between QDir::exists and Dir::exist() [view]
- Fix issue with test 055 on Cygwin [view]
- Fix issues caused by QCString::rawData and QCString::operator[] [view]
- Fix macro redefinition warning for windows build [view]
- Fix out of bounds issue in VHDL processing [view]
- Fix possible null pointer dereference [view]
- Fix problem comparing a QCString with a const char * null pointer [view]
- Fix properly close va_list with va_end [view]
- Fix reverse DirIterator::operator==() logic [view]
- Fix size_t related compiler errors & warnings for win64 [view]
- Fix small memory leak in template engine [view]
- Fix to avoid splitting up the todo sections [view]
- Fix to avoid unneeded regeneration of "included-by" graphs [view]
- Fix uninitialized member used to initialize another member in htmlhelp.cpp [view]
- Fix variable assignment to itself [view]
- Fixed a compilation problem for doxyapp and some implicit conversion warnings [view]
- Fixed a couple of issues found by running Coverity [view]
- Fixed a number of warnings reported by coverity [view]
- Fixed compilation error after merging pull request [view]
- Fixed compilation problem when enabling sqlite3 [view]
- Fixed issue causing trailing text after expansion of aliases. [view]
- Fixed potential crash in handling empty list item. [view]
- Fixed potential crash when using . after a markdown style linked image. [view]
- Fixed problem where processing symlinks could result in ASSERT: "fd!=0" [view]
- Formulas with a new environment handled as inline formulas [view]
- Get preprocessor output without line numbers [view]
- Guard #include of "filesystem.hpp" to not break std::min/std::max [view]
- Implementation functions for INLINE_SIMPLE_STRUCTS for docbook output [view]
- Improve handling of @param command without name or description [view]
- Improved responsive design of dynamic menus [view]
- Inconsistent behavior between unknown command and unknown html entity [view]
- Incorrect HTML sequence [view]
- Incorrect code coloring of typedef [view]
- Incorrect debug statements in docbookgen [view]
- Incorrect docbook output (section tag mismatch) [view]
- Incorrect enduml warning message [view]
- Incorrect handling normal C comment in comment converter [view]
- Incorrect line count for normal comment in define [view]
- Incorrect line count on warning for \snippet and missing warning for \snippet{doc} [view]
- Incorrect line number in warnings in case of if command [view]
- Incorrect type for enum struct [view]
- Incorrect warning for \ref command [view]
- LaTeX warning in test 26 [view]
- List item problem [view], [view]
- Made some more simplifications [view]
- Maintenance doxygen internal Doxyfiles [view]
- Maintenance of .gitignore [view]
- Make templated HTML output more similar to hardcoded output. [view]
- Merged brief and detailed description in case if INLINE_SIMPLE_STRUCTS with LaTeX/ RTF [view]
- Minor adaptations to avoid matching 'typedefinition' as a typedef [view]
- Minor performance/code duplication tweaks [view]
- Missing CLANG dependency [view]
- Missing anchors to source code in RTF [view]
- Missing build note for sqlite3 [view]
- Missing page when followed by mainpage [view]
- Missing rule in defargs.l [view]
- Moved removeWhiteSpace() into the QCString class [view]
- No warning for incorrect ALIASES [view]
- Non default value not shown properly in doxywizard [view]
- Only show "More..." link when there is both brief and detailed content [view]
- Optimize UTF8 lower/upper case conversion for ASCII [view]
- Optimize performance by using FILE* instead of ofstream for outputgen [view]
- Optimized MathJax HTML output and made the template output the same. [view]
- Optimized the layout in case DISABLE_INDEX=YES and GENERATE_TREEVIEW=YES [view]
- Performance improvement by returning BaseClassList by reference [view]
- PlantUML cached information [view], [view]
- Problem with Fortran, giving a warning about invalid state [view]
- Problem with cite command (tests 12) [view]
- Problem with empty buffer in pyscanner.l [view]
- Problem with non escaped double quote in preprocessor [view]
- Problem with refitem command (tests 45) [view]
- Problems generating chm documentation [view]
- Problems with some commands in MathJax [view]
- Reduce the number of globals in docparser.cpp [view]
- Refactoring: Add TextStream buffer to improve output writing performance [view]
- Refactoring: Make doctokenizer reentrant [view]
- Refactoring: Move xml parser to a separate directory [view]
- Refactoring: Remove update command from template engine [view]
- Refactoring: Replace globals in docparser.cpp by a DocParser class [view]
- Refactoring: Replaced QDir with Dir [view]
- Refactoring: Replaced QFileInfo with FileInfo [view]
- Refactoring: change type of Namespace::m_innerCompounds to LinkedRefMap [view]
- Refactoring: change visitedClasses type to ClassDefSet [view]
- Refactoring: cleanup unused qtools headers [view]
- Refactoring: fix for potentially uninitialized variables [view]
- Refactoring: make better use of capture groups [view]
- Refactoring: make doxyindexer independent of qtools [view]
- Refactoring: make qcstring.h a local include [view]
- Refactoring: modernize the code [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view]
- Refactoring: move Doc*Visitor::push/popEnabled [view]
- Refactoring: move qcstring and remove qtools [view]
- Refactoring: qtools cleanup + remove QDateTime use from rtfgen.cpp [view]
- Refactoring: reduce code duplication by using writeMarkerList function [view]
- Refactoring: remove QRegExp in searchindex.cpp [view]
- Refactoring: remove implicit conversion from QCString to const char * [view]
- Refactoring: remove qtools [view]
- Refactoring: remove some dead/commented out code [view]
- Refactoring: replace FilePairDict by FilePairLinkedMap [view]
- Refactoring: replace QCString with std::string in constexp [view]
- Refactoring: replace QDict<void> by StringSet [view]
- Refactoring: replace QFile/FTextStream with fstream/stringstream [view]
- Refactoring: replace QGString by std::ostringstream [view]
- Refactoring: replace QList<CommentInPrepass> by std::vector [view]
- Refactoring: replace QList<MemberDef> by std::vector in util.cpp [view]
- Refactoring: replace QMIN/QMAX by std::min/std::max [view]
- Refactoring: replace QRegExp by std::regex in classdef.cpp [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view]
- Refactoring: replaced std::regex with own much faster implementation [view]
- Refactoring: replace QTextStream by ifstream [view]
- Refactoring: replace ScopedPtr by std::unique_ptr in context.cpp [view]
- Refactoring: replace StringDict by StringMap [view]
- Refactoring: replace StringList by StringVector [view]
- Refactoring: replace g_compoundKeywordDict by g_compoundKeywords [view]
- Refactoring: replace/remove the use of QDateTime [view]
- Refactoring: replaced MemberDef::isDetailedSectionLinkable() by hasDetailedSection() [view]
- Refactoring: replaced union in TemplateVariant by C++17 style variant container [view]
- Refactoring: restore a few qtools headers still used by doxmlparser [view]
- Refactoring: some cleanup and removed text direction logic [view]
- Refactoring: template.cpp [view], [view], [view], [view]
- Refactoring: use size_t for QCString input parameters instead of uint [view]
- Remove a double "the" [view]
- Remove deprecated warnings for QString::SkipEmptyParts in doxywizard [view]
- Remove deprecated warnings for endl in doxywizard [view]
- Remove double call to wildcard2regex() [view]
- Remove not used file [view]
- Remove undeclared state in defargs.l [view]
- Removed the std::call_once for now as it didn't work as intended [view]
- Removing some left over qtools [view]
- Rename template filter '|e' to '|escape' to keep in line with Django [view]
- Replace runtime computation of the scope by a string constant [view]
- Replaced macros by member functions and some renaming [view]
- Replaced try {..} catch by QCString().toInt(&ok) [view]
- Reworked the FILEMASK regular expression to not match too much [view]
- Running tests with subdirs enabled [view]
- Simplified the regular expressions [view]
- Template engine: allow listing list and struct variables as strings [view]
- Usage of HTML BR tag in HTML A tag [view]
- Usage of default lex rule with `\param` [view]
- Use enum for code symbol type instead of passing Definition object [view]
- Using spaces in a PREDEFINED setting [view]
- Warning from preprocessor regarding binary literals [view]
- Warning message in case of preprocesssor macro substitution [view]
- Warning with a newline in a conditional expression in a \if command [view]
- Warnings regarding Internal inconsistency: namespace in IDL [view]
- Warnings running doxygen on its own internal documentation [view]
- Write out used settings when generating XML output [view], [view]
- Wrong place in comment scanner of end summary tag [view]
- classes incorrectly appeared in the navigation index [view]
- code.l: replace printf with DBG_CTX for easily toggling it. [view]
- escape & in javascript license tag [view]
- replaced spaces in front of lines in python examples with css margin, issue #8640 [view]
- sqlcode.l does not compile in LEX debug mode [view]

## Release 1.9.1

(release date 08-01-2021)

### Bug fixes

- issue #8282: Error on ALIAS declaration without quotes [view]
- issue #8286: Incorrect processing of VHDL strings [view], [view]
- issue #8291: Doxygen crash on Windows when INLINE_SIMPLE_STRUCTS=YES [view]
- issue #8294: Draw sibling dependee directories within same parent directory in directory dependency graph. [view], [view], [view], [view], and [view]
- issue #8295: segmentation fault [view]
- issue #8296: LaTeX Error: File ... not found. [view], and [view]
- issue #8297: fails to parse list of INPUT files [view]
- issue #8300: File naming changed in Doxygen 1.9.0 [view]
- issue #8304: compilation failure [view]
- issue #8311: Markdown table: double-quote ruins the output [view]
- Fix cases where classes inside inline namespaces could lead to crashes [view]
- Fix coverity dead-code warning [view]
- Fix potential crash with inline namespace [view]
- Incorrect entries on treeview [view]
- Layout in doxywizard documentation [view]
- Various fixes based on coverity scan results [view]
- bug_549093 Regular HTML comments are removed. [view]

### Features

- Add a CLANG_ADD_INC_PATHS option which can be used to control whether the directory of every input file is added as an include when using Clang assisted parsing. [view], and [view]
- Add some missing info to the XML output [view], [view], [view], [view], [view], [view], [view], and [view]

### Refactoring and cleanup

- Embed MemberGroup objects directly in their container [view]
- Modernize client side part of searchindex [view]
- avoid copying MemberLists by not embedding them directly [view]
- change MemberGroupSDict to MemberGroupList [view]
- change type of m_cache [view]
- change type of vhdlSummaryTitles from SDict<QCString> to StringSet [view]
- modernize Doxygen::dirRelations [view]
- modernize Doxygen::clangUsrMap [view]
- modernize MemberGroupList [view]
- modernize member indices [view]
- modernize getMemberLists() [view]
- remove SIntDict and SIntList (no longer used) [view]
- remove unused ClassList [view]
- remove unused DirSDict class [view]
- remove unused Doxygen::entryDBFileName and Doxygen::objDBFileName [view]
- remove unused Doxygen::htmlDirMap [view]
- remove unused GenericsSDict class [view]
- remove unused IndexFieldSDict class [view]
- replace Doxygen::directories by Doxygen::dirLinkedMap [view]
- replace Doxygen::groupSDict by Doxygen::groupLinkedMap [view]
- replace Doxygen::memGrpInfoDict by Doxygen::memberGroupInfoMap [view]
- replace ExampleSDict by ExampleList [view]
- replace MemberSDict by MemberLinkedRefMap [view]
- replace QMap by std::map in vhdldocgen [view]
- replace type of pack variable from SDict<QCString> to StringSet [view]
- replaced PageSDict by PageLinked*Map [view]
- Optimize: usedDir can not be parent of dd if they have the same parent. [view]
- Replaced UsedDirsContainer with UsedDirLinkedMap [view]
- Substitute `QDict<UsedDir>` with `std::map<QCString, UsedDir * >`. [view]

## Release 1.9.0

(release date 27-12-2020)

### Bug fixes

- issue #697: Test 32 reference to bell signal (XHTML, LaTeX) [view]
- issue #7976: bug_786382 Unmatched single quote in C++ source breaks aliases [view]
- issue #6442: C++: Trailing return type syntax + void [view], [view]
- issue #6471: Out-of-line documentation of scoped enums [view]
- issue #7471: [1.8.16 regression] multiple use of page label [view]
- issue #7547: Fix permodgen issue [view]
- issue #7556: ANSI-C anonymous (unnamed) struct/unions duplicated names [view]
- issue #7706: Md5 hash does not match for two different runs [view]
- issue #7872: A define containing a doxygen start of comment breaks the parser [view]
- issue #7927: PREDEFINED fails to replace argument [view]
- issue #7977: Broken ref for enum entry (doxygen 1.8.18 -> 1.8.19) [view]
- issue #7979: C++ enums being defined in multiple files after b265433 (multi-thread input processing) [view]
- issue #7981: bug_647654 Special command \fn fails when first argument of PHP function is call-by-reference [view]
- issue #7991: bug 789318 c# expression-bodied property is not rendered correctly [view]
- issue #7995: Doxygen doesn't handle very simple example in the .md file [view], and [view]
- issue #7996: \ref commands broken in markdown tables [view]
- issue #8015: Special command \skip and \until no longer functional in ALIASES [view]
- issue #8017: C++: mishandling of brackets used in trailing return types [view]
- issue #8022: Different results on 64 and 32 bit [view]
- issue #8023: Add option to exit with non-zero exit code on warnings even if WARN_AS_ERROR is OFF [view]
- issue #8034: doxygen crashes [view]
- issue #8037: Links using @ref stopped working in doxygen 1.8.19 [view]
- issue #8050: Artificial classDef confuses getCanonicalTypeForIdentifier() [view], and [view]
- issue #8051: Consider documenting debug options of doxygen [view]
- issue #8053: error: Attribute target redefined in SVG [view]
- issue #8063: Failed to build current "master" branch [view]
- issue #8066: Doxygen crashes in ClangTUParser [view]
- issue #8070: C++: \var don't document enum class values [view]
- issue #8078: Warning and extra text when using Markdown as mainpage [view]
- issue #8091: [C++] Newer doxygen versions add a lot of bogus warnings about undocumented entities [view]
- issue #8093: Some URLs in fresh/updated Doxyfile are split over two lines [view]
- issue #8098: Python Decorator written below @brief tag and above the function leads to documentation error [view]
- issue #8102: [C++] Reference relations are not generated for constructors using list initialization [view]
- issue #8103: C++ Table of content, namespace list does not contains namespace without class [view], and [view]
- issue #8105: How do add (multiple files without extension) directory in INPUT field of doxygen configuration file [view]
- issue #8127: Java: xml output of preformatted (`<pre>`) block adds para-block for blank lines (hindering certain manual parsing) [view]
- issue #8129: Image path is now case sensitive [view], and [view]
- issue #8130: Markdown relative links - not working for other folders [view]
- issue #8132: Markdown inclusion of images broken after 39db9f48 [view]
- issue #8137: Whitespace/Separator required to recognize custom command argument [view]
- issue #8139: Segfault after a8bf5d3 [view]
- issue #8142: UTF-8 in URL in source generates truncated URL in HTML [view]
- issue #8148: copydoc broken in private sections [view]
- issue #8156: Markdown anchors do not work with special symbols [view]
- issue #8160: Example in documentation of ALIASES shows using `\n` instead of `^^` [view]
- issue #8177: Incorrect inheritance with forward declared templated classes [view]
- issue #8184: Bad parsing of CMakeLists.txt [view]
- issue #8186: Path resolving breaks on included @ sign [view]
- issue #8192: Excluded inline namespace broken after a5792da8 [view], [view]
- Issue #8206: Incorrect XHTML results [view]
- issue #8246: The prefix &#Ñ…202Ð; for files is displayed incorrectly in the file names. [view]
- issue #8247: declaration different in cpp and h file of qstrncmp [view]
- issue #8251: Macro stopped working in 1.8,.19 [view]
- issue #8269: Make failed when building layout.cpp [view]
- issue #8274: List entries for file & namespace enums (part 2) [view], and [view]
- issue #8143: copydoc in excluded namespace broken after d03e8d9 [view]
- issue #8169: "\emoji heavy_check_mark" produces âœ“ instead of âœ”ï¸ [view]
- Added missing protocols [view]
- Avoid duplicate entry in the LaTeX output for inlined namespace [view]
- Concatenation of \param text and \details text [view]
- Confusing message for extension mapping for extension with starting dot. [view]
- Consistency for use class graphs / class diagrams [view]
- Create possibility to show in doxywizard "condensed" settings [view]
- Creating link to not defined label in case of groups [view]
- Default doxygen search mechanism doesn't work when using with XHTML output [view] and [view] and [view]
- Docbook missing in doxywizard Wizard-Output page [view]
- Documentation correction for CASE_SENSE_NAMES [view]
- Don't start dvips when latex fails for formulas [view]
- Double "->" in warning in case of trailing return type [view]
- Doxygen crashes on Fortran [view]
- Doxygen manual top rule is in uppercase. [view]
- Doxygen's own documentation doesn't build with recent LaTeX version [view]
- Doxywizard expert page without settings [view]
- Enabling both ALLEXTERNALS and BUILTIN_STL_SUPPORT caused artificial STL classes to appear in the class hierarchy. [view]
- Exclude markdown mapped documentation files from Files list [view], [view]
- Expand non-recursive preprocessor macros [view]
- Fix for broken LaTeX output. [view]
- Fix too aggressive hyphenation of abbr. words. (#8026) [view]
- Fixed marker replacement for a placeholder at the end of the command [view]
- Fixed more issues handling Java nested generic classes [view] and [view]
- Fixed scope resolution problem for nested Java generics [view]
- Fixed small issue computing indentation for inline line breaks [view]
- Flush warnings file (#8069) [view]
- Fortran comments with C comments inside (#8000) [view]
- Handling Enable / Disable menu items (doxywizard) [view]
- Handling commands for backslash and at-sign in ALIASES [view]
- Handling of "Cancel" during "Quit" in doxywizard [view]
- Improve handling of inline namespace members in LateX/RTF output [view]
- Improved sorting of class list/hierarchy [view]
- Improvements of reading the configuration file [view]
- Incorrect checking between default and used values for strList in doxywizard [view]
- Incorrect duplicate code for Fortran fixed/free recognition [view]
- Incorrect end tag in doxywizard [view]
- Incorrect handling of UTF-8 characters in latex reference statement [view]
- Incorrect handling of string with spaces and no quotes [view], [view]
- Incorrect label / name in case regeneration of HTML without regeneration of dot files [view]
- Incorrect line count in case of an error in msc input [view]
- Incorrect recognition as RCS tag [view]
- Incorrect sorting of reflist items [view]
- Incorrect specification of irc as URL protocol [view]
- Join sequences of the same type of xref items together in a single paragraph (restores 1.8.16 behavior) [view]
- Lowercase Findxapian module (same casing as upstream xapian-core) [view]
- Marked the section with definitions regarding numbers more clearly [view]
- Minor tweaks [view], [view], [view]
- Fixed line number counting issue with test case cc.h [view]
- Fixed various line counting issues resulting in warnings referring to the wrong line number: [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], and [view]
- Missing \noop in list with commands starting with "\n" for escaping in aliases [view]
- Missing footer on first page of each chapter in LaTeX [view]
- Multiple anchors with member-group [view]
- No warning for unbalanced brackets in markdown [view]
- Not always linking in map as maps use name instead if id [view]
- Optimization for Slice missing in doxywizard Wizard-Mode page [view]
- Optimized the escape function and made it more generic [view]
- Prettify the HTML output when enabling SEPARATE_MEMBER_PAGES [view]
- Problem with `\\` at end of an ALIASES in the configuration file [view]
- Proposed fix for Internal search engine produce ".html" pages instead of using HTML_FILE_EXTENSION [view]
- Protect mutable access to members in code generators with mutexes [view]
- Readability of warning message [view]
- Recent file list of doxywizard not cleared properly [view]
- Redundant storage of `VhdlParser_adj.cc`, it can be regenerated [view], [view]
- Renamed EXTRACT_ANON_ARGUMENTS to RESOLVE_UNNAMED_PARAMS and enabled it by default [view]
- Silently ignoring unexpected characters in configuration [view], [view]
- Simplified escaping for latex URLs [view]
- Some further simplifications and modernizations [view]
- Some tweaks & fixes [view]
- Space around images in LaTeX output is sometimes a bit large [view]
- Split into separate rules [view]
- Split lexer rules [view]
- Support commented out argument names in declarations controlled by the new configuration setting EXTRACT_ANON_ARGUMENTS. [view]
- Translation function trCompoundListDescription no entry for SLICE [view]
- Typo in namespacedef.h [view]
- Unclear description of QHG_LOCATION [view]
- Unified the routine to get the next UTF8 character from a UTF8 stream [view]
- Update CMakeLists.txt [view]
- Update config.xml [view], [view]
- Update markdown.cpp [view]
- Usage of version and help in addons [view]
- Use correct #include [view]
- Using f() instead f(void) in C++ , consistency [view]
- Warning about duplicate figure numbers in LaTeX [view]
- Warning about end of list in brief description after alias `^^` replacement [view]
- Warning about possible loss of data [view]
- Warning in internal documentation [view]
- Warnings during compilation of doctokinizer [view]
- Warnings in generated VhdlParser.cc [view]
- When instantiating templates also instantiate nested classes [view]
- XHML: div tag not possible as part of a p tag. [view]
- extend the max length before a string is folded [view]
- quotes added surrounding inheritance tokens on doxyparse output [view]

### Features

- Show QT version in doxywizard [view]
- Adding possibility to add command line options when running doxygen from doxygen wizard [view], [view]
- Add param validation to typedef function pointers [view]
- Allow building doxygen as a subproject [view]
- Layout changes doxywizard [view]
- Show configuration warnings unconditionally in the doxywizard [view]
- Enable UML diagrams without member fields [view]
- add variable for the fold length of UML diagrams (DOT_WRAP_THRESHOLD) [view]
- use boolean to add or remove uml details (DOT_UML_DETAILS) [view] and [view]
- add suggestion #7686 to show type and parameters [view]

### Refactoring and cleanup

- Position of layout_default.xml [view]
- Fix some issues in reporting warnings for Doxywizard's config parser [view]
- Introduce ScopedTypeVariant [view]
- Introduce immutable and mutable interfaces [view]
- Modernize DotGfxHierarchyTable [view]
- Modernize diagram.h/diagram.cpp [view]
- Modernize BaseClassList [view]
- OutputList & OutputGen [view]
- Re-added sorting for namespaces [view]
- Remove unused DefinitionIntf and DefinitionList classes [view]
- Remove use of globals/statics in isAccessibleFrom* [view]
- Better processing of (un)quoted values for tags in the configuration file [view]
- Better processing of (un)quoted values for tags in the configuration file (part 2) [view]
- Introduce SymbolResolver to group symbol lookup routines [view]
- Make setAnchors() a member of MemberList [view]
- Making fortrancode.l reentrant [view]
- Making pycode.l reentrant [view]
- Making sqlcode.l reentrant [view]
- Making vhdlcode.l reentrant [view]
- Making xmlcode.l reentrant [view]
- Modernized the remaining containers in code.l [view]
- Modernize Doxygen::symbolMap [view]
- Modernize TooltipManager class and source reference lists [view]
- Modernize class index [view]
- Modernize getUsedClasses() method [view]
- Modernized the getUsedNamespaces() method [view]
- Move ClassDefSet to the classdef header [view]
- Move addDocCrossReference to memberdef.cpp/.h [view]
- Prepare output generators for multi-threaded use [view]
- Remove isVisited/setVisited from context [view]
- Remove isVisited/setVisited from index [view]
- Remove unused Doxygen::genericsSDict [view]
- Removed macros used for getting the value of settings [view]
- Removed some dead code [view]
- Removing setVisited/isVisited members [view]
- Replace ClassSDict by ClassLinkedMap/ClassLinkedRefMap [view]
- Replace NamespaceSDict by NamespaceLinkedMap [view]
- Replace QDict by std::set for classifying keywords in vhdldocgen [view]
- Replace QMap with std::map in fortranscanner.l [view]
- Replace QXml by own XML processor [view]
- Replaced QCache by STL based LRU cache implementation. [view]
- Replaced QStack by std::stack for scopeStack [view]
- Replaced codeClassSDict by codeClassMap in code.l [view]
- Replaced getNamespaceSDict() by getNamespaces() [view]
- Replacing dynamic_cast by static_cast to improve performance [view]
- Simplify vhdldocgen code a bit [view]
- Modernize search index [view]
- Update used links in test examples [view]
- Updated minimum macOS requirements to version 10.14 [view]
- Updated test for enums based on recently fixed issues [view]
- Make layout parser use the new XML parser [view]
- Make tagreader use the new XML parser [view]
- Make testsqlite3.py python script running with python 3 [view]
- Remove duplicate pages for classes inside inline namespaces (LaTeX/RTF/DocBook) [view]
- Remove double usepackage / RequirePackage from LaTeX [view]

### Documentation updates

- Correction of spelling errors [view]
- Incomplete documentation in respect to hyphens for horizontal rulers [view]
- Mismatch documentation and build system [view]
- Update of doxywizard documentation [view]
- Update of testing README.txt [view]
- Incorrect link in doxygen documentation [view]
- Making the use of DOT_CLEANUP more transparent [view]
- Syntax for faq about use in Windows Powershell [view]
- Consistency in documentation of used Python versions [view]
- better description of Doxyparse on README doc [view]
- Missing commands in list of commands documentation [view]
- Small layout improvement in documentation of CLANG_DATABASE_PATH [view]

# 1.8 Series

## Release 1.8.20

(release date 24-08-2020)

### Bug fixes

- issue #7760: void return type reported as not documented [view]
- issue #7951: Doxywizard 1.8.19 (Windows): Source code directory seems to be ignored [view]
- issue #7954: The Doxygen uses too much memory (or has probably a memory leak) [view] and [view]
- issue #7970: Doxygen doesn't stop on errors [view]
- issue #7973: C++ grouped functions in namespace have disappeared [view]
- Improvement of line count for e.g. warnings [view]
- Improved layout on the bibliography page [view]
- Updated the swedish language translation to 1.8.19 [view]

### Features

- add configuration setting to have docstrings not as preformatted text but as normal documentation [view]

### Refactoring and cleanup

- Format for size_t (in e.g. warnings) [view], [view]
- Spelling corrections [view], [view], and [view]
- Minor tweaks to clangparser.cpp [view]
- Building documentation after changing language files [view]

## Release 1.8.19

(release date 08-08-2020)

### Bug fixes

- issue #6846: Doxygen parsing global variable as function in certain cases (#7903) [view]
- issue #7495: generate "bitfield" [view]
- issue #7595: Links from one Markdown file to another do not work [view]
- issue #7698: forward declaration of template classes [view]
- issue #7702: test list is always created [view]
- Revert pull request #7703: make declArgumentList be from declaration, and argumentList from definition [view]
- issue #7706: Md5 hash does not match for two different runs [view], and [view]
- Undefined control sequence for formula using MathJax (#7712) [view]
- Wrong message in case of svg formulas for HTML (#7716) [view]
- VHDL fixed if-generate-bug 7721 [view]
- Inconsistent behavior between `///` and `//!` for formulas (#7726) [view]
- Incorrect text for HTML_FORMULA_FORMAT in documentation / Doxyfile (#7722) [view]
- issue #7727: warning: documented symbol `static bool (long-winded C++ type)` was not declared or defined. [view]
- issue #7734: Incorrect parsing of Q_PROPERTY [view]
- issue #7738: \todo ignores EXCLUDE_SYMBOLS [view]
- Users cannot set "enhancement label" on github. (#7744) [view]
- Input buffer overflow in php input code (#7745) [view]
- issue #7747: Three-way comparison operator [view]
- issue #7753: SVG formula all with zero width [view]
- issue #7762: C# mode completely broken [view]
- issue #7778: Build fails with javacc 5.0 (#7779) [view]
- issue #7781: allow '>' before Markdown emphasis [view]
- issue #7787: Doxygen 1.8.18: Markdown tables not working in ALIASES anymore? [view], [view], [view], [view], and [view]
- bug_121547 extern variable is being referenced in documentation incorrectly (#7792) [view]
- issue #7796: Backticks (```) in Doxygen-markup-in-C in Markdown collapses (#7797) [view]
- Issue #7804: String double quotes in C get misinterpreted by pdflatex [view]
- issue #7810: LaTeX manual not built, but make install tries to install it (#7821) [view]
- Vhdl improvements (ALIAS, translation) (#7813) [view]
- Running doxygen tests with variable with spaces (#7819) [view]
- issue #7820: Add `const` qualifier to UsedDir::m_dir. [view]
- Create link for GENERATE_XML (#7824) [view]
- isuse #7828: Add namespace inline flag in xml output [view]
- Issue #7831: Error building docs after 0df1623c9363d52a2b04457233dcf2c64319b03c [view]
- issue #7833: Empty string in PREDEFINED throws [view]
- Incorrect label in map of dot files in xhtml (#7840) [view]
- issue #7852, #7867, #7901: Changed the set of commands that effect ending a brief description [view]
- Problem with generating test output for Chinese (#7862) [view]
- issue #7865: Update documentation of USE_PDFLATEX option [view]
- issue #7867: Fixed regression where blank line after \class was not seen as paragraph separator [view]
- issue #7881: More flexible and correct detection of direction of an argument [view], [view], and [view]
- issue #7883: doxygen does not build again LLVM/CLAN without static libs [view]
- issue #7884: Python to xml: Whitespace in method doc not preserved (MARKDOWN_SUPPORT=NO) [view]
- issue #7890: Macro Expansion broken [view]
- Issue #7892: Incorrect search box on server-side search results page [view]
- issue #7900: Incorrect warning regarding no matching class member found [view]
- issue #7911: markdown table add extra test to "\copybrief" [view]
- issue #7921: Help for CLANG_DATABASE_PATH is misleading [view]
- issue #7923: source line numbers in warnings output by parser are off by 1 [view]
- issue #7934: include dependency graph: The boxes of files shows the name of the included file not its own filename [view]
- issue #7943: transferArgumentDocumentation is erroneous [view]
- Empty python comment gives problems [view]
- Don't crash if output subdirectories already exist [view]
- Fix cmake warning about ICONV package naming (should be Iconv) [view]
- Plantuml has problems with output directories ending with directory separator [view]
- Fixed issue that could cause wrong line numbers [view]
- Number of translatable terms (like Chapter) are in English instead of Greek (#7841) [view]
- Running Inkscape 1.0 [view], [view]
- Empty enum setting in configuration file [view]
- Missing last item in htmlhelp level2 index [view]
- crossref citations are shown unconditionally [view], [view], [view]

### Features

- Added experimental multi-thread input processing support. [view], [view], [view]
- Addon option --pool to the test run script for parallel execution of tests (#7827) [view]
- Adding the xml:lang tag to XML and Docbook output [view]
- Scalable search bar for high resolution displays (#7888) [view], [view], and [view]
- Add doxygen version information to tag file [view]
- Add options to enable various sanitizers [view]
- Show doxywizard version by means of --version [view]
- Added configuration options to better control the sqlite3 output. [view]
- Enable running tests in parallel using cmake's ctest. [view]
- improve using plantuml for vhdl flowcharts [view]

### Refactoring and cleanup

- Added atomic reference counting to QString [view]
- Added missing stub code when use_libclang is disabled [view]
- Better warning for non documented struct [view]
- Catch all wrong mkdir calls (coverity) [view]
- Change of git version input file was not taken into account [view]
- Changed container class for class use and constrained relations from QDict<void> to StringSet [view]
- Cleanup some disabled code sections [view]
- Copied implementation of `QGList::inSort()` to sortInDirList. [view]
- Coverity uninitialized variable [view]
- Coverity uninitialized variable in mscgen_api.cpp [view]
- Create compareDirDefs for sorting. [view]
- Creating chm files for doxygen tests [view]
- Debug facility for the \cite command [view]
- Fixed 2 small memory leaks [view]
- Fixed anothing compilation issue when use_libclang was not enabled [view]
- Fixed compilation issue on Windows for setNum with size_t argument [view]
- Fixes missing include and missing html extension logic [view]
- Fixes signed/unsigned mismatch warning in plantuml.cpp [view]
- GNU compilation warnings [view]
- Improve flex/bison debuggability with gdb [view]
- Include dirdef.h instead of forward declaration. [view]
- Incorrect htmlhelp language code for Indonesian [view]
- Incorrect representation of citation [view]
- LaTeX test were hanging for a.o. Hungarian on Windows [view]
- Link fixed in documentation [view]
- Make a switch to choose between dynamic library to clang-cpp or static linking against clangTooling [view]
- Minor documentation updates [view]
- Minors tweaks to the regular expressions [view]
- Misleading compiler warning [view]
- Misleading warning about missing argument [view]
- Missing links in Fortran in case use statement with upper case characters in name [view]
- Modernize HtmlHelp class [view]
- Modernize code for the resource manager [view]
- Modernized tagreader.cpp code [view]
- More minor tweaks [view]
- Moved citation cross reference searching to a separate function [view]
- Moved stripIndentation() to util, make it safe for empty input [view]
- Multi-threaded parsing: added locks around global data [view]
- New option allowing processing using multiple threads [view]
- No default rule present in commentcnv.l [view]
- Performance improvements after profiling [view]
- Prefer more inclusive language [view]
- Prevent potential empty string [view]
- Reduce use of WIN32 defines outside of portable [view]
- Refactoring: Modernize clang parser and make it run with multiple threads [view]
- Refactoring: better encapsulation for MemberName [view]
- Refactoring: improve encapsulation for ArgumentList [view]
- Refactoring: make QCString a wrapper around std::string [view]
- Refactoring: make preprocessor run in parallel [view]
- Refactoring: modernize configuration values [view]
- Refactoring: modernize markdown and make it thread-safe [view]
- Refactoring: remove symbolStorage references (dead code) [view]
- Refactoring [view]
- Refactoring: Improve encapsulation of MemberInfo class [view]
- Refactoring: Introduce type names for commonly used container types [view]
- Refactoring: Removed creation of MemberDef's for macro definitions from pre.l [view], [view]
- Refactoring: changed Doxygen::expandAsDefinedDict to Doxygen::expandAsDefinedSet [view]
- Refactoring: changed QValueList to std::vector for template engine [view]
- Refactoring: migrate MemberNameInfoSDict to MemberNameInfoLinkedMap [view]
- Refactoring: migrate type of Doxygen::inputPaths to std::set [view]
- Refactoring: modernize g_inputFiles and the parameters of readFileOrDirectory [view]
- Refactoring: replace Doxygen::namespaceAliasDict by Doxygen::namespaceAliasMap [view]
- Refactoring: replace QDict<void> by StringUnorderedSet for g_processedFiles and g_filesToProcess [view]
- Refactoring: replaced killDict by killSet [view]
- Refactoring: size_t type conversions and QList in DotManager [view]
- Refactoring: For loops on QListIterator by range loops. [view]
- Refactoring: Replaced ${CMAKE_SOURCE_DIR}/path/to/current/cmake-lists-txt/dir with ${CMAKE_CURRENT_LIST_DIR} [view]
- Refactoring: Replaced QList with std::deque in DirList. [view]
- Refactoring: Replaced DirList::count() by DirList::size(). [view]
- Refactoring: Replaced QDict<Void> by StringUnorderedSet in dotnode.cpp [view]
- Refactoring: Replaced QDict<void> by StringUnorderedSet for fortrancode.l [view]
- Refactoring: Replaced QDict<void> by StringUnorderedSet used to keep track of visited paths [view]
- Refactoring: Replaced addDir(const DirDef *dd) by addDir(DirDef *const dd) in GroupDef and GropuDefImpl. [view]
- Refactoring: Replaced bitmap of doxygen logo by SVG version [view]
- Refactoring: Replaced calls to DirDef::append() to DirDef::push_back(). [view]
- Refactoring: Restructured the split_and_keep function [view]
- Remove not used translator function [view]
- Renamed stripSpaces to stripIndentation and make it work directly on the string passed. [view]
- Setting correct babel packages for some languages [view]
- Spelling correction in cite code [view]
- Split off code to detect inkscape version to a separate function [view]
- Superfluous space in "TEST_FLAGS" [view]
- Travis does not terminate on error on non last command inside if construct [view]
- Updated installation documentation for Linux binary distribution [view]
- Updated issue templates [view]
- Updated formatting rules for paragraphs within table header cells. [view]
- Updated the makefile for building the tests [view]
- Warning in case of multiple python documentation sections. [view]
- XML tags moved to Appendix D of Ecma-334 [view]
- fail with term() instead of msg() [view]
- missing instance-rework [view]
- moved separate doxygen tag to tagfile attribute [view]
- sqlite: flip _static default in bindTextParameter [view]
- sqlite: use err instead of term :) [view]
- try to make it so that argumentList is always from the definition [view]
- update URLS on README to prevent redirects [view]

## Release 1.8.18

(release date 12-04-2020)

### Removed functionality

- Removed support for TCL (code is too buggy and unmaintained, language not very popular) [view]

### Bug fixes

- Bug 769411 - Confuses functions with the same name, but different namespace [view]
- Bug 779650 - Typo in https://www.stack.nl/~dimitri/doxygen/manual/docblocks.html [view]
- Bug 780630 - Nested @ingroup generates bad breadclumb list [view]
- Bug 791390 - Table formatting information ignored in Doxygen XML output [view]
- issue #6319: C++ function returning std::function with reference argument is not recognized as a function (Origin: bugzilla #792830) [view]
- issue #6901: Please consider relicensing of Javascript files [view]
- issue #7411: "warning: return type of member is not documented" for static void and virtual void functions [view]
- issue #7432: vhdl-fixed-bug-7432 [view
- issue #7464: test suite is failing [view]
- issue #7472: Serious regression: /**< comments cause functions to be silently ignored [view]
- issue #7474: [1.8.16 regression] HTML output varies from ASLR [view]
- issue #7477: Broken urls in the xml output [view]
- issue #7484: Error: /undefined in getenv [view]
- issue #7508: TYPEDEF_HIDES_STRUCT stopped working properly [view]
- issue #7527: Doxygen 1.8.17: regression of C macro expansion [view]
- issue #7544: [Regression 1.8.17] Recursion when computing class usage relations [view]
- issue #7558: PlantUML: Different behavior whether LATEX_OUTPUT has a final slash or not. [view]
- issue #7570: Comments replaced by block comments inside Markdown code block [view], [view]
- issue #7583: External Links in Inheritance Diagrams open in the Image Frame. [view]
- issue #7585: Doxygen 1.8.17 false warnings and no generate output for documented const functions [view]
- issue #7590: Map .f18 filetype to Fortran [view], [view]
- issue #7606: Unable to build "master" branch [view]
- issue #7624: non-const getClassDef() called on aliased member. Please report as a bug. [view]
- issue #7635: Incorrect location for enum in XML file [view] and [view] and [view]
- issue #7652: folder in file list has file icon (#7654) [view]
- issue #7660: In the ceph package error: non-const getNamespaceDef() called on aliased member. [view]
- issue #7664: bigobj not found with MSYS Makefiles [view]
- issue #7672: Request: use <img> tags instead of <object> tags for SVG images [view]
- issue #7674: Mention EXTRACT_ALL in the context of /file [view]
- issue #7692: \copydoc does not work with file paths including dots [view]
- issue #7514: Missing parenthesis for typedef function pointer [view]
- A mainpage doesn't have an anchor to jump to [view]
- Avoid unsupported html attributes from appearing in the XML/docbook output and other small fixes [view]
- Crash of doxygen on not understood code [view]
- Fix CROSS javascript issue when giving focus to search result frame. [view]
- Disappearing words in RTF output after a list [view]
- Consistency `\*only` and `\end*only` commands [view]
- Showing information from all `*only` commands in XML output [view]
- Fix #7490 and #7494 [view]
- Fix 6342: Applying provided patch [view]
- Fix build error after 'make clean' due to creation of unpatched JavaCC.h [view]
- Fix compiler warnings on Windows (Visual Studio) [view]
- Fix double ended list in changelog.doc [view]
- Fix for Portable::isAbsolutePath [view]
- Fix for compilation issue on Linux [view]
- Fix for compile issue on Travis-CI [view]
- Fix for potential crash when processing VHDL [view]
- Fix for removed spaces in certain \if \else \endif constructs [view]
- Fix for unused variable JAVASCRIPT_LICENSE_TEXT. [view]
- Fix html file ext in external docs (#7679) [view]
- Fix not correctly formatted messages [view]
- Fix regression when creating directory graphs [view]
- Fix the problem character string between '<' and '>' is not output in doxywizard log. (#7631) [view]
- Fix wrongly detecting ````` as code block inside running text. [view]
- Fixed error in Windows build [view]
- Fixed indenting in French translation so as to minimize differences with the English version [view]
- Fixed minor typo (#7637) [view]
- Fixed section type setting for index page from tags file. (#7684) [view]
- Fixed shadowing issue in getFortranDefs and other shadowing cases [view]
- Fixed sig11 regression while parsing cast to function pointer [view], [view]
- Fixed typo [view]
- Fixup condition-variable and mutex [view]
- Incorrect determination of fixed form Fortran [view]
- Incorrect link generated for cite and xref (#7648) [view]
- Function definitions at begin of a line [view]
- Incorrect handling of typedef in combination with const [view]
- Link in case of comma at end of URL [view]
- Minor fixes for table cell attributes in XML and docbook output [view]
- Missing anchors in RTF code output (#7647) [view]
- Opening and ending tag mismatch: tbody in docbook output [view]
- Problem in case using PREDEFINED with comma [view]
- Problem in case using PREDEFINED with comma and using += [view]
- Problem with links from search index files [view]
- Problem with temporary / intermediate directory in doxyparse [view]

### Features

- Added the few missing French translations [view]
- Updated Swedish translation to match the latest version [view]
- Adding check on configuration setting EXTENSION_MAPPING [view]
- Adding commands `\rtfinclude`, `\docbookinclude`, `\maninclude` and `\xmlinclude` [view]
- output on doxyparse if a function is a prototype [view]
- print protection information on doxyparse [view]
- Creation of svg images for formulas with inkscape [view]
- Improve formula handling and rendering. [view]
- Doxygen version in the messages output (#7640) [view]
- Doxygen version information (#7645) [view]
- Enabling Travis builds for s390x [view]
- Relative markdown file reference (#7032) [view]

### Refactoring and cleanup

- Add documentation to section.h [view]
- Add printf-Checks to message.h [view]
- Added missing #includes [view]
- CMake and examples [view]
- Cleanup code [view]
- Cleanup unused/unwanted parser dependencies on code generator [view]
- Combined both rules in one to reduce code duplication [view]
- Compilation warnings [view]
- Correct handling of error / removed debug statement [view]
- Correction behavior of make clean in respect to version files [view]
- Correction due to removal of Tcl [view]
- Documentation correction due to removal of Tcl [view]
- Doxywizard unknown configuration enum values [view]
- Enabled stricter compiler warnings and fixed all new warnings [view]
- Fix C compiler warnings about C++ flags (#7636) [view]
- Fix a few compiler warnings in the Linux build [view]
- Fix a number of compiler warnings in the 64bit build for Windows [view]
- Make VHDL parser reentrant [view]
- Make commentscan.l reentrant [view]
- Make defargs.l reentrant [view]
- Make fortranscanner.l reentrant [view]
- Make pyscanner.l reentrant [view]
- Mention EXTRACT_ALL in the context of /file [view]
- Migrated some code in pre.l to use STL containers [view] and [view]
- Minor fix for formulas.doc [view]
- Minor tweaks [view]
- Modernize OutputList internals [view]
- More accurate warning message. [view]
- More indicative warning for wrong nesting of sections [view]
- Move DocGroup inside CommentScanner instead of using a global [view]
- Possibility to use gswin64c on Windows [view], [view]
- QString -> std::string & QDict -> std::map [view]
- Remove DotConstString and replace by std::string [view]
- Remove dead code and fix more warnings [view]
- Remove duplicate xsd fields for `docMarkupType`. [view]
- Remove last QThread-Reference [view]
- Remove some unused enums in doxywizard [view]
- Remove thread-related Qt-Code [view]
- Remove unused rules [view]
- Remove warnings from doxywizard [view]
- Removed Doxygen::gatherDefines as it was not used anymore [view]
- Removing warnings from doxygen internal documentation [view]
- Replace DocCmdMapper by std::map [view]
- Replace QMutex and condition QWaitCondition with std:: [view]
- Replace QThread with std::thread [view]
- Replace SDict with std::map [view]
- Replace qlist with std::vector [view]
- Replace qqueue with std::queue [view]
- Replace raw bool pointer array and counter by std::stack<bool> [view]
- Replaced FileNameDict/FileNameList by FileNameLinkedMap [view]
- Replaced MemberNameSDict by MemberNameLinkedMap based on LinkedMap [view]
- Restructure citation handling [view]
- Restructure section handling [view]
- Restructure the way RefLists are handled [view]
- Simplified the code a bit [view]
- Small spelling correction in change log [view]
- Small spelling correction in portable.cpp [view]
- Specifying filename in preprocessor debug output [view]
- Unknown configuration enum values [view]
- Updated test 024 to better test spacing behavior. [view]
- Warnings in case of a VHDL error [view]
- commentscan.l: replace QStack by std::stack [view]
- fixed some parser bugs,make parser ready for javacc 7.0.5 [view]

## Release 1.8.17

(release date 27-12-2019)

- issue #6715: Erroneous matching of the immediately following block command after @ref [view] and [view]
- issue #7119 Doxygen does not link to C# snippets - regression [view]
- issue #7189: wrong warning on ambiguous image files [view]
- issue #7190 1.8.16: Blank FILE_PATTERNS => no files processed [view]
- issue #7200 Fortran warning: type not declared or defined [view]
- issue #7206: Problems with Fortran and `@cond` [view]
- issue #7210: 1.8.16: Image inclusion is inconsistent [view]
- issue #7212 1.8.16: Function returning void pointer generates warning [view]
- issue #7216: non-const getGroupDef() called on aliased member [view] and [view]
- issue #7218 Doxygen parsing word documents [view]
- issue #7228 Using markdown causes wrong error and warning line numbers - v. 1.8.16 [view]
- issue #7236: C++: bug when using function as parameter [view]
- issue #7243: Some PHP classes are not properly extracted/documented [view]
- issue #7248: Including external tag files with TOC produces a broken index.qhp [view]
- issue #7262 ALIASES not found when filename has more than one dot [view]
- issue #7265: Double quote character in C++ raw string literal causes Doxygen to process the string contents [view]
- issue #7268 Unable to build "master" branch [view]
- issue #7271 Tilde in preprocessor macro disappears in latex [view]
- issue #7274 Subpages no longer possible under mainpage [view]
- issue #7277: C++ - Crash using all system memory on using parent constructor with same name [view]
- issue #7285 git executable required [view]
- issue #7290 error: Problem running ghostscript gs -q -g562x56 -r384x384x -sDEVICE=ppmraw -sOutputFile=_form0.pnm -dNOPAUSE -dBATCH -- _form0.ps. Check your installation! [view]
- issue #7295 Doxygen documentation of C++17 nested namespace erroneous [view]
- issue #7302: Determination of anonymous is too restrictive [view]
- issue #7313 VHDL attribute 'subtype is not supported and breaks parser [view]
- issue #7319: Bug 790856 - Namespace member functions links are broken [view]
- issue #7325: Endless loop in preprocessor due to #define A() [view]
- issue #7326: Incorrect display of multiline #define value [view]
- issue #7328 Cannot generate DoxygenLayout.xml [view]
- issue #7348 Better warning in case a graph would have been to large [view]
- issue #7358: Ternary conditional and null-coalescing operator in constructor results in faulty warning [view]
- issue #7403: xref versus namespace in multiple file [view]
- issue #7412: HTML: Opening a reference link in a new tab does not scroll to the content [view]
- issue #7436 Incorrect handling of block comments in VHDL [view], [view]
- issue #7446: C#: parameter named `extends` is broken in the documentation [view]
- issue #7456: function-like macros generate warnings [view]
- issue #3417: C++: friend template functions shown even with HIDE_FRIEND_COMPOUNDS=yes [view]
- issue #7302: Parsing of template args in single-quotes is incorrect. [view]
- Bug 164073 - There should be a dummy tag that Doxygen ignores [view]
- Bug 335614 - HTML link incorrect when using tagfile [view]
- Bug 340202 - @code: static_cast, const_cast, etc C++ keywords [view]
- Bug 550158 - EXTRACT_ALL=YES parses non doxygen comments [view], [view]
- Bug 570798 - \\\< does not work for php constants [view]
- Bug 674005 - Crop png formula environnment problem for HTML output [view]
- Adding HTML s tag, XML corrections for other tags [view], [view]
- Adding JAVACC_FLAGS for javacc compilation [view]
- Adding possibility to automatically build vhdlparser from vhdlparser.jj file [view], [view]
- Adding some links in search documentation [view]
- Also span entire line in case of a memTemplItemRight [view]
- Avoid code duplication and make the keyword matching more robust [view]
- Avoid warning in commentcnv.l about trailing context made variable due to preceding '|' action [view]
- Backslash in href. [view]
- Better termination message [view]
- Better warning in case of `@form` [view]
- Better warning message in case of illegal command [view], [view]
- Bogus explicit link warning message from irc protocol name [view]
- Checking of right usage of configuration list items [view]
- Cleanup forward declarations of obsolete classes [view]
- Code highlighting. [view]
- Consistent way to show scanner state [view]
- Correct style in table header in case of paragraph is used [view]
- Correcting visible year in copyright [view]
- Correction documentation `\image` command [view]
- Coverity uninitialized [view]
- Create possibility to define LaTeX commands for formulas [view]
- Discrepancy between vhdl input and generated sources [view]
- Double entry for ins in compound.xsd [view]
- Email address seen as code starter [view]
- Embed TagInfo struct inside Entry [view]
- Error in LaTeX with single quote in formula / math mode. [view]
- Extend built-in STL support with more classes [view]
- Fix double delete in VHDL error handler. [view]
- Fix for use of non portable strnstr function [view] and [view]
- Fix incorrect reference resolving of enum class values [view]
- Fix lifetime issue for Entry objects. [view]
- Fix line count after multiline close group [view]
- Fix logic bug in SVG detection [view]
- Fix regression when expanding macro to an empty string [view]
- Fix some typos [view]
- Fix typo in source [view]
- Fix typos [view]
- Fixed a couple of compiler warnings on Windows [view]
- Fixed compiler warnings in docparser.cpp [view]
- Fixed endless loop during preprocessing [view]
- Fixed issue with "QGDict::hashAsciiKey: Invalid null key" in pre.l [view]
- Fixed line count misaligned introduced with JAVADOC_BANNER [view]
- Fixed merge issue [view]
- Fixed preprocessor hangup regression [view]
- Fixed preprocessor issue that resulted in "More #endif's than #if's found." warning. [view]
- Fixed use of uninitialized data in VHDL generator [view]
- Fixed use of uninitialized pointer in preprocessor [view]
- Fixes a @param's parameter name. [view]
- Generalized the HTML comment detection and handling [view]
- Generating doxygen's documentation in CHM format [view], [view]
- HHC and directory elements starting with "." [view]
- HTML attribute name [view]
- HTML start comment with 3 dashes [view]
- Illegal Character in XML output [view]
- Incorrect NCName in docbook citations [view]
- Incorrect warning "yyextra->inside" instead of "inside" [view]
- Incorrect warning for ALIASES [view]
- Length of identifying fenced code block [view]
- Let $year support SOURCE_DATE_EPOCH [view]
- Made check for void return more strict [view]
- Made regexp more strict [view]
- Making tests valid for python 3 [view], [view]
- Minor code cleanup for layout files [view]
- Minor fixes [view], [view]
- Minor tweaks [view]
- Missing tables item in overview [view]
- Nicer warning for missing parameter [view]
- Optimize UTF-8 nbsp conversion in markdown [view]
- Order of commands in `<table>` [view]
- Output of unknown xml/html tag [view]
- Parsing `#` sign inserted by preprocessor in fixed Form Fortran [view]
- Prevent writing automatic anchors to the tag file [view]
- Problem converting UCS big endian file [view]
- Problem with `<hr>` in LaTeX multicolumn cell [view], [view]
- Problem with '<td nowrap>' [view]
- Problem with horizontal ruler directly after fenced code section [view]
- Problem with round brackets in PS output [view]
- Properly close quotes in warning [view]
- Properly open quotes in warning [view]
- QGDict::hashAsciiKey: Invalid null key due to empty procedure name [view]
- RTF extension file to standard output, make according documentation consistent. [view]
- Reduce the use of QString in favor of the more efficient QCString [view]
- Reduced code duplication [view]
- Refactoring code for dot related source files [view]
- Refactoring of portable.h and portable.cpp functions to be contained in a namespace Fixing some memory issues caused by not correctly freed pointers [view]
- Remove global state from constexp lexer [view]
- Remove unneeded include directory for building doxywizard [view]
- Removing left over debug statements [view]
- Renamed Portables to Portable [view]
- Revert "Minor code cleanup for layout files" [view]
- Simple nospam email address [view]
- Simplified the logic for moving documentation to the most nested Entry [view]
- Simplified code generated by scan_states.py [view]
- Skip empty HTML tag [view]
- Small improvements of TCL output [view], [view]
- Split language parser into "outline parser" and "code parser" [view]
- Strange '*‍/' in Fortran and Markdown with conditional sections [view]
- Support for <a id="label"> [view]
- Table caption flows in first table field for RTF output [view], [view]
- Tests 31 for XHTML output [view]
- Tests 86 with check against xsd gives error [view]
- Text '&nbsp;' appears in code segments [view]
- Textual error [view]
- Update doxywizard copyright year and add missing copyright statements [view]
- Update of generated VhdlParser files. [view]
- Use the proper trailing comment. [view]
- Warning in case of usage of a single quote in a code span. [view]
- Warning when using empty HTML tag [view]
- Warning when using empty p HTML tag [view]
- Warning with Windows compilation using NMake [view]
- Warning with XML / HTML style commands [view]
- Warning with xrefitem from documentation [view]
- Wrong reference to code line [view]
- bug fix of g_bracketCount in case of if( myobject.getPair() ) [view]
- remove debug prints [view]
- Added missing debug flags for scanner that were made reentrant [view]
- Made scanner.l reentrant [view]
- Cleanup scanner.l code and naming [view]
- Make preprocess code reentrant [view]
- Made code.l scanner reentrant [view]
- Made commentcnv.l reentrant [view]
- Reduce boilerplate code by using C++11 variadic templates and perfect forwarding [view]
- Remove bogus flex code [view]
- Replace set of g_inside* booleans with a single g_lang variable [view]
- Use smartpointers to manage the lifetime of Entry objects [view]
- Latest libclang needs C++14 [view]
- Changed ArgumentList to be an STL container [view]
- Changed implementation to use SkipString/SkipStringS. [view]
- Changed std::unique_ptr<Entry> to std::shared_ptr<Entry> at avoid use after free issues [view]
- Replaced QList<BaseInfo> with std::vector<BaseInfo> [view]
- Replaced QList<Grouping> with std::vector<Grouping> [view]
- Replaced QList<ListItemInfo> with std::vector<ListItemInfo> [view]
- Replaced QList<SectionInfo> by std::vector<SectionInfo> [view]
- Spelling corrections [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] , [view] and [view]

## Release 1.8.16

(release date 8-8-2019)

- Bug 136299 - attributes to <p> tag get lost [view]
- Bug 141919 - Wrong param and exception style in RTF output [view]
- Bug 304793 - paramType does not contain attribute element in compound.xsd schema [view]
- Bug 322353 - C variable argument list doesn't work in @param [view]
- Bug 399222 - SORT_BRIEF_DOCS produces wrong results [view]
- Bug 437181 - The -d Preprocessor option doesn't work for php, should be in the doc. [view]
- Bug 489766 - Wrong MSC syntax rejected *silently* [view], [view]
- Bug 535853 - C# consts incorrectly placed under instance variables [view]
- Bug 566109 - unable to resolve links to java functions with array arguments [view]
- Bug 616379 - doxygen result by nested comment incorrectly [view]
- Bug 626582 - Function overloads are not actually sorted in member function list [view]
- Bug 632754 - The \copydoc Command Requires The Use of C++ Syntax in C# Code [view]
- Bug 642126 - @mscfile <filename> does not process mscgen code [view]
- Bug 645910 - Segfault on recursion while parsing "\subpage A" in "\page A" [view]
- Bug 685714 - false positives reporting parameters or return value not being documented [view], [view]
- Bug 757574 - Warning regarding subsection with anchor in markdown [view], [view], [view]
- Bug 766508 - missing comments of overridden methods [view]
- Bug 781306 - *** Error in 'doxygen': realloc(): invalid pointer: 0x0000000001d45ba0 @ exit [view]
- Bug 783759 - PERL_PATH config option: when is this needed? Still used? [view]
- Bug 796582 - Doxygen has stopped working [view]
- Issue #6039: Links on image in Markdown (Origin: bugzilla #769223) [view]
- issue #6607 Don't warn about missing parameter documentation for deleted functions [view]
- issue #6679 Multiple use of section label warning for Setex-stype headers in markdown [view]
- issue #6707 The INSTALL file contains a dead link to install.html [view]
- issue #6708 Invalid UTF-8 characters in hover title [view], [view]
- Issue #6714: Don't crash or generate invalid XML for empty TOC [view]
- issue #6716 mainpage notitle causes notitle to appear in index bar [view]
- issue #6725 Doxygen 1.8.15 CMake 3.13 incompatibility [view]
- issue #6727 SHOW_NAMESPACES = NO breaks latex PDF [view]
- issue #6732 align environment for formula (\f{align}) no longer working [view]
- issue #6733 invalid cite anchor id when using crossref [view], [view]
- issue #6734 parsing performance worsened [view]
- issue #6744 Ampersand in Markdown image URL is not escaped in XML output [view]
- issue #6748 1.8.15 regression with C# internal modifier [view]
- issue #6749 doxygen 1.8.15 segfault [view]
- issue #6754 False positives for "multiple @param sections" [view]
- issue #6764 Incorrect parsing of C enum comments defined using a macro [view]
- issue #6769 Tabu is broken [view], [view]
- issue #6775 LaTex package newunicodechar: "package won't work " [view]
- issue #6781 Unable to use math in markdown table headers [view]
- issue #6791 TOC not generated when using a particular Markdown header style [view], [view]
- issue #6796 Bad link to section, subsection if pointing at item past suspicious text [view]
- issue #6800 Markdown line ending problems in 1.8.15 and master [view]
- issue #6812 Empty lines are lost when copy-pasting from code section. [view]
- Issue #6814: Inconsistent whitespace removal for operators in 1.8.15 [view], [view]
- Issue #6818 Certain regex pattern in class constant causes PHP class to be ignored [view], [view]
- issue #6828 Physical newlines (^^) in ALIASES configuration tags not working with sections, subsections, subsubsections and paragraphs [view]
- issue #6830 Message: graph_legend:39: error: Prevented to copy file <path_to_html_output>/graph_legend.png onto itself! [view]
- issue #6831 Failure to recognize class array with PHP in @var [view]
- issue #6840 Hash character in Markdown code span not rendered correctly [view], [view]
- issue #6847 Physical newlines (^^) in ALIASES produce a mismatch between documentation and source code [view]
- issue #6856 Doxygen only expands macro defined in header file once when referred multiple times [view]
- issue #6869 SVG image generated by \dot or \dotfile does not render properly in HTML [view]
- issue #6880 mscgen links placed in the wrong place when using SVG output [view], [view]
- issue #6892 xml not well-formed (invalid token) for c++ [view]
- issue #6896 empty sections in latex output [view]
- issue #6917 Crash in php with UTF-8 character [view], [view]
- issue #6925 Missing ATX headings in markdown pages [view]
- issue #6939 Build fail in Windows with build_parse turn ON (unistd.h does not exist in Windows) [view]
- issue #6941 Tcl : separate continued lines joined in source listing [view]
- issue #6945 \class after \brief doesn't count as a new line - resulting docs show merged descriptions [view]
- issue #6946 Compilation error (clangparser.cpp) [view]
- issue #6950 XML - <initializer> for array of structure only contains references in first array element [view]
- issue #6968 INLINE_INHERITED_MEMB doesn't respect EXTRACT_PRIVATE=NO [view]
- issue #6979 Method parameters documented inline are not present in documentation of overriding/implementing methods [view]
- issue #6986: C++ static template methods: duplication as non-static and specialization [view]
- issue #6990 Dot produces no Graphs [view]
- issue #7009 Python class diagram not created for the base class while works for the derived class [view] and [view]
- issue #7015 Parsing issue with @includedoc and @startuml [view]
- issue #7021 Warning about missing item in INCLUDE_PATH [view]
- issue #7033 Syntax highlighting doesn't work when calling \dontinclude from Markdown files [view]
- issue #7038 Broken refman.tex with SHOW_FILES=NO and doxygen groups [view]
- issue #7043 html output for markdown: different output when using '# Header {#mainpage}' and 'Header {#mainpage}\n====' [view]
- issue #7050 Physical newlines (^^) not working in group names and without spaces in 1.8.15 [view]
- issue #7091 HEAD fails to build on macOS with stock `bison` [view]
- issue #7102 Doxygen does not generate error/warning message for unbalanced group markers "@{"..."@}" [view]
- issue #7104 Warning with preprocessor [view]
- issue #7109 Doxyapp can't use "[source_file | source_dir]" parameter [view], [view]
- issue #7110 URL Encoding for Hyperlinks in PDF [view]
- issue #7113 Doxygen doesn't process markdown tables correctly [view]
- issue #7120 Markdown generator does not consider extension mapping for files with no extension [view]
- issue #7124: some code line are missed in the xml file for java [view]
- issue #7126 Latex output format fixes [view]
- issue #7127 Broken links on generated documentation [view]
- issue #7140 DoxygenLayout does not support UTF8 BOM format [view]
- issue #7143 note block not generated properly if there are blanks after it [view]
- issue #7147: No warning when same page created [view]
- issue #7151 Doxygen 1.8.15 TOC_INCLUDE_HEADINGS >0 stops html links being generated in markdown [view]
- issue #7166: Doxygen calls DOT differently depending on the output optimization selected. [view]
- issue #7068: "QGDict::hashAsciiKey: Invalid null key" error messages [view], [view], [view], [view], and [view]
- Improve performance of drawing PlantUML diagrams [view]
- (X)HTML warning when `[` or `]` in constructed ids [view]
- Add 'ins' and 'del' style tags to XML schema [view]
- Add colon to section names in latex output [view]
- Add possibility of checking XML against XSD in doxygen tests [view]
- Added 'constexpr' as attribute label and to XML output [view]
- Added .editorconfig. [view]
- Added declfile, declline, and declcolumn attributes to the location element in the XML output [view]
- Added instructions to build a statically linked doxygen binary from sources [view]
- Added noexcept attribute to the XML output [view]
- Added virtual destructor to DotGraph base class and disabled copy constructor and assignment operator [view]
- Adding HTML tags ins and del [view]
- Adjustment of xhtml1-transitional.dtd [view], [view], [view], [view]
- Aligned license statement for javascripts with general license statement [view], [view]
- Allow Javadoc-style comment blocks with a Doxyfile variable [view]
- Allow \r\n as line continuation as well [view]
- Ambiguous file name in file command [view], [view]
- Avoid calling non-const member aliases and 0 pointer dereference in sqlite3 [view]
- Avoid endless namespace lookup for C# code. [view]
- Broken links in documentation [view]
- Change DoxyParagraph to use DoxyDesc inside in latex style [view]
- Class definition with collections [view]
- Conflict between RCS tag and (e.g.) php description [view]
- Consistency not generated inheritance diagram [view]
- Consistency of configuration parameters [view]
- Continuation lines and labels [view]
- Correcting command name in output [view]
- Correcting errors in xml generation and xsd schema [view]
- Correction obvious documentation errors in mscgen [view]
- Correction warning message [view], [view]
- Count user comment lines [view]
- Crash in case of usage of \line without \include [view]
- Create option to enable CLANG_ASISTED_PARSING in test suite [view]
- Cygwin should by default also have `CASE_SENS_NAMES=NO` [view]
- Disabled "inheritance by dominance" warning [view], [view]
- Don't try to load htags filemap in case htags fails [view]
- Don't write the plantuml cache file in case there are no plantuml diagrams. [view]
- Double defined operator in test 74 [view]
- Double id for tooltips in XHTML Possible. [view]
- Doxygen crash on ceph project [view]
- Email address not seen [view]
- Enable compiler extension to avoid build issues [view]
- Enable example doxmlparser possibilities for cmake build [view]
- End comment marker in \code section. [view]
- Fast Plantuml [view]
- Fix #6906 [view]
- Fix for printlex after destroying the scanner context [view]
- Fix for race conditions introduced when refactoring dot classes. [view]
- Fix for unmatched </p> when using \until as the first command [view]
- Fix for warning about deletion of pointer to incomplete type 'DotFilePatcher' [view]
- Fix for warning about deletion of pointer to incomplete type 'DotWorkerThread' [view]
- Fix gd_intern.h for Windows build [view]
- Fix naming and indenting. [view]
- Fix windows build [view]
- Fixed C++17-namespace assignment bug [view]
- Fixed a few compiler warnings on win32 [view]
- Fixed alt attribute appearing in <object> tag for SVG images [view]
- Fixed issue in doxmlparser in getter function [view]
- Fixed issue with counting member lists [view]
- Fixed issues in introduced by making file name escapes lower case [view]
- Fixed memory leak in reentrant lexers [view]
- Fixed missing end paragraph marker when inline image appeared as last item. [view]
- Fixed range and added code comment [view]
- Fixed segmentation fault in do_warn [view]
- Fixed two compilation issues [view]
- Fixed type in javascript license text and moved it to one location [view]
- Fixed typo [view], [view]
- Fixed windows build issue in gd.h [view]
- Fixes #6860. [view]
- Forgot to comment out debug print [view]
- Give warning when a retval is used multiple times [view]
- Handling digraph versus label [view]
- High consequence coverity messages [view]
- Image not seen as svg image [view]
- Implement a new EXTRACT_PRIVATE_VIRTUAL option. [view]
- Implementing `<hr>` for LaTeX [view]
- Improvement of performance : Reduce the Java running count [view], [view]
- Improve handling < for expressions inside template argument defaults [view]
- Improved code structure a bit [view]
- Improved const correctness and added support for inline namespaces [view], [view], [view], [view], [view]
- Incorrect (X)HTML code when generating source code. [view]
- Incorrect Reached end of file while still inside a (nested) comment for TCL / Python [view]
- Incorrect XHTML of changelog for 1.8.15 [view]
- Incorrect joining documentation sections. [view]
- Incorrect layout of class index (HTML) [view]
- Incorrect output tag order [view]
- Incorrect paragraph numbers in secref list. [view]
- Incorrect warning message [view]
- Indentation of paragraphs in LaTeX [view]
- Inline VHDL code [view]
- Invalid id possible with tooltips [view]
- JAVA_ONCE -> FAST [view]
- Latex code double minus goes to endash [view]
- Made MSCGEN_PATH obsolete now that mscgen code is part of doxygen [view]
- Make conanfile creation more readable [view]
- Markdown file as internet link [view], [view]
- Merge: moved example from 081 to 084, improved check if last char is newline [view]
- Merge: reorder tests [view]
- Minimum required version for CMake [view]
- Missing brief descriptions with `\defgroup` [view], [view]
- Missing debug statements sqlcode and xmlcode lexers [view]
- Missing warning about ambiguous files [view]
- Missing warning for "double comment" [view]
- Missing white space in warning [view]
- More than 26 appendices in LaTeX manual [view]
- Moved check for page having a title to hasTitle() method [view]
- Multiple use of HTML attributes [view]
- No space when replacing `\copydoc` by `\copydetails` [view]
- No translation of markdown in <pre> [view]
- Non existing MSC file crashes doxygen [view]
- Option for 'input buffer overflow' [view]
- Option syntax for commands is unclear [view], [view]
- PLANTUML_RUN_JAVA_ONCE is working well. But some specific plantuml has error on ver 1.8.15 [view]
- Portuguese translators updated to Doxygen 1.8.16. [view]
- Possibility to show converted fixed form [view]
- Problem with just an asterisks on a `\code` line [view]
- Problem with with comment recognition for group open and closing commands [view]
- Properly handle empty TOC in XML output. [view]
- Reduce code duplication when printing version string [view]
- Refactored Definition and derived classes such that they are abstract interfaces [view]
- Regression #6836 URL contains $ sign on second run in map of images [view]
- Regression on Definition and derived classes that are abstract interfaces [view], [view], [view]
- Regression: python file with comment caused "Reached end of file while still inside a comment" warning. [view]
- Regression: unbalanced grouping commands [view]
- Remove compilation warnings from doxmlparser [view]
- Remove dead code [view], [view], [view], [view], [view]
- Remove some doxygen warnings in internal documentation [view]
- Remove superfluous paragraph tags [view]
- Removed page restriction with `\anchor` command in documentation [view]
- Removed superfluous character [view]
- Revert "Disabled "inheritance by dominance" warning (try 2)" [view]
- Revert "alternate fix for .dot file handling" [view]
- Revert "issue #6856 Doxygen only expands macro defined in header file once when referred multiple times" [view]
- Section title runs into margin [view]
- Shortened EXTRACT_PRIVATE_VIRTUAL to EXTRACT_PRIV_VIRTUAL to deal with max length limitation [view]
- Show git version information [view], [view], [view]
- Show line numbers in "split" examples [view]
- Simplified code a bit [view]
- Special handling of the UTF8 nbsp sequence [view]
- Speed up AppVeyor build by using miktex setup tool and activating build cache [view]
- Split off lodepng functionality in a separate library [view]
- Store inline attribute for namespaces [view]
- Terminate brief in case of `-#` list [view], [view]
- Terminating brief command [view]
- Tests are unsorted [view]
- Travis build fails due to problem with cmake [view], [view]
- Travis macOS: Update Qt to 5.12.0 [view]
- Travis macOS: Use Travis addons for homebrew [view]
- Travis macOS: Use shared Qt until upstream bugs are fixed [view]
- Travis: Handle linux-ppc64le differently [view]
- Travis: Install libiconv and libxml via Conan [view]
- Travis: Output CMake version [view]
- Travis: Removing sudo keyword as this will be soon deprecated anyway [view]
- Travis: Workaround to differ between x86 and ppc64le [view]
- Travis: macOS Remove permission workaround [view]
- Truncated warning message [view]
- USE_HTAGS = YES, there are _no_ call / caller graphs in the documentation [view]
- Undo the addition of colons [view]
- Unified various image file types in the XML schema [view]
- Update documentation for msc [view]
- Update internal Doxyfile to current version / situation [view]
- Updated build instructions to get rid the libtinfo.so dependency on Linux with static libclang. [view]
- Updated jquery and worked around performance issues in powertip plugin [view]
- Upper case characters in filename despice CASE_SENSE_NAME=NO [view]
- Warning for documented return of void type function [view]
- Warning if no file specified for special reading commands [view]
- Warning messages of test 66 [view]
- Warning when preprocessing conditionals [view]
- Windows crash in case of incorrect end statement [view]
- XML validation \msc... \dot... \dia... [view]
- a named anchor does not need custom attributes and minor other corrections. [view]
- add blurb to docblocks [view]
- add format in writePlantUMLSource() and gathered in one pu file. But it is not final [view]
- add list of file extensions on doxyparse config [view]
- add plantuml.h in doxygen.cpp [view]
- added check if .dot file is already queued for processing before adding a new processing job [view], [view]
- at sign (`@`) not handled correctly in preprocessor [view]
- at sign (`@`) not handled correctly in preprocessor (more fixes) [view]
- built-in [view], [view], [view]
- changed numbering of dot nodes to prevent different contents being generated for the same .dot file [view]
- chmod +x runtest.py [view]
- code.l: make CallContext independent of global variables [view]
- constexp.l,y: generate a reentrant scanner and parser [view]
- constexp.l: group the flex options [view]
- constexp.y: drop the = from name-prefix [view]
- declinfo.l: enable reentrant [view]
- declinfo.l: group flex options together [view]
- declinfo.l: move function declarations before [view]
- delayed creation and update of .md5 files after successful creation of output files [view], [view]
- do not clobber version placeholder [view]
- doxyparse addon new features and bugfixes [view]
- doxysearch: added wildcard, partial and phrase search [view]
- enable debug for re-entrant lexers [view]
- https link to sourceforge.net [view]
- make similar javadoc banner change for stripping special comments from code [view]
- node numbers removed for md5 calculation to avoid false md5 mismatches [view]
- qglobal.h: Fix build on AIX [view]
- refactoring dot.cpp [view]
- regression #6885 mscgen links placed in the wrong place when using SVG output [view]
- regression #7061 Rename test file [view]
- regression #7105 Correct counting in case of `\name` [view]
- regression #7105 correct counting for group close counting [view]
- remove PLANTUML_RUN_FAST because FAST is default. [view]
- secref command output shows in 1 column (HTML) [view]
- source arrangement [view]
- spelling error: supported -> supported [view]
- sqlcode.l: generate a reentrant scanner [view]
- take doc group out of commentscan.l [view]
- testing: add a test for TOC levels in the XML output. [view]
- testing: add a test for XML output with an empty TOC. [view]
- testing: improve tests for \ref. [view]
- testing: make runtests.py executable. [view]
- update jQuery version mentioned in README to 3.4.1 [view]
- updated manual, included examples in documentation [view]
- updated test case to reflect new node numbering [view]
- warning: Member func2InGroup1() (function) of class Memgrp_Test is not documented. [view]
- warning: More #endif's than #if's found. [view]
- warning: Reached end of file while still inside a (nested) comment. [view]

## Release 1.8.15

(release date 27-12-2018)

- Bug 851 - A function cannot be documented as related to two classes. [view]
- Bug 1041 - <a href> doesn't allow <img> as visible part? [view]
- Bug 1601 - Missing warning of undocumented member in member group [view]
- Bug 2274 - Tooltips are not shown in dot-generated graphs [view] and [view] , [view]
- Bug 2354 - caller graph can be improved by having caller on left & callee on right [view]
- Bug 2478 - Handling of unnamed parameters (C/C++) unclear [view]
- Bug 2655 - cond/endcond cannot be used in aliases [view]
- Bug 2859 - Unnamed parameters parsed incorrectly [view]
- Bug 3206 - Fortran: Does not recognize backslash at end of documentation line [view]
- Bug 3361 - Merging of consecutive repeated commands creates poorly-structured HTML [view]
- Bug 3677 - <![CDATA[ is not handled inside C# comments [view]
- Bug 3691 - C# keywords 'get' and 'set' are highlighted as reserved words in C++ documentation source browser. [view]
- Bug 3892 - @var in php is not documented [view]
- Bug 3958 - \cond after @string literal containing backslash fails in C# [view]
- Bug 4013 - Automatic links don't work correctly with operator< and operator<= [view]
- Bug 4064 - Support for C# nullable type [view]
- Bug 4244 - Fortran: tagfile.tag:789: warning: Unknown compound attribute 'type' found! [view]
- Bug 4316 - Can't use pound sign in alias command, escaped or unescaped [view]
- Bug 4458 - @todo in @param leads to strange confusing message [view]
- Bug 4529 - HTML tags <u> and </u> not supported [view] , [view]
- Bug 4725 - single quote in HTML section of PHP breaks doxygen [view]
- Bug 4771 - Not warning of undocumented function parameters [view]
- Bug 4878 - Value from enumeration followed with semicolon is not present in java docs [view]
- Bug 4954 - JavaDoc @linkplain is not recognized [view]
- Bug 5032 - Line numbers for examples [view]
- Bug 5068 - The 'Examples:' section; bad/missing style and incorrect spelling [view]
- Bug 5213 - Generated Doxyfile differs from result of doxygen -u [view] , [view]
- Bug 5327 - <img> on a \page does not copy the image to the html output folder [view]
- Bug 5366 - Error with inserting images to PDF with Markdown [view]
- Bug 5442 - Misparsed comments leading to missing call graph [view]
- Bug 5539 - Error message when using memberof in a C macro [view]
- Bug 5547 - "remove" is treated as a keyword (green) in the source browser for C++ [view]
- Bug 5677 - Negative sign in -Foo::Bar ruins hyperlink in generated output [view]
- Bug 5725 - Field with name "internal" confuses documentation builder. [view]
- Bug 5765 - \todo at end of C# XML comment breaks following todo's [view]
- Bug 5783 - Navigation incorrect with escaped symbols [view]
- Bug 5784 - Doxygen not creating call graphs for C# methods if namespace contains the classname [view]
- Bug 5818 - Main page absent in TOC of CHM, if PROJECT_NAME is empty [view]
- Bug 5853 - Can't suppress @author, @date and @copyright information in the detailed file description [view]
- Bug 5901 - Macros (@test, @todo, etc) used with PHP namespaces causes illegal command warning [view]
- Bug 5929 - \internal stops all parsing if used inside a section [view]
- Bug 6025 - Make maxLineLen of latex output configurable [view]
- Bug 6041 - PHP: New array syntax not supported when parsing initial value [view]
- Bug 6104 - EXTERNAL_GROUPS lose hierarchy [view]
- Bug 6118 - Title in rtf file is incorrect when overridden by user in extension file [view]
- Bug 6153 - Build of PDF with LaTEX breaks [view]
- Bug 6160 - Python List as Default Parameter not parsed correctly [view]
- Bug 6172 - CREATE_SUBDIRS breaks SERVER_BASED_SEARCH [view]
- Bug 6175 - plantuml:an unwanted newline is generated after @startuml [view]
- Bug 6197 - Czech/Slovak language documentation with tables from LaTeX to PDF is not possible [view]
- Bug 6208 - Annotated function parameter generates <dt> warning in todo list [view]
- Bug 6213 - rtf generation [view]
- Bug 6214 - LaTeX output for \tparam block fails to compile when it contains a \code block [view] , [view]
- Bug 6224 - .tex file is wrong when generating a function whose name includes an underline [view]
- Bug 6269 - Disabled controls when `HAVE_DOT` is already set to `YES` [view]
- Bug 6270 - Bad handling of Python class members when a class declaration line contains a comment [view]
- Bug 6295 - doxygen has problem with operator&=() [view]
- Bug 6305 - XHTML pages are broken several ways [view] and [view]
- Bug 6308 - When generating xhtml, async attribute on script tags need a value [view]
- Bug 6310 - Table markdown produces invalid xhtml code [view]
- Bug 6311 - Blank rows on class page when using external tag file [view]
- Bug 6312 - markdown plantuml use of graphviz fail if plantuml work i code file [view]
- Bug 6316 - unescaped double quote in searchdata.js breaks search box functionality [view]
- Bug 6322 - incorrect parsing of markdown table [view]
- Bug 6323 - error: Could not open file .../doc/html/functions_ .html for writing [view]
- Bug 6324 - C#: Incorrect parsing of property definitions containing "//" symbols in one line with "} [view]
- Bug 6325 - Segmentation fault when generating graphical class hierarchy [view]
- Bug 6339 - Examples of TCL files fail to display [view]
- Bug 6340 - Missed warning opportunity: duplicated arguments [view]
- Bug 6345 - c# see langword broken [view]
- Bug 6346 - Doxygen crash when using \code{.markdown}...\endcode in VHDL source [view]
- Bug 6350 - Broken extension test in FileDef::generateSourceFile() [view]
- Bug 6352 - "unexpected token TK_EOF as the argument of ref" when target starts with a digit [view]
- Bug 6362 - Adjacent xrefitems always added to first list present on page [view]
- Bug 6363 - Backslashes in default values confuse the parser (and cause params to be ignored) [view]
- Bug 6368 - LaTeX: Class scrbook Error: undefined old font command '\tt' [view]
- Bug 6370 - Invalid 3-byte UTF8 found in input of graph [view]
- Bug 6373 - Collapsed treeview arrow displays as emoji in Microsoft Edge [view]
- Bug 6378 - @cond does not stop at @endcond Fortran [view]
- Bug 6517 - Emoji support [view] , [view]
- Bug 6524 - Markdown formats missing in doxygen outputs. [view]
- Bug 6533 - PHP: Namespaced typehints in deprecated methods not handled correctly [view]
- Bug 6547 - Call graph missing due to ALIASES [view] , [view]
- Bug 6566 - INHERIT_DOCS not working for python [view]
- Bug 6580 - xrefitems not listed if the page is referenced multiple times [view]
- Bug 6589 - anchor after test command in a namespace produces duplicate tests [view]
- Bug 6594 - using ingroup and anchor causes tests to disappear [view]
- Bug 6597 - SIGSEGV presumably caused by C++ "using" declaration [view]
- Bug 6601 - tparam HTML gobbles up lines after the tparam comment [view]
- Bug 6612 - Issue with handling of emoji [view]
- Bug 6632 - References to Objective C protocols by name broken in 1.8.12 [view]
- Bug 6657 - "QGDict::hashAsciiKey: Invalid null key" when using anonymous union/struct [view]
- Bug 6690 - Regression in handling of shorthand signed/unsigned types in function parameters (with bisect and test case) [view]
- Bug 6691 - Multiple issues with emoji matching [view]
- Bug 6692 - XML TOC generation is not backwards-compatible with 1.8.14 [view]
- 'self' keyword in PHP documentation [view]
- Added: support RTL for DocXRefItem in html - Removed: support RTL form Return section in html, for consistency with parameter sections [view]
- Fixed: list item bullets overlap floating elements in html - Fixed: fragment lines overlap floating elements in html [view]
- Fixed: text-align of rtl toc [view]
- Fixed: last line underline overlap border in html fragment [view]
- A few more language updates [view]
- Add VHDL strings to Translator class and add german translations. [view]
- Add commands to handle referenced by relation and references relation [view] , [view]
- Add formula (images) to RTF output [view]
- Add function annotations support [view]
- Add possibility for adding doxygen configuration items to, all, tests during runtime. [view]
- Add support for std::shared_ptr [view]
- Add support of dict/set in annotations and default values [view]
- Add variadic arguments support to @link and @ref, aka '...' arguments, fixes [view]
- Add variadic function arguments '...' regression tests [view]
- Add variadic template function regression tests [view]
- Added *.ice files as a recognized file type. Added a Slice-optimized output mode. [view]
- Added French translation [view]
- Added missing #include for util.h to portable.cpp [view]
- Added not for usage of [TOC] together with Markdown headers [view]
- Added some VHDL code coloring [view]
- Added some missing default types for argument matching [view]
- Added substitution variant for character substitution [view]
- Added support for RTL(right to left) languages like Arabic and Persian in HTML output [view]
- Added test case for \ref, and fixed representation of operator->*() [view]
- Adding debug options to vhdl parser generator [view]
- Adjustment of xhtml1-transitional.dtd [view]
- Automatic detection of UCS-2 based on BOM corrected [view]
- Better HTML output for VHDL Ports [view]
- Bold text terminated by plus sign [view]
- Bug fix for plantuml [view]
- Bump minimal deployment target for OSX to 10.9 to avoid deprecation warning while linking [view]
- C++11 features used in Doxygen [view]
- Cannot Generate Layout File using -l [view]
- Cannot properly jump from brief to detailed function description [view]
- Change german translation of trClassDocumentation() for VHDL output. [view]
- Changed implementation, added test case [view]
- Changed mail address and removed obsolete files [view]
- Changed refiltering to forced use of insideTabbing [view]
- Changed state guard instead of adding pattern check+reject [view]
- Close last code line properly. [view]
- Combined lrRank and rank parameters for computeMd5Signature [view]
- Consistency between 'generate' and 'update' startup option [view]
- Consistency between preprocessor and handling of \cond and \if [view]
- Consistency for "group" commands [view]
- Consistency in headings and layout for template parameters (tparam) [view]
- Consistency of Index name in LaTeX output [view]
- Consistency of environment variables between config and code [view] , [view]
- Consistent warning messages [view]
- Correct list of not used translator functions [view]
- Correct typing error in test 5 [view]
- Correct typing error in test 51 [view]
- Correct typing error in warning message. [view]
- Corrected description of XML output for emoji characters [view]
- Corrected warning in case of a not supported output format with \image command. [view]
- Correcting "Definition at line @0 of file @1." [view]
- Correcting labels for citations [view] , [view]
- Correcting tag example and uniform calling all examples [view]
- Correcting tag in printdocvisitor [view]
- Correcting warning messages and echoing unknown command [view]
- Correction for `doxygen -g` [view]
- Correction in example of FILE_VERSION_FILTER [view]
- Correction in title of FAQ [view]
- Correction internal documentation [view]
- Correction of some coloring of code comments in VHDL, adding data type 'positive' [view]
- Create command for escaped equal sign [view]
- Create test possibilities for xhtml and pdf output [view] , [view]
- Debug output commentcnv independent of QUIET setting [view]
- Difference between standard and used Doxyfile [view]
- Difference between standard and used Doxyfile (list) [view]
- Disabled Appveyor documentation build due to unreliability of MikTeX download [view]
- Disabled debug print [view]
- Documentation EXTENSION_MAPPING [view]
- Documentation correction [view]
- Documentation correction CLANG option usage [view]
- Documentation correction include command with options [view]
- Documentation corrections [view]
- Documentation internet addresses [view]
- Documentation update regarding right font usage in architecture chapter [view]
- Does not generate TOC for markdown [view]
- Don't link to non existing / not accessible namespaces , in CSharp, in the source code [view]
- Doxygen creates empty image titles for Docbook output [view]
- Doxygen manual doesn't have lines around markdown tables / cells. [view]
- Doxygen manual is not XHTML compliant [view]
- Drop down lists in menu bar missing [view]
- Enable comma as separator in configuration lists [view]
- Enable in page table of contents for LaTeX [view]
- Enable in page table of contents for XML and add maximum level to in page table of contents [view] , [view]
- Enable possibility of CLANG for Cygwin [view] , [view]
- Enable possibility to run single tests [view]
- Ensure all language files are reset [view]
- Expand sqlite3gen's breadth, depth, and quality [view]
- Extending \cite command with '-' and '?' characters. [view]
- Extending tests with extra possibilities [view]
- Fix French lang build [view]
- Fix HTTPS links [view]
- Fix VHDL Latex documentation having two chapters with the same name. [view]
- Fix Windows build failure [view]
- Fix annotation with default value parsing [view]
- Fix building with Visual Studio 2013 [view]
- Fix for 'Definition at line' points to end of multiple-lined definition for Python #6706 [view]
- Fix for module quicklinks [view]
- Fix for unbounded memory usage due to a bug in \ref const matching #6689 [view]
- Fix potential hangup when merging scopes [view]
- Fix regression due to move of markdown processing [view]
- Fix scanner.l for Slice [view] , [view] , [view]
- Fix/New: add variadic function args '...' support to @link [view]
- Fix/New: add variadic function args '...' support to @ref [view]
- Fixed bug in URL [view]
- Fixed compile errors in clang and gcc [view]
- Fixed compiler warning for nested /* in scanner.l [view]
- Fixed differently by changing root cause for introducing the space [view]
- Fixed documentation to point to GitHub issue tracker [view]
- Fixed incorrect XHTML output for test 021 [view]
- Fixed logic error [view]
- Fixed merge problem [view]
- Fixed one remained compile error in clang [view]
- Fixed problems with emoji handling and added a test case for it [view]
- Fixed some more small memory leaks [view]
- Fixed two small memory leaks [view]
- Fixing coverity messages [view]
- Fixing coverity messages (Namespace tag) [view]
- Fixing problem with possible not initialized variable (endless loop in VS 2017 debug) [view]
- Fortran code coloring improvements (REAL and comment lines) [view]
- Fortran improvements [view]
- Fortran improvements (2) [view]
- Fortran scanner abort message [view]
- French translation for VHDL additions [view]
- Further simplified the fix [view]
- Generating doxygen documentation on Windows (with MikTex) [view]
- Handling Fortran functions in call graphs [view]
- Heading in rtf. #6522 https://github.com/doxygen/doxygen/issues/6522 [view]
- Ignore build* directories and not just build [view]
- Implementation Fortran ENUM / ENUMERATION [view]
- Implementation of standard generator for docbook output [view] , [view]
- Improved robustness of the emoji feature [view]
- Improvement LaTeX output [view] and [view] and [view]
- Improvement regarding width and title for docbook [view]
- Improvements in handling special characters in Latex [view]
- Include "empty" directories in the documentation if they contain a `.dox` file (or similar) documenting the directory itself. [view]
- Include header for CompilationDatabase [view]
- Include height item in XML output [view]
- Inconsistency in respect to tgroup in docbook [view]
- Incorrect tag sequence for xhtml with class diagram possible [view]
- Incorrect closing tags for in page table of contents (XHTML) [view]
- Incorrect closing tags for in page table of contents (docbook) [view]
- Incorrect number of start / end paragraph tags for xhtml with htmlonly [view]
- Incorrect number of start / end paragraph tags for xhtml with image command [view]
- Incorrect number tag sequence for xhtml with htmlinclude command possible [view]
- Incorrect tag sequence for xhtml with latexinclude command possible [view]
- Incorrect tag sequence possible for images possible in case of xhtml [view]
- Index bugfix [view]
- Index list cannot contain special characters in ids for XHTML [view]
- Inline images [view]
- Invalid warnings regarding todos when source file name contains a '-' [view]
- Issue #6631 Code blocks incorrectly formatted in Latex [view]
- Issue 6411: CSS for Markdown tables do not use HTML_COLORSTYLE_HUE, HTML_COLORSTYLE_SAT config variables [view]
- Issue 6469: Java method calls are ignored in generating call/caller graph with Graphviz [view]
- Issue 6494: asterisks before args and kwargs are ignored in python [view]
- Issue_6456 Using # in links causes errors in PDF generation [view]
- Issue_6585: Unexpected anchor tags in tag-files [view]
- Keyword register (in code) is deprecated since C++11 [view] , [view]
- LaTeX with verbatim part inside a table [view]
- Large CALL / CALLER graphs cannot be processed in LaTeX [view]
- Make conanfile creation more readable [view]
- Make it possible to list namespace members in file scope for XML output. [view]
- Making VHDL error messages more doxygen like [view]
- Making the 'tex' part of \makeindex available to the user [view]
- Markdown list wrong displayed [view]
- Minor documentation fix [view]
- Minor fixes to local toc logic after feedback [view]
- Minor restructuring [view]
- Misc. typos [view] , [view]
- Missing opening round bracket in case of an exception [view]
- More typos [view]
- Moved #include "config.h" back to the original place [view]
- Moved duplicated code into dedicated function skipLanguageSpecificKeyword [view]
- Moved local toc data into a separate type for better encapsulation [view]
- Multiple `\xreflist` in one page with same key [view] , [view]
- Multiple addindex commands in HTML with same name [view]
- Namespace with name docstrings_linebreak [view]
- Not showing external project in HTML hierarchy class pages [view]
- Numbers in comment disappear [view]
- Numbers overlap the titles in TOC of PDF [view]
- Order resources not only on filename but also dirname [view]
- PATCH -- updates reference link with no closing [view]
- Path for external commands on windows [view]
- Possibility to have a \image command inside a <A> tag [view]
- Possible fix for the build [view]
- Prevent <center> and <div> inside brief descriptions to avoid broken XHTML output [view]
- Prevent empty list [view]
- Prevent empty member list table (XHTML) [view]
- Prevent empty page list table (XHTML) [view]
- Prevent possible 'QGDict::hashAsciiKey: Invalid null key' warning [view]
- Prevent potential race condition [view]
- Print emoji text in case of unknown emoji [view]
- Problem with TEST_FLAGS when using CMake for Visual Studio [view]
- Problem with \cond in normal comment of test 015 [view]
- Problem with code inside a Doxy table in LaTeX [view]
- Problems and some enhancements for LaTeX tables [view]
- RTF layout regarding References and Referenced by [view]
- RTF lists more levels and removing extra paragraphs [view]
- Re-added missing "Span" case to DocStyleChange::styleString [view]
- Redundant whitespace removal breaks some C++ links [with test case and Git bisect] (Origin: bugzilla #791942) [view]
- Refactored code a bit [view]
- Refactored code a bit (use const references and made global functions members) [view]
- Reference text in reference list seen as emoji [view]
- Remove debug statement [view]
- Remove debug statements [view]
- Remove default assignment from Translator::trVhdlType() declaration [view]
- Remove double line with documented argument from addContentsItem in ftvhelp.cpp [view]
- Remove non-english translations [view]
- Remove obsolete definitions from scanner [view]
- Remove obsolete line from README.md [view]
- Remove old obsolete docbook generator [view]
- Remove some dead code [view]
- Renamed (start/end)SimpleSect to (start/end)Examples. [view]
- Renamed command and moved duplicated code into a macro [view]
- Renamed option and test case numbers [view]
- Replace ''printf' with appropriate warn 'message' [view]
- Replace calls to trTypeString with trVhdlType in single mode, which is the default. [view]
- Replaced replace(QRegExp(..)) by substitute [view]
- Replaced replace(QRegExp..) by substitute [view]
- Resolve inconsistency in formula repositories. [view]
- Restructured code to avoid the need for global state [view]
- Return VHDL specific text in trClassHierarchyDescription() [view]
- Section label with minus sign not recognized properly. [view]
- Small clarification for REFERENCED_BY_RELATION [view]
- Small correction installation / build procedure [view]
- Small corrections in distributed man pages [view]
- Small documentation corrections [view]
- Small problems when displaying python code [view]
- Small problems when having code in LaTeX output [view] , [view]
- Sorting of index in case of LaTex [view]
- Spanish translation for VHDL additions [view]
- Spelling of the word Javadoc [view]
- Synchronize chapter names of doxygen's own documentation. [view]
- Syntax highlighting / code coloring in RTF [view]
- Tag sequence incorrect for svg image (XHTML) [view]
- Test renumbering [view] , [view]
- Tooltip was twice 'HTML escaped' [view] , [view]
- Translators updated to version 1.8.15. [view]
- Truncated split bar in HTML output between treeview and normal text area [view]
- Typos [view], [view] , [view]
- Unbalanced start of lists resulting in not creatable pdf of rtf document [view]
- Update Dutch translation for new Slice implementation [view]
- Update Dutch translation in respect to new VHDL entries. [view]
- Updated Hungarian translation [view]
- Upgrade to jQuery 1.7.2 to get rid of security scan violations. [view]
- Usage of '{', '}' and ',' in ALIAS [view]
- Use QCStringList::split i.s.o. QStringList::split [view]
- Version bump for next release [view]
- Warning running xmllint for xhtml [view]
- Wrong counting of lines during VHDL code output [view]
- Wrong determination of begin / end tag of formula in markdown. [view]
- Wrong link generated for inherited members when tag files are used. [view]
- Wrong separator in index for a.o. Python, C# [view]
- Wrong spelling of word doxygen [view]
- XHTML image tag mandatory alt attribute [view]
- XHTML incorrect attribute values for align and valign [view]
- XHTML problem with class index table [view]
- XHTML problem with multiple use of node numbers in id attribute [view]
- XHTML problem with name attribute with VHDL name attribute [view]
- XML output: avoid warnings with scoped enum values in anonymous namespaces. [view]
- [ImgBot] Optimize images [view]
- added PHP7 support for the search engine on HTML output. See: http://php.net/manual/en/language.basic-syntax.phptags.php [view]
- addindex supports also DocBook and RTF [view]
- correct typo in comment [view]
- declares XMLCodeGenerator in xmlgen.h [view]
- doxyparse bugfixes and minor improvements [view]
- fix build with qt 5.11, deprecated qt5_use_modules macro was removed, patch by Christophe Giboudeaux [view]
- perlmod syntax correction [view]
- redundant input_filter runs significantly reduce performance when FILTER_SOURCE_FILES and INLINE_SOURCES are both enabled #6395 [view]
- sqlite3: fix missing external_file view schema col [view]
- sqlite3: require sqlite >= 3.9.0 [view]

## Release 1.8.14

(release date 25-12-2017)

- Add language type attribute to programlisting tag [view]
- Add links behind nav entries "Namespaces" and "Files" (matching "Classes") [view]
- Allow case insensitive file pattern matching based on CASE_SENSE_NAMES [view]
- Async load of mathjax javascript [view]
- Avoid generating unused dir_* output files for non HTML output formats [view]
- Bug 3138 - Wrong spacing in function names with french language (latex output) [view]
- Bug 4289 - does ALIAS work for VHDL code? [view]
- Bug 5468 - (UnFriendlyTemplate) Spurious warning when documenting friend template [view]
- Bug 5525 - parser misinterpreting fortran [view]
- Bug 5724 - Duplicate attribute (target="_top" target="_top") generated in .SVG files [view]
- Bug 6128 - Usage of underscores in parameter names [view]
- Bug 6135 - [1.8.13 Regression] Segfault building the breathe docs [view]
- Bug 6137 - XML Parsing Error for operator<< methods when outputting to XHTML [view]
- Bug 6139 - Menu does not work without JavaScript [view]
- Bug 6141 - Too greedy behavior of @ref const matching [view]
- Bug 6169 - doxygen build fails [view]
- Bug 6170 - Add "\~" command to internationalization article [view]
- Bug 6223 - Problem RTF output: The class list "classes" within the namespace report is wrong indicated. [view]
- Bug 6238 - parsing error in Fortran file with preprocessing [view] , [view]
- Bug 6259 - Problem parsing c++ gnu::visibility [view]
- Bug 6262 - C++: False warning message when inheriting class from tag file [view]
- Bug 6273 - Error in markdown emphasis examples [view]
- Bug 6277 - Increasing access of inherited C++ members with 'using...' is not recognized by Doxygen [view]
- Bug 6286 - C++ parameter from lambda not recognized [view]
- Bug 6290 - Doxygen not showing the public, non-static member function [view]
- CMake: avoid if() around the whole contents of documentation CMakeLists.txt [view]
- CMake: avoid if() around the whole contents of plugin CMakeLists.txt [view]
- CMake: let CMake handle the C++ standard setting if target_compile_features() is used [view]
- CMake: let file(MAKE_DIRECTORY) create all directories at once [view]
- CMake: remove CUSTOM_(LINK|INCLUDE)_DIR [view]
- CMake: remove needless variable expansions [view]
- CMake: remove unused program searching [view]
- CMake: search for Qt5 only in config file mode [view]
- CMake: use GNUInstallDirs module for man pages directory [view]
- CMake: use add_test to create a test [view]
- CMakeLists: Avoid MSVC iconv changes for MinGW builds [view]
- Call endMemberItem consistently. [view]
- Change navtree collapsed list icon [view]
- Code color of , (comma) together with only in use statement [view]
- Corrected small type [view]
- Correction display of backtick in LaTeX [view]
- Correction of non reachable links and redirected links in documentation. [view]
- Documentation, correct referenced file [view]
- Doxygen/VHDLdocgen: [view]
- Encode invalid XML characters instead of skipping them. [view]
- Expose TOC placeholder in XML output. [view]
- Expose underlying enum type in the XML output. [view]
- Fetch filename property from object instead of hardcoded duplicated string [view]
- Fix C# property initializer parsing [view]
- Fix for regression in XML output generation after fixing bug 789168 [view]
- Fix 6210. [view]
- Fix minor markup issue in the documentation. [view]
- Fix not initialized pointer when parser is starting on a new file. [view]
- Fix typo [view]
- Fix: add missing newline char '\n' [view]
- Fix: add missing semicolon ';' at end of line [view]
- Fix: change 'CMakefiles' to 'CMakeFiles' (the 'F' is uppercase) [view]
- Fix: perl script regexp to toggle flex debug information [view]
- Fixed problem where automatic line breaking caused missing vertical bars in the parameter table for Latex output. [view]
- Fixes for cross platform build with new LLVM/CLANG version [view]
- Fixup man page NAME section when page has title [view]
- Function declaration following a function definition incorrectly listed as calling dependency [view]
- Further cleanup of lodepng code [view]
- Implement "double-space line breaks" syntax in Markdown [view]
- Improve Chinese translation [view]
- Inline attribute got reset for functions returning an explicit struct type [view]
- Isolated none-existing posix threading functions on Android [view]
- Marks JS as freely licensed [view]
- Misc. doxy and comment typos [view]
- Misc. typos [view]
- New table features mentioned in the documentation were not enabled. [view]
- Pass strings as const references. [view]
- Physical newlines in ALIASES configuration tags. [view]
- Propagate language information to all <programlisting> XML elements. [view]
- Properly copy images for the XML output. [view]
- Provide dot path to plantuml [view]
- Provide information about enum type "strongness" in the XML output. [view]
- Provide page brief in <briefdescription> of XML output. [view]
- Provide template parameters also for type aliases in the XML output. [view]
- Removed -Wno-deprecated flag from bison as it is not support on the bison 2.3 that ships with XCode [view]
- Restore 'make tests' rule [view]
- Restore Makefile in vhdlparser dir [view]
- Spelling correction [view]
- Stripped unused LodePNG code to prevent false positives for coverity [view]
- Suppresses warning for XML <see langword="..."/> [view]
- Suppression warnings about deprecated directive [view]
- Update .travis.yml [view] , [view]
- Update mathjax path [view]
- Updated translator_de.h to doxygen 1.8.13 [view]
- Use hidden symbol visibility by default [view]
- Use language identifier instead of file extension for language attribute [view]
- Use language in stead of lang for language name attribute [view]
- Update of the Brazilian translation [view]
- [preprocessing.doc] typo amended [view]
- add decimal to base identifier [view]
- add the number of conditionals path and bugfix [view]
- build: fix the way lang_cfg.h is generated [view and view]
- bump version number for the development version/next release [view]
- const-ify [view]
- dot.cpp: Fix DotGfxHierarchyTable first class node loop [view]
- fix spelling [view]
- fix test to support new programlisting attribute [view]
- fix typo [view]
- fixes vhdl literal bug [view]
- line continuation characters inside comments embedded in a macro definition appeared in the output [view]
- make use of clang compilation database [view]
- new addon doxyparse, a source parsing engine [view]
- sqlite3gen: add index on params [view]
- sqlite3gen: add missing protectedsettable column [view]
- sqlite3gen: add openDbConnection [view]
- sqlite3gen: start checking operations status [view]
- sqlite3gen: use sqlite3_exec for schema setup [view]
- typos [view]
- update compound.xsd to add language attribute [view]
- using YAML in the output of "doxyparse" [view]

## Release 1.8.13

(release date 29-12-2016)

- Bug 5279 - C++/CLI indexed property not documented [view]
- Bug 5280 - Grouping of results fail when using built-in javascript search [view]
- Bug 5400 - 'static' and 'throw' C++ keywords not colored [view]
- Bug 5476 - wrong collaboration diagram when in template used scoped argument type [view]
- Bug 5882 - Multiline //!< behavior changed [view]
- Bug 5917 - C++11 "using" type alias for function pointer with no arguments is formatted incorrectly [view]
- Bug 5930 - fails to build with an unreleased python version [view]
- Bug 6044 - doxygen warning parsing C++11 "using" declaration [view]
- Bug 6060 - Tag file size double between each run [view]
- Bug 6062 - C++11 ref-qualifiers do not appear in Member Function Documentation section [view]
- Bug 6063 - Web-page bug: Comment blocks in VHDL [view]
- Bug 6067 - French description for "Namespace Members" is wrong and causes fatal javascript error [view]
- Bug 6068 - Class name 'internal' breaks class hierarchy in C++ [view]
- Bug 6084 - __xxx__ not interpreted as markdown when xxx begins with a non-word character (e.g. __-1__) [view]
- Bug 6093 - Underscores in type or member name cause unwanted hyphenation in PDF output Data Fields [view]
- Bug 6094 - "name" attribute of image map not urlencoded, not working in Chrome [view]
- Bug 6105 - Please add HTML classes to "Definition at..." & "Referenced by..." for CSS [view]
- Bug 6109 - INLINE_SIMPLE_STRUCTS with enums in classes does not work [view]
- Bug 6115 - Modify in some pronunciation expression in Korean [view]
- Bug 6123 - Unknown reference in manual [view]
- Bug 6125 - referencing Python files via tagfile broken [view]
- Add NVARCHAR as a SQL type [view]
- Add mscgen images to index.qhp [view]
- Add sql syntax highlighting to code blocks [view]
- Add support for more CSS formatting and column/row spanning in markdown tables [view]
- Added missing language value for SQL to XML output [view]
- Adds plantuml support Qt compressed help file [view]
- Check for undocumented params warnings if members detailed documentation is not written [view]
- Cleanup: removed redundant =NULL from interfaces, or replaced by =0 where it was needed. [view]
- Clear header/footer information in ConfigImpl for postProcess [view]
- Documentation small corrections [view]
- Doxygen error: Found ';' while parsing initializer list [view]
- Fix for PlantUML configuration [view]
- Fix plantuml generation issue [view]
- Fix: Add missing jquery.js, dynsections.js & optional svgpan.js to QCH file [view]
- Fix: replace deprecated {\bf with \textbf{ in LaTeX generator [view]
- Fixed constexp.y bison issue [view]
- Fixed cross referencing issue when using bitfields. [view]
- Fixed jump to anchor issue when navigating to source file [view]
- Fixed problem generating per letter namespace member index pages. [view]
- Fixed svgpan.js issue with Chrome causing empty SVG graphs [view]
- Fixed typedef and define strings for Spanish translation [view]
- Fixup man only output to use generator state push pop [view]
- For manpages remove trailing dash when no brief description [view]
- Made the RTF output honor the PAPER_TYPE option. [view]
- New classes for generated HTML div elements. [view]
- Option for PlantUML configuration file [view]
- Removed x flag from util* source files [view]
- Replaced section marker before members by diamond shaped bullet [view]
- Reverting pull request #537 until it will be fixed [view]
- Update Swedish translation [view]
- Updated the Polish translation [view]
- bison: use %declarations instead of command line options. [view]
- flex: use %option instead of command line options. [view]

## Release 1.8.12

(release date 05-09-2016)

- Bug 1662 - Fix missing title in non-page docanchors from tag files [view]
- Bug 2763 - FILTER_PATTERNS won't take command with arguments [view]
- Bug 4691 - Uses <img> instead of <object> html tag for SVG images [view]
- Bug 5174 - error state 21 with Fortran code (fixed format) [view]
- Bug 5323 - Missing Page References in the Index Chapters of the LaTex/PDF output [view]
- Bug 5411 - Inherited member of template class issues warning and is not documented [view]
- Bug 5711 - Fortran: attributes after a blank line are ignored / Bug 3880 - FORTRAN: comment in subroutine argument list [view]
- Bug 5791 - Doxygen handles comments in Objective-C code blocks incorrectly. [view]
- Bug 5804 - Representation of arrows [view]
- Bug 5811 - Markdown: > escaped within backticks [view]
- Bug 5826 - Use UTC timezone when displaying QDateTimes parsed from SOURCE_DATE_EPOCH [view]
- Bug 5832 - last entry missing in a @name group of typedefs [view]
- Bug 5843 - Link of typedef within namespace on group pages missing [view]
- Bug 5891 - __init__.py causes to ignore some inheritance [view]
- Bug 5923 - Figure title needs to be on separate line in order for it to work [view]
- Bug 5933 - Phantom variables/functions in XML, created from non-code files [view]
- Bug 5937 - CASE_SENSE_NAMES ignored [view]
- Bug 5938 - Spaces between the closing bracket of the typename and the opening bracket of the parameter list cause detection issues. [view]
- Bug 5941 - python Unicode docstrings are ignored [view] , [view]
- Bug 5945 - Do not allow ligatures in log output [view]
- Bug 5958 - References for one function can inherit References from subsequent non documented function [view]
- Bug 5961 - External search does not properly escape user supplied data, resulting in vulnerability [view]
- Bug 5962 - regression, Unescaped percent sign in doxygen output [view]
- Bug 5964 - hyperref link label drop underscores [view]
- Bug 5965 - Directory list is not generated in HTML output [view]
- Bug 5967 - imported section anchors are copied in project tagfile [view]
- Bug 5970 - Exclusion of a new line at the end of source code file causing nesting of HTML code for function documentation [view] , [view]
- Bug 5975 - Recent File list allows only 2 entries [view] , [view]
- Bug 5978 - doxygen crashes no resolved [view]
- Bug 5980 - generated xml has errors [view]
- Bug 5981 - quick link index in alphabetical class list in classes.html doesn't work [view]
- Bug 5982 - Bad character escaping scheme in HTML anchor generation. [view]
- Bug 5983 - `@addindex`entries fail to link to the exact location in Compiled HTML Help. [view]
- Bug 5985 - Java: final keyword on a parameter brakes docs inheritance [view]
- Bug 5991 - Using `@page` to add title to Markdown file generates surplus empty page. [view]
- Bug 5998 - DOT_PATH not expanded [view]
- Bug 5999 - Files with incorrect extensions (.doc) are picked up by doxygen [view]
- Bug 6002 - python: missing cross-links in sources (option SOURCE_BROWSER = YES) [view]
- Bug 6007 - VHDL: missing last sign in html documentation of constant declaration [view]
- Bug 6009 - HTML Tables with 10+ columns are broken for LaTeX based output [view]
- Bug 6010 - Enumerations heading present but none listed [view]
- Bug 6020 - ALIASES stop working after verbatim with formula and /** */ [view]
- Bug 6031 - Doxygen segfault (return code 134) when parsing a c++ enum class contained in a class [view]
- Bug 6032 - Segmentation fault when processing md containing only header [view]
- Bug 6033 - Invalid XHTML if the directives brief and exception are following immediately [view]
- Bug 6035 - Can't scroll using finger documentation in Chrome browser on Android OS [view]
- Bug 6048 - doxygen generates incorrect documentation for C enum in latex [view]
- Bug 6055 - Code snippet always shows line numbers from 1 [view]
- Bug 6056 - Broken links in HTML output with SHOW_FILES=NO [view]
- Add caption in verbatim blocks. [view]
- Add parameter in/out specifiers to output. [view]
- Add section title to output. [view]
- Added .codedocs file [view]
- Added an option to add "anonymous" headings to the table of contents (currently Markdown only). [view]
- Added generating template files and reading templates from disk if present [view]
- Added missing free [view]
- Added support for encoding tag to the template engine used for HTML help indices [view]
- Adding compilation options for flex/lex and bison/yacc [view]
- Adding partial htmlhelp support to template system [view]
- Adjusted Doxygen to doxygen in running text in the manual [view]
- Allow verbatim code block to be placed on the output. [view]
- Also map .f95, .f03 and .f08 file types to Fortran [view]
- Another possible fix [view]
- Applied responsive design to menu bar using smartmenus [view]
- Assertion failure generation documentation [view]
- Bug fix for rendering the VHDL Hierarchy (thanks to a patch by Martin Kreis) [view]
- Building doxyapp fails after update of config methodology to improve performance [view]
- Bump version for GIT repo [view]
- CMAKE: Fix building on Windows with VS 2015 [view]
- Changed configuration mechanism to directly access options in order to improve performance [view]
- Code with "extension" unparsed shows line numbers [view]
- Color code word OPERATOR and ASSIGNMENT as keyword in FORTRAN code [view]
- Color code word RESULT as keyword in FORTRAN code [view]
- Determination of end of parameter list [view]
- Disable selecting line number [view]
- Disabled debug prints [view]
- Documentation for extensions .f95, .f03 and .f08 [view]
- Doxygen fails to copy logo image to LaTex output dir [view]
- FORTRAN determination string in preprocessing [view]
- Feature: Translations for German language (changes since 1.8.4) [view]
- Fix STRIP_FROM_PATH when running from drive root [view]
- Fix Windows build instructions. [view]
- Fix documentation typos [view]
- Fix for HTML output when using server side search and the new menu bar [view]
- Fix for changed references due to different removeRedundantWhiteSpace() implementation [view]
- Fix for empty file name [view]
- Fix for error in travis.yml [view]
- Fix issue escaping backslash inside markdown style code span [view]
- Fix linker flags for building with clang on Windows [view]
- Fix order of member initialization [view]
- Fix return-type warnings with -DNDEBUG [view]
- Fix search box rendering in HTML when menu bar is disabled [view]
- Fix uppercase letters B-Z being unnecessarily escaped in index HTML anchors. [view]
- Fixed for index.hhp output when using template engine [view]
- Fixed issue escaping ndashes (\--) and mdashes (\---) [view]
- Fixed problem with -w command when no Doxyfile was present and specified [view]
- Fixed two regressions found during extensive testing [view]
- Fixed typos. [view]
- Fixed wrong <p> nesting issue for call/caller graphs [view]
- Fortran inline source code and crash on Linux [view]
- Improve output on mobile devices [view]
- Improved list of files in htmlhelp.hhp [view]
- Improved sorting performance for directories and files [view]
- Include command show line number (e.g. LaTeX) [view]
- Initialization of python variables and type determination [view]
- Introducing commands includedoc and snippetdoc [view]
- Latex page numbering [view]
- Minor build fixes [view]
- Minor correction for BUILD.txt [view]
- Minor performance improvement sorting directories [view]
- Minor update to the installation instructions [view]
- Missing semicolon in navtree.css [view]
- Modified (readability) layout for member title in HTML and LaTex [view]
- Optimized use of convertNameToFile to improve performance [view]
- PDF generation stops when image with caption is included in a table. [view] , [view]
- Parse more than 1 size indiction in defaultHandleTitleAndSize [view]
- Problem jumping to line number in source code due to wrong hypertarget name [view]
- Python strip code comments [view]
- Reimplemented node renumbering for dot graph to improve performance [view]
- Remove unused variables [view] , [view]
- Removed ambiguity in the XML schema definition [view]
- Revert #291 [view]
- Simplified code of fix for Bug 5982 [view]
- Sorting in latex index and missing \@ in index [view]
- Split apt-get install commands in travis config in an attempt to reduce timeouts [view]
- Style fixes and added numbering to overloaded members [view]
- Table of contents breaks when documentation spans multiple comment blocks with same @page [view]
- Unified display of enum values across output formats and languages [view]
- Unify handling of extra packages in formula.cpp and latexgen.cpp so formula.cpp handles package arguments correctly [view]
- Update LICENSE file to latest from FSF [view]
- Update copyright year in docs [view]
- Updated README.md to include code docs [view]
- Updated stylesheet for the manual to fix layout issue in the navigation tree [view]
- Warnings from CLANG compiler [view]
- fix ninja build error [view]
- fixed rtf subsection [view]
- mangen.h: remove italic in brief member descriptions [view]
- reimplemented removeRedundantWhiteSpace() to improve performance [view]
- sqlite3gen: defnname -> defname [view]
- sqlite3gen: export proper memberdef refid [view]
- sqlite3gen: insert xrefs using integer refids [view]
- sqlite3gen: stripFromPath on all calls to insertFile [view]
- sqlite3gen: stripWhitespace on bitfield's text [view]
- sqlite3gen: sync with xmlgen [view]
- sqlite3gen: use the refid stored in the refids table [view]

## Release 1.8.11

(release date 30-12-2015)

- Bug 1204 - Mainpage title has wrong style in RTF [view and [view]
- Bug 2059 - $line param [view]
- Bug 2258 - python: tuple assignment not recognized as variable initialization [view]
- Bug 2653 - Fixes angle brackets (< and >) not escaped in HTML formula alt text [view]
- Bug 3354 - [Python] Add pyw as a valid extension [view]
- Bug 3499 - Python: STRIP_CODE_COMMENTS Doesn't work within the source code [view]
- Bug 3515 - Python ignores \private tag [view]
- Bug 3621 - Deprecated list: Wrong prefix '<globalScope>::' for global functions [view]
- Bug 3935 - Incorrect "References" and "Referenced by" [view]
- Bug 4129 - python script with #!/usr/bin/python are not documented correctly [view]
- Bug 4214 - htmlonly content appears in generated XML output [view] and [view]
- Bug 4249 - PYTHON: stops processing the file after encountering \"""" [view]
- Bug 4433 - writeMemberNavIndex template calls static fixSpaces [view]
- Bug 4856 - Math does not work in LaTeX with custom header and footer. [view]
- Bug 5503 - Markdown backticks not processed within Markdown links. [view]
- Bug 5510 - doxygen's \param command is confused by some python default values [view]
- Bug 5556 - Python: Allow undocumented "cls" parameter for class methods [view]
- Bug 5715 - Unnamed structs gives: QGDict::hashAsciiKey: Invalid null key [view]
- Bug 5747 - PATCH: add option to build latex without timestamps [view]
- Bug 5755 - The table in classes.html has no class attribute [view]
- Bug 5760 - formulas creating invalid HTML code [view]
- Bug 5763 - Doxygen thinks C++ class is Objective-C [view]
- Bug 5808 - Doxygen don't support longer key in bibtex [view]
- Bug 5809 - \cite still rejects valid BibTeX keys [view]
- Bug 5821 - using plantuml cause a popup "openwith" windows when calling java.exe [view]
- Bug 5826 - PATCH: Honor SOURCE_DATE_EPOCH environment variable for reproducible output [view]
- Bug 5830 - XML not documenting a class in python [view]
- Bug 5831 - XML empty <argsstring/> in python [view]
- Bug 5832 - last entry missing in a @name group of typedefs [view]
- Bug 5833 - Non-alphanumeric characters in Markdown links don't work properly [view]
- Bug 5839 - $file when using @name is wrong [view]
- Bug 5845 - Copy and paste of code fragment from CHM merges all pasted text into single line [view]
- Bug 5847 - class="current" not applied to <li> for module tab within 'group__*.html' module html files [view]
- Bug 5848 - \bug paragraph doesn't end with a new sectioning command [view]
- Bug 5859 - Double anchors when using groups [view]
- Bug 5869 - xrefitem link to list incorrect when using SHORT_NAMES [view]
- Bug 5873 - Tree view pane overlaps with content tabs [view]
- Bug 5877 - RTF output has incomplete "References" and "Referenced by" sections [view]
- Bug 5878 - fatal: Cannot open 'graph_legend': No such file or directory [view]
- Bug 5879 - Warning refers to incorrect line for undocumented member function (C++) [view]
- Bug 5883 - Race condition in parallel DOT runs [view]
- Bug 5885 - Unable to prevent a numbered list [view] and [view]
- Bug 5888 - Inline markdown links don't support reference targets that contain ) [view]
- Bug 5890 - Failed to document nested classes with "reference to array" parameters [view]
- Bug 5893 - unclosed tag, c# generics method with where [view]
- Bug 5894 - Doxygen do not support comparison angle bracket in template [view]
- Bug 5897 - Brief description of non documented functions [view] and [view]
- Bug 5898 - Bug in VHDL parser + other fixes [view]
- Bug 5900 - C++ templated member-function appears both as public and private [view]
- Bug 5904 - Markdown fenced code blocks not parsed properly in comment [view]
- Bug 5910 - C++11 unified initializer for array with templates treated as function [view]
- Bug 5913 - Doxygen parser confused by C++11 attributes [view]
- Bug 5916 - unable to @ref or @link C++ templated operator overloads [view]
- Bug 5919 - problems with charset using plantuml [view]
- Actually using value of GROUP_NESTED_COMPOUNDS option [view]
- Add RPM build for Red Hat [view]
- Add WARN_AS_ERROR option to stop execution at first warning (equivalent of compilers' -Werror option) [view]
- Add examples to LaTeX / PDF doxygen manual [view and [view]
- Add mathjax support to template & context. [view]
- Add support for "value" attribute in FORTRAN scanner [view]
- Added documentation for creating tables [view]
- Added javascript search engine data to the template context [view]
- Added missing html resources to the html template file [view]
- Added missing information to template version of the all members list [view]
- Added support for directory dependency graphs to template engine [view]
- Adding compilation options for flex/lex and bison/yacc [view]
- Adjusted used option for CLANG usage with CMake in documentation [view]
- Alignment in LaTeX parameter table [view]
- Avoid using Resource::data as string, as it is not null terminated. [view]
- Better handling of implicit statement in source code browser [view]
- Bug 149792 - Mainpage title has wrong style in RTF [view]
- Bump version so that the GIT repo represents the version for the "next" release [view]
- Cmake tries to remove directory refman.tex instead of file refman.tex [view]
- Copy user EXTRA_FILES at the end to overrule files generated by default by doxygen [view]
- Correct / set types for python variables [view]
- Correcting print format error in config.l [view]
- DO NOT hardcode x86-64 architecture. [view]
- Don't show a console when launching doxywizard on Windows. [view]
- Fix computeCommonDirPrefix sometimes not finding the correct prefix [view]
- Fix error documentation of in flex debug script [view]
- Fix for broken link in the manual [view]
- Fix hexChar for inputs 0 <= i < 10 [view and [view]
- Fix spelling in doc/commands.doc (description) [view]
- Fix typo in function name [view and [view]
- Fixed a couple of small memory leaks [view]
- Fixed a number of memory leaks in the template engine [view]
- Fixed compiler warning for macOS [view]
- Fixed link issue for macOS 10.11 [view]
- Fixed minor typos in comments [view]
- Fixed preprocessor macros for flex version check [view]
- Fixed problem with latex and PDF bookmarks [view]
- Fixed various issues found by PVS-Studio. [view]
- Fixes bug 485701: Angle brackets (< and >) not escaped in HTML formula alt text [view]
- Fixes to support nested tables again [view]
- Fortran module private variables and EXTRACT_PRIVATE = NO [view and view]
- Improved handling of <caption> in tables for LaTeX output. [view]
- IncludeInfo class had uninitialized member variable [view]
- Made paragraph spacing more flexible in the LaTeX output to prevent page overflows [view]
- Made several improvements to the performance of template engine [view]
- Make doxywizard compatible with Qt5 [view]
- Make list of default extensions consistent with language mapping list [view]
- Markdown with @cond and @endcond [view]
- Markdown with @cond and @endcond [view]
- Merge remote-tracking branch 'upstream/master' [view]
- Minor change to pycode.l:codifyLines [view]
- Moved creation of inline class documentation to separate template file [view]
- RTF improvement: Example section was merged with next function title [view]
- Remove obsolete py files [view]
- Removed BOM marker from Greek translator to avoid Visual C warnings [view]
- Repaired breaking @include for LaTeX output [view]
- Revert "Spelling correction for error message with USE_HTAGS usage" [view]
- Revert using container-based infra as sudo is needed :-( [view]
- Reverted change that caused doxygen to return error code 2 when it produced a warning [view]
- Rework the generation of packages DEB/RPM/... (CPack) [view]
- Right alignment of in page table of contents [view]
- Small correction of errors in case of CSharp XML tags [view]
- Small documentation corrections [view]
- Spelling correction for error message with USE_HTAGS usage [view] and [view]
- Started with generating LaTeX output via the template engine [view]
- Stop when doxygen configuration file ("Doxyfile") cannot be read [view]
- Support flex-2.6.0 [view] and [view]
- Support set in code highlighting [view]
- Template enhancements and various other small fixes [view]
- Title in case of USE_MDFILE_AS_MAINPAGE [view]
- Tooltip can still contain < and > signs [view]
- Tweaked the htmlonly sections in the manual so it produces valid HTML output [view]
- Undo _doxygen to libdoxygen target change [view]
- Updated instructions to toggle debugging flex code [view]
- Updated Italian translation and translator email address [view]
- Updated the Greek translation [view]
- Use CPack to generate rpm/deb packages [view]
- Use STATIC libraries to prevent them being shared [view]
- Using tabu package for LaTeX tables [view]
- [Bug 5872] On Windows, generated layout is with UNIX EOL [view]
- [Doxygen-users] plugin / filter not behaving as expected [view]
- add spaces like "Doxygen"CN_SPC->"Doxygen" CN_SPC [view]
- allow building with custom iconv on Windows [view]
- doc: generate doxygen's documentation. [view]
- doc: put man pages under share/man/man1 [view]
- docparser: warn when finding a documented empty return type [view]
- docs: add examples as a dependency of docs [view]
- doxyapp and CLANG linking [view]
- fixed for travis ci config file [view]
- libpng warning: iCCP: known incorrect sRGB profile [view]
- rename build target _doxygen to libdoxygen [view]
- run_translator.cmake is no longer used [view]
- runtests: Simplify dictionary usage [view]

## Release 1.8.10

(release date 27-06-2015)

- change the build system to use cmake [view], [view], [view], [view], [view], [view], [view], [view]
- Add support for basic XML syntax highlighting. [view]
- Added documentation for ````` style fenced code block and more robust parsing [view]
- Added function arguments to the LaTeX toc [view]
- Added missing files and build instructions [view]
- Added missing libraries for building doxysearch on Windows [view]
- Added support for language codes [view]
- Added type constraint relations for Java generics to dot graphs and XML output [view]
- Adding commands \hidecallgraph and \hidecallergraph [view]
- Adjust test script for longer version number [view]
- Adjusted version in configure script [view]
- Alignment of project name [view]
- Allow selection of specific translators to compile in at build time [view]
- Based on the report of Peter D. Barnes in the doxygen forum (http://doxygen.10944.n7.nabble.com/doxygen-1-8-9-1-upgrade-errors-td6990.html) [view]
- Better error message in case of IDL inconsistency [view]
- Bug 4415 - EXTRA_PACKAGES can't handle package options [view], [view]
- Bug 5673 - Using HTML entities in PROJECT_NAME [view]
- Bug 5697 - Missing documentation after nested C++11 unified initializer [view]
- Bug 5698 - Bogus warning: citelist: Unexpected new line character [view]
- Bug 5704 - @todo paragraphs incorrectly placed in rtf output [view]
- Bug 5705 - Bogus message with addtogroup [view]
- Bug 5707 - Configuring doxyfile to only output docbook produces erroneous warning [view]
- Bug 5709 - latex compilation: \backmatter incompatible with COMPACT_LATEX=YES [view]
- Bug 5710 - Wrong icons in TOC of CHM help [view]
- Bug 5720 - <CAPTION> inside <TABLE> no longer works for LaTex output [view]
- Bug 5726 - Duplicate anchors from tagfiles [view]
- Bug 5727 - Tagfile anchors not generated for enumeration values [view]
- Bug 5728 - Non-ascii characters are not emphasized [view]
- Bug 5744 - Using TAGFILES prevents symbol extraction [view]
- Bug 5753 - PATCH: please consider making doxygen output byte for byte identical between individual runs by default [view]
- Bug 5754 - Doxygen generates bad "More..." file links for functions within a namespace [view]
- Bug 5756 - [PATCH] QT4's qmake is titled differently on Fedora 21 [view], [view]
- Bug 5761 - last enum member not documented [view]
- Bug 5764 - Nested list in C# XML comments closes outer list prematurely [view], [view]
- Bug 5768 - Bogus warning regarding nested comments [view]
- Bug 5769 - Bogus warnings in case of anonymous namespace and @todo [view]
- Bug 5772 - Don't warn about missing documentation for deleted functions. [view], [view]
- Bug 5774 - Table of content incorrect with escaped symbols [view]
- Bug 5777 - man output should escape minus signs [view]
- Bug 5779 - Bug #313527 regression - Enum in bitfield is not parsed properly. [view], [view]
- Bug 5793 - FILE_PATTERNS ignores arbitrary extensions [view]
- Bug 5814 - class scoped enum documentation appearing at group level instead of class level [view]
- Build fixes for windows build [view]
- Bump copyright year [view]
- Bump version in configure script [view]
- Cleanup & adapt travis config [view]
- Consistency in handling HTML and LaTeX in respect to header and footer [view]
- Correct string buffer sizes for RTF output, such that the string is always correctly sized. [view]
- Crash in case of non generic interface in Fortran [view]
- Documentation HTML Header, Footer, and Stylesheet changes [view], [view]
- Documenting RESULT variable of Fortran FUNCTION [view], [view]
- Doxygen LaTeX / PDF links point to page 1 [view]
- Enable relative paths referenced source files [view]
- Escape "@" in names as it is not allowed in XML / Docbook names (coming from anon namespaces) [view]
- Fix for bug 746673. [view]
- Fix for building diagram example conditionally [view]
- Fix for issue 744670 [view]
- Fix for issue 744671 [view]
- Fix for rendering the template parameters of members of variadic template classes. [view]
- Fix missing brief documentation for overload and specialization functions [view]
- Fix nesting of XML tag "literallayout" for docbook output of enums. [view]
- Fix parsing of ODL-style properties [view]
- Fix potential null pointer dereference in src/classdef.cpp [view]
- Fix potential null pointer dereference in src/context.cpp [view]
- Fixed a couple of cases where sharing string data could lead to corruption [view]
- Fixed code reachability bug found by coverity in translator_fi.h [view]
- Fixed compilation issue on Windows [view]
- Fixed issue accessing uninitialized buffer under certain conditions. [view]
- Fixed potential crash while generating dot graphs [view]
- Fixed potential string buffer issue for dot graphs [view]
- Fixed regression due to buffer resizing while generating RTF. [view]
- Fixed regression in argument processing [view]
- Fixed type in printdocvisitor.h [view]
- Fixed typos in comments. [view]
- Fixes for showing type constraint relations [view]
- Fortran FUNCTION source code [view], [view]
- Fortran: code color GOTO as flow keyword. [view]
- Fortran: fixed format position 73 and further is comment [view], [view]
- Fortran: warning message about not documented module member [view]
- Guarded debug prints against printing a NULL pointer. [view]
- HTML entity &deg; gives problems in LaTeX [view]
- Help message regarding layout file [view],[view]
- Internal debug option -d lex is not described [view], [view]
- Internal doxygen docs gives: warning: Unsupported xml/html tag <...> found [view]
- Missing cross reference link [view]
- Patch fixing a typo in Pull Request 307 [view], [view]
- Prevent example.tag from being regenerated [view]
- Problem running tests under Windows [view]
- Remove the new line after @startuml in generated pu file [view]
- Remove unreachable code [view]
- Remove unused local and static global variables [view]
- Remove wrong </File> [view], [view]
- Removed OS version check for MACOSX (was not used anywhere) [view]
- Removed dbus XML parser, various refinements [view], [view]
- Removed old build files, added install targets and other options [view]
- Repair doxygen generate invalid styleSheetFile and extensionsFile of RTF [view]
- Replace to_c_cmd by resource compiler [view]
- Restore deleted file [view]
- Showing grey/gray in documentation [view]
- Suggestion to use stripPrefix has been implemented for RESULT. For consistency also implemented for arguments. [view], [view]
- Support diff that returns "No differences encountered" when comparing test results [view]
- Support generating index-color PNG files [view]
- Switched back to version 6.2 of JavaCC for VHDL parser generation. [view]
- Tcl: fix for extra line breaks in source browser introduced by commit 312bef5 [view]
- TranslatorSwedish updated [view]
- Update of search from "endless search to 'Character search: criterion. [view]
- Update translator_cn.h [view]
- Updated changelog for 1.8.9.1 [view]
- Updated installation section of the manual [view]
- Various VHDL related fixes [view], [view], [view]
- Various minor changes [view]
- Warning message multiple mainpages [view]
- Warnings without filename [view]
- add support for github flavored fenced code blocks [view]
- added HHC.exe own output to the debug output when extcmd flag enabled [view]
- doc/translator.py -- minor updates [view]
- drop #include <unistd.h> [view]
- fix *.l for three backticks [view]
- fix enum brief description in RTF output [view]
- fix for CHM TOC "Classes" entry to point to annotated file [view]
- fix for src/translator_tw.h by Gary Lee (translation cleaned) [view]
- increase the size of l when result is modified [view]
- move layout_default.xml to templates/html/ [view]
- runtests.pl: mmn version has dash as separator [view]
- specify that doxygen searches files in INPUT tag [view]
- sqlite3: add regexp searches to search.py [view]
- sqlite3: add schema comments [view]
- sqlite3: fix constness [view]
- version.py pass configure file path as parameter [view]
- xml: use STRIP_FROM_PATH on @file attributes. [view], [view]

## Release 1.8.9.1

(release date 04-01-2015)

- Fixed a couple of cases where sharing string data could lead to corruption [view]
- Various VHDL related fixes [view]
- Bug 5698 - Bogus warning: citelist: Unexpected new line character [view]
- Bug 5704 - @todo paragraphs incorrectly placed in rtf output [view]
- Bug 5705 - Bogus message with addtogroup [view]
- Documentation HTML Header, Footer, and Stylesheet changes [view]
- Documenting RESULT variable of Fortran FUNCTION [view]
- Fix potential null pointer dereference in src/context.cpp [view]
- Fixed compilation issue on Windows [view]
- Fortran FUNCTION source code [view]
- Fortran: code color GOTO as flow keyword. [view]
- Help message regarding layout file [view]
- Remove unused local and static global variables [view]
- Suggestion to use stripPrefix has been implemented for RESULT. For consistency also implemented for arguments. [view]
- Switched back to version 6.2 of JavaCC for VHDL parser generation. [view]

## Release 1.8.9

(release date 25-12-2014)

- Bug 4011 - Fortran: external subroutine as dummy argument not recognized [view]
- Bug 4011 - Fortran: external subroutine as dummy argument not recognized [view]
- Bug 4286 - Brief description misplaced in man page output [view]
- Bug 4293 - Typedefs in manpages has too few linebreak possibilities [view]
- Bug 4914 - C# <code> tag in an <example> tag does not render as expected. [view]
- Bug 4941 - Add support for LATEX_EXTRA_STYLESHEET [view]
- Bug 5237 - Allow Class{T}.Method in cref to refer to a generic class in XML comments [view]
- Bug 5418 - classes with same name in different namespace adding to same group [view]
- Bug 5462 - Missing link for item inside the same namespace [view]
- Bug 5467 - Added HIDE_COMPOUND_REFERENCE config option [view]
- Bug 5554 - QHP toc broken if mainpage with PROJECT_NAME title has sections/subpages [view]
- Bug 5558 - src/Makefile.libdoxycfg shouldn't be distributed [view]
- Bug 5559 - plantUML requires epstopdf for building PDF files [view]
- Bug 5560 - tag file: Unknown compound attribute 'singleton' found! [view]
- Bug 5562 - Fix a resource leak in src/vhdldocgen.cpp [view]
- Bug 5563 - There's no such thing as a private Q_PROPERTY [view]
- Bug 5564 - Same Expression in translator_kr.h [view]
- Bug 5565 - Fix a potential null pointer dereference in src/memberdef.cpp [view]
- Bug 5567 - Mismatch in memory allocation/de-allocation function in vhdlparser/vhdlstring.h [view]
- Bug 5568 - Remove a not needed initialization of a local variable in src/mangen.cpp [view]
- Bug 5569 - Fix a potential null pointer dereference in src/searchindex.cpp [view]
- Bug 5570 - Fix wrong pointer initialization in src/definition.cpp [view]
- Bug 5571 - Fix potential modulo by zero in src/template.cpp [view]
- Bug 5572 - Reached end of file while still inside a (nested) comment in Markdown [view]
- Bug 5573 - Fix a terminating null character after fread in src/filedef.cpp [view]
- Bug 5574 - Remove not needed variable initialization in src/classdef.cpp [view]
- Bug 5575 - Remove not needed pointer initialization in src/entry.cpp [view]
- Bug 5576 - Provide exit code in case generatePlantUMLOutput fails [view]
- Bug 5578 - Remove not needed variable caching in src/markdown.cpp [view]
- Bug 5580 - Do not cache inputSize in src/doxygen.cpp [view]
- Bug 5581 - Expression is always false because 'else if' condition matches previous condition [view]
- Bug 5583 - Fix missing break in switch case statement [view]
- Bug 5584 - Spurious ASSERT message [view]
- Bug 5585 - Broken man pages due to bad use of autoBreak [view]
- Bug 5586 - Fix potential copy and paste issue in vhdlparser/VhdlParser.cc [view]
- Bug 5587 - [Patch] Documentation: Wrong link for \\diafile [view]
- Bug 5588 - [Patch] DocBook: Possible name clash for generated image files [view]
- Bug 5589 - RTF output: \\diafile and \\mscfile do not work [view]
- Bug 5590 - Windows: Process exit code is ignored for processes launched using ShellExecuteEx() [view]
- Bug 5593 - Fix potential allocation of huge memory amount due to type overflow in src/lodepng.cpp [view]
- Bug 5594 - Fix missing unchecked return value in src/dot.cpp [view]
- Bug 5595 - Fix potential null pointer dereference in src/dbusxmlscanner.cpp [view]
- Bug 5596 - Fix identical code for different branches in src/translator_tw.h [view]
- Bug 5597 - Fix potential null pointer dereference in src/index.cpp [view]
- Bug 5598 - Remove not needed variable initialization in src/cite.cpp [view]
- Bug 5599 - Remove not needed local variable in src/doxygen.cpp [view]
- Bug 5600 - Remove redundant if/else branch in src/lodepng.cpp [view]
- Bug 5601 - Remove redundant if/else branch in src/translator_lt.h [view]
- Bug 5602 - Cleanup redundant if/else branch in src/translator_kr.h [view]
- Bug 5603 - Cleanup redundant if/else branch in src/translator_sr.h [view]
- Bug 5604 - Cleanup redundant if/else branch in src/translator_tw.h [view]
- Bug 5605 - Cleanup redundant if/else branch in src/translator_vi.h [view]
- Bug 5606 - Remove redundant local variable initialization in qtools/qstring.cpp [view]
- Bug 5607 - Fix wrong member variable initialization in src/define.cpp [view]
- Bug 5611 - Fix potential null pointer dereference in src/util.cpp [view]
- Bug 5612 - Fix another potential null pointer dereference in src/util.cpp [view]
- Bug 5613 - Fix a potential null pointer dereference in src/index.cpp [view]
- Bug 5614 - Fix a potential null pointer dereference in src/vhdldocgen.cpp [view]
- Bug 5632 - Member functions omitted from tagfile [view]
- Bug 5643 - Java: Annotations with brackets prevent documentation [view]
- Bug 5647 - Invalid element name in footer part when GENERATE_TREEVIEW specified [view]
- Bug 5649 - Fortran attribute contiguous not identified [view]
- Bug 5652 - Entity references in XML command attributes are incorrectly handled [view]
- Bug 5653 - Entity references in XML code command are incorrectly handled [view]
- Bug 5656 - latex: dead links to source code [view]
- Bug 5657 - &hellip; is replaced by \cdots rather than \dots in the LaTeX output [view]
- Bug 5664 - Python xml not outputting info of functions inside __init__.py [view]
- Bug 5665 - Python xml - argsstring is empty, while HTML have arguments [view]
- Bug 5667 - Invalid warning about undocumented C++ function imported from tagfile [view]
- Bug 5668 - C++11 scoped enums with same name inside different classes are merged if using tagfile [view]
- Bug 5669 - Cannot make explicit links to C++ const member functions [view]
- Bug 5670 - Cannot make unscoped link to C++ conversion operator [view]
- Bug 5671 - Using "doxygen.css" for HTML_EXTRA_STYLESHEET fails silently [view]
- Bug 5674 - Regression: Base classes incorrect when using CRTP with default template parameter [view]
- Bug 5678 - Full scope needed when making link inside cross-referenced section [view]
- Bug 5678 - Full scope needed when making link inside cross-referenced section (fixed regression) [view]
- Bug 5680 - invalid copydoc target does not result in warning [view]
- Bug 5686 - Latex to PDF hangs when using Markdown tables [view]
- Bug 5690 - Crash when building gtkmm documentation [view]
- Bug 5694 - \cite confused by labels ending with a dot (improved warning message) [view]
- fix docbook output [view]
  1. support other than English
  2. fix broken example link id
  3. fix incomplete TOC : no Classes etc.
  4. add brief description for Functions etc.
  5. Comply with REPEAT_BRIEF
  6. Do not output duplicated contents when detailed description is missing.
  7. set table colwidth for Param/RetVal
- Add missing escape in doxysearch.cpp when result contained a double quote [view]
- Add source code possibility for RTF output [view]
- Added Coverity Scan Build Status to Readme [view]
- Added clearer range checks for string class to help compiler [view]
- Added compilation support for macOS 10.10 (yosemite) [view]
- Added faster reference counted string implementation with short string optimization [view]
- Added graphical hierarchy support to template engine [view]
- Added guard to prevent (theoretical) out of bound access [view]
- Added language attribute to XML output for classes, namespaces, and files [view]
- Avoid a (theoretical) memory leak [view]
- Better handling of inline Fortran parameter documentation [view]
- Fixed bug for page numbers in the latex indices [view]
- Compilation fixes for Windows for new string implementation. [view]
- Convert FORTRAN modules to namespaces [view]
- Create an easy possibility to take a snippet from the current file. [view]
- Debian Bug 762272: segfault with cyclic subgroups [view]
- Disabled enter/exit printing for doctokenizer (produced too much noise) [view]
- Empty entry in \tableofcontents in case e.g. section without description. [view]
- Extra empty line in source fragments [view]
- Fix bug with C++11 static_assert [view]
- Fix bug: language switch command "\~" failed to detect language id which contains '-' [view]
- Fix for 4285 [view]
- Fix for the second issue in bz 651848 [view]
- Fix potential crash when reading tag file which contained nested java classes using generics [view]
- Fix rules for closing FORTRAN module and typedef scopes [view]
- Fix to ignore the contents of \verbatim and friends while looking for sections [view]
- Fix to show relations between C#/Java generic classes [view]
- Fixed a number of issues (resource leaks, uninitialized members, etc) found by coverity [view]
- Fixed bug in new QCString::sprintf for long string. [view]
- Fixed extension matching issue if path contained a dot. [view]
- Fixed issue accessing uninitialized data when combining RTF output. [view]
- Fixed issue parsing @end directly followed by the end of the file [view]
- Fixed problem finding \enduml when using /// style comments. [view]
- Fixed refcounting bug in new string implementation [view]
- Fixed several Coverity warnings [view]
- Fixed to small memory leaks [view]
- Fixed typos and formatting in Doxyfile (thanks to Armin Mueller) [view]
- Fixed typos in C/C++ comments. There are no functional changes. [view]
- Fixed typos in comments. [view]
- Fixed typos in comments. No functional changes. [view]
- Fortran code color END (regression pull request 259) [view]
- Fortran color CALL as keyword [view]
- Fortran color code of END [view]
- Fortran continuation character seen as begin of function call [view]
- Generate error message in case bibtex generation fails [view]
- Improved main page rendering via template engine [view]
- Initialized potentially uninitialized variable in markdown part [view]
- Introduce new optimized string implementation (attempt 2) [view]
- Introduced template directory for template and resource files and resource compiler & manager [view]
- LaTeX problem with 2 consecutive single quotes [view]
- Last comment of \code{.f90} missing [view]
- Limit images sizes and make more uniform (LaTeX) [view]
- Package mathptmx gives discrepancy between pdf and HTML formulas [view]
- Portuguese and Brazilian Portuguese translators updated to 1.8.5. [view]
- Prevent overly long terms from stopping the search indexer [view]
- Problem in case of line termination (., a dot) direct after the \cite command [view]
- Regression class<T extends V> resulted in class<V> as the page title [view]
- Remove bogus argument to avoid compiler warning [view]
- Remove dependency of PlantUML on HAVE_DOT [view]
- Remove extraneous 'README' to allow successful RPM creation [view]
- Remove filtering rule when generating FORTRAN module links [view]
- Remove redundant code [view]
- Removed bash specific construct from ./configure script to make it work on Solaris [view]
- Removed some comment statements. [view]
- Revert "Bug 4011 - Fortran: external subroutine as dummy argument not recognized" [view]
- Reverted back to old string implementation. New one needs more work. [view]
- Show tag file name instead of <unknown> for warnings pointing to symbols extracted from tag files. [view]
- Show the parent-child type specialization relation in Java/C# generics inheritance diagrams [view]
- Support charset option for PlantUML [view]
- Support for INLINE_SOURCES in Fortran [view]
- Support plantuml !include statement [view]
- Support visible=no for main page tab. [view]
- Supporting linking for methods bound to FORTRAN classes in source definitions [view]
- This is the patch attached to bz 651848 by Robin Gareus. [view]
- Update README.md [view]
- Updated configuration script and libdoxygen.pro.in to use llvm-config [view]
- Use result of vsnprintf [view]
- Use substitute() instead of QString conversion [view]
- Various VHDL fixes [view]
- various fixes and restructuring [view]
- Various latex problems [view]

## Release 1.8.8

(release date 21-08-2014)

### New features

- Bug 5505 - Support for PlantUML [view]
- Add BREAD_CRUMB_TRAIL. [view]

### Bug fixes

- Bug 1527 $title doesn't work in LateX header [view]
- Bug 3405 Class diagrams and class hierarchy don't work for java generic classes [view]
- Bug 3460 Flex .rule file for Visual Studio build can't cope with spaces in filenames [view]
- Bug 3834 Fortran: quotation after define causes error [view]
- Bug 3879 FORTRAN: recognition free versus fixed formatted code [view]
- Bug 5182 Bibliography duplicate filenames fails [view] and [view]
- Bug 5215 \cite rejects valid BibTeX keys [view] and [view]
- Bug 5259 TCL: Documentation of oo::define is not working [view]
- Bug 5445 Nested C structures/unions does not work with groups [view]
- Bug 5459 configuration stops with settings.h missing [view]
- Bug 5460 XML Output: Doxygen doesn't escape & characters (included in a hyperlink) in <detaileddescription> [view]
- Bug 5461 function object in member initializer causes documentation loss [view]
- Bug 5472 [PATCH] Propagate configure's perl to makefiles [view]
- Bug 5483 man page extension is incorrect [view]
- Bug 5486 No documentation generated for method-less C++ struct [view]
- Bug 5493 [PATCH] Fix potential copy and paste error in inputstring.cpp [view]
- Bug 5494 [PATCH] Fix missing '&' in Boolean operation in qstring.cpp [view]
- Bug 5497 Dead links in html documentation when using tabs for indentation in c++ [view]
- Bug 5500 Callgraphs for C# only generated for methods inside the same class [view]
- Bug 5506 Variadic macros failing to expand if trailing ... is empty [view]
- Bug 5512 Two entries for a single member in doxygen XML [view]
- Bug 5514 nested html tables cause pdflatex to hang (1.8.4 and 1.8.6) [view]
- Bug 5521 volatile declaration on member functions is not handled as xml attribute [view]
- Bug 5524 Incorrect LaTeX generation for private union member in C++ [view]
- Bug 5526 XML Output invalid: XML_PROGRAMLISTING=YES copies Unicode form feed character (U+000C) to XML files [view]
- Bug 5528 segfault in QGListIterator while parsing fortran code [view]
- Bug 5531 Explicit links using operator()() not generated. [view]
- Bug 5534 no uniquely matching class member found for inline function definition where parameter argument names don't match [view]
- Bug 5535 Add support for non-parsed language [view]
- Bug 5537 Q_PROPERTY switches the member access from private to public [view]
- Bug 5540 Strong enum members listed in containing namespace [view]
- Bug 5543 Sigsegv while generating XML output [view]
- Bug 5544 GENERATE_TAGFILE no longer includes any @*section links [view] and [view]
- Bug 5548 Request: disable building documentation if Python 2.6 or newer not available [view]
- Bug 5550 No output for markdown pages with duplicate label title (different anchor) [view]
- Bug 5551 QGDict::hashAsciiKey: Invalid null key [view]
- Add FORTRAN 2003 keywords and commands [view]
- Add type option to FORTRAN select statements [view]
- Added build support for Python3+ and Python2.6+ [view]
- Added class/procedure vardefs to FORTRAN code highlighting [view]
- Added documentation for some missing HTML commands [view]
- Added flatten, listsort and paginate filters [view]
- Added get filter, unified index properties [view]
- Added groupby filter and some more context info [view]
- Added import keyword to FORTRAN code highlighting [view]
- Added lists for indices to template context [view]
- Added mainpage to context and improved page tree [view]
- Added member indexes to template context [view]
- Added missing links in changelog when multiple bug ids were on one line [view]
- Added more missing links to the changelog [view]
- Added namespace info to the context [view]
- Addition of module data to context and alphaIndex filter [view]
- Coded coloring of flow statements corrected (regression) [view]
- Corrected copyright year [view]
- Correction of typing error [view]
- Disabled/fixed segments that produced doxygen warnings while running the test [view]
- Docbook output improvements [view]
- Documentation generator: added support for C# property accessors visibility modifiers. [view]
- Doxywizard: make the Next button on the last page of the expert tab switch to the run tab [view]
- Doxywizard: make the Next button on the last page of the wizard switch to the run tab [view]
- Error linking 32-bit windows [view]
- Fix FORTRAN code function scope test [view]
- Fix after rebase from master [view]
- Fix description of USE_PDFLATEX [view]
- Fix highlighting issues [view]
- Fix typo [view]
- Fix unnecessary rules for FORTRAN types [view]
- Fix warning about unused functions in qstring.cpp [view]
- Fixed keyword type [view]
- Fixed missing include for Linux [view]
- Fixed test 021 [view]
- Fixed typo [view]
- Fixed typo and used QString for directory [view]
- Fixed windows compile issue for is_neutral [view]
- Fixes for ./configure script on Solaris [view]
- Fixes regression due to PR 169 [view]
- Language parser: added support for C# property accessors visibility modifiers. [view]
- Made INSTALL file version and date independent [view]
- Made bread crumb trails enabled unconditionally [view]
- Made setName() virtual so overloading works [view]
- Make index for faq [view]
- Messages truncated in warnings file [view]
- Minor fixes [view]
- Minor fixes to the template context [view]
- Missing word after \n command in doxygen rtf output, version 1.8.5 & up [view]
- More robust extraction of scope information from tag files [view]
- No warning in case cite definition is missing [view]
- Preparations for release 1.8.8 [view]
- Removed not implemented HTML commands from documentation [view]
- Removed unsupported HTML commands from the docs [view]
- Set deployment targets for macOS 10.5+ versions [view]
- Support multiple extra HTML stylesheets. [view]
- Tcl: add missing file that breaks test 057 [view]
- Tcl: add test code for Bug 5463 [view]
- Tcl: collect XRefs also if INLINE_SOURCES = no [view]
- Tcl: correct namespace resolution in case of INLINE_SOURCES = YES [view]
- Tcl: recurse for [] [view]
- Tcl: refactor similar code into tcl_codify_token function [view]
- Tcl: support eval/catch commands [view]
- Tcl: support switch command [view]
- Tcl: test 057 additionally tests mutual Xrefs for two files [view]
- Template context support for CREATE_SUBDIRS [view]
- Update dot.cpp [view]
- Update latexgen.cpp [view]
- Update test 058 because commit 9d315a9 fixes also Bug 5464 [view]
- Replaced the VHDL parser with the VHDL scanner from 1.7.5 to avoid potential licensing issues [view]
- New VHDL parser implementation [view]
- Vhdl fixes [view]
- \usepackage{fixltx2e} must come before use \usepackage{float} [view]
- cache anonymous into ClassDefImpl::isAnonymous [view]
- changed append filter and added index and path attributes to node [view]
- doc/translator.py -- unification for Python 2.6+ and 3.3+ (not finished) [view]
- doc/translator.py unified for Python 2.6+ and Python 3.0+ [view]
- make.bat: change current directory [view] and [view]
- removeRedundantWhiteSpace micro-optimization [view]
- resolves the error of unbalanced tags opened/closed in docbook output: parser error : Opening and ending tag mismatch: para line 358 and tbody [view]
- winbuild/pack_the_distribution_for_windows.py minor updates [view]

## Release 1.8.7

(release date 21-04-2014)

- Bug 2479 - c-source and h-source missing for latex [view]
- Bug 3879 - FORTRAN: recognition free versus fixed formatted code [view]
- Bug 3893 - Latex $projectname with "&" gets no escaped [view]
- Bug 4179 - Fortran: variable with name "type" confuses doxygen [view]
- Bug 4683 - Percent to prevent auto-linking in page title is not removed for navpath [view]
- Bug 4762 - Nested \if messes up list items [view]
- Bug 4762 - Nested \if messes up list items [view]
- Bug 4870 - Command ignored when using umlauts in markdown and also C-comments in markdown didn't work properly [view]
- Bug 5052 - Notes in xml output are not correctly separated [view]
- Bug 5254 - Enables using unicode (non ASCII) to name output files [view]
- Bug 5258 - Nested namespace causes incorrect display when referenced via .tag file [view]
- Bug 5348 - Documentation for enumeration not generated [view]
- Bug 5383 - Code coloring in case of file without extension [view]
- Bug 5387 - Trouble with /cond /endcond [view]
- Bug 5388 - Wrong call graph in simple situation [view]
- Bug 5389 - [Latex/PDF] Merging brief and detailed description in file section [view]
- Bug 5390 - Parsing problem with C++11 empty initializer lists [view]
- Bug 5393 - Move constructors and move assignment operators of embedded classes of template classes cannot be matched. [view]
- Bug 5396 - Dia diagrams not displayed by Firefox [view]
- Bug 5404 - regression referencing namespaced type [view]
- Bug 5408 - doxygen nested \if \endif sample not working [view]
- Bug 5410 - doxygen 1.8.6 sorts the contents of a namespace by group within the Class List [view]
- Bug 5414 - Link refs with no title swallow an extra newline [view]
- Bug 5415 - Documentation for derived classes no longer has an "Additional Inherited Members" section after upgrading doxygen from 1.8.3.1 to 1.8.6 [view]
- Bug 5416 - configure --prefix=/opt/foo not accepted [view]
- Bug 5417 - Command \| not working when last character in markdown table line [view]
- Bug 5421 - Last line of code block lost if it is only one character and there is no text afterward [view]
- Bug 5422 - Doxygen crashes on incorrect end group /**< @} */ [view]
- Bug 5424 - star is not printed in \code environment [view]
- Bug 5425 - Internal inconsistency: namespace in IDL [view]
- Bug 5428 - Server side (PHP) search broke in 1.8.3 [view]
- Bug 5436 - python3 import style causes doxygen to ignore some inheritances [view]
- Bug 5437 - Markdown Extra - fenced code block: '>' before tab width parsed as block quote [view]
- Bug 5438 - Tilde sign in combination with <pre> and MARKDOWN_SUPPORT disabled [view]
- Bug 5439 - Blockquote followed by text inserts an extra paragraph [view]
- Bug 5440 - alignment of blockquotes in pdf [view]
- Bug 5449 - Build fails when --with-libclang on Fedora [view]
- Bug 5456 - Crash on \addindex \term [view]
- A new files have been added but is not incorporated in the windows build part [view]
- Add docbook directory to be removed as well [view]
- Add extra (documentation) directories to ignore pattern [view]
- Add index support to context [view]
- Add line numbers in case comment is not closed properly. [view]
- Add template context for annotated class index [view]
- Add validation of internal consistency to html entity mapper [view]
- Add warning when encountering a nested comment start (/*) without matching end (*/). [view]
- Added \latexinclude command (thanks to Juan Zaratiegui for the patch) [view]
- Added basic arithmetic operations to the template expressions, and made the expression lexer faster [view]
- Added dir tree nodes to the context [view]
- Added directory info to the context [view]
- Added doc/config.doc to .gitignore [view]
- Added language update for Swedish (thanks to Björn Palmqvist) [view]
- Added last and first attributes to index tree node [view]
- Added missing \+ command to build LaTeX manual [view]
- Added new language maintainer for Swedish, removed generated file language.doc [view]
- Added optional [block] option to \htmlonly [view]
- Added reference counting for all context objects [view]
- Added stricter URL filtering to prevent DOM Based XSS when the tree view is enabled [view]
- Added support for \-- and \--- to prevent interpretation as ndash and mdash [view]
- Added support for elif to the template language [view]
- Added support for range tag in the template language [view]
- Alternative way to get rules information from flex [view]
- Better message in case doxygen -u is used [view]
- Changed "See Also" back to "See also" [view]
- Chm don't add images multiple times [view]
- Command \< and \> are not properly shown in section headers (and consequently in index) [view]
- Consistency of usage of the word LaTeX in the documentation [view]
- Context enhancement [view]
- Corrected some definitions for some Fortran keywords [view]
- Disabled config dependency check to avoid regression [view]
- Documentation corrections [view]
- Enable Previous and Next buttons in chm output file [view]
- Enabling possibility to have { and } in (latex) index items [view]
- Error message is given for make distclean as generated_src is a directory [view]
- Extension in config.xml if type=string with format=image [view]
- Extension specific filtering [view]
- Fix id parsing for atx markdown headers [view]
- Fix segfault on invalid bounding FIG when patching dot [view]
- Fix to VHDL scanner. [view]
- Fix typos in Russian translation [view]
- Fixed Tidy's 'empty span' warning in HTML output [view]
- Fixed compiler warnings in section.h [view]
- Fixed difference between generated XML schema and XML files for HTML entities [view]
- Fixed issues with @parblock and added regression test case [view]
- Fixed issues with SEPARATE_MEMBER_PAGES and INLINE_SIMPLE_STRUCTS [view]
- Fixed memory leak in nested comment administration [view]
- Fixed off-by one error for last character in compound.xsd [view]
- Fixed potential crash caused by overloading the variadic warn function [view]
- Fixed problem handling Obj-C protocol list when proceeded by a newline [view]
- Fixed problem with ending a paragraph when htmlonly was at the end of a comment block [view]
- Fixed typo in changelog [view]
- Fixed typo in doxyindexer.vcproj [view]
- Fixes for missing build dependencies [view]
- Give message when PROJECT_LOGO cannot be found or cannot be converted [view]
- Handling of -- by \c and <code> results in - adjusted documentation [view]
- Improve rendering of sub and superscripts in LaTeX [view]
- Improved handling of percent symbol [view]
- Improved performance of rendering large index pages, by replacing images in the tables by spans [view]
- In case of sections with the same name they are not reported. [view]
- Inconsistency in usage of simplesecr versus simplesectsep corrected [view]
- Inconsistency in usage of simplesecr versus simplesectsep corrected [view]
- Incorrect handling dependencies [view]
- Items XML_SCHEMA and XML_DTD declared obsolete [view]
- List only the project pages in "Related Pages" [view]
- Made documentation more consistent [view]
- Make sure all ids in g_linkRefs are lower case [view]
- Make the MAN_SUBDIR setting override the name of the directory the man pages are placed in. [view]
- Meta tag in the HTML search page was not closed properly [view]
- Minor fixes for the new build locations [view]
- Missing & and chars after " in tree of chm documentation [view]
- More context changes [view]
- More work on the template and context mechanisms [view]
- On windows citelist.doc remains [view]
- Place where dot executable is found [view]
- Properly escape the XCODE path. [view]
- Pull out property names in Objective-C. [view]
- Recognize all HTML4 special character entities [view]
- Reduced and improved functionality of QList [view]
- Removed config.doc as it is generated by configgen.py [view]
- Removed generated file src/settings.h from source repository [view]
- Removed message, minor restructuring [view]
- Removed remark about installdox from the FAQ [view]
- Restructured html entity handling [view]
- Reverted #132 after submitter reported that it did not work [view]
- Showing error message on windows in case on error on startup [view]
- Simplified LaTeX header/footer escaping [view]
- Some restructuring and some compiler warning fixes [view]
- Spitting generated files better from source files [view]
- Superfluous < sign [view]
- Superfluous backslash in documentation [view]
- Superfluous include removed [view]
- Undo previous commit [view]
- Unified DirFileContext and NestingContext [view]
- Update doctokenizer.l [view]
- Update doctokenizer.l [view]
- Updated copyright [view]
- Use \newline i.s.o. \par for linebreaks in LaTeX [view]
- Use hook arrow for hyphens in symbol names in the LaTeX output. [view]
- Wrong UTF 8 codes [view]
- Fix broken links to subpages in LaTeX output [view]
- \xmlonly appeared twice in see also section of \htmlonly and \docbookonly [view]
- add css-escape to avoid jquery based xss [view]
- add parameter [view]
- add search.py, a client for doxygen_sqlite3.db [view]
- add space between br and / for better compatibility [view]
- added option to have numbers in the bookmark pane (PDF output) [view]
- config.l: dependency checks for booleans [view]
- detect python2 as Python 2 binary [view]
- fixed compile issue on Linux [view]
- pass libclang header file location; add paths for Ubuntu's llvm-3.4 [view]
- sqlite3: SQLITE_TRANSIENTs [view]
- sqlite3: add new searches to search.py [view]
- sqlite3: clear bindings on errors and more care with return [view]
- sqlite3: extract more info [view]
- sqlite3: fedora has libsqlite3.so in /usr/lib64 [view]
- sqlite3: leave out insertMemberReference until xref location is valid [view]
- sqlite3: remove some debug messages [view]
- sqlite3: speedup the SELECTs [view]
- sqlite3: updates [view]
- sqlite3: use the new qtools API [view]
- testsqlite3: a test for sqlite3gen [view]
- util/patternMatch: break when pattern is found [view]
- util/patternMatch: don't extract a QCString(QFileInfo) each time we QRegExp.match [view]

## Release 1.8.6

(release date 24-12-2013)

### Bug fixes

- Bug 1293 - if "using namespace" used, call of a static member function in C++ is not recognized or recognized wrong
- Bug 4237 - make install prepends a slash to the installation path Removed superfluous /
- Bug 4547 - HTML links in RTF output are broken
- Bug 4885 - class list not sorted?
- Bug 5037 - show includes for free functions
- Bug 5070 - Create possibility to keep user comments in Doxyfile
- Bug 5207 - Latex: Hyperlinks for \secreflist / \refitem
- Bug 5213 - Generated Doxyfile differs from result of doxygen -u (partial fix)
- Bug 5263 - Indexing and searching cannot treat non ASCII identifiers
- Bug 5270 - Fortran: in body documentation lands on wrong place In some cases, in propriety code, with in body Fortran documentation doxygen crashed. I REOPENED Bug_706520 for this
- Bug 5271 - Fortran: Doxygen mixes up function-attributes with the return type test string should not be equal to "function" but should contain "function"
- Bug 5272 - RPM build via spec file fails
- Bug 5274 - Doxygen crash if missing new-line in a snippet
- Bug 5275 - C++ exception specifications are no longer parsed correctly
- Bug 5278 - update the Japanese translation
- Bug 5282 - Accept IDs using unicode(non ASCII) characters in python codes
- Bug 5283 - GENERATE_TREEVIEW=YES disables touch scrolling with Android 3.x
- Bug 5284 - Cannot @ref or @link C++ operator overloads
- Bug 5285 - Wrong page number and header in pdf output
- Bug 5286 - When I use @INCLUDE DoxyWizard is closed Current directory was not changed at the right time so the include files could not be found in the "current" directory (i.e. the directory where the Doxyfile resides too, as this directory is shown as the current directory in the doxywizard). This is also important when the doxywizard is started from a shortcut.
- Bug 5288 - Asterisks in comment wrongly displayed for @code
- Bug 5289 - `FILTER_SOURCE_FILES=YES` required to build CALL_GRAPHS 5289
- Bug 5290 - Fortran: error message when missing last EOL In case the original buffer in either fixed or free format code does not contain an EOL as last character, add it.
- Bug 5291 - Add support for dia diagrams
- Bug 5292 - Const treatment
- Bug 5293 - False warning for Java "warning: missing ( in exception list on member"
- Bug 5295 - Strange output when : appended to an parameter description
- Bug 5296 - @copydoc not working for const member overloads
- Bug 5298 - Deprecated list breaks HTML tree with xhtml extension
- Bug 5299 - Enabling INLINE_SIMPLE_STRUCTS messes up Data Structures in tree
- Bug 5301 - Wrong path to graph_legend figure in graph_legend.html when CREATE_SUBDIRS = YES
- Bug 5302 - Templated and non-templated method mixup documentation
- Bug 5303 - Struct member fields not documented with INLINE_SIMPLE_STRUCTS
- Bug 5305 - C++ parsing problem with operators <<, <, >, >> inside templates
- Bug 5308 - Terminating C comments within markdown files breaks aliases
- Bug 5310 - Copying of files via \image tag can get confused by symlinks at the destination
- Bug 5311 - Generated hhc file contains an error for a section of a mainpage
- Bug 5313 - Fortran: problem with types with name starting with is
- Bug 5314 - Broken links on members HTML page when using BUILTIN_STL_SUPPORT
- Bug 5315 - position of linebreak in template argument list affects inheritance relation
- Bug 5329 - Segfault while parsing a C file
- Bug 5331 - latex_count=5 is not enough
- Bug 5332 - Vertical bars cannot be sent straight to makeindex
- Bug 5334 - Compiler warnings because char is unsigned on ARM/PPC: "comparison is always false"
- Bug 5340 - Nested Aliases fail when the nested alias has two or more arguments.
- Bug 5344 - [PATCH] #include does not work with absolute paths
- Bug 5345 - Comment /**/ confuses doxygen
- Bug 5347 - Long initialization line in C stops doxygen An extra "breakpoint" in the input string has been created in the form of a , (comma), so for initialization lines the line will be shorter and the , (comma) will be copied later on.
- Bug 5355 - segmentation fault in memberdef.cpp
- Bug 5358 - Some external namespaces appear in list despite having ALLEXTERNALS = NO
- Bug 5360 - Consistently document Fortran's equivalent function bodies
- Bug 5361 - HTML escaping incorrectly applied in source tooltips
- Bug 5362 - private java class is mentioned in inherited by list of super class
- Bug 5363 - Invalid null key and segmentation fault
- Bug 5364 - Label "abstract" instead of "pure virtual" for Java language
- Bug 5365 - Can't build because the definitions of ***YY_flex_debug are missing.
- Bug 5367 - expand_as_defined macro does not properly work
- Bug 5369 - @xrefitem with empty heading string
- Bug 5372 - Document inline objective-C blocks
- Bug 5374 - USE_MDFILE_AS_MAINPAGE doesn't work if full path is specified.
- Bug 5381 - inline source browser shows wrong code with multi-line c++11's raw strings
- Add support for honoring svg image format preference in msc
- Added @parblock and @endparblock commands
- Added compile support for Mavericks
- Added fix to avoid errors with older compilers.
- Added generated files to gitignore
- Added missing docs tag
- Added missing pthread lib to doxyapp
- Added missing space after @parblock
- Added rudimentary support for Django like template system for output creation.
- Added the possibility to specify the -d option in the Visual studio GUI on windows for the lex rules
- Adjust internationalization part to current situation
- Alignment of @code and @verbatim section When having a code and a verbatim section the boxes are not aligned, this patch fixes this. Example code, aa.c; standard Doxyfile: /** \file
- Allow @ref to unlabeled markdown page by name, i.e. @ref mypage.md
- Allow links to other markdown pages of the form [link text](page.md)
- Avoid accessing uninitialized memory in fileToString
- Build problem with unistd.h and Cygwin The standard g++ compiler under windows (win32-g++) has unistd.gh file; Microsoft windows does not have it, therefore it is better to use the winbuild directory in case of windows and no dependency otherwise
- Consistency in language part of the documentation Made documentation more inline with other parts of the documentation (regarding the way e.g. filenames are presented) Corrected some spelling errors Corrected the warning in the language.doc by placing a reference to the files from which language.doc is generated Corrected the color for the languages that are still v1.4.6 (language name now also red in stead of a pink background, was confusing with languages that were 1.5 / 1.6 compatible)
- Corrected some inconsistencies in the comments
- Debug output for lexical analyzer
- Deleted generated files from source repository
- Doxygen didn't allow @ref to parameters of type reference to an array.
- Doxysearch under Cygwin should not have extension cgi.exe but just .cgi
- Esperanto not supported by htmlhelp compiler reverting for Esperanto to default language (US English)
- Fixed a number of compiler warnings reported by newer clang compiler
- Fixed compilation issues in doxyapp
- Fixed compile warning
- Fixed compiler warning related to implicit size_t to int conversion
- Fixed constness warning
- Fixed invalid if statement found by cppcheck
- Fixed issue with Romanian translator preventing treeview from working
- Fixed regression autolinking C# template such as MyGenericClass<T>.g()
- Fixed regression in argument matching for the template example
- Fortran added keyword IMPURE
- French translator up-to-date.
- Internal documentation for debug possibilities Documentation regarding usage of -d option with [f]lex Initial documentation regarding the -d options with doxygen
- LaTeX: Fix ToC entries of index/bibliography
- Made lexer rule explicit
- Make Python detection in configure work with version older than 2.7
- Minor layout tweaks and extra guard
- More fixes for the Windows build
- Patch regarding generating the rules file for the windows build regarding languages, some inconsistencies in the (windows) build system, corrections to some spelling.
- Regenerated language.doc
- Removed Japanese characters in maintainers.txt as they break the build
- Removed redundant backslashes in regexp pattern
- Report details about fork() failure in logs.
- Russian translator updated, new Russian maintainer added.
- Small spelling correction to generate an rtf extensions file -> to generate a rtf extensions file
- Some texts can be independent of \htmlonly / \latexonly
- Space missing in error message. the word 'in' and the vale of filesOption were concatenated
- This patch contains changes regarding the build system so that the *nix and Windows systems use the same information (consistency). Some use names routine names have been changed (from .l files with -P option) to reflect the file name that generated the routines, this makes it easier to create a general procedure. A number of include / header files are files are generated from different file types (html, xml, js), due some limitations of the windows build system the generated file names had to be changed (the extension in the windows build system is only available including the '.' so e.g. the file jquery_fx.js generates now jquery_fx.js.h instead of jquery_fx_js.h) In the windows version the creation of .cpp files from .l files has been adjusted to correct for the YY_BUF_SIZE problems. Furthermore on windows (and also used on *nix) some commands have been replaced with python scripts so that on windows only python is need (besides flex and bison). On *nix also perl is required for the generation using tmake.
- Updated Visual Studio project files to include new source files
- Usage of the -d option corrected Giving an error when a wrong -d option is given. Made some error messages more consistent. Corrected usage of the exit call, in case of an error: exit(1) otherwise exit(0). A closer look should be made on exitDoxygen as it does not contain any exit statements and it is unclear (to me) when it is used.
- VHDL-2008 and arrays on unconstrained elements
- consider currentFile when searching for global symbols
- doc/language.doc generated from the updated sources (bgcolored)
- doc/language.tpl -- UTF-8 reflected in the langhowto template
- doc/language.tpl -- trailing spaces removed
- doc/translator.py -- colored status in HTML
- doxygen /** style creates spurious code blocks with markdown enabled
- doxygen version 1.8.5 throws many "Internal Inconsistency" errors when parsing .idl files
- doxygen.sty.h was not ignored and not included/generated properly
- testing dir was missing from 'make archive'
- usage: make -d print dev doxygen options

## Release 1.8.5

(release date 23-08-2013)

### Changes

- Doxygen's source code is now managed using git and GitHub. Automatic builds and regression tests are scheduled via Travis CI.
- Configuration data for the config file, the documentation, and the wizard are now produced from a single source (thanks to Albert)
- All translation files have been migrated to UTF-8 (thanks to Petr Prikryl)
- Added black box testing framework and a set of tests.

### New features

- Added SOURCE_TOOLTIPS option for advanced tooltip support while source browsing.

### Bug fixes

- Bug 4532 - HTML commands - documentation of </dd> tag missing
- Bug 4710 - parameter on doxywizard manual Added sentence in respect to possible argument for doxywizard Added images to the LaTex / pdf version of the manual
- Bug 4890 - Strange behavior when placing cite within brief.
- Bug 4963 - SHORT_NAMES break references to \page in PDF output
- Bug 5023 - Line breaks are not copied/displayed properly when using @copydoc.
- Bug 5035 - Logical confusion with DISABLE_INDEX and GENERATE_TREEVIEW
- Bug 5080 - #undef is ignored by doxygen
- Bug 5153 - vhdldocgen fails to generate proper latex for VHDL record type
- Bug 5175 - Incorrectly parsed Q_PROPERTY with 'unsigned int' type
- Bug 5184 - XML output does not handle HTML entities in titles
- Bug 5185 - Duplicate entry for class template member function with no parameter
- Bug 5186 - Template static member functions duplicated as non-static public
- Bug 5187 - typedef warning when "using" some operator functions
- Bug 5188 - Docbook output produces invalid XML for <programlisting> elements
- Bug 5189 - Doxygen does not create links on C++ 11 style enum classes
- Bug 5192 - support @cite within brief description.
- Bug 5194 - code after \@cond is removed
- Bug 5198 - Doxygen 1.8.4 goes into an endless loop
- Bug 5199 - URLs are not created on C# classes in some cases
- Bug 5200 - Error List window in Visual Studio no longer recognizes doxygen warnings
- Bug 5201 - EXPAND_AS_DEFINED not working with some project structures
- Bug 5205 - VHDL cross-references fail when unpaired apostrophe present
- Bug 5209 - VHDL: Bad HTML formatting when using inline sources
- Bug 5211 - Missing space before optional option in method argument list
- Bug 5212 - Markdown and @image
- Bug 5214 - UTF-16LE BOM not handled by source browser and \snippet
- Bug 5216 - Crash with TAB_SIZE=-1
- Bug 5217 - Closing ) of function in function documentation is in wrong color
- Bug 5230 - Add configure options to enable static SQLite and non-standard SQLite
- Bug 5223 - Backward documentation comments are not allowed in Fortran type-bound procedures
- Bug 5224 - "operator--()" transformed to "operator&ndash;()" in @copydoc
- Bug 5225 - Segmentation fault parsing a fortran file
- Bug 5226 - Can't use @ref instead of \ref with msc
- Bug 5228 - Misleading warning about DOT font
- Bug 5233 - Out-of-line docs for class template specializations failing
- Bug 5234 - Generated XML is malformed
- Bug 5239 - Nested Aliases fail when the nested alias has two or more arguments.
- Bug 5242 - doxygen don't hide private Inherited Members
- Bug 5246 - Can't build with MinGW
- Bug 5247 - Doxywizard can't show file names using non-ASCII(Unicode)
- Bug 5250 - Incorrectly parsed Q_PROPERTY with 'long long' or 'long int' type
- Bug 5251 - Can't use unicode characters to execute external commands
- Bug 5252 - QRegExp doesn't work with 80-FF
- Bug 5253 - Accept IDs using unicode for C/C++ preprocessor
- Bug 5260 - @code tag as the last line of a comment block causes the parser to hang
- Bug 5261 - Post-comment blocks on C++11 using definitions attach to following entity
- Bug 5268 - Confusing use of GENERATE_TAGFILE
- Bug 5270 - Fortran: in body documentation lands on wrong place
- Small typo corrected in doxywizard_usage.doc Generated config.doc file in git is not identical to the generated one
- Various improvements to the (still experimental) sqlite3 support (thanks to Adrian Negreanu)
- jquery: use the env MINIFIER if specified
- Some words now in code style __attribute__ was seen (markdown) as the bold word attribute Reformulation of a sentence due to a not nice split of word (__declspec was split directly after __ in pdf)
- Extended list with supported options for automatic link generation
- Added -v option (analogous to --version). In case option started with -- and is not a known value (help or version) and error is given instead of starting doxygen
- Fixed regression when nested class were processed before their parent
- Minor changes to the way the code for config options is generated (thanks to Albert for the patch)
- Brief description did not appear in the page index, when a page did not have any details.
- Using & in the project name caused invalid HTML and LaTeX output
- Fixed regression caused by the patch for bug 705219
- Fixed issue running dot on files with non-ascii characters
- Delayed expanding the HTML navigation tree until after the page has loaded
- Made some fixed to the configure script for Cygwin (thanks to David Stacey)
- config.xml is now used to generate configoptions.cpp and config.doc
- Fixed whitespace issue when using \overload without arguments
- Avoid space in the output after \n command following by a newline.
- Fixed problem handling C comments inside a \code block.
- Improved handling of \internal and \endinternal
- Removed extra newline when reading in an input file
- Make XML output adhere to MAX_INITIALIZER_LINES
- Fixed issue handling \elseif after \ifnot
- Fixed regression that could cause double nested classes
- Fixed issue handling \docbookonly..\enddocbookonly section
- The language specifier in e.g. \code{.py} was ignored for the XML output
- Fix reference to scoped enum imported via a tag file.
- Replaced utf8 character that broke latex compilation of the manual
- Fixed unused parameter warnings
- Add support for writing and importing C++11 style enums to and from tag files
- Fixed regression introduced by fixed bug 5189
- Fixed type in function name
- Remove some unneeded and still enabled debug info
- Included fix for "Constant Groups" regression on file pages (thanks to Michael Stahl)
- Add scopes to Fortran prototype name parsing (thanks to Oleg Batrashev).
- Prototype scan for function, does not yet catch parameter types (thanks to Oleg Batrashev).

## Release 1.8.4

(release date 19-05-2013)

### Changes

- id 4929: When INLINE_SIMPLE_STRUCTS is enabled, also structs with simple typedefs will be inlined.
- Doxywizard: scrolling with mouse wheel no longer affects the values in the expert view.
- id 4846: More consistent warnings and errors.

### New features

- Added support for "clang assisted parsing", which allows the code to also be parsed via libclang (C/C++ frontend of LLVM) and can improve the quality of the syntax highlighting, cross-references, and call graphs, especially for template heavy C++ code. To enable this feature you have to configure doxygen with the --with-libclang option. Then you get two new configuration options: CLANG_ASSISTED_PARSING to enable or disable parsing via clang and CLANG_OPTIONS to pass additional compiler options needed to compile the files. Note that enabling this feature has a significant performance penalty.
- Included patch donated by Intel which adds Docbook support. This can be enabled via GENERATE_DOCBOOK and the output location can be controlled using DOCBOOK_OUTPUT. Docbook specific sections can be added using \docbookonly ... \enddocbookonly
- Added support for UNO IDL (interface language used in Open/Libre Office), thanks to Michael Stahl for the patch.
- Included patch by Adrian Negreanu which stores data gathered by doxygen in a sqlite3 database. Currently still work in progress and can only be enabled using --with-sqlite3 during ./configure.
- For interactive SVG graphs, edges are now highlighted when hovered by the mouse.
- Include patch by Adrian Negreanu to show duration statistics after a run. You can enable this by running doxygen with the "-d Time" option.
- Included patch by Markus Geimer which adds a new option LATEX_EXTRA_FILES which works similarly to HTML_EXTRA_FILES in that it copied specified files to the LaTeX output directory.
- id 5149: Added support for C++11 keyword alignas
- id 5056: Added support for processing DocSets with Dash (thanks to Bogdan Popescu for the patch
- id 4900: Added option EXTERNAL_PAGES which can be used to determine whether or not pages imported via tags will appear under related pages (similar to EXTERNAL_GROUPS).
- id 5042: Added new MathJax command MATHJAX_CODEFILE which supports including a file with MathJax related scripting to be inserted before the MathJax script is loaded. Thanks to Albert for the patch.
- id 5070: Comments in the config file starting with ## will now be kept when upgrading the file with doxygen -u (and doxygen -s -u). Thanks to Albert for the patch.
- id 5061: Adds support for Latvian (thanks to a patch by Lauris).
- Included language updates for Ukrainian, Romanian, and Korean

### Bug fixes

- id 1169: Fixed parse issue when using less than inside a template argument.
- id 1976 man page output was missing a linebreak before .SH when definition a group with a section.
- id 2114: @anchor were wrong when CREATE_SUBDIRS was enabled.
- id 2445: Putting a @todo in front of an anonymous namespace caused bogus entry in the todo list.
- id 3198: Fixed alignment issue with tabs and multibyte characters.
- id 3230: Character entities in titles were not rendered correctly in the HTML navigation tree.
- id 3272: No space between * and tag (e.g. \endcode) made parser misbehave
- id 3397: Included patch to limit generated Doxyfile comments to 80 columns
- id 3487: Fixed off-by-one with MAX_DOT_GRAPH_DEPTH.
- id 3785: Improved linking to template specializations. Thanks to David Haney for the patch.
- id 3909: Doxygen Header in C Files makes empty Lines in HTML Source Code when starts in Line 1
- id 4096: Fortran: array constructors with brackets were not correctly recognized.
- id 4223: The generated man pages had a .PP just before the subject description
- id 4224: On generated manpages the return section is incorrectly indented
- id 4261: use \page now generates a man page were the . is not replaced by _8.
- id 4385: Fixed issue with PROJECT_LOGO when using backslashes in the path.
- id 4499: Fortran: Using @var at module level didn't work. expect a file/path name.
- id 4650: Replaced "echo -n" with "printf" in the configure script.
- id 4684: Removed warning when using \endinternal
- id 4696: Added &, @, and # as allowed characters for commands that
- id 4788: Included patch by Albert to correctly link pages in the manual
- id 4850: Added support for single column Markdown tables.
- id 4855: Incomplete documentation on doxygen -w latex
- id 4877: Doxygen crashed when structural commands (like \var) appeared in .md files.
- id 4926: Fixed character encoding problem when multibytes characters were used in anchors.
- id 5013: Documentation before an anonymous member did not appear.
- id 5040: Fixed Markdown related indentation problem.
- id 5044: Regression: Text after @copydoc was not visible anymore.
- id 5046: Linked to external pages was done using the page label rather than the file name.
- id 5059: build using ./configure ; make did not work if the path contained a space.
- id 5060: Tag files are now identified by the full path instead of only the name of the tag file.
- id 5086: In some cases members were missing from the tag file.
- id 5079: Fortran: derive intent from documentation in case no intent is specified
- id 5089: Warning was not reported at the correct line in two cases.
- id 5092, 5093: @cond..@endcond did not work properly for removing macro definitions.
- id 5098: Fixed crash when adding two different functions with the same name to the same group.
- id 5100: VHDL: fixed issue generating LaTeX output.
- id 5116: Fortran: improved handling of protected statement
- id 5124: Fortran: Fixed issue resulting in "Stack buffers nested too deeply" error.
- id 5128: @cond was not handled properly by the preprocessor.
- id 5133: @copyright command did not end a brief description.
- id 5134: Markdown tables caused errors reported at wrong line number.
- id 5135: Removed double entry from the messages produced by doxygen.
- id 5152: Fixed problem handling @cond for #define's
- id 5144: Fixed potential crash when searching files.
- id 5131: #include's inside namespace could result in duplicate entries.
- id 5132: Doxywizard: Labels of items are now also grayed out when an item is disabled (thanks to Albert for the patch).
- id 5154: Changed Markdown page label to support multiple .md files with the same name.
- id 5155: Fixed issue with margin computation in resize.js.
- id 5157: Lonely h4,h5,h6 end tag caused assert.
- id 5158: Trailing comments were not always rendered properly if MARKDOWN_SUPPORT was enabled.
- id 5159: Updated doxygen man page (thanks to Manuel for the patch).
- id 5160: Added reference to \xmlonly and \docbookonly in \htmlonly
- id 5163: LaTeX: switch to using the xtabular package instead of longtable to prevent overfull vbox errors.
- id 5164: Template parameters and Exceptions were rendered differently than Parameters and Return Values in the LaTeX output.
- id : Tcl: Fixed crash when parsing certain Tcl code.
- id 5171: Comment blocking ending with ///// made slashes appear in the output.
- id 5180: Added support for separating auto list items with an empty paragraph.
- Included a couple of VHDL fixes (thanks to Martin Kreis for the patch)
- \include and \includelineno both showed line numbers.
- Putting '// @endverbatim' inside a C comment block was not handled properly by the preprocessor.
- Fixed various typo's in the manual and improved cross referencing (thanks to Albert and Guillem Jover for their help)
- Added a couple of missing configuration dependencies.

## Release 1.8.3.1

(release date 20-01-2013)

### Changes

- Changed to way the search results for multiple projects can be linked together. A project is now no longer identified by the tag files name but via new option EXTERNAL_SEARCH_ID giving a bit more flexibility.
- Disabled the disk cache for member data. Allows removing quite some complexity in doxygen and is not really needed now that 64bit systems with >4GB RAM are becoming more common. Let me know if you think you benefit from this caching.
- id 5031: Using $relpath$ in a custom footer could lead to ambiguities when followed by a name that could also be a marker, like 'search'. Now $relpath^ should be used instead. $relpath$ is still supported for backward compatibility.

### New features

- You can now use EXTENSION_MAPPING on files without any extension using no_extension as placeholder (thanks to Jason Majors for the patch).
- To make navindex section inside a layout file that links to a specific URL you can use usergroup with the url attribute.
- To make navindex section without any link inside a layout file you can use usergroup with special title [none].

### Bug fixes

- id 4191: Fortran: Included patch to improve parsing line continuation characters.
- id 4204: Fortran: added support for protected attribute
- id 4859, 5023: When using @copydoc, paragraphs breaks did not appear in the copied documentation.
- id 4930: Fortran: handle single quotes in normal Fortran comment.
- id 4931, 5025: Scope of forwardly declared template class was lost in the output.
- id 4978: Tcl: Inline source code was not rendered correctly.
- id 5005: Fixed case were a cyclic inheritance relation could crash doxygen.
- id 5008: Using @subpage in a -# style list was not handled properly.
- id 5012: For a mainpage without title the project name is now shown as the title in the XML output.
- id 5017: The generated list of citations is now no longer included in the tag file.
- id 5014: Documenting strongly typed enum values outside of the enum did not work.
- id 5022: Python: = was missing in the output for variable assignment.
- id 5024: Doxygen could crash when creating inline msc graphs.
- id 5026: Members didn't have a More.. link to jump to detailed docs.
- id 5030: Doxygen did not probably distinguish between two template
- id 5034: regression: C++ style comments that started with a line of slashes did not get processed correctly anymore.
- id 5038: Fixed parse error when left shift operator occurred as a default parameter. members or functions that only differ in the return type.
- Setting SEARCH_INCLUDES to NO resulted in no include graphs and no include files being listed in the output.
- Improved support for MinGW (thanks to a patch by Brecht Sanders).
- Removed the Graphviz/dot dependency when building the doxygen documentation.
- Anchors to sub pages were wrong in the XML output.
- Included VHDL patch by Martin Kreis that improves the flow chart generation.
- corrected several code pages and fontsets for proper RTF output for a number of languages such as Greek.

## Release 1.8.3

(release date 26-12-2012)

### Changes

- Expanding the tree in an index page of the HTML output, will now expand only one level instead of the whole sub-tree (thanks to Pez Cuckow for the patch).
- A blockquote in Markdown does no longer require a whitespace after the last '>' if the '>' is followed by a newline.
- id 4863: Included patch to add version info to all generated template files (headers, footers, stylesheets, layout files, etc).

### New features

- Added support for using external tools to index and search through the HTML documentation. An example index tool is provided (doxyindexer) and an example search engine (doxysearch.cgi). To configure the external search engine the following new options are added to the configuration file: EXTERNAL_SEARCH (to enable the feature), SEARCHENGINE_URL (to specify the URL of the search engine), SEARCHDATA_FILE (to specify the name of the raw search data to index), EXTRA_SEARCH_MAPPINGS (for search through multiple projects). See the manual for details.
- Added USE_MDFILE_AS_MAINPAGE config option to select a markdown page to be used as the main page.
- id 3945: This patch (contributed by Albert) adds support for simple logic expressions for \cond, \if, and friends, i.e. you can do \if (SOME_SECTION_NAME && (!THIS_ALTERNATIVE || THAT_ALTERNATIVE))
- id 4888: Patch (contributed by Albert) adds a new configuration option MATHJAX_FORMAT to select the MathJax output format. Options are HTML-CSS, NativeMML, or SVG.

### Bug fixes

- id 4584: Fixed compile issues with 0 to QCString cast for old compilers.
- id 4752: A class A deriving from another class B inside a namespace not known to doxygen, caused class B to appear in the global scope.
- id 4839: Fixed problem processing .bib files when they were located in a path containing spaces.
- id 4848: Using \addindex in a page will now produce a link to the word, instead of the start of the page.
- id 4849: The TREEVIEW_WIDTH option did not have any effect.
- id 4851: Jumping from a level 3 section to a level 1 section did not appear correctly in the page TOC.
- id 4852: C++11: Improved handling of noexcept expressions, e.g.: `Test() noexcept ( noexcept(T::T()) ) = default;`
- id 4853: Improved SIGINT handling when running multiple dot instances.
- id 4860: Fixed problem processing .bib files when using a non default output directory.
- id 4862: Comment for IDL_PROPERTY_SUPPORT in the config file template did not have line wrapping.
- id 4864: Setting SHOW_FILES to NO prevented call graphs from being generated.
- id 4865: Fortran: In initialization statement the "=" was missing
- id 4872: Fortran: ALIASes where not replaced in !! and !< comments.
- id 4886: Added meta tag "generator" to HTML output (thanks to Albert for the patch).
- id 4899: Sections of the main page did not appear in the navigation tree until the main page had sub pages. Also fixed bug in treeview that caused mainpage with title and sections to appear at the same level as the sections.
- id 4908: Doxygen could select the wrong overloaded method when the only difference in parameter types was the template type of a typedef.
- id 4909: Inheriting member documentation did not work in combination with Java interfaces.
- id 4915: Enum values did not appear in the detailed documentation when using C++11 style enums.
- id 4920: Even though HIDE_UNDOC_MEMBERS was enabled, the navigation still showed undocumented members.
- id 4921: Fixed back button behavior when using the navigation tree.
- id 4927: Added anchors to refs in the index.qhp TOC.
- id : Added XML declaration to index.qhp TOC.
- id 4932: When a class and its base class has the same nested class, the collaboration diagram could point to the wrong class.
- id 4934: Comments inside a function macro parameter appeared before the expanded macro, instead of being treated as part of the parameter.
- id 4936: Allow minus in the name of a HTML attribute.
- id 4939: Code fragments were wrapped too early in the latex output.
- id 4947: Fixed Qt version number in ./configure --help text.
- id 4955: Included patch to prevent processing identifiers starting with _ or __ as markdown.
- id 4956: Horizontal ruler inside paragraph caused missing </p>
- id 4957: Using "usergroup" in the layout.xml caused missing <div>
- id 4962: Fixed problem with user defined entries in the eclipse help index (thanks to Rene Papenhoven for the fix).
- id 4959: Fixed problem parsing initializer list with C++11 style uniform types.
- id 4968: \if around list item preceded by whitespace caused wrong list in the output.
- id 4969: Correct link in documentation of SIP_SUPPORT option.
- id 4979: Fixed bug that could prevent refman.tex from being generated.
- id 4980: Fixed missing space in Chinese translation.
- id 4989: Files added via HTML_EXTRA_STYLESHEET did not correct refer to files that where placed in a subdirectory.
- id 4991: Searching for multibyte characters did not work with the server based search engine.
- id 4993: Fixed case where line numbers got out of sync with the code.
- id 4994: First member of an anonymous C++11 style enum was not shown properly.
- id 4995: Fixed case where _'s where falsely converted to Markdown emphasis.
- id 4996: Title not used when \ref'ing to a \section imported via a tag file.
- id 4997: Behavior of @cond was accidentally reversed by new expression parser.
- id 5000: Fixed problems handling @cond inside /// comments.
- id 5001: Fixed case where doxygen would during preprocessing.
- id 5002: A file specified using HTML_EXTRA_STYLEHSHEET did not end up in the Qt Help index.
- Improved the way enums are rendered in the HTML output.
- When inlining structs (INLINE_SIMPLE_STRUCTS=YES) a <p> was missing for members with a detailed description, causing invalid XHTML.
- Fixed problem loading the navigation tree when using .xhtml as the file extension.
- The navigation tree was not always correctly positioned upon initial load when using Chrome.
- HTML Navigation tree showed static members even when EXTRACT_STATIC was set to NO.
- Same word could appear multiple times in the match list for an entry in the search results when using server based search.

## Release 1.8.2

(release date 11-08-2012)

### Changes

- Using a fenced block (~~~~) in Markdown without explicit extension will now be interpreted as a @code..@endcode block instead of @verbatim..@endverbatim.
- Classes inheriting from an class that is outside the scope of doxygen are still shown in diagrams. This does not hold for usage relations.

### New features

- Added support for C++11:
  - strongly typed enums, e.g.:

        enum class E

  - enums with explicit type, e.g.:

        enum E : unsigned int { ... }

  - id 4749: added support for final keyword on classes and methods.
  - support for override keyword for methods.
  - `nullptr` is new a type keyword in code fragments.
  - support for variables with initializer lists, e.g.:

        const int var {10};

  - support for trailing return types, e.g.:

        auto foo() -> Bar;

  - id 4624: added support for template aliases, e.g.:

        template<typename T> using A = B<T>;

  - support for C++11 variadic templates, e.g.:

        template<typename... Values> class C;

  - support for documenting template class declarations.
  - id 4807: `static_assert(...);` inside a class is now ignored.
  - id 4793: Add support parameters with default lambda functions, e.g.:

        int foo(int i, std::function<int(int)> f = [](int x) -> int { return x / 2; })

  - default initializers for non-static data members, e.g.:

        class C { public: int x = 4; int y {6}; int z = y*func(); };

  - support for decltype as a way selecting a type for a variable, e.g.:

        int x; decltype(x) y;

  - support for new string literals, e.g.

        u8"utf8", u"utf-16", U"utf-32", L"wchar"

  - support for raw string literals (with and without user defined delimiter), e.g.

        R"(some"thing)", u8R"raw(some)"thing)raw"

  - support for explicitly deleted and defaulted special members (`=default` and `=delete`).
- Made several improvements to the way Objective-C categories and protocols are handled:
  - Class extensions are now treated as part of the class, whereas categories are listed separately.
  - Fixed parse problem where category had a { } section.
  - Fixed parse problem for categories that implemented protocols.
  - Fixed render bug for protocols in class diagrams.
  - Attributes with the same name as a method are now no longer matched.
  - Internal properties are now also marked with [implementation]
  - Members of categories are shown in the class they extend as well, and cross reference links are made between these members.
  - Class extension implementing protocols are now shown as protocols inherited by the class itself, including the "Implemented by" relation.
- Added option HTML_EXTRA_STYLESHEET which allows adding an additional stylesheet without completely replacing doxygen.css.
- Added option AUTOLINK_SUPPORT which can be used to enable/disable autolinking globally.
- Included language updates for Czech, Spanish, Greek, Slovak, and Esperanto.

### Bug fixes

- Fixed render glitch where template member of a base class was not properly hidden in the derived class.
- Privately nested classes no longer appear in the declaration section of their parent if EXTRACT_PRIVATE is disabled.
- In the declaration section the separator line was in between the member and its brief description.
- Fixed a couple of compiler warning with the new XCode 4.4 compiler.
- Added compilation support for Mountain Lion (macOS 10.8).
- id 4789: Nested namespaces did not appear in the namespace list if the parent namespace was undocumented.
- id 4809: Fixed some spelling errors in the code comments.
- id 4814: Fortran: comma at begin of argument list description in case of implicit type
- id 4815: Fortran: Entities on line with USE, ONLY were not hyperlinked in code.
- id 4816: Fortran: handle carriage return in non terminated strings.
- id 4821: Using Markdown formatting in @todo/@bug/.. like descriptions did not work.
- id 4823: Fixed potential crash when <code> appeared inside <summary> for C# code.
- id 4824: \xrefitems of the same type are not grouped together under the same heading (just like \todo and friends).
- Fixed case where full directory path was shown even though FULL_PATH_NAMES was set to NO.
- id 4825: HTML output of template-derived classes contained unescaped characters.
- id 4800: "Class Index" appeared twice in the PDF TOC, Index at the end did not appear at all.
- In a declaration no link was created when referring to a class inside an undocumented namespace imported via a tag file.
- id 4840: Make default for TAB_SIZE 4 and added remark in Markdown section of the manual about the effect of TAB_SIZE on code block processing when using tabs in the comment block.
- id 4835: Project logo was not included in the Qt help output.
- id 4834: Fixed a couple of typos in the comments.
- id 4841: Fixed a problem with Markdown processing of a @code block inside an indented /// style comment.
- id 4799: Disabled section level correction for Markdown pages as it was confusing.

## Release 1.8.1.2

(release date 12-07-2012)

### Changes

- doxygen now strips the leading indentation shared by the lines in a @code..@endcode block.
- id 4755: Changed title of the SVG graphs from 'G' to the root node of the graph.

### New features

- Added button in the navigation tree to allow enabling/disabling syncing the navigation tree with the content.
- Extended the number of HTML entities with Greek letters and other symbols (thanks to Charles Karney for the patch).
- id 4464: Added support for C++11 strongly typed enums (enum class E { ... }).

### Bug fixes

- id 3470: Added missing class member initialization to a class in doxmlparser and made the library compile again.
- id : Added support for Obj-C property attribute "unsafe_retained".
- id 4682, 4721: Unmatched quote in a comment prevented alias expansion.
- id 4702: Fixed another case where local include path did not appear correctly in the class documentation.
- id 4716: Fortran: Some keyword were not colored in the source view.
- id 4720: Fortran: Argument type was wrong type of in case of out of place !> comment
- id 4739: Included patch to fix problem compiling for x86 release on Windows.
- id 4741: Section without title could result in an invalid Qt Help index.
- id 4743: Anonymous enum could result in an invalid Qt Help index.
- id 4751: Superfluous trailing comma in javascript prevented navigation tree to load in IE7.
- id 4753: a + at the start of a line inside a <pre> block, triggered the start of a list. Also -- and --- where not kept untouched inside a <pre> block.
- id 4754: ndash (--) appearing in a brief description could lead to invalid SVG images.
- id 4759: -- and --- inside a Markdown code block were not handled properly.
- id 4783, 4699: In body documentation with a different indentation then the main documentation was not rendered correctly (MARKDOWN=YES).
- id 4784: Using an escaped pipe symbol in a Markdown table did not get unescaped in the output.
- id 4785: Code fragments did not appear properly in the doxygen manual.
- id 4786: Added missing delete call in a piece of debugging code.
- id 4788: Fixed some navigation issues in the manual
- Not all inherited members appeared in the "Additional inherited members" list.
- Link to call after "Inherited members" was not correct when CREATE_SUBDIRS was enabled.
- New VHDL diagram was not generated if the path contained spaces.
- Fixed a couple of problems handling Objective-C categories.

## Release 1.8.1.1

(release date 10-06-2012)

### Changes

- Integrated the root navigation tree in navtree.js for faster loading.
- When the navigation tree is enabled, clicking jump to a line in the source code view will now highlight the line.

### New features

- VHDL code now has a new Design Overview page (thanks for Martin Kreis for the patch). Requires HAVE_DOT=YES, and DOT_IMAGE_FORMAT=svg.
- id 4735: Added support for strong and weak attributes in Objective-C properties.

### Bug fixes

- id 3772: Fortran: Appearance of comments in the HTML output are now customizable via CSS again.
- id 4655: <code> inside a <summary> or <remarks> section is now treated as @code (was already the code for C#).
- id 4661: When a comment started at indent >= 4 after a /** and continued at the same indent without leading * after a blank line, the continued part appeared at as a code block when Markdown was enabled.
- id 4689: If a file was not indexed, the navigation tree became empty.
- id 4702: Include path using quotes did not work as documented.
- id 4709: @warning did not end at blank line when followed by a numbered list.
- id 4713: An anonymous namespace could introduce an invalid entry in the navigation list.
- id 4715: Breadcrumb navigation path had wrong links when CREATE_SUBDIRS was enabled.
- id 4729: Fixed case where function was incorrectly detected as a variable.
- id 4733: Fixed typo in the documentation of the LAYOUT_FILE option.
- id 4737: Fixed visual misalignment for first argument.
- The "arrow out" button in interactive SVG did not work when served from a web server, due to the use of an absolute path.
- If a declaration was too wide for a page, the content in HTML spilled over the boundary of its box, which looked ugly.
- Empty lines in a code fragment were collapsed.
- Navigation tree entries of the hierarchy appeared under class index as well.
- Grouped globals and enum values were not added to the navigation index.
- Inlined class were not properly shows in the navigation index.
- Documented class in undocumented namespace did not show up in class list and navigation tree.
- ALLEXTERNALS=YES did not show all external classes in the class list.
- External reference via URL did not work for new "Additional Inherited Members" section + inherited from class link.
- Objective-C protocols and C# generics were not index and listed properly in the navigation tree and indices.
- Undocumented files could produce a broken link in the navigation tree.
- Additional Inherited Members could turn up empty of all members of the inherited class were grouped and SUBGROUPING was set to NO.

## Release 1.8.1

(release date 19-05-2012)

### Changes

- Changed the way indexes (Class,File,Namespace,Groups) are rendered:

  There are now shown in a uniform way in the HTML output as a tree. Trees can be expanded and collapsed interactively (this makes USE_INLINE_TREES obsolete).

  The class list now also shows namespaces and nested classes. The file list now also shows directories (this makes SHOW_DIRECTORIES obsolete).

  Member sections are now each rendered in a separate table. This makes the HTML_ALIGN_MEMBERS option obsolete.

  Note: If you use a custom header for the HTML output (HTML_HEADER) make sure you add the following:

      <script type="text/javascript" src="$relpath$jquery.js"></script>
      <script type="text/javascript" src="$relpath$dynsections.js"></script>

  Otherwise the interactivity of the trees does not work.

- Included a couple of performance improvements (thanks to Dirk Reiners)
- Changed the way member attributes (like protected, virtual, and static) are rendered in the HTML output.
- Changed the look of the source code output.
- Included language updates for Chinese, Czech, German, Esperanto, Italian, Slovak, Spanish, Hungarian, and Polish.
- Syntax highlighting in source code fragments is no longer dependent on LATEX_SOURCE_CODE being set to YES.
- Added natural scrolling for tablet devices (like the iPad) when using the treeview.
- For interactive SVGs the print button has been replaced by a "arrow out" button that opens the original non-interactive SVG in a new window for easy printing or saving.
- id 4426: Long names are now wrapped in the dot nodes to avoid very wide graphs.

### New features

- id 4508: Added support for <inheritdoc/> C# XML command (thanks to John Werner for the patch).
- id 4588, Added support for resolving environment variables of the form $(PROGRAMFILES(X86)) inside the config file
- Doxygen now shows Objective-C properties in collaboration diagrams (thanks to Sven Weidauer for the patch).
- Added ability to search for group or page titles.
- Inherited class members are now shown as expandable sections in the member overview (default is collapsed). Each section is rendered as a table.
- id 4669: Included build support for NetBSD.
- A -- will now be rendered as an 'en dash', similarly, --- will produce an mdash.

### Bug fixes

- id 2891: Fortran: Prefix of routines got stripped.
- id 4502: Include VHDL patch (thanks to Martin Kreis).
- id 4569: Fixed include guard detection problem when using #pragma once
- id 4582: A numbered list (1. 2. 3.) where each list item ended with an empty line is no longer treated as a set of separate lists (all starting with 1.).
- id 4586: Java: last enum value did not appear in the output unless it was followed by a comma.
- id 4591, 4606: Regression: Autolist items starting on a new paragraph at indent level larger than 0 were not processed correctly.
- id 4594: Sections could be missing from the navigation tree in some situations.
- id 4597: @tableofcontents did not work for the main page (@mainpage)
- id 4598: Sections in a separate markdown page did not appear in the table of contents.
- id 4600: Fortran: Fixed problem causing call/caller graphs not to be generated.
- id 4601: RPM spec file was updated to make it work with RHEL 6.2 (thanks to Peter Klotz for the patch)
- id 4604: Corrected line number of error message reported for pages.
- id 4605: C# regression: enum values where not shown in the docs.
- id 4607: When #some_member appeared at the start of a line it was seen as a level one header instead of a link to a member when Markdown processing was enabled. Now at least one space is required after the # to make it a header.
- id 4608: Fixed case where doxygen could crash when a section and subsection had the same label.
- id 4610: docset creating could fail due to invalid Nodes.xml
- id 4614: Using \internal in a group or member did not hide it from the navigation tree if there was no documentation.
- id 4615: Backticks in C# comments did not appear as inline fragments, like was the case for other languages.
- id 4620: PHP: defines are now shown as constants rather than enums.
- id 4636: File with .md or .markdown extension were not included with the default setting of FILE_PATTERNS.
- id 4623: mailto style URLs did not work correctly in combination with CREATE_SUBDIRS = YES.
- id 4626: Removed bogus </b> when using @par.
- id 4627: Added "warning:" prefix to "missing \endcode" message.
- id 4629: Doxygen comments after a macro definition were not removed in the source browser view.
- id 4632: Removed black line in front of custom paragraphs.
- id : PHP: use keyword was not handled correctly when importing classes from another namespace.
- id 4634: Switched to using "Macro" in the output instead of "Define".
- id 4635: Using ![caption](filename.png) did not work correctly for local images pointed to with IMAGE_PATH.
- id 4642: A block of ///'s inside a verbatim block inside a .md file was replaced by /** .. */
- id 4645: Doxygen now skips scanning files in directories starting with a dot (e.g. .svn).
- id 4651: Included patch by Ryan Schmidt to make the Mac versions in qglobal.h match that of Apple header files.
- id 4659: Added C++11 classes when BUILTIN_STL_SUPPORT is enabled.
- id 4662: Using a backslash in a section causes 026E30F to appear in the LaTeX TOC.
- id 4675: Fortran: case sensitiveness for routines and functions did not work
- id 4676: Fortran: continuation by ampersand not placed in code output.
- id 4698: Fixed indenting issue after the end of a markdown code block inside a list.
- id 4703: Use new index style for page index.
- id 4704: Fixed LaTeX error when backslash appeared in a hyperlinked code fragment.
- Tag files had wrong character encoding set in the header.
- C# in/out did not appear in generics using covariance or contravariance.
- When marker of an alias appeared at the end of the alias text it was not expanded.
- Aliases did not work in Markdown files.
- Fixed some problems with the navigation tree for IE9 and Opera.
- Included patch by Jake Colman to make the configgen.py work with older Python version such as 2.4.3.
- Fixed problem parsing \code{.py}...\endcode
- UML_LIMIT_NUM_FIELDS did not work correctly in all cases.
- Setting SORT_GROUP_NAMES to YES, had no effect on child groups within a group.

## Release 1.8.0

(release date 25-02-2012)

### Changes

- Auto list items can now consist of multiple paragraphs. The indentation of the (first line) of a new paragraph determines to which list item the paragraph belongs or if it marks the end of the list.
- When UML_LOOK is enabled, relations shown on the edge of a graph are not shown as attributes (conform to the UML notation)
- Updated the manual and improved the look.
- Made the contents in the navigation tree more consistent for groups, pages with subpages, and grouped subpages.
- id 4558: Latex: made the margins of latex page layout smaller using the geometry package.
- The tool doxytag has been declared obsolete and is removed (it wasn't working properly anyway). Same goes for the installdox script.
- Updated the copyright in source code and doxywizard "about" to 2012.
- id 4533: HTML version of the manual now has the treeview enabled for easier navigation.

### New features

- Added support for Markdown formatting. This is enabled by default, but can be disabled by setting MARKDOWN_SUPPORT to NO. When enabled the following is processed differently:
  - tabs are converted to spaces according to TAB_SIZE.
  - blockquotes are created for lines that start with one or more >'s (amount of >'s determine the indentation level).
  - emphasis using *emphasize this* or _emphasis this_ or strong emphasis using **emphasis this**. Unlike classic Markdown 'some_great_identifier' is not touched.
  - code spans can be created using back-ticks, i.e. ``here's an example``
  - Using three or more -'s or *'s alone on a line with only spaces will produce a horizontal ruler.
  - A header can be created by putting a ===== (for h1) or ----- (for h2) on the next line or by using 1 to 6 #'s at the start of a line for h1-h6.
  - auto lists item can also start with + or * instead of only -
  - ordered lists can be made using 1. 2. ... labels.
  - verbatim blocks can be produced by indenting 4 additional spaces. Note that doxygen uses a relative indent of 4 spaces, not an absolute indent like Markdown does.
  - Markdown style hyperlinks and hyperlink references.
  - Simple tables can be created using the Markdown Extra format.
  - Fenced code blocks are also supported, include language selection.
  - files with extension .md or .markdown are converted to related pages.
  See the section about Markdown support in the manual for details.
- It is now possible to add user defined tabs or groups of tabs to the navigation menu using the layout file (see the section of the manual about customizing the output for details).
- Added new command \tableofcontents (or [TOC] if you prefer Markdown) which can be used in a related page with sections to produce a table of contents at the top of the HTML page (for other formats the command has no effect).
- When using SVG images and INTERACTIVE_SVG is enabled, a print icon will be visible along with the navigation controls to facilitate printing of the part of the graph that is visible on screen.
- Added obfuscation of email addresses for the HTML output to make email harvesting more difficult.
- Added build targets for 64 bit Windows (thanks to Vladimir Simonov). The installer script is also updated to install a 64 bit version of doxygen on 64 bit systems and the 32 bit version on 32 bit systems.
- Added support for using the HTML tag <blockquote> in comments.
- Included patch by Gauthier Haderer that fixes some issues with the dbus XML parser.
- Added support for Markdown style fenced code blocks.
- Added option to @code command to force parsing and syntax highlighting according to a particular language.
- Section of pages are now added to the navigation index.
- Added support for cell alignment and table header shading in LaTeX and RTF output.
- Added -d filteroutput option to show the output of an input filter (thanks to Albert for the patch).
- id 4534: Latex: for Windows doxygen new generates a makepdf.bat file in the latex output dir to create the latex documentation.

### Bug fixes

- id 2729: Fixed encoding issue in CHM index file for group titles.
- id 2791: FORTRAN: Keywords like .GT. recognized as symbols for cross ref.
- id 2799, 3376, 3825: \copydoc did copy the brief description into the detailed section, causing a difference between the original and the copy.
- id 3116: Using @ref for an example file, caused it to appear as file::ext.
- id 3228: Fortran: Included patch for blockdata sub-programs.
- id 3920: Fortran: doxygen filter, preparsing fixed form of null
- id 4443: TCL: Included patch to fixed UTF-8 support.
- id 4444: TCL: Included patch to prevent ##### from appearing in the output.
- id 4220: Using a file name with path for HTML_STYLESHEET caused the path to appear in the HTML output.
- id 4477: Fixed one more problem with include guard detection.
- id 4492: Fixed parse problem when a #define appeared inside an enum.
- id 4497: Fixed problem parsing C++ template specialization of the form A<func(T*)> such as used in boost::signal2 types.
- id 4500: A </p> followed by an htmlonly..endhtmlonly section caused invalid XHTML output.
- id 4501: Fixed include handling in case the include guard was documented.
- id 4505: Fixed problem loading the navigation tree in IE8 when serving pages via a web server.
- id 4506: Included patch to avoid hyphenation hints in front of the first capital in a word.
- id 4509: When SHOW_FILES was NO, a grouped function did not appear in the javascript based search index.
- id 4514: \copybrief introduced extra spacing in the HTML output.
- id 4515: Fixed case where search engine specific code appeared twice in the HTML output.
- id 4516: Fixed bug in the generated makefile causing index not to be generated when using pdflatex.
- id 4517: HTML output for example pages was not well-formed.
- id 4520: Include statements in latex output where placed all on one line in the LaTeX output.
- id 4526: PHP: Fixed problem handling heredoc blocks
- id 4527: For aliases with a single argument it is no longer required to escape commas that appear inside the argument text.
- id 4536: Latex: tables can now span multiple pages by using the xtab package.
- id 4544: Doxygen will ignore the common prefix shared by all directories when computing a names for the directory's output files. This will make the names of the output more stable.
- id 4549: Added missing newline in man page output.
- id 4555, 4556: Fixed parse problem for Q_PROPERTY when a template with a namespaced type was used.
- id 4557: Included patch which changes MATHJAX_RELPATH to use the content delivery network by default.
- id 4560: Fortran: Fixed problem handling multiple definition statements on one line.
- id 4561: Using -d Preprocessor now also works when QUIET is YES.
- id 4563: Latex: citations where only generated properly if the bib files specified via CITE_BIB_FILES did not have a path.
- id 4565: Tcl: Same function in multiple Tcl namespaces not added.
- id 4574: Fixed case where doxygen would not correctly detect >> as a termination of a nested template.
- id 4580: subpages generate empty pages in latex/rtf output and broken links when SHORT_NAME was set to YES.
- Included VHDL fixes provided by Martin Kreis.
- The word "dummy" wrongly appeared before the first parameter type in the LaTeX output for an Objective-C method.
- Fixed several small glitches in the tree view javascript code.
- Included a patch by Vladimir Simonov to make it possible to compile doxygen with Visual Studio 2005.
- Fixed some typos in the manual (thanks Albert).

# 1.7 Series

# Doxygen Release 1.7.6.1

(release date 10-12-2011)

### Changes

- Doxygen now reports its cache usage (for the symbol and the lookup cache) at the end of a run (if QUIET=NO), and recommends settings for SYMBOL_CACHE_SIZE and LOOKUP_CACHE_SIZE for your project if either cache is too small.

### New features

- Added new option LOOKUP_CACHE_SIZE to control the internal cache doxygen uses to find symbols given their name and a context.
- Python: added support for @staticmethod

### Bug fixes

- Python: scopes are now shown with . instead of ::
- id 4483: Space before @if was not preserved, causing problems with inline @if .. @endif constructs.
- id 4490: Fixed XHTML validity problem when using mscgen graphs.
- id 4493: Fixed XHTML validity problem when GENERATE_TREEVIEW was disabled.
- id 4494: Included patch to fix hang issue when non-empty INCLUDE_PATH was used.
- id 4495: Fixed parse issue when a comma appeared as part of an enum's value.

# Doxygen Release 1.7.6

(release date 03-12-2011)

### Changes

- To improve the performance of loading the navigation tree, the data is now split into multiple javascript files which are loaded dynamically.
- The selected member is now briefly highlighted in the HTML output (when GENERATE_TREEVIEW is enabled).
- The navigation tree (GENERATE_TREEVIEW) now shows the same information as the index.
- The navindex section of layout now also controls what is shown in the navigation tree.
- Improved HTML output support for IE9.
- Included redesigned VHDL parser (thanks to Martin Kreis for the patch)
- When a class/structs has many (>15) members of the same type, only the first 10 are shown in the UML diagram.
- Made the output of the javascript based search engine more compact.

### New features

- Update of the French translation.
- id 3637: Added support for PHP heredoc and nowdoc constructs.
- Added support for cross-referencing in case of operator-> overloading. This includes support for std::auto_ptr,std::smart_ptr,std::unique_ptr and std::weak_ptr when BUILTIN_STL_SUPPORT is enabled.

### Bug fixes

- Regression: some information was no longer available for a class, due to accidental deletion of a code block.
- Regression: fixed matching problem in the code parser.
- Included fixes for TCL to support commands with \ and command definitions preceded by whitespace (thanks to Rene Zaumseil)
- When using "static int a,b" variable "b" incorrectly appeared in the output even though EXTRACT_STATIC was set to NO.
- id 2867: .spec file was only updated after running ./configure
- id 4363: Fixed potential crash when using doxygen for large projects.
- id 4370: Fixed problem running bibtex with \cite command on Windows.
- id 4375: Fixed constant expression evaluation error in the preprocessor.
- id 4294: Removed bogus ' from the man page output.
- id 4411: Quotes in the brief description could appear unescaped in the tooltip.
- id 4137: #includes with ../ were not always processed correctly.
- Fixed potential crash when INLINE_GROUPED_CLASSES and INLINE_SIMPLE_STRUCTS are set to YES.
- id 4406: Fixed preprocessor problem handling #defines whose value was a constant string containing ///.
- id 4419: Using a \ at the end of a comment line could cause parsing problems for C# as the \ was treated as a line continuation.
- id 4391: Fixed parser problem when using multiple member groups inside a macro definition.
- id 2755: Fixed several issues related to \cite handling.
- id 4400: Improved the way macro definitions are collected.
- id 4421: Fixed LaTeX error when using \name with a description.
- id 4424: The documentation for \mainpage incorrectly mentioned that one has to use \ref main in case GENERATE_TREEVIEW was set to YES, which is no longer the case.
- id 4409: Nested aliases definitions where not always expanded properly (regression w.r.t version 1.7.4)
- id 4392: Fixed preprocessor problem where the @ character inside a macro definition could appear as @@.
- id 4401: Fixed problem running mscgen for LaTeX and RTF output.
- id 4429: Using ClassName%'s did not work anymore, and also ClassName's wasn't autolinked.
- id 4437: Fixed potential printing of null pointer when using a version filter that returned blanks.
- id 3871: Fortran: first problem where subroutine using results variable appeared as a function.
- id 4331: If an URL appeared at the end of a sentence, the period was included in the URL.
- id 4362: Fortran: Added support for the Double Complex type.
- id 4462: Included workaround for Solaris CC issue in index.cpp
- id 4441: Included patch to fix some TCL issues and add the TCL_SUBST configuration option.
- id 4428: Fortran: Added support for ALIAS expansion in comment blocks.
- id 4451: Fixed case where a macro was not corrected found in the header file when it could only be found via INCLUDE_PATH.
- id 4474: using multiple <para>'s inside a <summary> block caused text to be joined without spacing.
- id 4361: Java enums are now parsed as classes.
- id 4477: Fixed problem in the preprocessor regarding the handling of include guards.
- id 4478: Fixed typo in the docs for EXCLUDE_SYMLINKS.
- id 4487: Using a relative URL with <a href> did not work when CREATE_SUBDIRS was enabled.
- id 4486: Using an absolute URL with <img> did not work when CREATE_SUBDIRS was enabled.

# Doxygen Release 1.7.5.1

(release date 21-08-2011)

### New features

- Update of the French translation.

### Bug fixes

- id 2867: .spec file was only updated after running ./configure
- id 4363: Fixed potential crash when using doxygen for large projects.
- id 4370: Fixed problem running bibtex with \cite command on Windows.
- Regression: some information was no longer available for a class, due to accidental deletion of a code block.
- Regression: fixed matching problem in the code parser.

# Doxygen Release 1.7.5

(release date 14-08-2011)

### Changes

- id 4145: Function in the call graphs are now shown based on first appearance rather then alphabetical order.
- id 3743: When customizing the HTML header $title now only generates the title excluding the project name (which can still be added using $projectname)
- Improved the look of the class index: all items now have equal spacing.

### New features

- New option INTERACTIVE_SVG which when set to YES in combination with DOT_IMAGE_FORMAT=svg will make doxygen generate interactive SVG diagrams that support zooming and panning via the mouse (only for large graphs).
- Added support for the Tcl programming language (thanks to Rene Zaumseil and Samuel Bentley for the patch).
- Added @copyright command.
- added option MATHJAX_EXTENSIONS to provide additional extensions for MathJax (thanks to David Munger for the patch).
- added option INLINE_SIMPLE_STRUCTS which when enabled shows the fields of simple classes and structs (with only public data fields) as a table and inline in context (file/group/namespace/class) provided this context is documented.
- When using the server based search engine (SEARCHENGINE=YES and SERVER_BASED_SEARCH=YES) doxygen now advertises a opensearch provider for your project, that allows integrating the search directly in the search field of the browser (thanks to Phil Lello for the patch).
- id 2755: Added new option CITE_BIB_FILES and LATEX_BIB_STYLE and a new command \cite, allowing you to make references to literature (as defined in one or more .bib files). This also works for output formats other than LaTeX. The tool bibtex is required for this to work though. Thanks to David Munger for the initial patch upon which this feature is based.
- PHP namespaces are now shown as A\B in the output.
- Added new \snippet command that can be used to include marked sections from a source file. See \snippet for more info.
- Added translation support for Armenian, thank to Armen Tangamyan. and included translation updates for a number of languages.

### Bug fixes

- Fixed a couple of potential race conditions found by Helgrind while running dot from multiple threads.
- Graphs did not appear when enabling both INTERACTIVE_SVG and HTML_DYNAMIC_SECTIONS.
- PDFs generated by newer versions of dot (i.e. 2.28) did not appear in the output, because doxygen failed to extract the bounding box.
- Improved call graph and cross-reference support for Python.
- INTERACTIVE_SVG now also works with IE9 if the html file extension is set to xhtml.
- Fixed several cases where the LaTeX output could produce too long lines.
- id 1837: Putting two functions in the same group that only different in the number of template arguments did not work.
- id 2483, 3199: Fixed proper encoding of multibyte output in RTF depending on the code page (thanks to Hirao for the patch).
- id 2867: The .spec file in the source distribution did not get updated to the latest version.
- id 2872: Fortran: Continuation character was not recognized in fixed format code.
- id 2887: Fortran: @param checking was not case insensitive.
- id 3168: Fixed problem combining @cond with preprocessor directives.
- id 3343: Using "struct A : C, D {};" showed a private inheritance relation for D.
- id 3410: Some links to typedef where pointing to the typedef'ed class instead.
- id 3781: Anonymous enums caused an invalid entry in the LaTeX TOC.
- id 3827: Deriving from an unknown template class could cause the class to appear with a -g postfix in C#
- id 3883: Fortran: Fixed issue handling private subroutines.
- id 3990: LaTeX now starts a new page when starting a new module.
- id 4014: Fortran: Prefix of function was overwritten and the word 'function' not specified.
- id 4050: Fortran: Included fix for using collaboration diagrams.
- id 4158: Added PHP support for namespace with curly braces.
- id 4174: Fortran: Improved handling of semicolons.
- id 4178: Fortran: Added support for "type is".
- id 4188: A macro added to a group appeared twice in the group documentation if was also made related to a class using \relates.
- id 4221: Fixed problem were the search box was missing when using a custom HTML header.
- id 4227: Fixed unterminated img tab in the XHTML output.
- id 4228: Fixed problem handling MSCFILE_DIRS option with multiple paths.
- id 4229: Included patch to sort overloaded members by appearance in the code.
- id 4230, 4231: Putting an autolist inside a @todo, @bug or similar section did not work anymore.
- id 4232: Referring to a logo with a relative path, caused a broken image target when using a custom HTML header.
- id 4235: Fixed HTML rendering problem on older browsers when GENERATE_TREEVIEW was enabled.
- id 4242: Linking to a section on the main page could result in a broken link when GENERATE_TREEVIEW was enabled.
- id 4243: Fixed invalid warning when using @deprecated method with default values for parameters.
- id 4245: A function made related using @relates could end up in the wrong class if there was already a method with a matching argument list in that other class.
- id 4254: Return types containing multiple *'s ended up in the output with only one * in some cases.
- id 4267: Fixed problem with alias substitution if the alias had more then 9 parameters.
- id 4268: For nested anonymous structs @xx markers could appear in the output.
- id 4270: Added compilation support for macOS 10.7 (aka Lion).
- id 4278: Fixed issue printing HTML pages when the GENERATE_TREEVIEW option is set to YES.
- id 4281: Fixed broken link to an undocumented namespace.
- id 4291: Fixed potential crash while parsing Fortran code.
- id 4292: Fixed problem parsing comment which included an unterminated alias within quotes (i.e. "\word{")
- id 4294: Lines starting with . did not appear in the man page output.
- id 4296: Fortran: Fixed text is detailed function section.
- id 4297: When enabling INTERACTIVE_SVG wide graphs are now also fit to the screen width.
- id 4304: Added missing space between parameter type and name in the RTF output.
- id 4305: Use background-color instead of background in doxygen.css.
- id 4313: Fixed potential segfault while creating man pages.
- id 4321: Fortran: add a space to "type" in argument list.
- id 4324: Fixed problem handling include guard when multiple blocks guarded by the same guard were used in a header file.
- id 4327: Fortran: Unified handling of @params at various places.
- id : make clean failed on a system without qmake.
- id 4332: Fixed compile issue for HP Itanium.
- id 4339: Fortran: Interface was seen as a class with constructor / destructor.
- id 4341: Using the word "property" as a type in C caused wrong results.
- id 4340: Fortran: fixed issue parsing function type that looked like C function pointers.
- id 4345: Fortran: Fixed parse issue when using variable name starting with the word interface.
- id 4348: Improved error handling for empty html style list.
- id 4352: Fixed case where %s could end up in a warning message.
- id 4355: Methods of Objective-C categories defined in an .m file are now marked as private.

# Doxygen Release 1.7.4

(release date 28-03-2011)

### Changes

- doxygen -w html now reads the default Doxyfile even if not specified explicitly
- doxygen -w html now produces a template header and footer that can be used independent of the configuration options used.

### New features

- New option INLINE_GROUPED_CLASSES that when enabled shows grouped classes inside the group documentation, instead of on a separate page.
- Included updates for the Italian and Russian translation.
- id 4121: Added option HTML_EXTRA_FILES which makes it easier to copy additional files to the HTML output and also add them to the index files.
- id 4162: Included patch that adds new LATEX_FOOTER option to customize the end of refman.tex in the LaTeX output.

### Bug fixes

- id 1067: Jumping to a @section did not work in the RTF output.
- id 2868: Fortran: included patch for supporting multiple argument declarations on one line.
- id 2872: Fixed problem with line continuation in Fortran.
- id 3217: %A::B now prevents a link for A::B, instead of only for A and generating a warning that ::B cannot be linked.
- id 3561: Fortran: Added support for extends keyword.
- id 3771: Added support for inlining code in the VHDL output.
- id 3872: Fortran: argument name starting with a reserved word was not handled properly.
- id 4009: Fixed problem parsing an array of character literals.
- id 4028: Links to file members were not made when found in tag files.
- id 4066: The Doxyfile documentation contained some very long lines.
- id 4067: Double quote in page or group title broke treeview.
- id 4077: Improved documentation for DOT_IMAGE_FORMAT option.
- id 4079: Added documentation to warn for consequences of using HTML_HEADER.
- id 4080: Fixed problem autolinking to struct field using #S::a
- id 4085: using @dot...@endot produced an image referenced with absolute path.
- id 4091: \mscfile did not work properly for LaTeX output.
- id 4095: Fixed problem where #include could cause phantom __pad__ members to appear in the output (appeared on Windows only).
- id 4103: Options PROJECT_LOGO and PROJECT_BRIEF were missing from the manual.
- id 4105: Fixed problem parsing PHP "use" statement when the argument did not have a namespace scope.
- id 4110: Included fix for proper splitting of multiple arguments given to the QHP_CUST_FILTER_ATTRS option.
- id 4112: Long error messages could cause memory corruption.
- id 4116: XML: switched indent option to no in the combine.xslt script.
- id 4117: Comment with XML style list of type table was not rendered properly.
- id 4118: Added support for overloading of C# indexer operators.
- id 4119: Internal section marked with @internal was not shown as such anymore in the XML output.
- id 4120: PHP: Fixed parse problem referring to class in global namespace.
- id 4124: Included patch by Haffmans to make the custom header and footer independent of the chosen config options.
- id 4127: Included fix to prevent a warning in the server side PHP search script.
- id 4128: Included patch to fix broken hyperlink to page entry in xreflists.
- id 4136: Header of \page was wrong in Man page output.
- id 4137: #include to other directories were not always linked.
- id 4140: Using "use Foo\Foo;" in PHP could cause doxygen to hang.
- id 4142: In some cases the HTML output could contain an extra </p>.
- id 4147: Tooltips with HTML entities could be wrongly truncated.
- id 4159: Include graphs could be incomplete.
- id 4169: Fixed problem with macro expansion.
- id 4176: Fixed potential crash when generating a warning for void f(int %x) style parameter, which is valid in C++/CLI.
- id 4177: Included patch to enabled LargeAddressAware for Windows builds.
- id 4175: Fixed cases where FILE_VERSION_FILTER was called for dummy files with name "generated".
- id 4180: Fixed argument matching issue when one of match candidates was a typedef of a method pointer.
- id 4210: mscfile tag was closed with dotfile in the XML output.
- doxygen -w html now ignores the values for HTML_HEADER and HTML_FOOTER found in the config file.
- Importing a group via a tag file could overrule a local group with the same name even when EXTERNAL_GROUPS was disabled.

# Doxygen Release 1.7.3

(release date 03-01-2011)

### Changes

- Added a header for each HTML page above the navigation menu, showing the project name and logo and a short description (all optional). Disabling the index (with DISABLE_INDEX) still shows the new header (you can still customize this using HTML_HEADER). This now works nicely in combination with GENERATE_TREEVIEW = YES and/or SEARCH_ENGINE = YES.
- Redesigned the treeview feature. Instead of using frames, the navigation tree is now loaded on each page dynamically. This allows bookmarking a page and always keeps the top menu visible. Also the current item is automatically highlighted in the tree. Also updated the icons in the treeview to match the overall look'n'feel. Note: if you now use a custom HTML header, please update it using doxygen with the -w and the edit the default header.

### New features

- id 2734: Added SVG support to doxygen's dot output (setting DOT_IMAGE_FORMAT to svg now works as expected)
- Added control to the wizard to configure the color of the output visually.
- Added options to specify project synopsis and select a project logo to the wizard.
- Added option PROJECT_LOGO which can be used to specify an image which will be shown in the header of each HTML page along with the project name (PROJECT_NAME option).
- Added option PROJECT_BRIEF which can be used to specify a brief description which will be shown in the header of each HTML page just below the project name.
- Added new option FILTER_SOURCE_PATTERNS which can be used in combination with FILTER_SOURCE_FILES to filter files used for the source browser based on file extension, which can overwrite the filter set by FILTER_PATTERNS and/or INPUT_FILTER.
- Added new option STRICT_PROTO_MATCHING which is disabled by default, and makes the parameter matching to be less strict, resulting in fewer "No matching class member found" warnings.

### Bug fixes

- id 1666: code blocks with using directives did not get hyperlinked.
- id 1770: enum values with bitfields did not get parsed correctly.
- id 3207, 3944: Included a patch that fixes a couple of Fortran issues (thanks to Albert).
- id 3731: Fixed problem handling @cond..@endcond in Fortran code.
- id 3779: Scope was missing in Tokens.xml when using docsets.
- id 3870, 2891: Applied patch to avoid stripping prefixes for Fortran subroutines.
- id 3895: allow label before end statement in Fortran
- id 3956: </see> was not handled properly in comment block.
- id 3980: Fixed potential crash for empty verbatim section.
- id 3983: closing brace of a function with one parameter has wrong color in HTML.
- id 3985: Added support for Fortran TYPEs with language bindings. (thanks to a patch by Daniel Franke)
- id 3989: An explicit link request such as #blah did not longer produce a warning if no symbol named blah was found.
- id 4002: warnings in "inbody" documentation were shown with "unknown" file name.
- id 4006: Titles customized via the layout file did not appear in the title page and navigation tree, only in the top menu.
- id 4010: Fixed problem resolving typedef.
- id 4012: Fixed a problem were // inside a code block got removed.
- id 4015: Added support for escaping :: by using \:: (or @::)
- id 4018: #include with relative path to parent dir did not get hyperlinked.
- id 4019: Removed double definition of docParamName in compound.xsd.
- id 4023: C++/CLI Finalizer methods were not parsed properly.
- id 4036: Objective-C method names can now be used as the the first argument of \ref.
- id 4037: Fixed a couple of problems in the compound.xsd schema used for XML output.
- id 4038: DISTRIBUTE_GROUP_DOC now works again for enum values.
- id 4047: Improved matching of typedef'ed array parameter and non typedef'ed array parameter.
- id 4056: Added a number of fixed for Fortran interfaces.
- id 4057: Handle files with the .for extension as Fortran.
- id 4060: Fixed error in the grouping documentation.
- Fixed line number sync problem when using Objective-C #import statements.
- Fixed problem handling /** @cond */ in the preprocessor.
- Member groups could get reordered in the output.

# Doxygen Release 1.7.2

(release date 09-10-2010)

### Changes

- Changed the default font of the LaTeX output to helvetica.
- Changed the way parameters and return values are represented in the LaTeX and RTF output. They are now listed using tables.

### New features

- added support for Apple's block object extension for C/Obj-C/C++.
- added support for detecting Python constructors and destructors.
- id 3855: Added \endinternal command that can be used to force the end of a section started with \internal.
- id 3084: Added parsing support for PHP 5.3+ style namespaces.
- id 3389: added \mscfile command which can be used to insert a message sequence chart given a .msc file. Also added a new config option MSCFILE_DIRS to provide directories were msc files are searched (Thanks to Adrien for the patch).
- Added support for type specifiers for documenting PHP parameters, format: "@param type $paramname docs"
- Added support for rendering formulas in the HTML output using MathJax instead of using prerendered bitmaps. For this purpose the options USE_MATHJAX and MATHJAX_RELPATH were added.

### Bug fixes

- id 1666: Fixed case where using of a namespace did not work inside an example.
- id 2097, 2669: /// were not stripped from formulas and \dot..\enddot
- id 3190: dropped support for a4wide paper format for LaTeX, since it is on the LaTeX taboo list.
- id 3261: Behavior of CLASS_DIAGRAM=NO in combination with HAVE_DOT=YES, was not properly documented.
- id 3332: Python comments for next class or method could end up in code of a method/class when enabling INLINE_SOURCES.
- id 3688: Fixed problem handling nested classes in Python.
- id 3804: removed unexpected warnings about undocumented return types
- id 3824: Undefined function macros could cause constant expression errors.
- id 3826: updated copyright statement in PDF docs.
- id 3827: C# generics appeared with -g extension in the output in some situations.
- id 3829: Fixed parsing problem for "int &foo1(),&foo2();"
- id 3830: Link to destructor was wrong in the member index.
- id 3836: Fixed problem where struct description gets added to variable of struct type.
- id 3837: Anchors were missing in the Qhp index for members.
- id 3838: Fixed potential crash due to uninitialized line number.
- id 3839: closed.png was wrongly linked when GENERATE_SUBDIRS and HTML_DYNAMIC_SECTIONS were enabled.
- id 3840: Function macro was not handled properly when there was a line continuation directly after the name.
- id 3841: Linking to a class via a tag file did not work if the class was in an undocumented namespace.
- id 3843: Fixed a couple of typos in lodepng.h
- id 3848: Graph legend image was missing form the index files.
- Fixed a number of typos in the config file documentation (thanks to Jens Schweikhardt)
- id 3854: Some enums were not cross-referenced.
- id 3857: Missing \endcond could cause preprocessor issues in next file(s) to be parsed.
- id 3862: a function definition in a namespace, documented in the header did not always get cross-referenced.
- id 3865: Removed superfluous <td></td> from parameter list in HTML output.
- id 3866: Unterminated comment could crash doxygen.
- id 3873: Inherited documentation was only included for the last derived class in case of multiple inheritance.
- id 3877: In the HTML output </div> was missing for built-in class diagrams.
- id 3876: References in example files with underscores were wrong.
- id : When using Japanese characters mixed with ASCII characters doxygen incorrectly ended the brief description with a dot.
- id 3886: setting MULTILINE_CPP_IS_BRIEF to YES, cause /// to appear in the output.
- id 3890, 3235: EXTENSION_MAPPING did not work if a mapped language was handled by the same parser as used for the original extension.
- id 3894: Fixed bracket bug in LaTeX fancy headers.
- id 3896: Allow hyphen in key argument of \xrefitem.
- id 3898: \copydoc did not work for array type arguments (e.g. int[]).
- Use \dotfile did not produce the correct map file, so URLs in dot files did not work.
- id 3907: #define in files only found via INCLUDE_PATH were not correctly handled.
- id 3918: auto brief description ending with .) cause the ) to end up in the detailed part.
- id 3919: Fixed encoding issue for the Spanish translation.
- id 3927: Fixed segmentation fault in case of very long errors.
- id 3930: Fixed type in search page of the documentation.
- id 3931: Fixed problem detecting include guard.
- id 3936: Made file extension to parser mapping case insensitive.
- id 3937: Latex makefile clean target used rm command also for Windows.
- id 3939: the EXCLUDE_SYMBOLS option was missing form the online docs.
- id 3962: \htmlinclude and \verbinclude ended the brief description.
- id 3963: Inconsistent behavior when a brief description was given following by a detailed comment block with JAVADOC_AUTOBRIEF enabled.
- Fixed a number of typos in the documentation (thanks to Albert)
- Fixed potential hangup when scanning directories defined as symlinks to absolute paths.
- HTML attributes other than src were not copied for the <img> tag.

# Doxygen Release 1.7.1

(release date 25-06-2010)

### Changes

- id 3803: Made warning and error messages appear with lower case "warning:" and "error:" prefix to make it easier to use the messages from Visual Studio.

### New features

- id 3809: Added new config option FORMULA_TRANSPARENT which allows selecting between transparent (YES) or non-transparent (NO) PNGs for formulas in the HTML output.
- Update for Turkish translation.

### Bug fixes

- id 2959: Inheritance relation for a C# class deriving from a generic class was not handled correctly.
- id 3105: Changing DOT_IMAGE_FORMAT did not cause the graphs to be regenerated.
- id 3334: A field of the form "enum E *p" was ignore.
- id 3549: Hide scope name was not working properly for todo items inside class members, where the class was inside a namespace.
- id 3764: In dot graphs now also @ref worked (previously only \ref was supported).
- id 3802: Fixed error when compiling doxygen for Solaris 8.
- id 3804: Removed bogus warning about undocumented return type for define when WARN_NO_PARAMDOC was enabled.
- id 3805: Fixed parsing support for a function that returns a struct definition.
- id 3806: Doxygen could hang when using \copydoc in a function with \param.
- id 3807: Using //!< after a #define no longer worked.
- id 3808, 3816, 3820: html help compiler (and also the Qt help compiler) was called before all dot images were generated.
- id 3810: Using a auto-list in combination with \subpage cause the items to be inlined.
- id 3812: Fixed problem parsing a @param command where the text part started with a formula.
- id 3813: Added some instructions how to document Fortran code.
- id 3814: Using \var multiple times in a comment block did not work properly.
- id 3818: Tooltips could get wrongly truncated when multi-byte UTF-8 characters were used.
- id 3819: Argument matching failed for typedef in another namespace.
- Fixed crash situation while handling commands inside a @ref section.
- Treeview icons were missing in the HTML output when setting GENERATE_TREEVIEW to NO and USE_INLINE_TREES to YES.

# Doxygen Release 1.7.0

(release date 15-06-2010)

### Changes

- Changed the look of the HTML output.
- Made several internal changes that should have a positive effect on the overall performance.

### New features

- The color of the HTML output can now easily be adjusted using three new options: HTML_COLORSTYLE_HUE, HTML_COLORSTYLE_SAT, and HTML_COLORSTYLE_GAMMA, which control respectively the hue, saturation, and gamma of all elements in the HTML output.
- Moved dot invocations to the end of a doxygen run. Doxygen will now run multiple instances of dot in parallel (for better CPU utilization on multi-core systems). The new config option DOT_NUM_THREADS determines the number of threads used (were 0 is auto-detect).
- Added option EXT_LINKS_IN_WINDOW which controls whether or not links to symbols imported via tag files will be opened in a new window.
- Included various language updates (thanks to Petr for coordinating).
- Included patch by Stefan Oberhumer that allows customizing the way parameter lists are shown in the LaTeX output.

### Bug fixes

- id 1666: source browser could miss links for used namespaces.
- id 2255, 3796: \if and \endif did not work properly inside auto lists.
- id 3139: No warning for missing return type documentation even though WARN_NO_PARAMDOC was set to YES.
- id 3341: Handling of nesting \defgroup was not always working properly.
- id 3355: ø was not translated correctly in the LaTeX output.
- id 3401: Use relative paths for mscgen diagrams to avoid errors in the LaTeX output.
- id 3491: The "Use current settings at startup" feature of Doxywizard was broken.
- id 3500: Links in the search results were broken if they pointed to symbols imported via tag files using an absolute path or URL.
- id 3504, 3735: Fixed man page output problem when using @par.
- id 3506: A C comment before a #endif caused the preprocessor statement to be ignored.
- id 3547: When HIDE_SCOPE_NAMES was enabled also the scope for nested classes was stripped. Now only the namespace scope will be stripped as before.
- id 3575: Autolinks to namespace members did not work if an explicit # or :: was used.
- id 3591: Slashes inside strings in java annotations were not handled properly.
- id 3628: Fixed the "show html output" button in doxywizard for Windows when IE was set as the default browser.
- id 3652: Formatting was lost for section copied with \copydoc.
- id 3653: Fixed C++ parse issue for "class : public base {} var;" construct.
- id 3685: Generated HTML footer file did not have UTF-8 encoding and the relative path marker needed when using CREATE_SUBDIRS = YES.
- id 3689: Fixed parsing problem with try-functions having multiple catch handlers.
- id : Specialized private template member function appeared as public.
- id 3695: Include dependency graphs were sometimes wrong.
- id 3696: Some lines in the generated Doxyfile where too long.
- id 3697: Fixed auto-link problem for certain URLs.
- id 3698: Improved handling of ellipsis inside brief description when JAVADOC_AUTOBRIEF is enabled.
- id 3700: Accessibility of macros was not handled properly in all cases.
- id 3699: Enabling REFERENCED_BY_RELATION without SOURCE_BROWSER could result in broken links.
- id 3701: Fixed problem handling @copydoc for function operators.
- id 3703: A raw C# string constant could end up in the next string.
- id 3709: subpages were not part of the XML output.
- id 3711: First list item in the paragraph after a @todo item was not parsed properly.
- id 3718: Generated man page links were having a heading underscore.
- id 3720: Made include guard detect a bit more strict to avoid false positives.
- id 3722: The labels of CVS tags were missing a colon.
- id 3719: Fixed problem parsing Q_PROPERTY with template type and spaces.
- id 3729: Made the date string in the HTML footer translatable, along with some other sentences on the directory pages.
- id 3708: Inline attribute was shown also for non-inline template members.
- id 3733: Fixed problem handling @copy for operators with const qualifier.
- id 3738: Fixed problem handling '"' inside comments.
- id 3740: Made the LaTeX output a bit less spacious using \input.
- id 3736: Fixed preprocessor issue where a macro that was redefined was not resolved.
- Fixed character encoding issue on the search results page.
- id 3734: C# namespaces are now extracted also without comment block (the language spec does not allow XML documentation).
- id 3742: included patch that fixes some typos in the code.
- id 3744, 3679: Pages with an underscore in the label generated a file name containing two underscores.
- id 3747: text of the form something.symbol got autolinked when symbol had a global scope.
- id 3748: Call graph could be wrong when local variable has the same name as a global function.
- id 3750: Added documentation patch on how to create URL links with custom text.
- id 3751: Doxywizard now removes non-existent files from the recent list and has an option to clear the list completely.
- id 3752: A macro defined via PREDEFINED did not always overrule a macro definition in the code.
- id 3759: Enabling call graphs produced invalid XHTML output.
- id 3766: Non ascii characters in file or directory names caused problems on Windows.
- id 3768: An ALIAS with parameters spanning multiple lines caused problems with /// style comments.
- id 3775: Included patch to prevent image overflowing the page in the LaTeX output.
- id 3783: Fixed problem using EXTENSION_MAPPING for C# (thanks to Vsevolod Kukol for the patch).
- id 3786: Links to external files could be wrong when CREATE_SUBDIR was enabled.
- id 3787: /* characters in a print broke parsing within an conditional section.
- id 3797: \if and \endif did not work properly inside HTML tables.
- Using @include in combination with LATEX_SOURCE_CODE caused wrong output.
- Included a patch by Guido Tack which adds two new options for docsets (DOCSET_PUBLISHER_ID and DOCSET_PUBLISHER_NAME) and fixes an issue with linking to docset members.
- Included patch by Stefan Oberhumer to support escaped {}'s in alias definition and parameters.

# 1.6 Series

# Doxygen Release 1.6.3

(release date 21-02-2010)

### New features

- id 3654: Using \dir without argument will create directory documentation for the directory in which the \dir command was found.

### Bug fixes

- id 3467: perlmod output was wrong when using paragraph commands.
- id 3571: Included patch for VHDL.
- id 3617: Replaced size attribute of hr tag by class attribute in the HTML output.
- id 3618, 3623, 3639: Using \dot produced "Error opening map file" or could even crash doxygen.
- id 3619: Loading a new config file in doxywizard did not reset all values of a previously loaded config file.
- id 3621: Grouped members with todo-like items were shown with "GlobalScope" prefix.
- id 3622: Fixed RTF rendering problem with group index.
- id 3624, 3675: Added missing line break in LaTeX output.
- id 3627, 3648: The title of pages whose label had an underscore was not shown
- id 3631: Include guard not starting with #ifndef SOME_GUARD_H were not recognized as such.
- id 3632: Setting SEARCHENGINE to YES and GENERATE_HTML to NO caused error that search results directory could not be created.
- id 3635, 3655: typedef'ed enums or struct with the same as the typedef did no longer show up.
- id 3636, 3643: Related pages (manual and automatic like the todo page) caused broken links when SHORT_NAMES was enabled.
- id 3638, 3644: Automatically generated related pages (like the todo page) caused broken links when CREATE_SUBDIR was enabled.
- id 3641: comments after #if could cause next function call not to be cross-referenced.
- id 3642: \internal inside a conditional section caused warning.
- id 3646: Using \internal inside a \section did not end at the next \section as documented.
- id 3647: \internal command produced message with .: in the LaTeX output.
- id 3649: HTML Tables with custom attributes were not rendered properly.
- id 3651: Man pages with underscore got double underscore in the name.
- id 3658: Buffer overflow when using non-ascii characters as class name.
- id 3662: Macro definition had effect even if the definition was not actually included.
- id 3670: config.h and config.l where missing from the SVN repository.
- id 3672: Todo items were merged for overloaded functions.
- id 3673: C# enum values with @todo items were missing from the todo list.
- id 3678: Removed bogus warning when using <br/> tag.
- Fixed parsing problem for function pointer type starting with "typedef enum".
- Preprocessor did not take EXCLUDE_PATTERNS into account, which could cause parse issues when importing a .tlb file.

# Doxygen Release 1.6.2

(release date 30-12-2009)

### Changes

- id 3513: Autolinking to all-lower case words has been disabled, in accordance with the documentation.
- id 3608: Doxygen now allows any extension supported by dot via the DOT_IMAGE_FORMAT option.
- Switched back to using PNGs for built-in diagrams and formulas using the Lode Vandevenne's PNG encoder.

### New features

- Added new option SERVER_BASED_SEARCH to re-enable searching via a PHP enabled web browser instead of only using javascript locally. This method better scales to larger projects and allows full text search.
- Added new options GENERATE_ECLIPSEHELP and ECLIPSE_DOC_ID to generate an index file that can be used to embed doxygen's HTML output into Eclipse as a help plugin (thanks to a patch by Ondrej Starek).
- Wrote new documentation regarding the methods of searching in the HTML output.
- Included patch by Ed Rosten to render formulas with proper anti-aliasing on non-white backgrounds using transparency.
- Add new option FORCE_LOCAL_INCLUDES to make the default #include appearance in class documentation with "" i.s.o sharp brackets.
- id 3156: Make \addindex put keywords into the .qhp file.
- id 3519: #cmakedefine is now treated the same was as #define (for users of the CMake build system).
- Added compilation support for OSX 10.6 (aka Snow Leopard)
- Included language update for Brazilian.

### Bug fixes

- Doxywizard did not warn when it failed to save its config file.
- id 3136: Empty class definitions were not included in Tokens file for docsets.
- id 3187: GENERATE_QHP details was considered even though it is not defined.
- id 3223: Comment parser could get stuck in certain cases.
- id 3254: GENERATE_QHP should generate keywords for classes in generated *.qhc.
- id 3273: Fixed two issues in the compound.xsd schema definition.
- id 3491: Fixed wrong default destination directory.
- id 3492: Fixed problem with distributing member group documentation for anonymous member groups.
- id 3496: GENERATE_TODOLIST=NO and friends not longer worked.
- id 3505: Added support for UCS-2 encoded input files.
- id 3508: Fixed problem parsing fully-qualified java annotations.
- id 3511, 3539: Fixed problem handling quotes.
- id 3517: Not all configuration options appeared in the index of the documentation and some were not sorted correctly.
- id 3520: formulas had the .png extension while they were gifs.
- id 3525: Fixed recursive lockup while resolving template relations.
- id 3528: Doxygen's preprocessor got confused when /**/ appeared as part of a macro definition.
- id : Removed obsolete option USE_WINDOWS_ENCODING from the docs.
- id 3531: RTF output was missing a new paragraph for brief member descriptions.
- id 3536, 3542: Code reformatting done for the LaTeX output could break multibyte UTF-8 characters causing invalid output.
- id 3537: Using multibyte characters in a page label caused invalid output.
- id 3540: Documented the interaction between LATEX_CMD_NAME and USE_PDFLATEX.
- id 3548: Todo items for two inner classes with the same name where collapsed together in the todo list when HIDE_SCOPE_NAMES was enabled.
- id 3549: Scope was not hidden for members in the todo list even though HIDE_SCOPE_NAMES was set to YES.
- id 3562: Struct variable with explicit struct keyword got labeled with [read] attribute.
- id 3545: PHP was not parsed properly when it appeared in a <script language="php"> section.
- id 3550: Fixed problem matching base class member against the member in the derived class.
- id 3551: Makefile for Docsets now honors DESTDIR.
- id 3560: Made browsing for HHC_LOCATION via the wizard yield an absolute path.
- id 3564: Changed default for CHM_INDEX_ENCODING to CP1250 to avoid issues in a Solaris environment.
- id 3527: Removed unnecessary paragraphs from HTML table cells.
- id 3552: referring to page labels of the form a-1 did not work.
- id 3565: Code generators could produce extra </span> tags.
- id 3568: Included the PHP search engine again (with new config option SERVER_BASED_SEARCH to enable it)
- id 3572: Doxygen produced invalid Latex output for RCS tags.
- id 3573: Fixed issue with include dependency tracking that could cause macro expansion not to work properly.
- id 3576: Fixed issue with VHDL call graph (thank to Martin Kreis for the fix).
- id 3577: Fixed problem parsing C++ function-try-blocks.
- id 3578: #include inside a class could cause line numbers to be off.
- id 3579: Fixed parsing problem skipping over /**/ comment.
- id 3584: Fixed problem handling Javadoc style {@code ... } blocks.
- id 3585: Special commands did not work in the title of the @mainpage.
- id 3593: Fixed problem parsing files that start with UTF-8 BOM.
- id 3596: Fixed problem parsing friend function with explicit scope.
- id 3599: Fixed perlmod generation issue.
- id 3613: Project number was not centered anymore in the HTML output.
- id 3607: Using %word in a page title incorrectly did show the %.

# Doxygen Release 1.6.1

(release date 25-08-2009)

### Bug fixes

- Fixed file handle leak when parsing include files. Also fixed the logic that determines whether or not an include file need to be parsed.
- Search result pages were not using UTF-8 character encoding.
- Search results pointing to external references were not linked correctly.
- id 966: Multiline second argument of \ref caused unexpected " warning.
- id 3479: Feeding invalid XML could crash doxygen's DBus XML parser.
- id 3481: Include patch to fix problem with building rpms.
- id 3482, 3486: Doxywizard problem with GENERATE_TREEVIEW.
- id 3488: SHOW_USED_FILES now works again.
- id 3489: xrefitems (like @todo) did not appear in the list when found in comments marked with @enum or @name.

# Doxygen Release 1.6.0

(release date 20-08-2009)

### Changes

- id 3372, 3012: Replaced the PHP based search engine by a JavaScript/DHTML based one. As a result the search feature no longer requires a HTTP server with PHP enabled to be usable. Searching is limited to symbols though, but it is now possible to filter on symbol type.
- id 2852: Make the HTML output XHTML 1.0 compliant.
- id 3365: Objective-C categories are now merged with their base class, unless there is no base class.
- Member groups with the same header within the same scope are now merged. This also works for Objective-C categories.
- Changed the LaTeX style sheet such that more of the markup is configurable. Please update your style sheet if you use a custom one.
- id 3415: Treat \details inside a brief description as a new paragraph command.
- Split GENERATE_TREEVIEW into two separate options: GENERATE_TREEVIEW and USE_INLINE_TREES.
- Removed the dependencies on libpng and libz, doxygen now generates gifs again for internal class diagrams (like it did 7 years ago ;-)

### New features

- Added option SORT_MEMBERS_CTORS_1ST, which when enabled places the constructors and destructors first in an otherwise sorted list.
- id 3377: Applied patch by Tobias Hunger that adds support for documenting DBus XML interface descriptions.
- Included QtHelp patch by Karsten Heimrich which adds missing reference and keyword for methods.
- Included updates for the Korean and Polish translation.

### Bug fixes

- id 947: Fixed preprocessor handling for C# code.
- id 966: -- was not rendered correctly for LaTeX output
- id 1327: Missing link in todo page.
- id 1837: Two template functions that only differed in the number of template arguments were seen as the same function.
- id 2505: HIDE_UNDOC_CLASSES did not work properly.
- id 2786: Fixed problem with syncing the information of declaration and definition in the presence of an extra forward declaration in the source code.
- id 2875: For C# enum values were merged together if the same enum name was used in different scopes.
- id 2894: Included patch to handle PROGRAM statement in Fortran as subroutines/functions.
- id 3104: Remove spacing around brackets for Obj-C protocols.
- id 3131: Included patch for fixing wrongly labeled items in docsets.
- id 3170: Improved parser to better disambiguate nested templates ending with >> from the bitshift right operator.
- id 3251: Fixed matching problem for method in nested class, where the outer class is a template.
- id 3379: Segfault/realloc error when a very long path was used.
- id 3388: documented #define with guard caused wrong documentation.
- id 3385: Doxywizard could crash on exit in some cases.
- id 3392: Regression: a struct ivar in ObjC class screws up method identification.
- id 3396: Included patch that avoids trailing spaces in the generated Doxyfile template.
- id 3409: Included VHDL patch by Martin Klein
- id 3420: Fixed case where matching declaration and definition did not work correctly.
- id 3418: The "more..." link for files was broken, since the anchor was not generated.
- id 3433: Fixed parsing problem when an unpaired apostrophe appeared in a Python comment.
- id 3446: Included fix for doxywizard makefile.
- id 3447: Added missing virtual destructor to CompAccept base class.
- id 3450: Fixed segmentation fault for specific case in PHP code.
- Fixed some issues building for Windows.
- id 3457: Fixed problem handling strings like a"\b" within a comment.
- id 3459: Fixed problem matching explicitly scoped parameter in a template class.
- id 3473: A namespace with name "internal" (C++/CLI keyword) could confuse doxygen's C++ parser.
- id 3477: @optional/@required attributes for Objective-C were missing from the XML output.

# 1.5 Series

# Doxygen Release 1.5.9

(release date 30-04-2009)

### New features

- Added new option LATEX_SOURCE_CODE, which when enabled adds source code also to the latex output (typically to be used in combination with SOURCE_BROWSER)
- Included updates for the Finnish, Romanian, Korean, German, Japanese, and Hungarian translation.
- Added translation support for Esperanto.
- id 579630: Added class attribute to the \todo and \bug HTML code so they can be customized via CSS.
- id 578740: Added support for Æ and æ characters.

### Bug fixes

- id 395169: Some links via tagfiles were not correct in combination with CREATE_SUBDIRS=YES
- id 539080: Having the same comment for the declaration and definition of a function could result in duplicate documentation in case the indentation level was different.
- id 566713: Dot font was not removed even though DOT_CLEANUP was YES.
- id 566925: Fixed problem resolving symbolic links.
- id 567044: Fully qualified name was not shown correctly for nested classes.
- id 567375: Fixed parse problem for typedefs with redundant braces.
- id 567535: Fixed problem when parsing operator%= for CLI/C++ code.
- id 567777: Fixed problem with latex output when using enums.
- id 567990: Doxygen could crash when there was a symlink in project.
- id 568237: Non-ascii values entered where not saved according to the INPUT_ENCODING.
- id 568505: Fixed build problem for old Linux distributions.
- id 569478: Fixed line continuation issue with the Fortran parser.
- id 570960: C++ class defined in a .mm file was sometimes parsed as Objective-C code.
- id 571013: In the wizard, editing a text field in the middle of the text in the expert tab caused the cursor to jump to the end of the line.
- id 571096: Fixed Objective-C parsing problem when multiple protocol forward declarations are put on one line.
- id 571990: Fixed compiler issue with portable_iconv by moving the function to a C file.
- id 572560: Fixed parse issue when a #define is inside an enum.
- id 572740: Fixed problem parsing C++ comments using line continuation.
- id 573057: Included update for Swedish translator and changed the language code from SE to SV to comply with ISO 639.
- id 578382: When referring to a static variable or function doxygen will now look at the file context in case of ambiguity.

# Doxygen Release 1.5.8

(release date 27-12-2008)

### Changes

- Completely rewrote the doxywizard. Main changes:
  - It is now based on Qt version 4. (4.3 or higher is required)
  - Different layout that allows easy switching between wizard and expert mode, without losing settings.
  - Running doxygen can be done without first having to save the configuration file.
  - For HTML output, there is a button to show the results in the default browser.
  - Option to change the default configuration that is used when you first start the wizard.
  - Non-default options are shown with red label, and there is context menu to reset them back to the default.
- Included Qt help update by Sebastian Pipping introducing three new options to define custom filter sections and attributes: `QHP_CUST_FILTER_NAME`, `QHP_CUST_FILTER_ATTRS`, `QHP_SECT_FILTER_ATTRS`. Doxygen now directly generates the indices needed by the qthelpgenerator. Qt customers can have a look at issue 28 of the Qt Quarterly for more information.

### New features

- id 131496, 522488, 541649, 554800: Add new option EXTENSION_MAPPING, which can be used to change the mapping of file extension to language parser, e.g. defining `EXTENSION_MAPPING = f=C` will make doxygen parse files with the `.f` extension as if it were C files.
- Added support for Vietnamese (thanks to Dang Minh Tuan)
- Thanks to Emin Ilker Cetinbas doxygen can now also produce Turkish documentation.
- id 143218: It is now possible to add the direction attributes normally used with the @param command to document parameters inline, e.g. `void foo(int v /**< [in] input parameter docs */);`

### Bug fixes

- TYPEDEF_HIDES_STRUCT did not work correctly if the typedef did a forward declaration of the struct/union.
- id 153222: Fixed issue following recursive symbolic links.
- id 423223: Detailed description was not visible for group functions when SEPARATE_MEMBER_PAGES was enabled.
- id 437346: Fixed issue handling multibyte characters in the RTF output.
- id 475377: Improved error handling in case of character encoding problems.
- id 486747: Inherited typedefs were not resolved properly.
- id 508752: Add support for BLOCK DATA to the Fortran parser.
- id 532695: included documentation update about the use of \public and friends for object-oriented programming in C.
- id 532808: References to class variables in PHP code did not already work.
- id 536394: Warning "no matching file member found" was given for a static variables in multiple anonymous namespaces.
- id 537686: Fixed invalid empty section for enum in a member group.
- id 539590: C# generics with the same name but different template parameters where merged.
- id 540321: A using declaration in a header file was not taken into account in the source file that included it.
- id 540520: Have two C# enum values with the same name in different enums was not handled properly.
- id 543036: //## comments were extracted even if they were not part of Rose documentation.
- id 547436: Fixed issue combining Python docstrings and doxygen comments.
- id 551615: A multiline C# comment with @ was not shown correctly in the source browser.
- id 544598: A multiline comment as part of a #define could case wrong line counting and missing cross-references.
- id 545128: \overload didn't work if it was the last statement in a comment and not followed by a newline.
- id 553380: Removed bogus warning referring to a namespace member from with a brief description that was converted to a tooltip.
- id 553968: Added support for JavaDoc command {@code ... }
- id 554444: Bullet lists were no longer correctly indented when using IE6.
- id 554674: Fixed index rendering bug in the RTF output.
- id 555174: The .qch file didn't include generated images.
- id 555200: Fixed potential crash bug when parsing special comment inside an if at global scope level of a PHP code fragment.
- id 556240: Tree view in HTML output was not encoded correctly.
- id 557001: VHDL Parser got confused when -- is in a string literal.
- id 557014: Undocumented VHDL record member's internal record prefix was not removed.
- id 557026: Obj-C Protocols and interfaces had wrong type/name in DocSets.
- id 557031: Obj-C methods no longer require a space after the initial - or +.
- id 557034: Fixed problem parsing property in Objective-C code.
- id 557038: Items in tabs.css could not be overridden by custom style sheet.
- id 557419: $relpath$ was no longer expanded in custom HTML headers.
- id 557735: Summary for member groups was missing for groups and files.
- id 558078: collaboration graph of a class using std::list of another class was not correct if the classes where inside a namespace.
- id 558460: When using \subpage, any section in the sub page was missing from the LaTeX output.
- id 558525: Template classes produced invalid HTML in the tree view.
- id 559338: PHP Parser could get confused when there was a comment inside an array initializer.
- id 559650: Obj-C @interface without body was handle correctly.
- id 560623: Mixin template classes where not shown properly in the inheritance diagram if the classes where inside a namespace.
- id 563136: The brief sentence is not shown for groups with no children.
- id 563384: call graphs were not generated for Qt signals and slots
- Included VHDL fix by Martin Kreis.
- grouping of multiple @todo's (and friends) didn't work anymore, causing duplicate sections and labels.
- Some issues related to the Qt help output were fixed.

# Doxygen Release 1.5.7.1

(release date 5-10-2008)

### Changes

- The dot tool is no longer part of the doxygen package for macOS. Please install GraphViz separately and set the dot path to /usr/local/bin

### New features

- Added option DOT_FONTSIZE which allows to set the size of the fonts used in dot generated graphs.

### Bug fixes

- id 554432: Re-added ALPHABETICAL_INDEX option.
- id 554379: Fixed internal error for GENERATE_INDEXLOG when GENERATE_HTML was set to NO.
- id 554546: Included fix for handling relative includes in the preprocessor.
- Included several VHDL fixes related to syntax highlighting, finding class members, and mixing upper and lower case.
- Included patch to allow setting DEST_DIR environment variable to determine where to install doxygen.

# Doxygen Release 1.5.7

(release date 28-9-2008)

### Changes

- The default CSS style sheet has been cleaned up and simplified, thanks to the work done by Quinn Taylor.

### New features

- Added new config options `GENERATE_QHP` which enables generating .qch (Qt compiled help) file via the Qt's qthelpgenerator tool (part of Qt 4.4+). This type of files can be read with Qt's Assistant to browse the documentation in a similar way as is possible with Microsoft's compiled HTML help (.chm). To further customize the output and run the help generator from within doxygen, the following options are available: `QCH_FILE`, `QHP_NAMESPACE`, `QHP_VIRTUAL_FOLDER`, `QHG_LOCATION`. Thanks to Sebastian Pipping for the patch.
- Add new option `SYMBOL_CACHE_SIZE` to allow a different trade off between doxygen's memory usage and the amount of disk accesses.
- id 532695: Added 3 new commands: \extends, \implements, and \memberof that allow object oriented constructs to be documented as such for languages that do not support it natively (e.g. C)
- Added better support for one line comments after VHDL types.
- Added new option `LAYOUT_FILE` which can be used to specify a layout template file that tells doxygen in which order to generate the output and which titles to use for headings and how the navigation index will look; Read this for more info. As a result the following options are now obsolete since they can now only be controlled via the layout file: `DETAILS_AT_TOP`, `ALPHABETICAL_INDEX`. The following options can also be set via the layout file, but for convenience and backward compatibility reasons they are still also part of the configuration file: `SHOW_INCLUDE_FILES`, `SHOW_USED_FILES`, `CLASS_GRAPH`, `COLLABORATION_GRAPH`, `GROUP_GRAPHS`, `INCLUDE_GRAPH`, `INCLUDED_BY_GRAPH`. Run doxygen with the -l option to generate the default layout file.
- Included update for the Macedonian, Catalan, Brazilian, and Serbian translation and also support for Serbian with Cyrillic characters.

### Bug fixes

- id 140264, 332187, 541924: Sections inside a \subpage where not shown as subsection in the LaTeX/RTF output.
- id 155098,156188: Added support for UTF-8 special characters in identifiers (which is allowed by e.g. C#).
- id 304598: operator-- caused invalid HTML output.
- id 324047: parameter type [in or out] were not generated in RTF document
- id 363499: @todo and friends did not work in a comment marked with @dir.
- id 445485: HTML commands in a comment block with attribute values without quotes were not handled properly.
- id 533855: Processes were always documented as anonymous in VHDL code.
- id 535379: Added support for %{...%} blocks in XPCOM's IDL.
- id 536298: Last port in a VHDL port list was not correctly put in a member group.
- id 536385: Fixed problem matching function prototype and implementation under certain conditions.
- id 536629: Fixed compilation issue on NetBSD.
- id 537393: Properties in Python were not properly handled.
- id 538065: Added support for @optional and @required in Objective C 2.0 protocols.
- id 538239: Some unlabeled VHDL processes were not corrected detected.
- id 538515: Deriving a Objective-C interface from a protocol caused parsing problems if the interface also has a body.
- id 539057: Part of an Objective-C expression could be missing in the source browser under certain conditions.
- id 539590: Generic C# classes with the same name but different template arguments were no longer treated as different classes.
- id 539712: Fixed code parser issue for parameter indices of procedures and functions.
- id 540058: Creator code was wrong in the macOS application bundle.
- id 540372: Fixed problem parsing large table by increasing YY_READ_BUF_SIZE in the generated parser files.
- id 540247: Fixed potential memory corruption issue parsing VHDL.
- id 541113: Fixed locale for ctype, to avoid stripping of 0xA0 from multi-byte UTF-8 characters.
- id 544479: `SORT_MEMBER_DOCS` did not work for class members.
- id 546621: Fixed makefile so that .svn stuff is removed from the tar-ball when doing "make archive".
- id 546812: Using a table with row span greater than 1 did not produce correct LaTeX output.
- id 545098: Fixed problem parsing where clauses in combination with C# generics.
- id 545503: Nameless parameters of type "struct A" could end up wrongly in the XML output.
- id 545970: Referring to the main page did not work as advertised.
- id 546158: The variable defined inside a foreach statement in C# code was not considered for source linking, cause potentially incomplete call graphs.
- id 547361: Linking to specialized template functions did not work.
- id 548175: Fixed problem parsing class members within a class X, inside a namespace that is also named X.
- id 548443: Documenting a nested namespace/classes with @namespace X.Y did not work for C# (only X::Y worked).
- id 548489: C++/CLI classes of type sealed abstract were not processed correctly.
- id 549318: Some headings in the user manual where wrongly formatted.
- id 549581: Fixed potential buffer overflow in preprocessor.
- id 550058: Obj-C: properties for private fields did not appear in the output unless `EXTRACT_PRIVATE` was enabled.
- id 550156: Corrected typo in the documentation for `GENERATE_TREEVIEW`.
- id 550247: Fixed problem parsing octal character literals in the preprocessing phase.
- id 551739: Related function with explicit namespace scope was not properly placed if the function also existed in the global namespace.
- id 552115: Anonymous structs and unions could produce invalid links in the html help index.
- id 552361: Fixed problem with operators in the LaTeX output.
- id 552600: \copybrief ended a brief description instead of appending to it.
- id 553469: Removed bogus warning about internal inconsistency when importing items via a tagfiles that are inside an undocumented scope.
- id 553616: One can now remove the automatic line breaks in the type part of a declaration by using a custom stylesheet with BR.typebreak { display: none; }
- id 553663: Aliases did not work in Fortran comments.
- id 549022: Reimplemented in links could be wrong in case of overloaded members.
- id 553225: Parser was confused by arrays inside an Obj-C message.
- Finnish translation was disabled.
- A collaboration graph with multiple edge labels with not written to the XML output correctly.
- sub pages of a \mainpage were not shown in the Latex/RTF output.
- Included some fixed for the VHDL parser.

# Doxygen Release 1.5.6

(release date 18-5-2008)

### Changes

- The GENERATE_TREEVIEW option is not longer a boolean, but can now have 4 values, NONE (was NO), FRAME (was YES), HIERARCHIES, and ALL. Thanks to Jake Colman for the patch.
- a page marked as a sub page (\subpage) is now shown in the LaTeX and RTF output as a section of its parent page. So the top level pages are shown a chapters, subpages as sections, subpages of a subpage as subsections, etc.
- Included spec file updates by Kenneth Porter.

### New features

- id 514810: Added DOT_FONTNAME and DOT_FONTPATH options which allow instructing dot to use a different font than FreeSans.ttf which doxygen put in the output directory.
- id 517242: Added option CHM_INDEX_ENCODING to specify the encoding to be used for the CHM index files. Needed because CHM index files cannot handle UTF-8 encoding.
- id 519573: Included patch to make the font-size button visible in the CHM output.
- id 521288: Added new options SHOW_NAMESPACES and SHOW_FILES to Suppress Namespace and Files Pages.
- id 521495: Included a patch that makes it easy to modify the root of the html treeview with an image using style sheets.
- id 522300: Added option IDL_PROPERTY_SUPPORT to enable/disable special propget/propput handling in IDL files.
- Translation support for Finnish has been updated.
- Added option FORMULA_FONTSIZE which can be used to change the font size of the formulas included in the HTML documentation.
- included update for Russian translation.
- included patch to fixed some issues with VHDL code and add support for some VHDL-93 constructs.

### Bug fixes

- Regression: fixed problem handling STL classes when BUILTIN_STL_SUPPORT was enabled
- id 142866,377976: Added new \copybrief and \copydetails commands, which work as \copydoc but then only copy either the brief or the detailed part of a comment block.
- id 312655: DISTRIBUTE_GROUP_DOC didn't always work in combination with SORT_BRIEF_DOCS enabled.
- id 352234: The search index could contain invalid references when SOURCE_BROWSER=NO and CALL_GRAPHS=YES.
- id 402447: Added support for C# method declarations with where clauses.
- id 425029: WARN_FORMAT does no longer require all of $file, $line, $text to be valid.
- id 495687: Replaced MAX_DOT_GRAPH_MAX_NODES with DOT_GRAPH_MAX_NODES in the docs & config file.
- id 508694 Fixed problem with mixed simple and double quotes in Fortran format declaration
- id 508752: Fixed problem where the Fortran scanner didn't recognize END
- id 510971: Fortran: parser was confused by double REAL() in processed statements.
- id 514488: Fixed problem matching argument lists with const qualifiers.
- id 514891: PDF generation failed with a LaTeX error when tocdepth was set to a value higher than 2.
- id 515518: Links in member group documentation was broken when CREATE_SUBDIRS was enabled.
- id 516086: Fixed division by zero when producing RTF output for the comment /** <table><tr></tr></table> */
- id 516536: Fixed build issues on OSX 10.4 and earlier.
- id 516070: Added support for simple events without accessors in C#.
- id 516387: replace 0xA0 character in perlmodgen.cpp by a space to avoid compilation problems with the Chinese version of Visual Studio.
- id 517112: Regression: examples with the same name but different paths cause "file not found" warning.
- id 518334: Fixed problem parsing Objective-C protocol definitions.
- id 518537: Hiding an enum with an undocumented typedef with the same name caused explicit referencing of the enum to fail.
- id 519661: In some cases a function prototype could incorrectly be flagged as a variable with constructor.
- id 520325: Fixed parse problem when comment was after an extern "C" block and before the opening bracket.
- id 521234: Fortran: fixed problem causing "stack empty! when parsing code"
- id 522225: PDF Latex output did not produce proper hyperlinks for \page and \subpage comment blocks.
- id 522248: Page header were wrongly displayed in the RTF output.
- id 522415: Fixed compile errors in addon/doxmlparser.
- id 522600: Added additional warnings to signal invalid configurations.
- id 523138: Removed redundant paragraph in navigation section of the HTML output.
- id 523326: Namespace name was prepended twice to template specializations classes.
- id 524357: Default mentioned for REFERENCED_BY_RELATION relation was not correct.
- id 524359: Default mentioned for REFERENCES_RELATION relation was not correct.
- id 524473: Removed incorrect warnings about parameters in VHDL.
- id 525140: Improved handling of Objective-C 2.0 properties.
- id 525143: Properties are now listed as attributes in the UML diagrams.
- id 525144: GENERATE_DOCSET option grayed out in doxywizard.
- id 526155: Removed warning about QFile::setName when parsing VHDL files.
- id 527781: Template arguments for bases class not shown in a consistent way.
- id 528023: Inheritance relations were not correctly displayed for C# generics.
- id 528424: Fixed rendering bug in HTML output when used with Opera.
- id 528584: Using enum and enum value with the same name in C# code caused crash.
- id 528620: Fixed typo in French translation.
- id 528815: Fixed problem parsing define() statements in PHP code.
- id 528989: Leading C comment could prevent preprocessor expansion for the rest of the line.
- id 529803: Doxygen didn't find call(er) relations for C# when using this.Method() calls;
- id 529554: Putting defined() inside a macro caused the preprocessor to get confused.
- id 529758: C++/CLI: default inheritance is now public, nested templates ending with >> are now handled properly as well as indexed properties.
- id 530201: Avoided warning for undocumented self parameter in Python.

# Doxygen Release 1.5.5

(release date 10-2-2008)

### Changes

- Pages created with @page are now chapters in the LaTeX and RTF output and treeviews, and directly follow the mainpage. Also the project name is not longer repeated for each chapter. This should make it more convenient to create normal, printable documentation with doxygen.
- For dot graphs with an edge with more than ten labels, only the first ten are shown followed by an ellipsis; done to prevent very long dot runs resulting in unreadable graphs.
- Use of pdflatex with hyperlinks is now the default.
- id 511116: C++ preprocessor macro names are now replaced in the comments as well. For example, S and m are replaced in the comments for: `#define C(S,m) /** container S */ struct S { /** value m */ int m; }`
- id 493923: The options SOURCE_BROWSER, CALL_GRAPH, CALLER_GRAPH, REFERENCES_RELATION, and REFERENCED_BY_RELATION can now be independently enabled and disabled. By default the relations are now disabled.

### New features

- Added support for VHDL (.vhd or .vhdl extension) based on a patch by Martin Kreis. Use OPTIMIZE_OUTPUT_VHDL when parsing VHDL code.
- id 374699: Added support for Objective-C 2.0 properties.
- Added compilation support for macOS 10.5 (Leopard) in combination with Xcode 3
- Added support for docsets, which allow integration of doxygen generated API documentation in Xcode 3. new options:
  - GENERATE_DOCSET: enables/disables the feature
  - DOCSET_FEEDNAME: sets the provider/suite name under which the set is listed.
  - DOCSET_BUNDLE_ID: A unique name for the docset.
  See the configuration file or manual for more details.
- id 493467: Added compilation support 64bit Solaris machines in combination with Sun's own compiler (thanks to Heiko Jansen).
- id 153376: Added support for the \tparam command, which works similar to \param but is meant for documenting template parameters.
- id 140104: Added \headerfile command which can be used to specify the second and third argument of a \class command, when the documentation is already in front of a class definition.
- Added translator support for Macedonian.
- Added language updates for German, Persian, Spanish, Taiwanese, and Chinese, Korean, Croatian.

### Bug fixes

- Fixed potential crash bug due to wrong pointer check.
- Using @param as the first word in a comment block did not work properly in combination with JAVADOC_AUTOBRIEF set to YES.
- Some character's could be missing from IDL properties.
- Automatic abbreviations did not work for nested classes or classes in a namespace.
- Fixed a preprocessor bug where the line numbers of a definition could get out of sync with the source code.
- id 142023: Putting Qt signals or slots in a group did not make them appear in the group documentation.
- id 318668: Comments in Python function argument lists got messed up.
- id 325359: Added support for C# XML-doc commands typeparam and typeparamref.
- id 331674: Aliases did not work in Python code.
- id 356399: Fixed strange warning when specifying a tag file with an anchor twice.
- id 363828: Docstrings found at the top of a python file are handled as module documentation again.
- id 429437: A #include outside the input files was not searched in the current directory of the file containing the include.
- id 451299: Sometimes the wrong include file chosen when ambiguous
- id 460585: @cond did not work in Python code.
- id 477377: Function in undocumented anonymous namespace cause broken link if EXTRACT_ALL was set to NO.
- id 484731: Additional fixes for parsing Fortran.
- id 488125: `operator->*` was not displayed properly in the output.
- id 490766: Fixed compile error in fortranscanner.l which occurred for some compilers.
- id 492027: Ampersand (&) in front of parameter stops documenting of PHP source
- id 493249: using a namespace (or Fortran module) caused the namespace to appear in the documentation as if it was defined.
- id 493434: Nested C# style XML lists in a comment block were not handled correctly.
- id 494187: Doxygen could crash due to an infinite recursion when using tag files.
- id 494599: When updating a config file an extra space was added just before the end of a quoted string.
- id 494760: Putting a # in a path name using Doxywizard, caused the # to interpreted as the start of a comment in the Doxyfile.
- id 495656: Description of default used for DOT_TRANSPARENT was wrong.
- id 495687: Fixed typo in the description of DOT_GRAPH_MAX_NODES.
- id 496392: Putting character entities like é in section/group titles resulted in &acute; in the output.
- id 498049: Improvements to .spec files for RPM creation.
- id 498680: Callgraphs for functions in anonymous namespaces generated invalid labels for 'dot' when EXTRACT_ANON_NSPACES was set to YES.
- id 498711: Reference parameters in PHP were not properly parsed.
- id 499577: Collaboration diagrams not working with typedef
- id 500227: Wrong output generated for Objective-C methods with multiple arguments for LaTeX or RTF output.
- id 500635: Project name is no longer placed before each top level item in the treeview and other indices.
- id 500465: Fixed some issues compiling for AIX.
- id 500928: Fixed parser issue handling a tipple quoted string when used to initialize a Python variable.
- id 500944: Python variables with package scope were only extracted if EXTRACT_STATIC was enabled.
- id 501704: Line numbering was wrong when a #include was placed inside an array/struct initializer list.
- id 502213: Combining a brief and detailed description in an alias produced the warning "unknown command \_‍linebr".
- id 502447: Single quoted PHP strings were not handled correctly by the source code parser.
- id 503939: Variable was checked before initialized.
- id 504120: TYPEDEF_HIDES_STRUCT now also works for enums.
- id 504439: Assert when marshaling a member which had an associated example.
- id 504650: Generated LaTeX code injected hyperlinks into section titles.
- id 507052: Fortran function named x_function was not properly handled.
- id 507603: Enabling FILTER_SOURCE_FILES caused strange warnings when INPUT_FILTER is empty.
- id 508740: Using upper case port mode specifiers did not work correctly.
- id 508753: Fortran: Added .f as allowed Fortran extension.
- id 508759: Fortran: fixed potential memory corruption while scanning parameter lists.
- id 507528: XML output was not correct for pointer arrays.
- id 508752: Fortran scanner didn't recognize lonely END
- id 509278: Spaced before the \internal command where treated as documentation.
- id 509582: Fortran: Spaces in function return type were not parsed properly.
- id 510387: Fortran scanner didn't parse initialization of complex type correctly.
- id 511921: @file command ended brief description even when JAVADOC_AUTOBRIEF was enabled.
- id 512620: \copydoc of a comment with @param commands could result in warnings that parameters were not documented.
- id 513570: Fixed cross site scripting vulnerability in the search.php script.
- id 514814: Included missing fromUtf8 calls to translator decoder to prevent potential language encoding issues.
- id 513885: Using `this->` inside a function could result in incomplete call graph.

# Doxygen Release 1.5.4

(release date 27-10-2007)

### Changes

- id 469260: When setting SOURCE_BROWSER to YES, all undocumented classes also ended up in the documentation. Now this will only happen if EXTRACT_ALL is also enabled.
- Upgraded included third party libs libpng and zlib to version 1.2.21 and 1.2.3 respectively.

### New features

- Included support for parsing Fortran 90, thanks to a patch by Anke Visser and Oleg Batrashev (source: http://dougdevel.org/index.php?page=doxygen)
- id 477548: Added config option SIP_SUPPORT to support handling SIP sources (used for Python to C++ bindings).
- id 475828: Added support for CLI/C++ style indexed properties.
- Added config option TYPEDEF_HIDES_STRUCT which when enabled treats a typedef of a struct as a struct with the name of the typedef. This behavior was coupled to OPTIMIZE_OUTPUT_FOR_C in the previous version and is now an independent option.
- Included updates for the Korean, Brazilian and Chinese translations.

### Bug fixes

- id 314541: Fixed wrong DOCTYPE in HTML output when GENERATE_TREEVIEW was set to YES
- id 321784: Changed scope resolution algorithm to avoid lookup failures on using directives (thanks to Christoph Schulz for the patch).
- id 415866: Fixed bug in preprocessor causing "More #endif's than #if's found" warning.
- id 426971,465020: A brief description would in some cases be treated as a detailed one.
- id 430148: Doxygen reported "Internal Inconsistency" for class member inside anonymous namespaces.
- id 433449,363010: Removed Internal inconsistency when referencing enum values found in a tag file.
- id 438282: Line numbers were displayed when using \include inside \example.
- id 443942,461433: mscgen was not called correctly on Windows when generating .map files.
- id 457346: increased the threshold for adding line breaks to the type part of a declaration.
- id 460294: Missing references in source browser when using the "register" keyword.
- id 461889: Fixed bogus "no matching class member found" case.
- id 462051: In certain cases doxygen failed to find the proper inheritance relation.
- id 462077: Error in LaTeX index generation due to unescaped characters.
- id 462159, 143250: Added support for parsing functions/methods returning a pointer or reference to an array, e.g. a function of the form: "int (*f(int))[];"
- id 462436: Inheritance from an unknown template class was not handled consistently.
- id 462439: Adjusted \author documentation.
- id 462757: Fixed Latex output bug for members of anonymous struct or unions.
- id 462861: Members references via tagfiles were sometimes broken.
- id 463139: Doxygen failed to detect duplicate variable declarations in the same file.
- id 465138: HTML entities in page title (such as ü) where not displayed correctly in the HTML output.
- id 465170: Wrong line numbers reported for errors when using multiline formulas.
- id 465172: Fixed issues parsing <code>operator</code>.
- id 466803: Fixed crash when parsing Java enum with empty field.
- id 466890: Handling of CVS/RCS keywords was broken.
- id 466910: When UML_LOOK is set to YES, the graph orientation is always top to bottom.
- id 466991: Template argument using '?' operator breaks file generation.
- id 468858,472310: C++ casting operator with templates was displayed wrong.
- id 468937: .hhc and .hhk was missing the </body> and </html> tags.
- id 469269: When HTML_DYNAMIC_SECTIONS was enabled, index.hhp missed open.gif and closed.gif.
- id 470029: Fixed crash while parsing a particular piece of PHP code.
- id 471185: The word "property" was stripped from functions that started with it.
- id 471495: Objective C category documentation was ignored in some cases.
- id 472193: Fixed issue expanding multiple occurrences of the same alias command argument.
- id 472201: Removed spurious warning introduced by the fix for bug 465170.
- id 473105: Auto link to nested class inside a base class was missing.
- id 473140: Anonymous scope ended up wrongly in the XML output.
- id 473402: context dependent \ref's inside a dot or msc graph did not work anymore.
- id 473679: Doxygen skipped function if return type contained round parenthesis.
- id 474529: index entries in LaTeX could be wrong on some platforms.
- id 476035: Externally referenced links obtained via a tag file had an extra g in the anchor
- id 476562: argument of copydoc appears in XML output without proper escaping.
- id 476766: Type of a virtual destructor was "virtual" in the XML output.
- id 479113: Automatic links were not generated when next word started with "const".
- id 479762: Wrong character encoding was used for dot files.
- id 480722: File tooltips incorrect for the include dependency graph.
- id 481168: Allow \f{environment}{ .... \f} so the number of braces matches.
- id 481107: Using HTML_FILE_EXTENSION to set a non-default extension did not work for the "no frames" link to main.html when GENERATE_TREEVIEW was enabled.
- id 481827: Macro expansion removed the @ character when it appear in a C comment.
- id 482964: The "template" word was a little too close to the rounded border in the html output when rendered by Firefox.
- id 484277: Adjusted the instructions to report a bug in the hope this will result in less duplicate bugs.
- id 484731: Fixed issue parsing unindented interface (Fortran).
- id 486159: Fixed problem parsing \xrefitem commands in joined comment blocks.
- id 488760: Added support for Trigraphs to doxygen's C-preprocessor.
- id 488800: Fixed problem in perlmod generation.
- id 488837: abstract class in PHP was not properly parsed.
- id 489049: Setting MUTLILINE_CPP_IS_BRIEF to YES could cause wrong line number references.
- Call graphs were not properly synced between function declaration and definition.
- Fixed bug in doxygen's internal caching mechanism which could make doxygen forget enum lists for large projects.

# Doxygen Release 1.5.3

(release date 27-7-2007)

### Changes

- When `OPTIMIZE_OUTPUT_FOR_C` is enabled then a struct definition of the form `typedef struct _S { ... } S_t` will be shown in the output as a struct of type `S_t` and the typedef itself is omitted (previously `_S` was shown as well as a typedef of the form `typedef _S S_t`).
- Improved the line-breaking rules for members whose return types have many characters (for example a function returning a pointer to a template class).
- Multiple brief and detailed descriptions are now possible. It is still not recommended to make use of them, but at least no documentation is silently hidden when there are two brief or two detailed descriptions for the same entity.
- Improved dot layout control and page sizing to better fit images on the screen and paper.

### New features

- Added support for aliases with arguments, see the manual for more information.
- Added `HTML_DYNAMIC_SECTIONS` option which, when enabled, will produce sections in the HTML output that can be expanded/collapsed. Currently used for diagrams and graphs.
- Added support for type constraints as available in the C# language ("where" clause)
- id 332263: Added new option `EXTRACT_ANON_NSPACES` that when set to `YES` will extract the contents of anonymous namespaces and show then in the output.
- id 423765: Added support for <see cref="SomeSymbol"/> style XML comments.
- id 426971: Added `QT_AUTOBRIEF` config option, which has the same meaning as `JAVADOC_AUTOBRIEF` only now for /‍*! .. *‍/ style comment blocks.
- id 435108: Reintroduced the `MAX_DOT_GRAPH_DEPTH` option as a means to further reduce the size of a graph.

### Bug fixes

- id 137644: Fixed issue with "const" parsing of a typedef'ed struct where the "const" is placed after the struct definition.
- id 153362: A typedef of a function pointer was not shown correctly in the output.
- id 156003: Wrong template arguments when using @related for a (template) function with a template class.
- id 170004: The check for PDF or DVI in the generated latex output was not always reliable.
- id 300022: PHP code with unknown extension was parsed as C/C++ code. Added a detection rule for <?php to switch to PHP parsing.
- id 317967: Setting `USE_PDFLATEX` to `YES` now generates a Makefile with a "pdf" target, to be consistent with the documentation.
- id 397099: Fixed several cases where "referenced by" relation was unresolved.
- id 423776: XML style see tag resulted in messed up documentation.
- id 426852: \hideinitializer was sometimes ignored when using structural commands.
- id 426977: Included a patch allow building under recent versions of Cygwin
- id 427991: Doxygen failed to call mscgen.exe properly on Win32 platforms.
- id 430962: struct keyword was stripped from typedefs even for C code.
- id 431049: Fixed potential crash when `GENERATE_PERLMOD` was enabled.
- id 431202, 333607: Quotes inside strings caused the Pythons parser to get off track.
- id 431763: doxygen crashes when using unsupported tags in the config file.
- id 432420: Last enum value of a Java 1.5 style enum with constructor did not appear.
- id 432743: The "std" namespace appeared in the output when `BUILTIN_STL_SUPPORT` was enabled.
- id 432757: Setting `INLINE_INHERITED_MEMBERS` to `YES`, did not inherit the group of grouped members of a base class.
- id 433630: Using double-quotes (") inside a brief description could lead to errors in dot files when the brief description was used as a tooltip.
- id 434079: The number of graph nodes could still be too large despite a conservative `DOT_GRAPH_MAX_NODES` setting.
- id 436648: List of class members was no longer complete under certain conditions.
- id 437218: Special characters in \brief string cause problems HTML/XML in source listings.
- id 438300: Fixed two cases where doxygen could access memory outside array boundaries under certain conditions.
- id 441114: Add support for <term> inside <list> to conform to C# XML comments.
- id 442313: Casing of special commands was not handled consistently.
- id 443942: Fixed problems running mscgen.
- id 444823: No newline after the error message when hhc failed with return code >0
- id 445105: Fixed some issues and wrong spacing for the RTF generation.
- id 446585: Doxygen could crash when producing a warning for undocumented C++/CLI arguments of the type "T%".
- id 447133: Replaced occurrences of ' by ' in the HTML output.
- id 448210: Make rule to install manpages was broken.
- id 451297: Fixed more issues where using double-quotes (") inside a brief description could lead to errors in dot files when the brief description was used as a tooltip.
- id 452824: In the source browser linking of a local variable did not work after a sizeof() of the variable.
- id 452828: Missing reference to struct member in the source browser due to incorrect bracket count.
- id 453366: Removed bogus warning for unresolved references in brief descriptions.
- id 453918: The __init__.py files were incorrectly treated as modules causing scoping issues for symbols defined inside such file.
- id 456471: Changing the installation location (--prefix) did not affect the location were the documentation was installed. --docdir can still be used to overrule the location for the documentation.
- id 456475: Added support for C++/CLI style finalizers.
- id 457857: Leading "struct" keyword is no longer stripped from the documentation of functions that return a pointer to a struct.
- id 458710: Expanding environment variables in the config file to a file or path name with spaces (e.g. "$(VCInstallDir)include") was incorrectly interpreted as a list when used with for instance `INPUT`.
- id 458749: Undocumented constructors/destructors inside an undocumented member group were not visible in the output.

# Doxygen Release 1.5.2

(release date 4-4-2007)

### Changes

- The options `MAX_DOT_GRAPH_WIDTH`, `MAX_DOT_GRAPH_HEIGHT`, and `MAX_DOT_GRAPH_DEPTH` have been replaced by a single option `DOT_GRAPH_MAX_NODES`, which can be used to limit the size of a graph indirectly, by specifying the maximum amount of nodes in the graph. The main advantage is that this can be computed much faster; dot has to be run only once per graph and never on graphs with more than the specified amount of nodes. Note that doxygen will always render the root node and its direct children even when `DOT_GRAPH_MAX_NODES = 0`.
- Parameters names are now copied to reimplemented functions, avoiding warnings about missing or wrong parameter names when `INHERIT_DOCS = YES`.

### New features

- id 150916,159291,166209,330109,396316 Doxygen now uses UTF-8 internally for all strings and uses iconv to recode the input to UTF-8. For HTML, LaTeX and man pages the output is now always UTF-8. For RTF the encoding is local and depends on the code page specified in the translator. The config option `USE_WINDOWS_ENCODING` has been removed. A new config option `INPUT_ENCODING` has been added which can be used to specify the encoding of the input. Another config option `DOXYFILE_ENCODING` can be used to specify the encoding of the config file itself.
- Added support for message sequence charts (using mscgen). For this two new commands have been added: \msc and \endmsc (similar to \dot..\enddot), and a new config option `MSCGEN_PATH` (similar to DOT_PATH) See the manual and website for more info.
- Added support for C++/CLI. To enable it set `CPP_CLI_SUPPORT` to `YES` in the config file (thanks to Ben Voigt for doing a lot of the work).
- `IGNORE_PREFIX` now also works for function/members names when shown in the various indices.
- Doxygen will show a tooltip in the HTML output for links to classes, namespaces, and members with the brief description (including dot graphs and source code).
- id 321575: Added a new config option `EXCLUDE_SYMBOLS` which can be used to exclude certain namespaces/classes/functions from the output by specifying their name (which may include wildcards).
- id 364536: Included patch by Ben Voigt which adds syntax highlight support for several (managed) C++ keywords.
- id 419349: Added two LaTeX layout enhancements provided by Stefan Pawig.

### Bug fixes

- id 132886: Included patch to fix an issue with using a sequence of xrefitems
- id 134792: Added configure script for Cygwin autodetection.
- id 162006: Doxygen now uses the default search path of dot for user defined dot graphs (defined with @dot and @dotfile).
- id 306231: Include fix for Japanese translation.
- id 315543: htmlinclude didn't work as part of a description of a param.
- id 322806: Doxygen now does not treat >> in a template list as a shift operator for Java and C#.
- id 332815: Legend generated with `GENERATE_LEGEND` did have typo.
- id 345820: Included patch to make doxygen handle config files with `@INCLUDE` with absolute paths correctly.
- id 364780: Included patch to improve scope handling of nested classes/namespaces by the code parser (thanks to Ben Voigt).
- id 366113: Fixed configure script issue under Solaris.
- id 367233: Non-class functions were duplicated in the xml index file.
- id 367495: Windows build files had only support for English by default.
- id 369499: In some cases variable names were duplicated in python source code output.
- id 369200: Fixed parse problem when a single quote appeared in a Python comment line.
- id 373229: Doxygen now gives a warning when it cannot inline a #include inside a body
- id 374486: Inheriting from a template argument via an intermediate typedef could result in invalid output.
- id 375073: \ref could cause wrong XML output.
- id 375753: Added missing new line to error message.
- id 377911: Fixed problem with end of formula.
- id 380516: Fixed line number issue in the Python parser.
- id 381450: Tabs in the HTML output redefined the value of an "id" attribute, which is not legal HTML.
- id 374592: Member grouping didn't work properly for constructors.
- id 381608: Initializer values of class variables and constants did no longer appear in the documentations.
- id 382274: Scanning files with `RECURSIVE` enabled ignored `EXCLUDE_PATTERNS`.
- id 383377: C# code was not passed though the C-preprocessor.
- id 383493: Improved the warning message for unterminated code/verbatim blocks.
- id 384439: Made comment block parser more robust against HTML errors.
- id 385384: `SEPARATE_MEMBER_PAGES=YES` caused broken links in Html Help index.
- id 387781: Parsing #import statements was broken for Objective-C.
- id 387848: Included patch to avoid LaTeX compilation issues.
- id 389656: For C# enums in the same scope can have the same values, but doxygen's parser got confused.
- id 389750: Fixed alignment bug in the default html footer generated by doxygen.
- id 390821: Fixed problem parsing Java 1.5 enums with initializers.
- id 391619: When dot produces an non-zero return code, doxygen now prints the return code and the command it tried to execute.
- id 407815: Doxygen got confused by certain combinations of " and ' in PHP code.
- id 409935: Fixed bug in qcstring.cpp
- id 411300: PDF/Latex output was broken for operator[] documentation.
- id 411328: Fixed Accessibility/Section 508 Compliance issue.
- id 413071: Added support for Java 1.5 annotations.
- id 415683: Two typedefs of function pointers with different names could still resolve to the same type if the only difference was the argument list and as a result cause "Undocumented function" warnings.
- id 418920: Doxygen stripped leading comment chars from C# code blocks.
- id 421131: Character encoding was not consistent for all HTML files.
- The "list of all members" was not shown for a class with no members that derived from a class with members.

# Doxygen Release 1.5.1

(release date 29-10-2006)

### Bug fixes

- id 148567: @todo at the end of a comment block caused problem when copied by @copydoc
- id 352420: Fixed bug in LaTeX output (missing space after \bf).
- id 363227: missing output for instance variables defined in a Python function that has a doc string
- id 363397: Member groups did not appear in a class when SUBGROUPING was set to YES.
- id 364341: Parsing could become really slow if often included header files contained using statements.
- id 364673: The values of two enums with the same name (both in difference scopes) where merged.
- The version of dot shipped with the Mac binary had some non-standard dependencies.
- Doxywizard didn't work on PC's where no Visual Studio 2005 was present, when build with the project files (I'm now using /MT instead of /MD which fixes this issue).
- Running 2 instances of doxygen on the same output directory caused corruption of the temporary files generated by doxygen.

# Doxygen Release 1.5.0

(release date 16-10-2006)

### Changes

- cleaned up the internal structures to make them smaller, and made doxygen use a temporary file to store the parse results (instead of keeping them in memory), which will further reduce the memory usage, especially for large projects, and is a first step towards incremental parsing.

### New features

- Added example application that shows how to configure and run doxygen from within an application and use the information collected by doxygen without also generating the output (see addon/doxyapp).
- id 322467: Sections produces by \note, \warning, \remarks etc, now have a class label in the generated HTML (<dl> tag) so you can give them a distinct style using a non-default stylesheet (i.e. using HTML_STYLESHEET).
- Added project files for building doxygen from Visual Studio 2005 (see winbuild dir).
- added translator updates for Czech, Danish, German, Catalan, Croatian, French, Japanese, and Italian.
- added translator support for Arabic (thanks to Moaz Reyad)
- added translator support for Persian (thanks to Ali Nadalizadeh)

### Bug fixes

- id 131445: Fixed autolinking for related functions.
- id 137236: Updated documentation to make it clear that a lower-case only word is not a candidate for autolinking.
- id 141758: Fixed a problem parsing <?=...?> constructs outside of functions in PHP.
- id 319169: Second level index not shown when DISABLE_INDEX=YES.
- id 325337: Added "optimize output for C#" option to Doxywizard.
- id 325426: Partial C# class inside a namespace where not handled properly.
- id 327358: Fixed wrong link to the search engine when CREATE_SUBDIRS was set to YES.
- id 326885: Leading ///'s ended up in code fragments when using indented /// comments.
- id 330513: For file documentation, the scope not stripped for namespace members even if HIDE_SCOPE_NAMES was set to YES.
- id 335131: Fixed "internal inconsistency" warning related to use of nested classes defined outside a used namespace.
- id 338475: Added support for Q_SIGNALS and Q_SLOTS macros (thanks to Thomas Zander for the patch).
- id 340973: Improved performance of "Computing template instances" step significantly in case of (large) Java projects.
- id 342090: Fixed missing cross-reference to "m" for code of the form f(a[s.f]->m)
- id 344443: Code font commands where not treated properly in C# style comments.
- id 344445: Made it more clear in the documentation where the XML commands in the comment blocks are for, and how <code> works in C#.
- id 345322: DOTFONTPATH was corrupted in mingw builds.
- id 345519: Fixed problem parsing attributes in C#.
- id 345660: Python class members that spanned multiple lines could confuse the parser.
- id 345742: enum values were shown twice in some cases.
- is 346095: Forced a newline before \normalsize in the LaTeX to avoid font size issues.
- id 346848: Under certain conditions nesting of groups did not work properly.
- id 347444: paramref XML command did not render properly.
- id 348259: Doxygen now keeps the _formulas.log file when there is a problem generating bitmaps for formulas. This can help to identify the problem quicker.
- id 348481: friend class in unnamed namespace produced bogus error.
- id 348537: Fixed internal inconsistency warning that could occur when reopening an anonymous namespace
- id 349867: Fixed issue handling brief and detailed description when both are positioned after an item.
- id 350168: Doxygen didn't parse C# type constraints properly.
- id 351890: In some cases C# attributes were treated as properties.
- id 353044: C99 style variadic macros were not handled properly by doxygen.
- id 353195: Member grouping with SUBGROUPING = YES now works the same for files and namespaces as it does for classes.
- id 354765: A command like \ingroup now ends a brief description as was the case in the pre 1.4.x series.
- id 355922: When a function was found in a namespace but also in the global namespace, doxygen could make the wrong cross-reference.
- id 356204: Setting HIDE_UNDOC_RELATIONS to NO could result in argument mismatches in certain cases.
- id 357092: Spurious doxygen warning when using a class that ends with 'const' or 'volatile'.
- id 357438: tabs and newlines were not parsed properly for html attributes inside a comment block.
- id 357646: objcache.cpp did not compile cleanly on a system with 64 bit pointers.
- id 361812: whitespace after the colon at the end of a Python definition caused parsing issues.
- "struct Foo operator+()" was not parsed properly due to the "struct" keyword.
- As a side-effect of bug 329861 Obj-C protocols and categories were no longer extracted.
- Fixed an problem with cross-referencing Obj-C code.
- Removed the memory leaks reported by valgrind and tuned some data structures to reduce the memory usage.
- enums in a used namespace could cause arguments not to match.
- fixed several cases where arguments of function/method declaration and definition did not match while they should.

# 1.4 Series

# Doxygen Release 1.4.7

(release date 11-06-2006)

### Changes

- The stylesheet has changed, so if you use your own, you will need to update it or the output will look ugly.

### New features

- Added support for universal binaries on macOS (only the non-GUI part).
- Added CALLER_GRAPH config option and \callergraph command to add a caller (or called-by) graph to a function or all functions. (thanks to Daniel Sherwood for the patch)
- Added REFERENCES_LINK_SOURCE config option which allows to selected if reference relations should point to the source or to the documentation (thanks to Daniel Sherwood for the patch).
- Included patch by Christoph Pesch to mention the member type in the warning "Member ... of ... is not documented".
- included update for Spanish, Italian, Norwegian, and Czech translations.
- Added support for get/set properties in IDL (thanks to a patch by Sander Stoks).

### Bug fixes

- id 151959: incremental "using" of nested namespaces could prevent that doxygen matched function declaration against definition.
- id 310521: HIDE_IN_BODY_DOCS was longer working.
- id 315039: Improved handling of members in an anonymous scope.
- id 322415: Under certain conditions a scrollbar appeared in a HTML page while this was not needed.
- id 325845: Documentation parser was confused when starting a HTML list directly after a \b command.
- id 325866: SORT_BY_SCOPE_NAME=YES did not always work if SORT_BRIEF_DOCS was also enabled.
- id 326023: CHM files had @ signs in CHM index for anonymous class enums
- id 326250: Fixed incorrect regular expression in constexp.l
- id 326688: Added better support for PHP5 style constructors and destructors.
- id 326885: Using multi-line //!-blocks did not work nicely together with @code...@endcode blocks anymore.
- id 327242: Python: Methods starting with _ are now marked private, except for special method names (i.e. starting and ending with __).
- id 327666: Fixed parse issue that resulted in a missing call graph.
- id 328435: When enabling USE_PDFLATEX a blank line appeared in the makefile
- id 328849: Added clarification to the manual about the use of //!< comments.
- id 328635: Text of the HTML output didn't always wrap properly anymore after "fixing" bug 322415.
- id 329343: Fixed segment in Python parser caused by @var or @fn with a missing argument.
- id 329530: An apostrophe in ##-comments inside a Python class confused the parser.
- id 329534: Fixed problem resolving inheritance relations for nested Python classes.
- id 329537: Corrected the Python example to show how modules should be documented.
- id 329719: # comment in PHP containing a ' caused doxygen to ignore rest of input.
- id 329861: Fixed problem parsing embedded structs in an Objective-C interface.
- id 329905: PDF manual produced a LaTeX error because style sheet was not up to date.
- id 330209: A typedef in an Obj-C implementation file could obscure class implementation later in the file
- id 331511: no matching class member found error for class template instance in combination with "using" of said class.
- id 331751: Fixed problem parsing a function typedef.
- id 332110: method matching failed for equivalent template instance types.
- id 332178: Fixed malformed XML output for readable properties.
- id 333270: Fixed BoundingBox problem with PostScript graphs generated with dot using graphviz-2.9.20060302.0540 and later (thanks to John Ellison for the patch)
- id 332875: Enabling SEPARATE_MEMBER_PAGES could lead to bogus warning messages about undocumented parameters if only the HTML output was enabled.
- id 333330: Patch the reorganizes the treeview.
- id 333831: "typedef const struct { } NAME" construction was not properly parsed.
- id 334716: Doxygen could hang when calling latex with invalid formulas.
- id 336467: Latex formula could prevent /// comment blocks to be properly converted to /** */ blocks.
- id 336782: Prevented crash when providing code with illegal/redundant class scope.
- id 337344: Configure now accept system's /usr/bin/install on FreeBSD.
- id 341365: @endcode comment was skipped in a specific case.
- id 341453: Under certain conditions @cond did not stop at @endcond
- id 341456: Fixed crash when feeding doxygen /dev/null as config file
- id 342329: Text such as "dir/file.cpp" was not auto-linked.
- id 342946: Anonymous enums couldn't be grouped using separate @var block
- id 344118: Inbody documentation could hide the detailed description.
- id 344172: Class Hierarchy appeared in a C-Code-Documentation.
- Protection level of inner classes was not written to the XML output (thanks to Shachar Itzhaky for the patch)
- Included patch by Ernst Giessmann, which prevents most of the underfull hbox warnings that are produced when compiling doxygen's LaTeX output.
- Fixed potential crash during preprocessing if C-macros are defined with /* (thanks to Günther Haslauer for the patch).
- Anonymous struct members could end up in the wrong scope (thanks to Bruno Andrillon for the patch).
- saving to an existing file in doxywizard now requires a confirmation.
- Fixed potential crash in case a template class with a redundant namespace qualifier was used: e.g. "namespace N { template<> class N::C<G::H> {}; }"

# Doxygen Release 1.4.6

(release date 30-12-2005)

### New features

- id 317773: Improved .spec file and better support for building rpms (thanks to Kevin McBride)

### Bug fixes

- id 145294: Boolean expression with '<' as template argument confused doxygen.
- id 303297: The class hierarchy was sometimes incorrectly shown.
- id 317819: Updated the documentation concerning the creation of PDF output.
- id 317967: @‍htmlonly..@‍endhtmlonly type of blocks (including formulas) were not always working properly if used in inline parameter documentation.
- id 318008: The base class name was missing from the XML output.
- id 318208: Enabling SUBDIRS resulted in the tabs at the top of certain pages not be styled as tabs. Also, links to include dependency graphs had wrong links or were incomplete.
- id 318564: Python: parser skipped comment blocks in some cases.
- id 318565: Python: single quote doc strings did not get parsed properly if there was no space before the closing '''.
- id 318567: Python: parse problem when () appear in default value of a function parameter.
- id 318618: If INLINE_INHERITED_MEMB = YES constructors of a template class were shown in the derived class.
- id 318678: Python: A referenced variable that was not found using docstring could lead to memory corruption.
- id 319170: The CHM file did not include the stylesheet material needed to properly render the tabs at the top of each page.
- id 319341: Doxygen crashed while generating call graph under certain circumstances.
- id 319539: Fixed parse problem with Python/Objective-C code.
- id 319586: tabs.css not correctly included with CREATE_SUBDIRS option set.
- id 318460: Multiply-defined labels if two function specializations differ only on the name of a template parameter.
- id 319219: Spurious space was inserted after inlined math formulas.
- id 319826: The file name for template classes could become too long causing files that cannot be created by some file systems.
- id 320026: undocumented "typedef struct foo baz" causes subsequent variables appear as typedefs.
- id 320543: If enabled the alphabetical class list is now the default item under the classes tab.
- id 320587: Links in brief file descriptions shown in directory pages were broken if CREATE_SUBDIRS was enabled.
- id 320693: First sentence in mainpage was missing with JAVADOC_AUTOBRIEF enabled.
- id 320740: Added support for documenting individual elements of an associative array in PHP.
- id 320813: The if() statement with space after the if confused the code parser and resulted in partial call graphs.
- id 320960: redundant line continuation characters were not removed by doxygen's C-preprocessor.
- id 321165: Doxygen choked on Qt properties with namespaced types
- id 321197: using a namespace that contains a nested class, where the inner class was forward defined, could introduce a bogus namespace with the name of the outer class.
- id 321256: Installation path mentioned in the documentation was wrong.
- id 321349: In typedefs like "typedef struct {} T, *pT, the pT typedef appeared wrongly in the documentation.
- id 321540: An array of type an anonymous struct was not parsed properly if there was a space between the name and the size, i.e. struct {} Var [10];
- id 321682: Fixed typo in the HTML output of the search page.
- id 321743: Cross-references were missing to members of anonymous structs.
- id 311833: A template specialization of a private class member was marked as public.
- id 312329: @link label @endlink, i.e without link text now shows the label as text, and space after label is omitted.
- id 312624: \verbatim block could cause wrong line numbers while parsing the source code.
- id 322752: Fixed specific case where aliases were incorrectly expanded inside environment formulas
- id 322997: Putting function-style macros in a parameter of a template return type of a function confused doxygen's parser.
- id 323320: An enum name that also appears as a typedef (i.e. typedef T {} T; }) is now linked as an enum and the typedef is omitted from the output.
- id 323557: Bit field information was missing from the XML output.
- id 323627: Fixed compiler warning when using gcc 4.x.
- id 323628: Improved warning when documenting #defines while the preprocessor is disabled.
- id 323988: FILE_VERSION_FILTER incorrectly handled command parameters
- id 324076: Fixed some typos in the documentation.
- id 324153: The configure script didn't work for SunOS 5.8.
- id 324163: \todo paragraph did not end at \author (or similar commands).
- id 324313: Added support for having a Linux system where libraries are located in lib64 by adding a new platform to tmake: linux-64
- id 324521: Autolinking to classes in a group which itself was in a namespace didn't work without explicit scoping.
- id 324558: Null pointer dereference in namespacedef.cpp
- id 324565: References and callgraphs missing for some functions (thanks to a patch by Dave Dodge).
- id 324566: Fixed problem matching f(unsigned long const a) against f(unsigned long)
- id 324568: Fixed problem were some function prototypes were detected as variable constructor calls (thanks to Dave Dodge for the patch).
- id 324601: Cross referencing and call graphs were broken by certain bracket positions for functions.
- id 324823: Doxygen's code parser lost track in some cases, causing function definitions not being found in some cases.
- id 324891: Doxygen crashed on circular python imports.

# Doxygen Release 1.4.5

(release date 4-10-2005)

### Changes

- Changed to way the index looks (I hope you like it!). It now is a list of items styled (with CSS) as a row of tabs. Also class/namespace/file related items are now grouped together and presented as a second row of tabs to prevent clutter (the latter is based on the suggestions/patch in bug report 162968). Note that if you use a custom HTML header you need to add <link href="tabs.css" rel="stylesheet" type="text/css"> to the head section!
- Copydoc now copies the brief description as well.

### New features

- id 306889: Added new config option BUILTIN_STL_SUPPORT. When enabled, doxygen will assume that STL classes exist (without the need to include the STL headers as INPUT). This helps with matching of argument lists for function declarations and definitions and also helps to improve the collaboration and inheritance diagrams that involve STL classes.
- id 317010: Added support for the following new HTML entities: &lsquo; &rsquo; &ldquo; &rdquo; &ndash; &mdash; (thanks to a patch by madalexonline)
- Included update for Chinese translation.
- included update for the VC++ project files (in wintools dir), thanks to Johan Eriksson.

### Bug fixes

- id 304339: Using \dot in latex formulas conflicted with the doxygen's \dot command.
- id 306076: Using a namespace inside an example listed with @example did not work.
- id 306069: Search engine required lower case names in order to find something, which made pasting of names difficult.
- id 308395: Doxygen could crash when producing a warning that included a %s sequence.
- id 311191: Default values for parameters weren't shown in the detailed documentation.
- id 311198: If JAVADOC_AUTOBRIEF was set to YES, a \todo or \bug like command always ended at the first dot.
- id 311207: The /* and */ inside a \code ... \endcode code fragment were stripped.
- id 311577: Putting a documented class name in the title of the main page caused a LaTeX error if pdf hyperlinks were enabled.
- id 311665: Fixed compile issue for Solaris.
- id 312688: Typedefs of arrays were auto-linked to the base type i.s.o the typedef.
- id 312678: Fixed excessive memory usage for @fn commands due to a memory leak of the scanner buffer 256K of memory was leaked for each command!
- id 312791: Undocumented members did not result in warnings if SOURCE_BROWSER was enable and the member's definition was part of the INPUT.
- A C-comment inside a \code block could lead to parse problems in the preprocessor, resulting in #defines that are not found.
- Fixed problem documenting Python code using docstrings where the module documentation was not picked up. Also fixed several other Python related issues. Also included Python examples in the documentation.
- id 312805: Using BUILTIN_STL_SUPPORT could result in dead links for STL classes.
- id 312807: Added support for STL exceptions (when BUILTIN_STL_SUPPORT is enabled).
- id 313011: Item after the closing of a nested group was ignored in some cases.
- id 313103: Member groups within other nested groups did not work anymore.
- id 313298: Code parser didn't handle function-try-blocks correctly.
- id 313572: Fixed lockup issue when generation code for Python files.
- id 313695: Fixed parsing issues for the constructs "\f$n\f$" and "operator <CODE>".
- id 313805: '@' characters in a string literal were lost during macro expansion.
- id 313906: added support for "import" and "from ... import" to the Python parser so cross module inheritance works.
- id 313908: Fixed python parser problem: If there are two classes defined in one module there needed to be a comment between them.
- id 314165: Python functions starting with _ are not marked as public, whereas variables starting with _ are marked private.
- id 314194: Brief description containing 'i.e., ' ended after the comma.
- id 314237: You can now also use \ref on directories documented with \dir.
- id 314288: Using \ref with an ambiguous filename didn't work.
- id 315006: C++ comments at the start of a line and inside a <pre>..</pre> block were stripped.
- id 316264: Fixed typo in the inline config file documentation.
- id 316266: Included update for the Japanese translation (thanks to Katsuhiro Hermit Endo)
- id 316759: Fixed problem in the Makefile of doxywizard so that the right version appears in the about box.
- id 316944: An inline formula (or other special command) did not get executed if it was within an inline documentation block and put after a parameter.
- id 317052: The alphabetical class index was not sorted properly if multiple prefixes were specified using IGNORE_PREFIX.
- id 317105: Latex output expanded &szlig; as "s instead of {\ss} which only worked if german.sty was included. Thanks to Stefan Pawig for the patch)
- id 317397: Copying of images from subdirectory within the IMAGE_PATH didn't work properly since doxygen didn't remove the subdirectory from the destination path.
- id 317446: Documenting an enum with \enum while there is also a function with the same name in the same scope could make the enum documentation appear at the wrong spot or the enum in the wrong member group.
- id 317490: A variable of a nested class, forward declared in a template class, which in turn was in a namespace, caused the variable to end up in the global scope.

# Doxygen Release 1.4.4

(release date 21-7-2005)

### New features

- Added support for parsing Python code. Special comment blocks in Python are of the

               ##
               #  Some comment
               #

  or you can rely on Python docstrings. This code uses the new parser interface and was based on the work done by a group of students as part of a compiler design project.
- Added support for C# style XML tags in the comments. See the manual or the C# language specification for more details. Thanks to Talin for doing most of the work.
- Added support for the JavaDoc command {@inheritDoc}.

### Bug fixes

- id 166254: SORT_BY_SCOPE_NAME didn't work anymore.
- id 304380: New argument matching algorithm didn't handle the case where "const int" needed to be matched against "const int a" correctly.
- id 304435: Superfluous backslash in the makefile caused problems for Japanese locale.
- id 304476: A #define directly after a //!< style comment block was not parsed properly.
- id 304598: Using operator-- in resulted in broken HTML output due to the embedded doxytag that include the end of a HTML comment.
- id 304623: Spreading a @fn command over multiple lines didn't work anymore without using line-continuation characters.
- id 304666: Attributes of the same class appeared separated with \n in collaboration diagrams
- id 304751: A define "foo()" was indistinguishable from a define "foo" in the XML output.
- id 304752: XML location tag attribute "file" could have the syntactically wrong value "<generated>" in some cases.
- id 305334: INPUT_FILTER tag did not work properly anymore due to additional quotes.
- id 305364: Improved argument matching routine to avoid cases where declaration and definition of functions/methods could not be matched.
- id 305439: @link command did not work if the link text started with "const" as part of a longer word.
- id 305638: operator& was only usable with @copydoc if the method was fully qualified.
- id 305672: Title of a paragraph was not properly rendered for the RTF output when using \par in ALIASES.
- id 305740: When putting a \b command in a HTML table cell, doxygen got confused by the cell end tag, causing the rest of the table to be displayed wrongly.
- id 305768: @todo, @bug, @deprecated, etc, did not always end at the next paragraph.
- id 305770: For overloaded global functions only the first appeared in the file documentation.
- id 306028: The text after /*@{ and //@{ was treated as source code instead of a comment block.
- id 306136: Structural commands were executed even though they appeared within quoted text.
- id 306200: Putting a command like \author before \brief caused the long description to be glued to the \author command.
- id 306235: Punctuation is not automatically added to brief descriptions for Japanese, Chinese, and Korean anymore.
- id 306637: @endcond did not properly end a conditional section when @cond was used without label.
- id 306711: Brief descriptions ended at a new paragraph even if no content was found and @name didn't work without explicit @{ ... @} block commands.
- id 306851: Under certain conditions bogus argument documentation could appear.
- id 306943: Certain constructs could get the code parser off track and could lead to memory corruption.
- id 307579: Fixed argument matching problem where "unsigned int" did not match "unsigned int i".
- id 307613: Documented struct fields declared as a comma separated list caused the documentation of all fields to be appended.
- id 307618: Reference in the source file did not appear if a variable was documented with \var and also had a brief description.
- id 307954: Parse problem when a /* was nested inside a C-style comment.
- id 308053: It is now possible to put multiple structural commands into a single comment block. Doxygen will treat them as separate comment blocks internally. Example:

                        /** @file
                            File documentation.
                            @defgroup grp A Group
                            Group documentation.
                         */

- id 308059: &nbsp; was written as "\ " to the LaTeX output instead of ~.
- id 308400: The parameter names are now used based on whether the documentation is in front of the declaration or definition.
- id 309022: Conversion operators inherited from a template class did not appear with the proper type substitution.
- id 309148: The search index page was not correct if DISABLE_INDEX was set to YES.
- id 309446: Files beginning with one or more digits were not autolinked.
- id 309461: Made the configure script look for qt in places like /usr/share/qt3 (debian) and /usr/qt/3/ (gentoo)
- id 309711: Aliases were expanded inside formulas.
- id 310012: Made the allowed suffixes for constants in the constant expression evaluator of the C-preprocessor more strict.
- id 310025: Added explicit type conversion to avoid problems with compiler bugs in Sun's Forte 6.1 and Studio 10 compiler.
- Fixed argument matching issue exposed by the template example in the examples directory.

# Doxygen Release 1.4.3

(release date 16-5-2005)

### Changes

- For Developers: Added an abstract interface for language parsers (see src/parserintf.h), which can be used implement new programming language parsers. There is also a manager class, where a parser instance can be bound to a certain file extension.
- Changed the algorithm for matching function/method declarations against their definitions. The new algorithm should be faster, more powerful, and more accurate.

### New features

- Included new config option HTAGS. When enabled in combination with SOURCE_BROWSER=YES, the source browser of GNU's Global source system (via htags) is used instead of doxygen's own (thanks to Shigio Yamaguchi for the patch).
- Added language updates for Indonesian, Catalan, Russian, Korean, German, Hungarian, Polish, and Lithuanian.
- Included update of the .spec file (thanks to Stephane Gourichon).

### Bug fixes

- id 163705: Using \image for latex without caption but with size parameter "width=\textwidth" did not work.
- id 163783: Items of an autolist could be wrongly indented if put directly after @name.
- id 163928: Class section was missing in the file documentation.
- id 164072: When using tag files unneeded external classes could appear in the class hierarchy in some cases.
- id 169755: page title was omitted in the XML output if CASE_SENSE_NAME was set to NO.
- id 170592: Using \ref for Objective-C methods did not work if the name contained a colon.
- id 171795: Referring to Objective-C methods now follows Apple's conventions.
- id 171878: When JAVADOC_AUTOBRIEF = YES and there was no blank line after a page command, the first sentence did not appear in the documentation.
- id 171923: Doxygen failed to match arguments for a function documented out-of-line with @fn and using @relatesalso.
- id 172118: Doxywizard now shows the version of doxygen it is for.
- id 172133: Doxygen did not longer ignore preceding C++ comments inside a comment block.
- id 172217: 'using namespace' declarations with spaces resulted in duplicate namespaces.
- id 172329: The index of the CHM did not always link to groups correctly.
- id 172456: Fixed case where doxygen had problems differentiating const and non-const member functions.
- id 172494: @code blocks were not properly ignored by the preprocessor in some cases.
- id 172622: Fixed parse problem for Objective-C method implementations whole declaration part ended with a semicolon.
- id 172723: Namespace members appeared in the file documentation without proper links to the namespace.
- id 172778: A single colon after retval caused a crash.
- id 172783: Doxygen will now put quotes around a filter name before calling it so it will work with filters with spaces in the name or path.
- id 172818: Improved translation of Todo List to German.
- id 172937: FILE_VERSION_FILTER failed for filenames containing spaces.
- id 173034: The \elseif command was not handled properly.
- id 173110: \ingroup did not work with multiple group labels anymore.
- id 300204: Doxygen disobeyed Cygwin's 'text/binary mount mode' (thanks to Max Bowsher for the patch).
- id 300466: Improved the documentation for FILTER_SOURCE_FILES.
- is 300473: Added a browse button for several of Doxywizard's fields of the expert dialog where a file was expected.
- id 300532: consecutive @todo items were joined together even if they are in different sections.
- id 300745: A disabled @cond section did not omit #define documentation.
- is 301409: autolinks to undocumented files did not work correctly when SOURCE_BROWSER was enabled.
- id 301437: Fixed a typo in an example that is part of the preprocessor documentation.
- id 301478: Fixed some cases where cross-references were not properly detected anymore.
- id 301616: Added "+" or "-" to the Objective-C method lists in the summary section of a class.
- id 302100: An enum could not be grouped by grouping out of line documentation.
- id 302158: When enabling SEPARATE_MEMBER_PAGES and CREATE_SUBDIRS the member index contained invalid links.
- id 302160: list directly after @brief not parsed properly if there were spaces before the @brief command.
- id 302713: Updated doxytag so it works better with recent versions of Qt3 and the Qt4 beta versions.
- id 303305: When using \subpage the page hierarchy wasn't reflected in the tree view or .chm index.
- id 303511: Documenting a class in a namespace with a comment block inside the namespace containing a @class command did not work properly.
- id 303911: Links from todo list items to Objective-C categories were broken.
- id 304026: A class/struct/interface can now be turned into something else of the same kind using the proper command (i.e. @interface could by used to turn a class into an interface).
- Doxygen did not honor the "All members of an interface in Java are implicitly public" rule.
- An enum of a class could not be documented with @enum from inside a namespace.
- Fixed problem handling unname member groups (useful in combination with DISTRIBUTE_GROUP_DOC = YES, which didn't work anymore).
- Updated Doxygen.dsp (thanks to Gerik Rhoden).
- For a word marked with a #, the # is now also removed when no link could be generated.
- Using '<' (or '\<') in a <pre> section cause '$<$' to appear in the Latex output.

# Doxygen Release 1.4.2

(release date 28-3-2005)

### Changes

- If the class/namespace/file member indexes get too long they are now automatically split over multiple pages (one page per index letter).
- Internal: I've split the input scanner (scanner.l) in a part that scans the supported programming languages and passes the comment blocks to a second scanner. This should clean up the code a lot and make the handling of structural commands (like \class and \section) more consistent. It is also a first step towards supporting dedicated scanners for other programming languages.
- Made doxygen parse .as files (Action Script) as Java code.

### New features

- Added a new option SEPARATE_MEMBER_PAGES. When enabled doxygen will generate a separate page for each documented member, instead of putting all members on the class/file/namespace page. An index for other members of the same compound is rendered on the left hand side of the page.
- Added new command \subpage that can be used to build a hierarchy of pages. For pages this is more convenient than using \defgroup and \ingroup. See the documentation more details and an example.
- Included man pages for doxygen and doxywizard.
- Language updates for Czech, Swedish, Russian, Italian, Catalan, German, Brazilian, Korean, Ukrainian, Romanian, Croatian and Chinese,

### Bug fixes

- id 124214: #'s inside a single quoted PHP string could lead to parse problems.
- id 142339: Doxygen did not using the LATEX_CMD_NAME setting when generating formulas.
- id 163180: Extension specific filters did not work.
- id 163940: Labels in dot graphs containing quotes where not escaped properly.
- id 164198: \overload text was always English, it is now translatable.
- id 164498: Fixed problem where doxygen ignored the documentation for members of Objective C class categories when put in the implementation section.
- id 164563: \anchor didn't work inside a <pre>...</pre> section.
- id 164812: fix compile problem for certain language selections.
- id 165097: Fixed problem with wrong syntax color in \code section.
- id 165188: in index.xsd the refid attribute type (xsd:Name) was not broad enough and has been replaced by xsd:string.
- id 165339: Fixed some issues in the code parser causing missed cross-referencing relations and/or call graphs.
- id 165428: ALIASES containing @section commands where not handled properly.
- id 165503: grouped classes did not appear as such in the XML output.
- id 165793: input filter was applied to \verbinclude.
- id 165816: Grouped functions referenced via tag files had broken links
- id 165821: Tag file parser produced bogus errors for nested classes and namespaces and no line number was reported.
- id 166043: static initializer block in Java made doxygen ignore the rest of the file.
- id 166161: More documentation to make the \code command more clear.
- id 166756: Fixed a number of issues with the new comment scanner. It should be much more usable now.
- id 166782: XML output: Simple types in a namespace are also listed at file scope in index.xml
- id 166863: @class required fully qualified name even if the comment block was in the right scope already.
- id 166898: Forward declaring a template class added the template argument to next class defined
- id 167037: The method names were non-informative in the todo like lists when HIDE_SCOPE_NAMES was set to YES (thanks to Luigi Ballabio for the fix).
- id 167040: Related functions were listed as members in the todo list.
- id 167462: Doxygen doesn't recognize references to methods of classes that come as parameter
- id 168159: Sometimes enums don't have hyperlinks in the source code.
- id 168243: Doxygen produced an unclear warning when putting multiple @page commands in one comment block.
- id 168693: A C-style comment ending with a brief description (including dot) and a **/ as end marker, caused strange warning.
- id 168734: Nested C comments in a \code block confused the preprocessor.
- id 168754: //@{ was not working with the new comment block scanner.
- id 168871: \~ did not work in C++ style documentation and aliases.
- id 168961: Fixed problem parsing arrays of unnamed structs.
- id 169003: cross-references were make to global variables even if the global variables were hidden by local ones or undocumented/private member variables.
- id 169069: static C++ variables with initializers were detected as functions.
- id 169188: static functions were not extracted from PHP classes even though EXTRACT_STATIC was set to YES.
- id 169495: const Qt properties were not parsed properly.
- id 169535: spaces after \ref command were not preserved in <pre> context when the command had only one argument.
- id 169547: Removed bogus warning for friend classes inside classes in an anonymous namespace.
- id 169549: Previous fixes introduced flattening of the class hierarchy.
- id 169640: File suffix check for the D language was broken.
- id 169641: D constructors and destructors were not detected.
- is 169657: Fixed the way import is treated in D to prevent recursive lockup.
- id 169784: Objective-C methods with a variable number of arguments were are not parsed properly.
- id 169789: Images specified via \image are now also copied to the XML output.
- id 170612: documenting members of nested anonymous compounds did no longer work.
- id 170833: <code> ended a brief description.
- id 170835: doxygen didn't match members of classes in unnamed namespaces with their definitions
- id 170846: template instance friend classes could not be documented externally.
- id 171260: In some cases doxygen produced an incorrect warning about duplicate detailed descriptions.
- id 171295: It now possible again to link to a (enum)value of a @retval using #name.
- id 171376: \else command was not properly parsed if the corresponding \if was disabled.
- id 171749: Using @relatesalso for functions in a namespace didn't work correctly.
- It is now possible again to use Thing%s to auto-link to a class Thing and put a non-linked "s" after it.
- Nested anonymous namespaces appeared as @<num> in the documentation of the parent namespace.
- aliases containing @brief were not handled correctly.
- The class name in the HtmlHelp index was linked to the first member function of that class instead of the class itself.

# Doxygen Release 1.4.1

(release date 11-1-2005)

### Bug fixes

- id 163058,163401: Due to a memory corruption bug doxygen could crash under certain conditions (the Windows binary was the most sensitive to this).
- id 163003,163495: Doxygen crashed when GROUP_GRAPH and UML_LOOK were enabled.
- Book icon in the treeview is now clickable and has the appropriate action (thanks to Will Bateman).
- Entering the expert dialog in doxywizard now only requires saving the config file if actual changes were made.

# Doxygen Release 1.4.0

(release date 31-12-2004)

### Changes

- In the HTML help output (.chm files) the index items with only one subitem are now collapsed into one item (thanks to Antony Pranata for the patch).
- Some minor tweaks to the style sheet.
- @relates can now not only be used for functions, but also for other members (i.e. enums, types and variables).
- Static members do have have explicit "static" in the declaration part of the documentation. This is useful for grouping where it is otherwise not obvious that a member is static.
- typedefs and enumeration are no longer shown in the "referenced by" list as these are types (based on patch by Antoine Tandin).
- Make configure script use solaris-g++ by default (Sun's own compiler generates faulty code for doxygen).

### New features

- Included language update for Serbian, German, and Korean.
- For directories dependency graphs are now generated (controlled by the DIRECTORY_GRAPH switch). For a given directory, the graph will show its parent directory and the sub directories as nested boxes. For the directory and its sub directories it will show the relations with other directories. Relations are based on #include relations of the files contained in the directories. Each dependency arrow has an associated number. This number indicates the number of different #include relations. Clicking on the number will show a page with the exact #include relations (the latter is for the HTML output only).
- Added \cond and \endcond commands, which can be used to (conditionally) exclude a part of a file. See the manual for an example.
- Added "-d ExtCmd" debug option, which when used shows what doxygen will execute when invoking an external command (such as dot).
- New option WARN_NO_PARAMDOC that warns about the absence of function parameter or return type documentation.
- Nested classes are now listed in their containing class.
- Extended the \f command to support different environments, i.e. \f{eqnarray*} for equation arrays. The end command is \f}. The documentation has an example.
- Added support for group dependency graphs (thanks to a patch by Antoine Tandin): New option: GROUP_GRAPHS
- New option DOT_TRANSPARENT to enable dot graph with a transparent background. Thanks to Maik Hinrichs for the patch.
- New option FILE_VERSION_FILTER which allows an external tool to provide version information per file, which is then used in the file documentation. Thanks to Maik Hinrichs for the patch.
- id 162295: New option DOT_MULTI_TARGETS which when set to YES, will run dot with multiple output files if possible. This was added to support older version of dot (<=1.8.10) which do not support multiple output targets. If you use a recent version of dot, you probably want to enable this (default is NO).

### Bug fixes

- id 119868: Removed warning when </li> ended a @c or similar command.
- id 120367: \~lang didn't work correctly around brief descriptions and certain commands. It is now implemented as an early filter operation like \cond.
- id 135311: Recursive ALIAS definitions now work again.
- id 151012: <td> tag in HTML function documentation missed 'class="md"'
- id 154689: Wrong link to members of namespaces imported from tag files when CASE_SENSE_NAMES is set to NO.
- id 154700: anchors in pages imported via tag files could not be linked to.
- id 154755: Files were missing from Doxygen.dsp project file. (thanks to Gerik Rhoden).
- id 154758: Fixed typedef resolution bug that could crash doxygen (thanks to Gerik Rhoden for the analysis and fix).
- id 154862: Fixed problem matching array parameters that include template parameters as the array size.
- id 154863: Fixed parsing problem in the preprocessor when an expression contained the division operator.
- id 154469: Referring to Objective-C messages was broken if the full scope was used.
- id 155086: Typedef for member-function pointers of template classes not recognized
- id 155272: Image filenames in RTF output were not quoted causing problem with custom images whose name contained spaces.
- id 155322: Fixed parse problem for php code containing '#'.
- id 155224: Java interfaces didn't resolve across packages w/o FQN.
- id 156411: Return type of a function was not hyperlinked in some cases (typical with nested namespaces or Java packages).
- id 156445: function seen first in header and doc'ed in source broke autolinking depending on the order of the input.
- id 157085: Autolinks for const/volatile operators didn't work.
- id 157229: Upper case letters in \page "<name>" breaks title on page.
- id 157433: Multi-variable declarations were not parsed properly.
- id 157485: @todo's inside the body of a function were not handled properly.
- id 158961: Set EXTRACT_ALL to NO resulted in no directory information unless the directory and files were documented. This is now controlled by SHOW_DIRECTORIES.
- id 158481: I did some memory usage analysis with valgrind's massif tool, which indicated that a lot of memory was used by QCString objects. This made me decide to reimplement the class and optimize it for memory usage. The resulting class saves a "new" operation of 12 bytes per string object, which seems to reduce the overall amount of memory used by doxygen by a factor 2 to 3! The implementation seemed more expense to use (as it always copies the content instead of sharing it), but the performance has improved nevertheless (probably because "new" is much more expensive operation than copying small strings).
- id 158637: Links to classes in brief description in index pages were wrong when CREATE_SUBDIRS was set to YES.
- id 158884: "typedef [something] enum" in IDL was not handled properly.
- id 159487: @ref's to Objective-C class categories were not possible.
- id 159973: @todo item in anonymous enum resulted in broken link.
- id 160642: Fixed problem parsing multi-dimensional C arrays.
- id 160673: Borland's __property keyword was not handled correctly.
- id 160824: UML Collab diagram did't show fields in user defined groups.
- id 160931: Made configure script use /bin/bash as it apparently didn't work with /bin/sh anyway.
- id 161048: Latex output for directories could contain unescaped underscores when SHOW_DIRECTORIES was set to YES.
- id 161167: /// \file was not parsed properly.
- id 161247: If CALL_GRAPH was enabled references were shown even if REFERENCES_RELATION was set to NO.
- id 161320: An incorrect line number was given for inherited comments which have an error.
- id 161321: Fixed problem parsing '"' in PHP code.
- id 161394: Fixed problem with inheritance tree showing the same undocumented base class multiple times.
- id 161556: Fixed two parse bugs related to member specializations.
- id 162149: URLs with commas were not handled properly.
- id 162271: Doxygen was confused by read-only Qt properties.
- id 162434: void function gave rise to warnings when WARN_NO_PARAMDOC was set to YES.
- id 162446: Fixed parse problem in code.l, causing it to get off track.
- id 162517: A @ref command was not parsed properly if the argument between quotes was found on the next line.
- Dot would not run if doxygen was installed in a path which contained spaces (macOS).
- Functions inside inline methods were not always cross-referenced anymore.
- Latex output was broken in some cases where anonymous structs were used.
- Fixed bug in doxywizard: if the wizard was used some settings were not remembered.
- Using \n inside an ALIAS definition caused line numbers for source browsing to become misaligned.
- For included-by graphs files with the same name all had the same node label.
- The following typedef was not parsed properly: typedef function<void (int,int)> ptr_t;
- Fixed problems with the WARN_NO_PARAMDOC command.
- Struct members of the form "enum a b;" where not properly parsed.
- Fixed a couple of memory leaks.
- Fixed crash problem on Windows related to the new string implementation.
- Fixed problem with Visual Studio project files (in wintools).
- Included patch by Antoine Tandin to fix problem with GROUP_GRAPHS in combination with CREATE_SUBDIRS = YES.
- Included patch by Mikhail Glushenkov to make HTML look prettier.
- Parsing operator[]s was broken.
- Referencing constants via #CONST did not work anymore.
- Fixed problem handing multiline ALIASES containing @defgroup and @ingroup.
- Fixed problem handling \n in ALIASES.
- @section's in non-page documentation blocks did not work.
- Referencing a group label in a @see section, now shows the group's title i.s.o. the label name (this was already done for @ref).

# 1.3 Series

# Doxygen Release 1.3.9.1

### Bug fixes

(ids refer to the old bugzilla issue, just use it in the search box of the issue tracker)

- Due to an error in the packaging script, an old version of doxywizard was bundled with the macOS version of doxygen.
- Dot would not run if doxygen was installed in a path which contained spaces (macOS).
- id 151012: <td> tag in HTML function documentation missed 'class="md"'
- id 154689: Wrong link to members of namespaces imported from tag files when CASE_SENSE_NAMES is set to NO.
- id 154700: anchors in pages imported via tag files could not be linked to.
- id 154755: Files were missing from Doxygen.dsp project file. (thanks to Gerik Rhoden for sending an update).
- id 154758: Fixed typedef resolution bug that could crash doxygen (thanks to Gerik Rhoden for the analysis and fix).
- id 154862: Fixed problem matching array parameters that include template parameters as the array size.
- id 154863: Fixed parsing problem in the preprocessor when an expression contained the division operator.

# Doxygen Release 1.3.9

### Changes

- Changed the stylesheet so font usage is more uniform and consistent.
- Changed the colors of the doxygen logo at the bottom of a HTML page. Let me know if you prefer this one or the old one.
- Improved rendering of template functions and methods in the HTML output (previously these could push the method names to the right side of the page).
- id 149899: A macro defined in the config file (see PREDEFINED) can now prevented from being undefined (via a #undef in the code) when its value is assigned via the := operator (e.g. PREDEFINED = A(x):=x ).
- id 150631: if HIDE_SCOPE_NAMES is enabled the scope of a method in a call graph is only shown when the method is of a different class.
- id 151911: Stylesheet is generated earlier in the process.
- id 152164, 152166: Improved the way search results are sorted.
- Changed the way function pointer arguments are represented in the detailed description.

### New features

- Directory information is now extracted by doxygen. Files are automatically grouped by directory. You can use the SHOW_DIRECTORIES option to enable/disable this feature. Added a new command \dir which can be used to document directories.
- Language updates for Czech, Swedish, Hungarian, Danish, Russian, Italian, German, Chinese, Croatian, and Polish.
- Applied a patch by Arend van Beelen which adds support for the new features introduced in PHP5.
- Applied a patch by Ferdinand Wess for better handling of #import statements in Obj-C code.
- Applied a patch by Adam Treat to add read and write accessors of a Q_PROPERY to the XML output.
- Arnaud Bercegeay has added platform support for the Atari MiNT OS.
- Included patch by James Ahlborn which improves the way nested numbered lists are layouted in the HTML output.
- Included update for Hungarian translation.
- Added patch to improve support for Debian (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=263542)

### Bug fixes

- id 123772: putting an example inside a group caused broken links to in the example list.
- id 125737: Fixed link error when a @todo item was placed in the documentation of a variable inside a anonymous union/struct.
- id 126344: Added initial support for member template specializations.
- id 126448: Argument passed to input filter was not always quoted.
- id 126745: Anchors of grouped members were wrong in some cases.
- id 128585: Lists were not always rendered properly in the man page output format.
- id 128809: Hidden files (starting with a dot) could not be included with for instance \verbinclude.
- id 130431: Prevented recursive loop in the call graph when a function declares a local variable with the name of the function.
- id 131299: \copydoc with argument A#func() didn't work.
- id 131354: Fixed bug matching function declaration/implementation with using declarations.
- id 135448: Improved autodetection of Qt by the configure script some more (thanks to Michael Henry).
- id 135808: Removed reference to doxysearch.cpp from Doxyfile included with the source distribution.
- id 138629: Included patch to make the HTML output more conformant to the XHTML standard (thanks to Jan Nijtmans).
- id 144865: Variables in anonymous unions/structs did not appear as data fields.
- id 148547: Added a workaround for a compile problem in pngrutils.c on AIX 5.2.
- id 148671: Using "publicsomething" as a name for a base class resulted in the "public" part being stripped.
- id 148707: <a href> and <br> tags are now allowed inside html headings.
- id 149023: Fixed template inheritance through typedefs problem.
- id 149045: Fixed several small problems related to template handling.
- id 149106: Fixed problem parsing enum declarations.
- id 149164: Fixed problem in the configure script when used with perl version 5.6 (thanks to a patch by Joerg Schlichenmaier)
- id 149258: Example sources could be wrongly indented.
- id 149263: Fixed copy/paste error in HTML_FOOTER documentation.
- id 149698: Multiple lines of //!< comments were not handle correctly.
- id 149711: Title of a namespace page/section was not generated.
- id 149797: Forgot to turn off debug mode for the RTF output.
- id 149880: Brief description of one variable could appear in the the description of the next under certain circumstances.
- id 150264: linking to Obj-C protocols did not work.
- id 150427: "virtual" and "const" were not nicely formatted when followed by unary scope resolution operator (e.g "const ::A")
- id 150629: Enabling OPTIMIZE_OUTPUT_JAVA did not help for call graphs.
- id 151457: Fixed compile problem on Solaris 4.2.
- id 151452: Bug in LaTeX output for anonymous structs/unions whose members have brief descriptions.
- id 151246: Parse error when using in-body comment blocks.
- id 152005: Objective-C string constants appear in output with @"@"
- id 152182: Spaces mess up type in Objective C functions.
- id 152184: label-less parameters in Objective C functions were not parsed properly.
- id 152383: Objective-C categories showed methods twice.
- id 152572: \brief inside an argument description caused a bogus warning.
- id 152681: Call-graphs were generated inside a table environment in the HTML output.
- #include after a @file comment made the #include appear on the same line when DETAILED_AT_TOP was enabled.
- User specified images & stylesheets did not work with CREATE_SUBDIR.
- Nested using directives did not work for C#.
- Grouped classes did not always appear in the modules section of the navigation tree.
- "internal" classes appeared in the XML output.
- friend classes did no longer appear in the output even when HIDE_FRIEND_COMPOUNDS was set to NO.
- Fixing bug in code parser when encountering arrays and some other related problems.
- Array initializers did not show up regardless of the MAX_INITIALIZER_LINES setting.
- Improved support for classes with the same name but in different namespaces in combination with "using" of namespaces.

# Doxygen Release 1.3.8

### Changes

- Rewrote doxywizard. It should be more easy to use and has much better support for running doxygen from the GUI. Feedback is welcomed!
- Members of a namespace are now also added to the file in which they appear (thanks to Mike Morearty for the patch).
- Included patch by Mikhail Glushenkov that fixed item 5 on the todo list (titles of html pages are now internationalized).
- A macro defined in the config file can now be undefined in the source code via a #undef.
- Optimized calling of dot using multiple -T flags at a couple of places (note that doxygen now requires graphviz >=1.9)

### New features

- New option FILTER_PATTERNS which can be used to specify multiple input filters, and let doxygen select the right one based on matching the source file name with a specified pattern (thanks to a patch by James Ahlborn).
- id 142939: New commands \protocol and \category which can be used to document Objective-C protocols and categories in the same way the \class command does for classes.
- Included patch that removes some cosmetic annoyances in the man page output (thanks to Chris Croughton).
- Added internationalization support for Afrikaans and Lithuanian. Included language updates for Dutch, Czech, Italian, Brazilian, Croatian, Japanese, Norwegian and Russian.

### Bug fixes

- id 120810: \code fragment has links first time, but then no more.
- id 124214: Fixed parse problems with single quoted strings in PHP.
- id 135508: Using a namespace in C# did not get interpreted correctly.
- id 137842: Using @todo/@bug/... and disabling the generation of the list, still caused a colon to appear in the output.
- id 138075: A comment block containing a \code block with C style comments was not properly parsed.
- id 138307: Fixed parse problems with single quoted strings in PHP.
- id 138394: C style comments placed on the same line after a macro definition appeared as part of the macro's value.
- id 138429: Fixed language setting for HTML output when using traditional Chinese.
- id 140259: Using @dotfile in a comment block could cause broken @refs to sections defined after the @dotfile command.
- id 141915: Fixed a couple of problems with the RTF output.
- id 141918: Fixed a couple of problems with the RTF output.
- id 142118: Fixed compile issue with the mingw compiler.
- id 142288: Doxywizard crashed when started (fix was applied to version 1.3.7 as well).
- id 142741: Links in todo/bug/... lists were broken if CREATE_SUBDIRS was enabled. Same was true for the built-in diagrams.
- id 142925: Autolinking to a member of a class from a page inside a namespace did not work.
- id 142940: Due to a misplaced break statement a examples included with \example was shown twice in the output.
- id 143107: Made some cosmetic changes to the HTML and HTML output, (thanks to David Baird for the patch).
- id 143340: Fixed autolink problem for names ending with a colon or a <br> tag.
- id 143412: Fixed problem parsing Objective C class methods.
- id 143413: Fixed problem parsing Objective C root classes.
- id 143593: Under certain conditions the XML output could contain a reference to a non-existing class.
- id 145295: Variable of a templated type was mistaken for a function.
- id 145583: Fixed problems handing formulas and graphs defined using @dot in combination with CREATE_SUBDIRS = YES.
- id 147253: Quotes in a class initializer could confuse the source code parser.
- id 147425: The class diagram did not show the relation to the template specialization when inheritance was done via one or more typedefs.
- Fixed case where template classes "used" via typedefs were not properly shown in the collaboration diagram.
- Variables explicitly declared external were reported being defined at the place they were actually declared external.
- Fixed bug in the XML schema for enum values with initializers.
- Documentation of a member group did not appear in the XML output (thanks to Chris Croughton for the patch).
- Command line build process failed under windows if the name of the directory in which sources are located contained spaces (thanks to Mikhail Glushenkov for the patch).
- Improved cross-referencing to methods of a template instance variables (thanks to a patch by Jeff Apple).
- Included a patch by Enrico Schnepel that puts the same output files in the same subdirectories (with SUBDIRS = YES) for subsequent runs (on slightly modified input files) and also renumbers the dot nodes so they are only regenerated when actually changed.
- Unsupported HTML end tags and unsupported begin tags with attributes are now copied to the output as is.

# Doxygen Release 1.3.7

### Changes

- The \param command now has an optional input and/or output attribute. The syntax for an input & output parameter is for example: \param[in,out] name Description.

### New features

- Added new option CREATE_SUBDIRS which when enabled makes doxygen distribute the generated output evenly over 100 subdirectories.
- Added support for Qt's properties (i.e. Q_PROPERTY) which can be documented by putting a documentation block in front of the macro or by using a comment block with the new \property command.
- Added new commands \manonly and \endmanonly to enter man page specific text and commands in the generated man pages (thanks to Carsten Stiborg).
- Included new python based translation report script, which now replaces the old perl based version (thanks to Petr Prikryl).
- Improved parser to also support parsing of Objective-C implementation files.
- Added new config option EXTRACT_LOCAL_METHODS which can be used for Objective-C code to extract methods definition in the implementation section that are not present in the interface.
- Added new config option STRIP_FROM_INC_PATH which allows to specify a list of paths that, if matched, will be striped from the #include statement in the generated documentation of a class.
- Added new command \includelineno with works as \include except it will add line numbers to the code (thanks to Giancarlo Niccolai for the patch).
- Added BeOS support, thanks to a patch by Mark Hellegers.
- Included update for the French translation, thanks to Jacques Bouchard.

### Bug fixes

- id 133388: Fixed problem parsing '"' inside multi-line C++ style comment blocks
- id 134265: Doxygen now outputs unrecognized HTML tags instead of removing them (thanks to Éric Malenfant for the patch).
- id 134869: When HIDE_SCOPE_NAMES was set to NO, the methods of an Objective-C class did not have the right name.
- id 134876: Fixed problem with forward declaration of a protocol in Objective-C.
- id 134647: using a parameter name ending with "const" was not accepted by doxygen.
- id 134639: Fixed parse problem in the preprocessor.
- id 137398: add \% command to the documentation.
- id 137730: Fixed problem for man pages with non numeric extension (thanks to a patch by Joe Schirmer).
- id 138652: Line numbers for defines with /* */ comments were wrong (thanks to J. Noack for the patch).
- id 139591: Fixed problem parsing nested template arguments with comments.
- id 140012: a variable could appear in a group twice if it was declared externally somewhere.
- id 140540: Fixed problem parsing "@" in the source code parser.
- id 141133: Spaces were stripped in default arguments such as f(const char *t=" \t")
- id 141364: Members of an anonymous nested structure had no brief comment and no link to the detailed description if available.
- Fixed recursive lockup problem that was caused by two or more namespaces using each other (i.e. a cycle in the usage relation).
- Included patch by Erik Zeek to allow the explicit setting of QTDIR to override the "search for Qt" algorithm in the configure script.
- Parsing of tag files produced for Objective-C code now works.
- Objective-C: Improved hyperlinking of source code, handling of prototypes and the list of all members of a class now also contains the members of class categories.
- Third argument of @class was ignored (thanks to Mahadevan for the patch).
- Fixed problem with collaboration diagrams for template instances whose template parameter list contained qualified scope names (e.g A<B::C>).
- Removed bogus warning about undefined documented function for classes that were made friends of other classes.
- Spaces where not preserved for @code block inside a @example block.
- Undocumented dependency relations where not shown in some cases even though HIDE_UNDOC_RELATIONS was set to NO.
- Fixed two bugs that resulted in invalid HTML output.
- For Unix the default FILE_PATTERNS did not include upper case versions such as .C and .H
- Fixed incorrect character encoding problem for the generated tag files.
- Fixed problem that could lead to memory corruption/crashes.
- Included a patch by Bernhard Rosenk to fix a compile problem with doxywizard using a recent Qt version.
- Call-graphs were missing if a file name ended with ".C" and K&R function definitions were used.
- Improved source code generation performance when there are many typedefs with the same name in different scopes.
- Linking to a section resulted in the wrong label in the XML output.

# Doxygen Release 1.3.6

### Changes

- For projects with many nested classes, namespaces, typedefs and using statements, doxygen could become very slow. This should now be improved significantly.
- Made some cosmetic changes to the HTML output (thanks to Ben Harper).
- STRIP_FROM_PATH now by default strips the path from which doxygen is run (i.e. $(PWD)/ on Unix)

### New features

- Make a start with adding support for Objective-C. Doxygen can now parse Objective-C header files (including protocols and categories). Thanks to Apple for donating hardware.
- Include a patch by Hauke Duden which adds preliminary support for the D programming language (see http://www.digitalmars.com/d).
- C Comments inside #defines are now preserved. This could be useful to document boilerplate code.
- Included patch to replace tabs by the proper amount of spaced inside code fragments in the XML output (thanks to Alexandr for the patch).
- Included Gerik Rhoden's fixes for the .dsp/.dsw files found in the wintools dir.
- Examples (documented via \example) are now included in the XML output.
- New option SORT_BRIEF_DOCS which when enabled will list the declaration section of the documentation (with the brief descriptions) in alphabetical order, instead of declaration order (thanks to Akos Kiss for the patch).
- Included patch for Hungarian translation (thanks to Akos Kiss) and for the Serbian language. Added support for mixed Korean/english (thanks to Jihoon Chung). The translator report script was also updated (thanks to Petr Prikryl)

### Bug fixes

- id 120070: Included workaround for build problems with RedHat 9 (thanks to Tim van Holder)
- id 128054: Fixed rare case where doxygen crashed due to a recursive lock-up.
- id 131404: Fixed problem cross-referencing PHP member functions.
- id 131434: Clarified confusing warning message.
- id 131446: Extra attributes of a <a href> tag (like target) are now copied to the HTML output.
- id 132535: Fixed problem with generating man page output for groups with brief descriptions.
- id 132772: Fixed compile problems on HP-UX using acc compiler (thanks to Clyde Gerber).
- id 133300: Fixed missing cross-reference to "c" in constructs such as "a[b].c"
- id 133482: Fixed spurious cross-references to member function which was shadowed by a parameter name.
- id 133986: Attributes of the <img> tag where not written to the HTML output.
- id 134123: Fixed problem with multiple arrows between nodes in the graphical class hierarchy.
- \ref in dot graphs was not working correctly (thanks to Eoin MacDonell for the fix).
- Grouped pages in the XML output did have the same id as their group.
- Fixed problem handling environment variables inside a quoted string in the config file (e.g. "$(HOME)/My Path/").
- Using "\mainpage notitle" caused the "notitle" to appear in the treeview.
- Page references where wrong in the latex output when PDF_HYPERLINKS was disabled.
- Words inside a hyperlink could be hyperlinked, resulting in invalid HTML.
- Fixed parse error handling function pointer arguments in K&R-style code.
- Doxygen could crash when it failed to enter a directory.

# Doxygen Release 1.3.5

### Changes

- Doxygen now only regenerates a dot image if it has actually changed! This could significantly reduce the time of any run after the first. Checking if a graph has changed is done by computing an md5 hash for the graph description which is then stored along with the image generated by dot and compared in subsequent runs.
- Improved the way lists look in the man pages (thanks to Silke Reimer).

### New features

- Added support for parsing K&R style function prototypes. Please try it on your favorite legacy C project and report any problems.
- Included languages updates for Traditional Chinese, Danish, German, Korean translation.
- id 120464: doxygen's XML output does now assign a prot="..." attribute for nested classes (thanks to Paul Ross for the patch).
- Added new configuration switch XML_PROGRAMLISTING to enable/disable generating source code listings as part of the XML output (thanks to Paul Ross for the patch).
- Added new config option ABBREVIATE_BRIEF which makes the aberration process of brief descriptions configurable and language independent (thanks to Jake Colman for the patch).
- The alphabetical class list now comes with a quick index (thanks to Marcin Zukowski for the patch).
- An XSLT script "combine.xslt" is now generated in the XML output directory. It can be used to combine XML files into one big file.
- The source code is now indexed and thus searchable when the source browser and search engine options are enabled.
- Added "dist" target to the makefile (thanks to Erik Zeek)

### Bug fixes

- id 119778, 123385: Documentation in the body of a function could not be combined with a detailed description before the declaration.
- id 122852: References to grouped functions were wrong in certain cases.
- id 123031: problem matching f(const char) with f(const char cc).
- id 123140: typedef'ed enums whose tag name was the same as the typedef name did not appear in a group.
- id 123145: Under certain circumstances an assertion failed message was produced.
- id 123206: Fixed problem in qtools when opening files in text mode.
- id 123322: The search page did not honor DISABLE_INDEX.
- id 123420: Functions with a brief description caused bogus </em> tags in the HTML output.
- id 124114: typo in the generated PHP search script could cause errors in the search result page.
- id 124187: Setting EXTRACT_LOCAL_CLASSES to NO, could result in a broken "More..." link in documented local classes inside a namespace.
- id 124214: Fixed problem in search indexer, which could crash doxygen (thanks to Daniel Koebbing for the patch).
- id 124545: fixed a number of problems in the generated search script.
- id 124815: Fixed compile problem in filedef.h for aCC on HP-UX.
- id 125369: Fixed inconsistency of showing files in the tree view (thanks to a patch by Alexey Neyman).
- id 125424: Font size was not reset after @endcode or verbatim block in the latex output.
- id 125654: Character encoding was not correct for html help treeview (thanks to Sawada Kentaro for the fix).
- id 125367: Fixed problem with producing links in case files with the same name (but in different directories).
- id 126968: Fixed problem parsing verbatim string literals such as @"\" in C#.
- id 127094: Fixed character encoding problem in the XML output.
- id 131364: Fixed parse problem when initializing a function pointer.
- Links to classes, files, namespaces and groups in the search results were broken (missing file extension).
- Doxygen logo is now transparent even when viewed with IE.
- Using a character with ascii code 0x06 in a comment block could crash doxygen if the preprocessor was enabled.
- Fixed problem handling conditional commands and grouping (thanks to Silke Reimer for the patch).
- Fixed problem using \dotfile in combination with RTF output (thanks to Vegard Larsen).
- Fixed several problems related to the new md5 hash feature.
- Undocumented functions referenced in a comment block were linked to anyway.
- Fixed a number of typos in the config file documentation (thanks to Boaz Kelmer)
- Workaround for toupper() bug for Russian (thanks to cav@cryptopro.ru)
- Fixed problem that HTML image maps ended up in the RTF output.
- Fixed bug in code fragment parser that could cause memory corruption in certain cases.
- Fixed problem matching definition and declaration of functions, which could cause bogus warnings for functions with the same name but in different namespaces.
- Using "/// @file" to document a file quickly was not possible, while "/** @file */" did work. Now both work.

# Doxygen Release 1.3.4

### Changes

- Rewrote the search engine. The doxysearch CGI binary has been replaced by a PHP script which is generated by doxygen. Also the index file is now generated by doxygen and requires way less memory. This should make it much easier to use the search facility. All that is required is a web server with PHP 4.1 or higher. Please report any problems you find.
- Changed the way class names are resolved. This can result in a significant speedup for projects that use namespaces and typedefs (including Java projects). Thanks to Edmund Green for the performance analysis and ideas.

### New features

- Added support for the &oslash;, and &Oslash; character entities.
- Added language updates for Korean, Swedish, German, Russian, Croatian, Brazilian, Spanish, Japanese, French and Italian.
- Added new \relatesalso command, which can be used to put a file member also in the documentation of a class (thanks to Ian Scott for the patch).
- Added support for pseudo IDL files with the .pidl extension (as used in TAO). Thanks to Éric Malenfant for the patch.
- Added new commands \dot ... \enddot to include a dot graph in a comment block (thanks to a patch by Eoin MacDonell). Inside the URL attribute of a node you can use \ref to make links to documented items. See the documentation of the \dot command for an example.

### Bug fixes

- Fixed recursive lock-up problem handling "using" of namespaces.
- Doxygen incorrectly translated \\htmlonly and \\latexonly to \verbatim in the output.
- Using the -d Time option caused: message.cpp<100>: Internal error: Requested unknown option QUIET at the end of the run.
- Static members appeared in the todo list even if EXTRACT_STATIC was set to NO.
- Fixed problem matching f(const int *i) with f(const int * const i),
- Fixed case where a variable could get by assigned a bogus "()" in the heading of the detailed description.
- Fixed problem handling extern"C" (without the space).
- \ref file.c ended up as file::c in the output.
- Special characters in generated texts were not always translated into proper LaTeX commands in the LaTeX output.
- Fixed problem parsing "const ::Class *func()" and "static ::Class *func()". The keywords were seen as namespaces. due to the use of more than one const keyword.
- Fixed two bugs in compound.xsd schema, thanks to Ademar Aguiar.
- Fixed some more problems linking typedefs in combination with namespaces.
- id 120637: Fixed parse problem handing character literals such as '"' inside the initializer list of a constructor.
- Fixed file handle leak when INLINE_SOURCES was set to YES.
- Fixed problem handling Java packages (Internal inconsistency warnings).
- Fixed problem preprocessing @verbatim blocks containing C comments.
- Fixed problem handling preprocessor statement just before a function body when ENABLE_PREPROCESSING was set to NO.
- id 122457: INLINE_SOURCES feature was broken (only showed the first line)

# Doxygen Release 1.3.3

### New features

- Included update for VC++ 6.0 project/workspace files (can be found in wintools). Thanks to Simon Goodwin & Johan Eriksson.
- Added new debug flag "-d Time" which will report the elapsed time for each message printed, and will also show the total running time along with the time spend on external tools such as dot. Note: If you have a project that takes doxygen a long time to process, please send me the output so I get a global idea where to optimize.
- New option SUBGROUPING which can be set to NO to have \nosubgrouping for all classes (thanks to Torben Koch for the patch).
- Added XML schemas for validating the XML output, and to help writing XSLT files. The generated index.xml now has a complete schema, the compounds not yet. Thanks go to Alexej Humbach for doing a lot of the work. Note that a couple of "id" attributes in the XML output have been changed to "refid", and section tags are now nested.
- Included language updates for Traditional Chinese and Japanese.

### Bug fixes

- Doxygen crashed when parsing a comment block with only a \mainpage command.
- Fixed problem matching namespace members.
- Fixed scanner push back error for ALIASES with long definitions.
- Default main page was wrong if DISABLE_INDEX was set to YES.
- Argument of type array were not properly parsed in Java, causing problems when documenting them with @param.
- \image with "" as caption didn't work.
- If the last \section in a comment block was empty, doxygen produced warnings.
- Call graphs were only generated if REFERENCES_RELATION was set to YES.
- Link could be wrong if a member's name was found in multiple namespaces.
- A function returning "struct s *" caused a bogus recursion relation in the call graph.
- Improved handling backslashes for the perlmodgen (thanks to Miguel Lobo).
- Page anchors did not appear in the tag files.
- \ref's to grouped pages were not generated correctly.
- Fixed parse bug when putting \image inside a HTML table.
- Made the documentation parser more tolerant to spaces inside HTML commands.
- Doxygen now issues a warning if invalid commands are used inside a single-line C++ comment (such a @see and @image).
- Fixed parse problem for the semicolon in the following: Class A : a(";") {};
- Doxygen now resolves links to classes imported in a namespace via using declarations or directives.
- Doxygen now issues a warning when @code, @verbatim, @htmlonly, or @latexonly are not properly terminated.
- Fixed "Internal inconsistency" messages when parsing Java packages.
- A member did not appear in its group if it was first declared without documentation and then defined with documentation (with \ingroup).
- The <caption> tag was put at the end of a <table> in the HTML output, while it should be the first tag after <table>. This is now corrected.
- In the LaTeX output, the page references were missing for the links in the documentation when PDF_HYPERLINK was set to NO.

# Doxygen Release 1.3.2

### Changes

- The main page (\mainpage) can now be completely customized, by using no project name or using "notitle" as argument for \mainpage.
- Changed the look of the quick index on top of each page using CSS.

### New features

- Added new command \callgraph which can be put in the documentation of a function to get a callgraph. In the config file a new option CALL_GRAPH is added which can be set to YES to enable callgraphs for all functions (note that this will slow doxygen down!).
- Added new boolean config option UML_LOOK which can be enabled to give class and collaboration diagrams a more UML conformant look (thanks to Dominick Paniscotti).
- Added new commands \xmlonly and \endxmlonly which can be paired to form blocks of text that only appear in the XML output.
- Added sub-indices for the lists of all class/file/namespace members to filter out just of type of members.
- Included language update for Czech, Italian, Portuguese, and French.

### Bug fixes

- Doxygen could crash if a namespace and a class with the same name were found in the global scope.
- Fixed problem handling multiple \xrefitem's in one comment block (could crash doxygen).
- Added check for recursive group relations to prevent lock-up/crash while generating the group index.
- Doxygen could crash if a group contained only undocumented members.
- Putting a #include inside a function body would cause the line numbering to be off.
- Fixed cause of a failed assertion when @retval or @param was the last text in a comment block.
- Improved scope detection for code parser when dealing with examples (imported via \example).
- Fixed preprocessor bug handling "#if!defined(VALUE)" (note the lack of a space).
- Added warning if @subsection, @subsubsection or @paragraph were found in the page context.
- French translation was broken (probably due to a dos2unix accident).
- Underscores inside a <pre> section did not appear correctly in the LaTeX output.
- Fixed several typos in the generated config file (thanks to a patch by Justin Zaglio)
- Formula's inside comments directly in front or behind function arguments did not work.
- Fixed code parser problem when //<! was nested in a normal C comment.
- Included a number of fixes for typos found and corrected by Justin Zaglio.
- For #define values that were constant strings, doxygen tried to link the text inside the string when shown in the documentation.
- The source-browse parser did not link to class variables used in inline function if the variables were defined before the functions.
- The first paragraph after a <h1> or similar heading was not put in a paragraph context in the generated output.

# Doxygen Release 1.3.1

### Changes

- A multi-line C++ comment block now has to be aligned in order to make doxygen treat it is one block. As a result the following is treated as one comment block:

                 int var; //!< variable.
                          //!  more info about var.
                 int anotherVar;

  while this results in two comment blocks:

                 int var; //!< variable.
                          //! info about second variable
                 int anotherVar;

  Hopefully this will give more intuitive results. Tabs are replaced by spaces according to the value of TAB_SIZE in the config file.
- Modified the CSS to change the look of the HTML output, and made the stylesheet a little more powerful (thanks to a patch by Ben Harper).
- Formula alignment in the HTML output is now controlled via CSS (thanks to a patch by Vassilii Khachaturov).
- The option TEMPLATE_RELATIONS now defaults to NO.

### New features

- Added new command \xrefitem which enables user-defined commands that act like \todo and \bug, i.e. produces a related page containing all items, which is cross-referenced with the documentation blocks where the items are placed.
- Added support for package scope in Java.
- Added alt attributes to user included images in the HTML output (thanks to patch by Vassilii Khachaturov)
- Added XML_OUTPUT option to allow a user defined location for generating XML output (thanks to a patch by Emmanuel Guerin).
- Included language updates for French, German, Czech, Italian, and Brazilian.

### Bug fixes

- Occurrences of <span> and <div> tags in the documentation were not properly handled.
- Fixed problem parsing the following pattern "namespace { .... } typedef ....", which could crash doxygen if IGNORE_PREFIX was used.
- The project name is now put in front of each title of a HTML page for easier bookmarking.
- In C# enums, classes and structs without (optional) ; were not properly parsed.
- Though still not perfect, I Improved the way namespace aliasing is handled. It should now work inside other namespaces and for computing class and usage relations.
- Fixed problem documenting typedefs of function pointers using \typedef.
- Links to groups imported via tag files were broken.
- Fixed problem resolving class relations for nested classes within namespaces.
- Static members can now be documented in a separate file using \fn as long as they have unique names. If the names are not unique the documentation must be located in the same file (as was required before).
- In arguments and return types of the form NA::A were not linked if NA was a namespace alias to a documentation namespace and A a documented class name.
- Matching a declaration f(NA::C c) with f(C c) did not work if NA was a namespace alias.
- Undocumented classes had wrong links in the treeview frame.
- Pages whose title contained < or >'s were not written correctly to the tag file.
- Fixed preprocessor bug: "a##b" was not correctly expanded if argument "a" or "b" was empty.
- Putting \todo and friends inside the documentation of enum values did not result in an entry on the todo list page.
- Fixed some problems compiling with versions of flex >2.5.4, but also added a #error if these are used, since they produce incompatible parsers (a bug report has been filed, but no feedback was received).
- Characters >=128 are now written as &#nnn; to the XML output. (thanks to a patch by Michiel Ouwehand).
- The table row backgroup color of the "all member" list was hard-coded in the HTML output. This is now controlled by the stylesheet.
- Fixed problem handling omission of the optional arguments of the \image command.
- Enabling HIDE_IN_BODY_DOCS did not work properly if C++-style special comments were used inside the body of a function.
- Fixed problem cross-referencing variables used as a guard (i.e. if (var) ...)
- Setting ENUM_VALUES_PER_LINE to 0 caused a division by 0 error.
- Autolinking did not work for members that were grouped and imported via tag files.
- The divide symbol "/" did not appear in the output for array/define initializers
- Fixed paring problem parsing "operator <b>new</b>" in the documentation.
- Fixed problem with resolving template relations (as reported by Kris Thielemans).
- Members in the todo list were not shown correctly (with dot separators) if OPTIMIZE_OUTPUT_JAVA was set to YES.
- Fixed problem handing "class A { public: A::f(); };" which is accepted as valid C++ by a number of compilers.
- Putting a /* inside a C-comment without matching */ caused the preprocessor to ignore the rest of the file.
- Improved the way typedefs are resolved.
- Fixed parse problem for the following PHP code: $color='#FFFFFF'
- Using @dontinclude could cause broken LaTeX output.
- Links to examples (using \example) were broken.
- Class members appeared twice in the index of the latex output.
- Fixed problem putting \if..\else..\endif around a pair of \defgroup's

# Doxygen Release 1.3

### Changes

- Increased internal buffer size from 16K to 256K for a number of scanners, so the "input buffer overflow, can't enlarge buffer because scanner uses REJECT" error should occur less easily.
- Style commands like \e, \a or \c will now be terminated when one of the characters in the following string is found: ".,()[]:;?", example: "a point (consisting of @a x and @a y)"
- Setting OPTIMIZE_OUTPUT_JAVA to YES, will automatically set INLINE_INFO to NO.
- Quotes strings (like "\0" or "%H.%d.%Y") are now considered to be words (hence the \ and % do not have to be escaped).

### New features

- Added new configuration option USE_WINDOWS_ENCODING which can be used to select windows specific character encodings for some languages. (thanks to Piotr Kaminski).
- Added new configuration option LATEX_HIDE_INDICES which can be used to suppress the various indices that are normally generated in the LaTeX output (thanks to Ken Yarnall for the patch).
- Added new option MAX_DOT_GRAPH_DEPTH to set the maximum distance from a root node after which the class or include graph will be truncated. Setting this to a low value should considerably reduce the time doxygen needs on large projects.
- Included updates for French, Korean, Polish, Croatian, and Danish translations.
- Access to title of user defined user defined sections is now possible from the doxmlparser.
- <div> and <span> commands can now by used in the documentation. Their effect is limited to the HTML output though (thanks to Frank Schimmel for the patch)
- Added inline, virtual, explicit and mutable attributes to XML output (thanks to patch by Michiel Ouwehand).

### Bug fixes

- Fixed out-of-memory bug for files containing using directives and including themselves (indirectly).
- Doxygen could crash if two \todo-like commands appeared on the same line.
- Non-inline cast operator was not properly parsed.
- Fixed preprocessor problem with parsing /*//*/
- URL's in the docs using <a href=""> caused a nested link.
- "using namespace A::B;" confused the code parser.
- Interface keyword was not recognized in C# (thanks to Onorio Catenacci for the patch).
- Line counting was incorrect when parsing multi-line formulas.
- \section's in a \mainpage are now correctly numbered in the LaTeX output (nesting level was one too deep).
- \ref to lower case names did not work (thanks to Herman ten Brug for the patch)
- escaped quotes (") were not preserved in the config file when it was updated (thanks to Herman ten Brug for the patch).
- PHP related fixes contributed by Vaclav Dvorak:
  - #-style comment handling,
  - adds (problematic) support for define() constants,
  - adds ".phtml" as a supported file extension for PHP code (not very common, but still...),
  - fixes handling of code like "include 'file.inc';" (was parsed as a variable definition),
  - removes the variable insidePHPCode (was not needed),
  - fixes spaces in function argument lists (the '$' was the problem).
- Functions documented with \fn did not get transferred to declaration or definition (depending on where the comment block was put).
- If a function definition was documented and grouped the declaration was not even if the same documentation block was used for it.
- Fixed bug in code parser that could crash doxygen under certain conditions.
- Fixed some spacing problems in the LaTeX output (thanks to patches by Roberto Bagnara).
- Mail address containing the '+' character were not properly parsed (thanks to Jon Parise for the patch).
- Fixed duplicate/wrong id's of grouped members in the XML output.
- Docparser reported wrong error if unknown command was found inside \c (or similar command).
- Preprocessor got confused when parsing a special comment as part of a #define and containing a ' or ".
- subgroups defined with @defgroup could be reordered if @addtogroup was used.
- Projects name was not shown as the root of the treeview anymore.
- Links to pages imported via tag files were broken in the treeview frame.
- removed leading and trailing whitespace within a \code ... \endcode block.
- Constant class variables with constructor were parsed as functions.
- Autolinks of the form class#member were not shown as class::member or class.member in the documentation.
- Fixed problem parsing things like echo('!$tar' . '"'); (PHP).
- Fixed problem distinguishing f(__true_type) and f(__false_type)
- Fixed lack of translation of some latin2 characters in the latex output (thanks to Aleksander Kupiec for the patch).
- Group members appeared in the treeview or html help index regardless if they were documented.
- The treeview page was not rendered with the right character set (it was always English).
- Explicit template instances appeared as a variable in the output.
- Java instance and static initializer blocks are now correctly parsed and can be documented.
- Fixed bug in the LATEX_HIDE_INDICES option.
- Fixed bug parsing simple lists (last word or token could get repeated).
- \section titles did not appear in the RTF output.
- Tables were not correctly rendered in the RTF output.
- Verbatim fragments were not properly rendered in the RTF output.
- Fixed some cases where collaboration relations were not visible due to typedefs.
- Fixed some compiler warnings that occurred with more recent versions of gcc.
- Auto-links to files were shown with as file::c instead of file.c.
- @ref namespace::class was not parsed correctly.
- Undocumented enums could appear in the declaration part of the output even though HIDE_UNDOC_MEMBERS was set to YES.
- \anchor tags now appear in the tagfiles as <docanchor> again.
- Hyperlinks in the LaTeX were broken in some cases.
- Fixed case where a global variable was not linked from within a function body.
- Include dependencies graph was shown at the place where the "included by" graph should have appeared.
- A // comment following by a //! comment was not handled properly by the source browser.
- If the definition of nested class was found before the definition of the outer class, its name was displayed without scope.
- If a parameter of a prototype was documented (with a separate documentation block) and the name of the parameter in the definition was different, the wrong name could be shown in the documentation.
- Fixed bug handling \line, \skipline, and \until

# Doxygen Release 1.3-rc3

### Changes

- Rewrote the implementation of the tree view feature (see GENERATE_TREEVIEW). The new implementation should be much faster, but does require a browser that supports JavaScript, DHTML, and CSS. Please report any problems you find.
- Changed the way dot is launched under Linux/Unix (vfork i.s.o. fork) so less memory is required (thanks to a patch by Thorsten Behrens).
- Changed "Methods" to "Member Functions" in the output (thanks to patch by Tom Emerson).
- STRIP_FROM_PATH now ignores the exact casing of characters, which makes things simpler on Windows.
- Style modifiers such as <b>, <em> and <pre> are now capable of spanning multiple paragraphs.
- Made some improvements to the documentation, including a diagram showing the information flow between the doxygen and various other tools (see the getting started section).

### New features

- Added support for comment blocks generated by Rational Rose's ANSI C++ code generator (thanks to a patch by Martin Beaudoin).
- Included language update for the Serbian and Japanese.
- Included patch by Ryunosuke Satoh to reduce size of the executable when building for Cygwin.
- Tables in the docs were ended with a bogus row in the LaTeX output.
- A \link to a member variable that is grouped using \defgroup can now be done from another member without specifying the full scope.

### Bug fixes

- @addindex now works on the whole line instead of a single word (as was already suggested in the docs).
- source code line in the XML output didn't escape special characters like & anymore.
- Fixed small bug in German translation (thanks to Jens Seidel).
- e-mail addresses with multiple dots got truncated when linked.
- Attributes of html commands with value "" where not properly parsed causing the image in the legend page not to appear.
- Fixed excessive memory usage in the "Building member list" phase while using todo/test/bug items (thanks to Gerik Rhoden).
- Fixed parsing problem in PHP. Doxygen was expecting classes to end with a semicolon (thanks to Jaime Uriel Torres for the patch).
- Using <dt> with also adding a <dd> caused a parse error while it is legal HTML.
- The identifier "package" in C/C++ code was wrongly interpreted as a Java keyword.
- \todo item at the end of a comment block caused "unexpected character" error while generating the XML output.
- \ref did not work when the argument was a file name.
- \ref and \link are now allowed inside a <td>..</td> section.
- Argument matching routine was not able to distinguish between f(long n) and f(long long n).
- Classes were listed in the alphabetical index with full scope.
- \copydoc did not work recursively for members.
- Fixed a number of small memory leaks (I used ccmalloc to detect them).
- The HTML command <SUP> was not parsed correctly if it was prefixed with an identifier (i.e. blah<SUP>).
- HTML tags were not properly parsed if there was a linebreak after the tag name.
- The \~id command was not working properly. The section was always generated regardless of the OUTPUT_LANGUAGE setting.
- id attribute was missing from the sect tag in the XML output.
- Links to files or file members could be wrong if SHORT_NAMES was set to YES and the file was imported via a tag file.
- Attribute lists inside an enum in an IDL file were not properly parsed.
- Fixed problem in code browser that prevented linking to global variables defined in other files.
- When putting a "using namespace X" in a header file doxygen did not recognize this in files that included the header file.
- Fixed bug in parsing sections without title.
- doxytag did not include anchor in the search index. Thanks to Joerg Schlichenmaier for the fix.
- Using an auto-list as an argument of @todo and friends did not work.
- A class with all members in a section grouped could result in broken LaTeX output (empty CompactItemize list).

# Doxygen Release 1.3-rc2

### New features

- Added support for importing members via using declarations.
- Anchors and sections (and references to them) are now supported in all comment blocks, not just \page blocks.
- Dot files imported via @dotfile now produce images maps in the HTML output. Use the URL node attribute in the dot file to make a link (thanks to Marco Dalla Gasperina for the patch).
- New config option WARN_IF_DOC_ERROR which allows documentation problems to be shown, while other warnings (such as warnings about undocumented members) can be hidden (thanks to Miguel for the patch).
- Included language update for German and Italian.
- Added support for &tm; (trademark) and &reg; (registered).
- Added "static" attribute to methods in the XML output to ease parsing.

### Bug fixes

- A <pre> .. </pre> section with included blank lines causes warning about missing </pre> marker.
- "typedef enum { a };" confused doxygen's parser, while most compilers seem to accept it without warnings.
- \deprecated item alone in a comment block caused a crash.
- Putting @todo (and similar commands) inside a function body did not result in correct cross-references with the todo list.
- Java interfaces were not detected as such.
- Fixed some localization problems in the XML output.
- Fixed problem handling multiple \par commands (headings were wrong).
- Fixed array out of bounds assert that was triggered while parsing.
- Links to pages were not properly resolved in hyperlinked PDF.
- Using a \name command without //@{ .. //@} scoping could cause a segmentation fault.
- Including images with @dotfile caused problems in the LaTeX output.
- Local variables and parameters now properly hide globals with the same name in the source browser, reducing wrong references.
- Verbatim blocks in the documentation could break the RTF output.
- RCS/CVS tags did not appear in the output.
- @note section result in section with type "bug" in the XML output.
- Dot graphs were truncated too quickly in some cases.
- Files with a .php4 extension are now recognized as PHP files.
- Source browser could get out of sync causing wrong cross references.
- Text after @} could end up in another documentation block.
- Putting a style command such as \c or \b at the end of a line, before a auto list item, caused the list item to be ignored.
- Autolinks to files did not work anymore.
- @copydoc of a target without documentation could cause a crash.

# Doxygen Release 1.3-rc1

### Changes

- New validating parser for documentation blocks that replaces the old parser (which was actually only a lexical scanner).
- The new documentation parser will now pass attributes of html tags to the html output. Example:

             /*! \mainpage A Dutch Table
                <table bgcolor="black" border="0" cellspacing="2"
                       cellpadding="2" align="center">
                <tr><td bgcolor="red">red
                <tr><td bgcolor="white">white
                <tr><td bgcolor="blue">blue
                </table>
              */

- Doxywizard will now run doxygen from the directory where the config file is found, so paths can be made relative in the config file. This will now also work if the config file's path or name contains spaces.
- Doxygen style comment blocks found in the body of functions are now appended to the function's documentation block.

### New features

- Added rudimentary support for C#. Parsing should work, but not all attributes are handled correctly.
- Included perl module generator by Miguel Lobo. Setting GENERATE_PERLMOD to YES in the config file will produce a perl module in the output dir.
- Included language updates for French, Czech, and Russian.
- Included a number of enhancements to the xml parser (thanks to a patch by Tree).
- Locally documented parameters now appear in the XML output (thanks to Cormac Twomey for the patch).
- The preprocessor now inserts line control commands where appropriate.

### Bug fixes

- Aliased \if .. \endif commands around a \brief section were not handled properly.
- Warnings for undocumented members were not generated anymore in certain cases.
- A member of a group linked with \ref showed the group's title as link text instead of the member's name.
- Using aliased commands whose definition contained \n's caused the code browser to put definition links at the wrong line numbers.
- Todo items inside related pages appeared in tag files, causing warnings about duplicated labels.
- Included a patch by Ryunosuke Satoh that fixes some issues when compiling in a cygwin environment.
- The presence of using declarations could result bogus entries in the class hierarchy.
- Links in the hyperlinked sources could point to the wrong global function depending on the order in which files were parsed.
- Using \retval in combination with parameters that are documented on the spot, caused bogus warnings about undocumented parameters.
- id attributes of references/referencedby relations are wrong in the XML output.
- Links could wrongly point to a class in an outer scope instead of a typedef with the same name in the inner scope.
- A reference in the code to a member of a derived class that is defined in a base class is now resolved properly even if both classes are imported via tag files.
- Language codes were wrong in the html help output for some languages (thanks to Erwin Hoffmann for the patch).
- Fixed case where function was detected as a variable.
- if HIDE_UNDOC_CLASSES is set YES, doxygen will not complain about undocumented classes.
- Included RTF output fixes by Gorden Machel.
- Global variables of complex types were not properly cross-referenced.
- Fixed argument matching bug for nested template classes; matching `"f(A::B<T>::C c)"` with `"f(C c)"` within context `A::B<T>`
- Fixed preprocessor bug handling nested comment blocks (the */ of the inner block was eaten).

# 1.2 Series

# 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 constructors, 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 recognized as PHP files (thanks to Marcus Ahlfors).
- Included updated documentation for language translators (thanks to Petr Prikryl).
- Included language updates for Czech, Slovak, Brazilian, 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 behavior 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 distinguish 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 separate documentation block, was not consistently shown in source and header files, depending on the order of the input files.
- The characters '(', ')', '$', ''', and ';' were not recognized 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 honor 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

- On request of Richard Stallman and others I replaced all generated GIF images with PNG images. See http://www.burnallgifs.org for the motivation.
- The Documentation of function definitions and declarations are now always merged. References/Referenced by relations are now equal for function declarations and definitions.
- When @retval commands are used to document parameters, doxygen will no longer produce a warning message for that parameter. @retval can still be used to document non parameters such as the return values of a function.

-     #define A(x) x /**< a define */

  will document a define, while

      #define A(x) /** an argument */ x

  will document the argument of the define
- Links in the documentation to const/volatile members are now possible by explicitly specifying "f() const" or "f() volatile" in case a non-const/volatile "f()" also exists.
- Doxygen now warns about undocumented compounds (thanks to Itai Frenkel for the patch).

### 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). Reorganized 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 several 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

- Split up the XML output into an index (index.xml) and one page per compound. This allows for faster processing and less memory consumption, when using DOM style parsers.
- Include files are now shown in the class documentation if and only if SHOW_INCLUDE_FILES is YES.
- Doxygen-style C comments inside macro definitions are now preserved in the output. Example:

               #define INIT(x) /*! Initializes x. */ void Init() { x = 0; }

- When deriving from pure virtual members or IDL interfaces, doxygen will now put an "implements/implemented in" list in the documentation instead of "reimplements/reimplemented by".
- Doxygen now filters out duplicate input files.

### New features

- Added a very simple metrics utility (see addon/doxmlparser/examples/metrics) which can compute some figures based on the XML output generated by doxygen.
- Added autodetection for Darwin (macOS) to the configure script.
- Added option EXCLUDE_SYMLINKS. The EXCLUDE_SYMLINKS tag can be used to select whether or not files or directories that are symbolic links (a Unix filesystem feature) are excluded.
- Added option EXTERNAL_GROUPS. If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in the modules index. If set to NO, only the current project's groups will be listed. (thanks to Darren Oldag for the patch).
- Included update for translator.pl (thanks to Petr Prikryl)
- updated .spec file (thanks to Emilio Riva).
- Included patch by Jochen Hanff to make the index headings configurable via style-sheets.
- If a comment block contains at least one @param command, doxygen now produces warnings if not all parameters of a function are documented or if the names of the parameters do not match the argumentlist. (Please report any false alarms).
- Added new command \~language_id to create sections that are outputted for the language >language_id> only: Example:

             /** \~czech Cesky komentar \~english English comment text \~dutch
                  Nederlands commentaar \~ Common comment for all languages,
                  this tag switches off the language filter...
             */

  Which of the language specific fragments is outputted depends on the setting of OUTPUT_LANGUAGE (Thanks to Milan Rusek for the patch).
- Added build support for Cygwin (thanks to Ryunosuke Sato).
- Added new option HTML_FILE_EXTENSION to allow different file extension for the html file outputted by doxygen (like .php). Thanks to Rob Olsthoorn for the patch.
- Added option DOT_IMAGE_FORMAT that can be used to set the image format of images generated by dot (possible formats: gif, png, jpg).
- In the documentation of class, namespace, file and group items a list of groups to which the item belongs is put between brackets ([..]) under the title (HTML only).
- Added "list of all members" and template parameter lists for classes to the XML output.
- Included language updates for Chinese, Czech, French, Italian, Brazilian, Japanese, Russian and German.

### 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 virtual 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).
- Initializer 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 macOS (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 mismatched <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 instantiations it encounters. This has the following advantages:
  - Template instantiations 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 Brazilian.
- 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 constructs. 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 &lt; &gt; &amp; &apos; &quot; 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 instantiation 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 behavior).

             /** \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 distinguishing 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 ghostscript (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)
- &nbsp; 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 recognized 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 &aring; 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 existence of files is now checked (thanks to Pekka Pessi).
  - .odl and .inl files are recognized (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.
- Multiple 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 &ccedil; in the docs now produces 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 split 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 XML-based tag file format.

  Note: If you are already using tag files, you need to regenerate them, because the old format is no longer supported!

- Removed the "No description available" for classes without brief description in the compound list.
- User defined groups (a.k.a. modules) are now shown in a hierarchy.
- If a function and its prototype are both inside different documented files then they may both be documented separately and will appear as such in their file documentation If you only document the header file and not the source file you can still put your documentation in front of the function definition as before.
- For unresolved base classes of a class inside a namespace, doxygen now guesses they are defined outside the namespace (was inside).
- Performance: replaced O(n^2) sort routines for member lists with O(nlog(n)) versions.

### New features

- There is now an HTML Help like tree view, that can be enabled by setting GENERATE_TREEVIEW to YES. This feature requires a browser that supports frames and javascript. Note that frame/page-resizing requires a manual reload with Netscape 4.x at the moment (it is a known netscape bug). (thanks to Ken Wong for providing the code to generate the tree in the proper format).
- Added new option TREEVIEW_WIDTH that can be used to set the initial with of the treeview frame.
- A warning is now generated for invalid \link targets (again thanks to Ken Wong).
- Wang Weihan sent an update for the Chinese translation which is now included. Included update for the Russian and Italian language as well.
- Support for Borland C++ and MINGW compilers for Windows (thanks to Oliver Brandt for the patch).
- Groups and pages defined in external documentation (i.e. with tag files) can now be referenced using \ref.
- Pages can now be put into groups using \ingroup (thanks to Ken Wong). A group with only pages is rendered as a page (the group itself) with subsections (the inserted pages).
- \ingroup can now be put in a one line comments (thanks to Patrick Ohly)
- \ingroup in a comment block before a comma separated list of variables is now applied to all variables (as is the documentation itself). (thanks to Patrick Ohly for the patch)
- @{ .. @} blocks can now be used for normal groups as well (thanks to Trevor Robinson for the patch). Here is an example:

             /** @defgroup mygrp My Own Group
                 @brief My brief group description.
                 @{
              */

             /** @name My member group
                 @{
              */
             /** This is a function */
             void func1();

             /** Another function */
             void func2();

             /** This is a typedef */
             typedef int Int;

             /** @} */

             /** This is a variable */
             int var;

             /** This is a define */
             #define DEF def

             /** @} */

- Normal groups can now also be nested using /*@{*/ ... /*@}*/ blocks (thanks to Patrick Ohly for the patch)

### 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 "favorites" 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 anonymous 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 enable 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

- Added support for KDE-2 IDL (more specific: k_dcop member sections).
- New ALIASES config option which allows you to add one or more user defined aliases (a.k.a. macros) that can be used as commands in the documentation. For instance:

             ALIASES = "sideeffect=\par Side Effects:\n"

  allows you to put @sideeffect in the documentation, which doxygen will replace by "\par Side Effects:", before parsing. As a result a formatted paragraph with a "Side Effects" header will appear. Note that the \n's are replaced by real newlines, so in the example you can put your paragraph text directly after the sideeffect command.
- Added language support for Hungarian (Thanks to György Földvári), Korean (thanks to Richard Kim), and Romanian (thanks to Alexandru Iosup). Received language updates for Italian, Polish, Croatian, Czech, Hungarian and Russian.
- Added support for namespace aliases.
- Added RTF patch from Alexander Bartolich. Here is his description of the changes: "The following patch of rtfgen.cpp allows to read *complete* style definitions from rtfstyle. This includes \sbasedon, \snext, \additive and actual style names. If this data is missing the default value is used. This means old rtfstyle-files can be used without change, with one exception: Reset is no longer considered a style. Since unknown style names are simply ignored I don't consider this a big problem. There is no means to write rtfstyle in old format, however. "
- Documentation can now also be put after the initializer of a constructor but before the body.

### 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 documentation.
- 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.
- &auml; 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 of course. These blocks differ from \verbatim ... \endverbatim blocks in that commands can be used inside these blocks.

### New features

- Added rudimentary support for XML output. Still very much work in progress... You can enable it by setting GENERATE_XML to YES. There is a small utility (based on Qt & Xerces-C) in addon/xmlread that uses the SAX interface to read a generated XML file and then dumps the class hierarchy contained in it.
- Thanks to a patch sent by Christophe Prud'homme, doxygen now has a new option USE_PDFLATEX that when set to YES makes doxygen use pdflatex instead of latex to generate refman.pdf. The result is a document with higher quality fonts.
- Added a \test command that works similar to \todo and can be used to describe test cases. Doxygen will generate a page containing a list of all test cases. To disable the list set GENERATE_TESTLIST to NO. Thanks to Dave Murrell for the idea and the initial code.
- For each list option in the config file += can now be used to append something to a list. Thanks to Joerg Baumann for adding this.
- Numbered items are now supported like this:

             /*!
               This is nested list:
                - It can be either one of following:
                  -# An apple
                    - Green or
                    - Red
                  -# An orange
                - Or one of the following:
                  -# A plane
                  -# A bird

               More text follows.
             */

  Credits go to Joerg Baumann.
- Included French and Czech language updates from Mathieu Despriée and Petr Prikryl. Also included a language update for German from Raimund Klein.
- Doxygen will now do give proper warnings for formulas that do not end properly.
- Improved error reporting for illegal list combinations (thanks to Joerg Baumann for the patch)
- Comments from the code example in the dot graph "legend page" was stripped if STRIP_CODE_COMMENTS was set to YES.
- In the config file "@INCLUDE = file" can now be used to include part of a configuration file. "@INCLUDEPATH = dir1 dir2 ..." can be put in front of it to add search paths (default is $PWD). Thanks to Joerg Baumann for the patch.
- Added alphabetical quick indices for compound, file and namespace member lists.

### 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 interruptible 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 behavior).
- Added a couple of commands for kdoc compatibility: `@p`, `@li`, `@em`. Also made @ref a bit less strict.
- Portuguese translation by Rui Lopes.

### Bug fixes

- Documenting member function pointers with \var like this:

             /*! class B */
             class B
             {
               public:
                 void (B::*pmf)();
             };

             /*! \var void (B::*B::pmf)()
                 docs for this class member.
              */

  did not work.
- Library blocks inside M$-IDL files are now also processed (a library is treated as a namespace at the moment).
- Argument matching did not work for array argument with different amounts of whitespace.
- If a namespace definition was found before its documentation than grouping it (with @ingroup) did not work.
- Global functions within anonymous namespace scopes did appear in the documentation with the anonymous scope marker used internally by doxygen.
- "namespace{}",so without space was not recognized as a namespace.
- If the search engine was used then running installdox on the generated html resulted in bogus links to the search engine.
- Fixed some compiler warning on Solaris.
- Changed grey by grey50 in dot.cpp to avoid PDF conversion problems.
- A </pre> that was not preceded by a whitespace was ignored
- The methods operator<() and operator<<() were not automatically linked anymore.
- Some special characters in LaTeX were eating up the blanks that followed them.
- The built-in C preprocessor did not evaluate the following to TRUE:

             #define A
             #define TO_BE_EVALUATED defined A
             #if TO_BE_EVALUATED
               ...
             #endif

- Improved code parsing a bit: things like `getClass()->func()` and `(*pb)->func()` should now work. Also the scope of the body is correctly detected in case of inline constructor initializers like: `A() : m_a(10) { ... }`
- File index is now in (path,name) lexical order, instead of (name,path) order. The file index is also only generated once instead of twice ;-)
- Typedefs to structs in C-style did (still) not get resolved as "usage" relations for the collaboration diagrams.
- Fixed some HTML output typos reported by Onno Kortmann (who used the tool "html tidy" on the generated output).
- Merged a patch from Paul Lieverse that should solve the empty image map problems on Solaris.
- If the title of a `\defgroup` contained a documented class, a nested (and thus broken) link was generated.
- Externally defined variable were treated as variable definitions.
- If a file only had a verbatim header but no documentation, a link broken link was added to the HTML help TOC.
- Fixed "member with no name" warning that occurred when a enum's last value ended with a comma and the enum was inside a member group.
- A <dl> type of list with multiple <dd>'s did not give the correct output in LaTeX.
- `SORT_MEMBER_DOCS` is `NO` only worked for class members.
- Both the prototype and the definition of a global function appeared in a `\defgroup`.
- Fixed some visual problems with operator links in source code fragments.
- Code parser got confused by template specifiers. Also improved linking of typedef'ed classes.
- A warning was generated if the same function was defined both inside and outside a namespace.

# 1.1 Series

# 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 behavior 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 ambiguous 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.
- explicit 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 correctly 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

- The member definition that is put before the detailed documentation section should now be layouted a bit better for members of classes with lots of template arguments.
- The HTML pages now have a new doxygen logo at the bottom. This logo has a transparent background and no shadow or anti-aliasing, so it looks equally nice on all backgrounds.
- If the first member of a member group is documented, this documentation is now repeated for all undocumented members of that group.
- The following is now treated as one parameter list with two parameters, instead of two lists with one parameter each.

             /*!
                @param a the first parameter

                @param b the second parameter
              */

  The same goes for the @retval and @exception commands.

### 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

- Fixed a lock-up problem, that occurred when parsing a code fragment containing something like:

             //
             /*!
              blah
             */

  while STRIP_CODE_COMMENTS was set to NO
- The auto list feature was still broken. Due to a bad scanner rule, things like -1 at the start of a line were treated as a list items (again) and a list at the end of a comment block did not always work either.
- If an non-existent config file was specified, the directories "html", "man" and "latex" were created anyway.
- A fragment like: os `<< ">"` was misinterpreted by doxygen's code parser.
- Parameter declarations that differ only in the presence or absence of const and/or volatile are now treated as equivalent, as is dictated by the C++ standard.
- The inline function body was wrong in the following example:

              void f(
                 int i    ///< Parameter
              )
              {
                  return 1;
              }

  Thanks to Alexander Gidon for the fix.
- typedef'ed classes are now also resolved in code fragments (again thanks to Alexander).
- Fixed a bug related to base classes with nested template specifiers, like class SB in the following:

               template <class T> class C  {};
               template <class T> class S  {};
               template <class T> class SB {};
               template <class T> class S<C<T> > : public SB<C<T> > {};

- #includes in code fragments where not hyperlinked. Operator methods were also not correctly recognized.
- C/C++ comments inside initializers where not handled properly.
- If the type of an argument of a member definition was prefixed with a (redundant) scope name of an indirect base class, then it was not matched against the member declaration if that omitted the scope.
- \name did not work within //! comments
- When FULL_PATH_NAMES was set to YES, doxygen did no longer distinguish between files with the same name (but in different directories).
- The file match routine now does an case-insensitive lookup if CASE_SENSE_NAMES = NO. Hopefully this is enough to let doxygen ignore case differences in file names on Windows.
- The constructors and destructors of classes inside namespaces or other classes did not end up in the constructor/destructor section of the documentation.
- If an environment variable in the config file starts with a space followed by a list of words, the space ends up in the first word after expansion.
- A <table> inside a JavaDoc style comment block caused a bogus warning.
- Using member groups could result in an empty list generated in LaTeX, causing a error while compiling the documentation.
- Fixed a missing stdlib.h problem in doxywizard, which occurred on non-Linux systems.
- The generation of dot include graphs did not work properly in case file names with space were used.
- back-references from source-lines to documentation only worked for those members of a member group that were explicitly documented.
- doxygen did not distinguish between func(int a) and func(int a[]) which could cause documentation to end up at the wrong member in case over overloading.

# 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

- Doxygen now has a GUI frontend to create and edit the configuration file. It is called doxywizard. To build it from sources use:

               ./configure --with-doxywizard

  The front-end requires Qt 2.x to build. I've only tested with Qt-2.1. Sources can be found in the addon directory.
- To make it very easy to add new configuration options, doxygen now has an additional tool called configgen. All options supported by doxygen are now located in one place (in configgen.cpp). From this the configuration parser and part of the GUI are generated. You only need configgen if you want to add new options to doxygen. Thanks go to Joerg Baumann for providing the ideas and part of the code.
- Added a bit of syntax highlighting to the generated source fragments in HTML (only keywords, comments and preprocessor directives are colored for now). The font color & style is determined by the style sheet, so it is easy to customize :-)
- Typedefs of classes are now resolved when the inheritance and usage relation of classes is determined.
- Waechter Parker made the following improvements on the RTF generator:
  1. Now it uses the translator for the table of contents entry names for the sections.
  2. writeSection now puts braces around the entry so the formatting doesn't get messed up so easily.
  3. removed extra newline in startDescList
  4. writeSectionRef now writes out "title (p.pagnum)" like it should.
  5. writeSectionRefAnchor now just calls writeSectionRef.
- Doxygen's preprocessor now supports the non-ANSI "#else if" preprocessor construction, which some other preprocessors seem to accept as well.
- Boris Bralo added language support for the Croatian language. Nickolay Semyonov has finished the translation to Russian, which is now included.
- Added documentation for the commands \if and \endif, the configuration tag ENABLED_SECTIONS, and the ways to groups things together.
- In the brief part of a JavaDoc style comment block, putting a backslash after a space, prevents switching to the detailed description. Example: `i.e.\ this`.
- Class diagrams can now also be rendered with dot by setting CLASS_GRAPH to YES (this will disable the built-in class graphs). The advantages:
  - More compact diagrams.
  - Correctly looking diagrams in case of virtual inheritance.
  - A more consistent look w.r.t. the other graphs.
- Groups can now contain namespaces and other groups.
- operator% caused problems with LaTeX when PDF_HYPERLINKS was set to YES.

### 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 behavior 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 representation, 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 qualifier (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:
  - \if label
  - \endif
  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 addicted 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 anonymous 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 anonymous 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 https://www.graphviz.org/ 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, postconditions 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 unambiguously.
- `\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.