From 248e03dca32346993c1747d9c382a37c11572fc8 Mon Sep 17 00:00:00 2001
From: Than Ngo
Date: Jul 04 2017 12:29:08 +0000
Subject: - backport to fix C# property initializer parsing
- backport to fix non reachable links and redirected links in documentation
---
diff --git a/doxygen-1.8.13-C#-property-initializer-parsing.patch b/doxygen-1.8.13-C#-property-initializer-parsing.patch
new file mode 100644
index 0000000..ea7e736
--- /dev/null
+++ b/doxygen-1.8.13-C#-property-initializer-parsing.patch
@@ -0,0 +1,38 @@
+commit 14a0bcc74a121525917aefc8c9034e283e94884b
+Author: Piotr Szydełko
+Date: Sat May 20 08:14:27 2017 +0200
+
+ Fix C# property initializer parsing
+
+ int Property {get; set;} = 23;
+ The parser was ending the property at the closing bracket,
+ which resulted in the initializer being assigned to the following property.
+
+diff --git a/src/scanner.l b/src/scanner.l
+index 9ff082d4..632c8a51 100644
+--- a/src/scanner.l
++++ b/src/scanner.l
+@@ -6198,6 +6198,14 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP})
+ }
+ }
+ "{" { curlyCount++; }
++"}"{B}*"=" {
++ // fall back to next rule if it's not the right bracket
++ if (curlyCount != 0) REJECT;
++ current->initializer = "=";
++ current->endBodyLine=yyLineNr;
++ lastInitializerContext = FindMembers;
++ BEGIN(ReadInitializer);
++ }
+ "}" {
+ if (curlyCount)
+ {
+@@ -6207,6 +6215,8 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP})
+ {
+ mtype = Method;
+ virt = Normal;
++ // not really important, but while we are at it
++ current->endBodyLine=yyLineNr;
+ unput(';');
+ BEGIN(FindMembers);
+ }
diff --git a/doxygen-1.8.13-non-reachable-links.patch b/doxygen-1.8.13-non-reachable-links.patch
new file mode 100644
index 0000000..ba34252
--- /dev/null
+++ b/doxygen-1.8.13-non-reachable-links.patch
@@ -0,0 +1,568 @@
+commit 31cf78d223e52fe078ad9b0651672aeb73926065
+Author: albert-github
+Date: Sun Jun 4 12:52:50 2017 +0200
+
+ Correction of non reachable links and redirected links in documentation.
+
+ The W3C link checker reported a number of problems regarding non reachable links and permanent redirects.
+ Most of these problems have been fixed with this patch
+
+diff --git a/doc/commands.doc b/doc/commands.doc
+index 70b89c60..4357fba1 100644
+--- a/doc/commands.doc
++++ b/doc/commands.doc
+@@ -433,7 +433,7 @@ Structural indicators
+ \par Example:
+ \include enum.h
+ \htmlonly
+- Click here
++ Click here
+ for the corresponding HTML documentation that is generated by doxygen.
+ \endhtmlonly
+ \latexonly
+@@ -565,7 +565,7 @@ Structural indicators
+ \par Example:
+ \include func.h
+ \htmlonly
+- Click here
++ Click here
+ for the corresponding HTML documentation that is generated by doxygen.
+ \endhtmlonly
+ \latexonly
+@@ -823,7 +823,7 @@ Structural indicators
+ \par Example:
+ \include overload.cpp
+ \htmlonly
+- Click here
++ Click here
+ for the corresponding HTML documentation that is generated by doxygen.
+ \endhtmlonly
+ \latexonly
+@@ -1121,7 +1121,7 @@ Structural indicators
+
+
+ \section cmdweakgroup \\weakgroup [(title)]
+- \addindex \\addtogroup
++ \addindex \\weakgroup
+ Can be used exactly like \ref cmdaddtogroup "\\addtogroup", but has
+ a lower priority when it comes to resolving conflicting grouping
+ definitions.
+@@ -1513,7 +1513,7 @@ ALIASES = "english=\if english" \
+ \par Example:
+ \include par.cpp
+ \htmlonly
+- Click here
++ Click here
+ for the corresponding HTML documentation that is generated by doxygen.
+ \endhtmlonly
+ \latexonly
+@@ -2704,7 +2704,7 @@ class Receiver
+
+ \addindex \\startuml
+ Starts a text fragment which should contain a valid description of a
+- PlantUML diagram. See http://plantuml.sourceforge.net/ for examples.
++ PlantUML diagram. See http://plantuml.com/ for examples.
+ The text fragment ends with \ref cmdenduml "\\enduml".
+ \note You need to install Java and the PlantUML's jar file,
+ if you want to use this command. The location of the jar file should be specified
+diff --git a/doc/customize.doc b/doc/customize.doc
+index f98ce0b4..9ef38919 100644
+--- a/doc/customize.doc
++++ b/doc/customize.doc
+@@ -90,7 +90,7 @@ that are disabled by default:
+
+ To tweak things like fonts or colors, margins, or other look \& feel
+ aspects of the HTML output in detail, you can create a different
+-cascading style sheet.
++cascading style sheet.
+ You can also let doxygen use a custom header and footer for each HTML
+ page it generates, for instance to make the output conform to the style
+ used on the rest of your web site.
+@@ -390,7 +390,7 @@ files as one big DOM tree would not fit into memory.
+
+ See the Breathe project for
+ an example that uses doxygen XML output from Python to bridge it with the
+-Sphinx document generator.
++Sphinx document generator.
+
+
+ \htmlonly
+diff --git a/doc/docblocks.doc b/doc/docblocks.doc
+index f0499c6f..81cfdd08 100644
+--- a/doc/docblocks.doc
++++ b/doc/docblocks.doc
+@@ -260,7 +260,7 @@ Here is an example of the use of these comment blocks:
+ \include afterdoc.h
+ \htmlonly
+
+- Click here
++ Click here
+ for the corresponding HTML documentation that is generated by doxygen.
+ \endhtmlonly
+ \latexonly
+@@ -281,7 +281,7 @@ Here is an example of a documented piece of C++ code using the Qt style:
+ \include qtstyle.cpp
+ \htmlonly
+
+- Click here
++ Click here
+ for the corresponding HTML documentation that is generated by doxygen.
+ \endhtmlonly
+ \latexonly
+@@ -316,7 +316,7 @@ JavaDoc style and \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" set to YES:
+ \include jdstyle.cpp
+ \htmlonly
+
+- Click here
++ Click here
+ for the corresponding HTML documentation that is generated by doxygen.
+ \endhtmlonly
+ \latexonly
+@@ -634,7 +634,7 @@ need for some more structure, like a block of verbatim text, a list, or a
+ simple table. For this doxygen supports the
+ Markdown
+ syntax, including parts of the
+-Markdown Extra
++Markdown Extra
+ extension.
+
+ Markdown is designed to be very easy to read and write.
+@@ -646,13 +646,13 @@ directly. For more details see chapter \ref markdown.
+ For programming language specific formatting doxygen has two
+ forms of additional markup on top of Markdown formatting.
+
+-1. Javadoc like markup.
++1. Javadoc like markup.
+ See \ref commands for a complete overview of all commands supported by doxygen.
+-2. XML markup
++2. XML markup
+ as specified in the C# standard. See \ref xmlcmds for the XML commands supported by doxygen.
+
+ If this is still not enough doxygen also supports a \ref htmlcmds "subset" of
+-the HTML markup language.
++the HTML markup language.
+
+ \htmlonly
+ Go to the next section or return to the
+diff --git a/doc/extsearch.doc b/doc/extsearch.doc
+index cead851c..99a72195 100644
+--- a/doc/extsearch.doc
++++ b/doc/extsearch.doc
+@@ -52,7 +52,7 @@ The data flow is shown in the following diagram:
+
+ The first step is to make the search engine available via a web server.
+ If you use `doxysearch.cgi` this means making the
+-CGI binary
++CGI binary
+ available from the web server (i.e. be able to run it from a
+ browser via an URL starting with http:)
+
+@@ -187,7 +187,7 @@ The next subsections describe these interfaces in more detail.
+ \subsection extsearch_api_index Indexer input format
+
+ The search data produced by doxygen follows the
+-Solr XML index message
++Solr XML index message
+ format.
+
+ The input for the indexer is an XML file, which consists of one `` tag containing
+@@ -224,12 +224,12 @@ Each field has a name. The following field names are supported:
+ - *text*: the documentation associated with the item. Note that only words are present, no markup.
+
+ @note Due to the potentially large size of the XML file, it is recommended to use a
+-SAX based parser to process it.
++SAX based parser to process it.
+
+ \subsection extsearch_api_search_in Search URL format
+
+ When the search engine is invoked from a doxygen generated HTML page, a number of parameters are
+-passed to via the query string.
++passed to via the query string.
+
+ The following fields are passed:
+ - *q*: the query text as entered by the user
+@@ -247,14 +247,14 @@ It represents a query for the word 'list' (`q=list`) requesting 20 search result
+ starting with the result number 20 (`p=1`) and using callback 'dummy' (`cb=dummy`):
+
+
+-@note The values are URL encoded so they
++@note The values are URL encoded so they
+ have to be decoded before they can be used.
+
+ \subsection extsearch_api_search_out Search results format
+
+ When invoking the search engine as shown in the previous subsection, it should reply with
+ the results. The format of the reply is
+-JSON with padding, which is basically
++JSON with padding, which is basically
+ a javascript struct wrapped in a function call. The name of function should be the name of
+ the callback (as passed with the *cb* field in the query).
+
+diff --git a/doc/faq.doc b/doc/faq.doc
+index 5af3db83..bbad8c0f 100644
+--- a/doc/faq.doc
++++ b/doc/faq.doc
+@@ -285,7 +285,7 @@ At the time I was looking into \c lex and \c yacc, where a lot of things start w
+ \section faq_why What was the reason to develop doxygen?
+
+ I once wrote a GUI widget based on the Qt library (it is still available at
+-http://sourceforge.net/projects/qdbttabular/ but hasn't been updated since 2002).
++https://sourceforge.net/projects/qdbttabular/ but hasn't been updated since 2002).
+ Qt had nicely generated documentation (using an internal tool which
+ they didn't want to release)
+ and I wrote similar docs by hand.
+diff --git a/doc/formulas.doc b/doc/formulas.doc
+index 650751e8..1649c197 100644
+--- a/doc/formulas.doc
++++ b/doc/formulas.doc
+@@ -30,7 +30,7 @@ have the following tools installed
+ to bitmaps. I have used Aladdin GhostScript 8.0 for testing.
+
+ For the HTML output there is also an alternative solution using
+-MathJax which does not
++MathJax which does not
+ require the above tools. If you enable \ref cfg_use_mathjax "USE_MATHJAX" in
+ the config then the latex formulas will be copied to the HTML "as is" and a
+ client side javascript will parse them and turn them into (interactive) images.
+diff --git a/doc/grouping.doc b/doc/grouping.doc
+index bbb577cf..2c4ebe19 100644
+--- a/doc/grouping.doc
++++ b/doc/grouping.doc
+@@ -197,7 +197,7 @@ documentation of the class.
+
+ \htmlonly
+
+-Click here
++Click here
+ for the corresponding HTML documentation that is generated by doxygen.
+ \endhtmlonly
+ \latexonly
+diff --git a/doc/index.doc b/doc/index.doc
+index c8950c4c..14f03961 100644
+--- a/doc/index.doc
++++ b/doc/index.doc
+@@ -180,7 +180,7 @@ Thanks go to:
+ Talin for adding support for C# style comments with XML markup.
+ Petr Prikryl for coordinating the internationalization support.
+ All language maintainers for providing translations into many languages.
+-The band Porcupine Tree for
++The band Porcupine Tree for
+ providing hours of great music to listen to while coding.
+ many, many others for suggestions, patches and bug reports.
+
+diff --git a/doc/install.doc b/doc/install.doc
+index fd4f28d1..22d6e7cc 100644
+--- a/doc/install.doc
++++ b/doc/install.doc
+@@ -37,7 +37,7 @@ following to build the executable:
+ \addindex strip
+ \addindex python
+ In order to generate a \c Makefile for your platform, you need
+- cmake version 2.8.12 or later.
++ cmake version 2.8.12 or later.
+ \addindex cmake
+
+
+@@ -63,7 +63,7 @@ tools should be installed.
+ For formulas in the HTML output (when MathJax is not used)
+ or in case you do not wish to use `pdflatex,
+ the ghostscript interpreter is needed. You can find it at
+- www.ghostscript.com.
++ www.ghostscript.com.
+
+
+ Compilation is now done by performing the following steps:
+@@ -150,20 +150,20 @@ standard installation procedure that is required for these packages.
+ \section install_src_windows Compiling from source on Windows
+
+ From version 1.8.10 onwards, build files need to be generated by cmake.
+-cmake can be downloaded from http://www.cmake.org/download/
++cmake can be downloaded from https://cmake.org/download/
+
+ At the moment only the express version of Visual Studio 2013 is tested,
+ but other version might also work.
+
+ Alternatively, you can compile doxygen
+ \ref install_src_unix "the UNIX way" using
+-Cygwin
++Cygwin
+ or MinGW.
+
+ The next step is to install modern versions of \c bison and \c flex
+-(see http://sourceforge.net/projects/winflexbison. After installation and adding them to
++(see https://sourceforge.net/projects/winflexbison/. After installation and adding them to
+ your `path` rename `win_flex.exe` to `flex.exe` and `win_bison.exe` to `bison.exe`)
+-Furthermore you have to install \c python (version 2.6 or higher, see http://www.python.org).
++Furthermore you have to install \c python (version 2.6 or higher, see https://www.python.org).
+ These packages are needed during the compilation process.
+
+ Download doxygen's source tarball and put it somewhere (e.g. use c:\\tools
)
+@@ -214,19 +214,19 @@ you need qhelpgenerator which is part of Qt.
+ You can download Qt from Qt Software Downloads.
+
+ In order to generate PDF output or use scientific formulas you will also need to
+-install LaTeX and
+-Ghostscript.
++install LaTeX and
++Ghostscript.
+
+ For \LaTeX a number of distributions exists. Popular ones that should work with
+-doxygen are MikTex
++doxygen are MikTex
+ and proTeXt.
+
+-Ghostscript can be downloaded
++Ghostscript can be downloaded
+ from Sourceforge.
+
+ After installing \LaTeX and Ghostscript you'll need to make sure the tools
+ latex.exe, pdflatex.exe, and gswin32c.exe are present in the search path of a
+-command box. Follow these
++command box. Follow these
+ instructions if you are unsure and run the commands from a command box to verify it works.
+
+ \htmlonly
+diff --git a/doc/markdown.doc b/doc/markdown.doc
+index 300d7fc7..737df71a 100644
+--- a/doc/markdown.doc
++++ b/doc/markdown.doc
+@@ -41,9 +41,9 @@ the extensions that doxygen supports.
+ Finally section \ref markdown_dox discusses some specifics for doxygen's
+ implementation of the Markdown standard.
+
+-[markdown]: http://daringfireball.net/projects/markdown
+-[mdextra]: http://michelf.com/projects/php-markdown/extra/
+-[github]: http://github.github.com/github-flavored-markdown/
++[markdown]: http://daringfireball.net/projects/markdown/
++[mdextra]: https://michelf.ca/projects/php-markdown/extra/
++[github]: https://github.github.com/github-flavored-markdown/
+
+ \section markdown_std Standard Markdown
+
+@@ -303,7 +303,7 @@ Note that using `[TOC]` is the same as using a
+ \subsection md_tables Tables
+
+ Of the features defined by "Markdown Extra" is support for
+-simple tables:
++simple tables:
+
+ A table consists of a header line, a separator line, and at least one
+ row line. Table columns are separated by the pipe (|) character.
+@@ -376,7 +376,7 @@ For more complex tables in doxygen please have a look at: \ref tables
+ \subsection md_fenced Fenced Code Blocks
+
+ Another feature defined by "Markdown Extra" is support for
+-
++
+ fenced code blocks:
+
+ A fenced code block does not require indentation, and is
+diff --git a/doc/searching.doc b/doc/searching.doc
+index dcf858fa..00c61414 100644
+--- a/doc/searching.doc
++++ b/doc/searching.doc
+@@ -72,7 +72,7 @@ has its own advantages and disadvantages:
+ searching, meaning that you could use your own indexer and search engine
+ of choice. To make life easier doxygen ships with an example indexer
+ (doxyindexer) and search engine (doxysearch.cgi) based on
+- the Xapian open source search engine
++ the Xapian open source search engine
+ library.
+
+ To enable this search method set
+@@ -147,7 +147,7 @@ has its own advantages and disadvantages:
+ \ref cfg_qhp_namespace "QHP_NAMESPACE",
+ \ref cfg_qhg_location "QHG_LOCATION",
+ \ref cfg_qhp_virtual_folder "QHP_VIRTUAL_FOLDER".
+- See this article
++ See this article
+ for more info.
+
+ Feature wise the Qt compressed help feature is comparable with the CHM
+diff --git a/doc/starting.doc b/doc/starting.doc
+index bfb8e8f7..c869867b 100644
+--- a/doc/starting.doc
++++ b/doc/starting.doc
+@@ -263,7 +263,7 @@ capabilities of the man page format, so some information
+ \subsection docbook_out DocBook output
+ \addindex docbook
+ Doxygen can also generate output in the
+-DocBook format. How to process the
++DocBook format. How to process the
+ DocBook output is beyond the scope of this manual.
+
+ \section step3 Step 3: Documenting the sources
+diff --git a/src/config.xml b/src/config.xml
+index 0fdf3efc..8bb6addb 100644
+--- a/src/config.xml
++++ b/src/config.xml
+@@ -215,7 +215,7 @@ Go to the next section or return to the
+ This tag specifies the encoding used for all characters in the config file that
+ follow. The default is UTF-8 which is also the encoding used for all text before
+ the first occurrence of this tag. Doxygen uses \c libiconv (or the iconv built into
+- \c libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of
++ \c libc) for the transcoding. See https://www.gnu.org/software/libiconv/ for the list of
+ possible encodings.
+ ]]>
+
+@@ -661,7 +661,7 @@ Go to the next section or return to the
+
+ sip sources only.
++ of sip sources only.
+ Doxygen will parse them like normal C++ but will assume all classes use public
+ instead of private inheritance when no explicit protection keyword is present.
+ ]]>
+@@ -1172,7 +1172,7 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
+ The \c CITE_BIB_FILES tag can be used to specify one or more \c bib files
+ containing the reference definitions. This must be a list of .bib
files. The
+ .bib
extension is automatically appended if omitted. This requires the
+- \c bibtex tool to be installed. See also http://en.wikipedia.org/wiki/BibTeX for
++ \c bibtex tool to be installed. See also https://en.wikipedia.org/wiki/BibTeX for
+ more info. For \f$\mbox{\LaTeX}\f$ the style of the bibliography can be controlled
+ using \ref cfg_latex_bib_style "LATEX_BIB_STYLE".
+ To use this feature you need \c bibtex and \c perl available in the search path.
+@@ -1285,7 +1285,7 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
+ This tag can be used to specify the character encoding of the source files that
+ doxygen parses. Internally doxygen uses the UTF-8 encoding.
+ Doxygen uses `libiconv` (or the `iconv` built into `libc`) for the transcoding.
+- See the libiconv documentation for
++ See the libiconv documentation for
+ the list of possible encodings.
+ ]]>
+
+@@ -1585,7 +1585,7 @@ to disable this feature.
+ If the \c USE_HTAGS tag is set to \c YES then the references to source code
+ will point to the HTML generated by the \c htags(1) tool instead of doxygen
+ built-in source browser. The \c htags tool is part of GNU's global source
+- tagging system (see http://www.gnu.org/software/global/global.html). You
++ tagging system (see https://www.gnu.org/software/global/global.html). You
+ will need version 4.8.6 or higher.
+
+ To use it do the following:
+@@ -1904,7 +1904,7 @@ hr.footer {
+ The \c HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
+ Doxygen will adjust the colors in the style sheet and background images
+ according to this color. Hue is specified as an angle on a colorwheel,
+- see http://en.wikipedia.org/wiki/Hue for more information.
++ see https://en.wikipedia.org/wiki/Hue for more information.
+ For instance the value 0 represents red, 60 is yellow, 120 is green,
+ 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
+ ]]>
+@@ -1981,14 +1981,14 @@ hr.footer {
+ Apple's Xcode 3
++ Apple's Xcode 3
+ integrated development environment, introduced with OSX 10.5 (Leopard).
+ To create a documentation set, doxygen will generate a Makefile in the
+ HTML output directory. Running \c make will produce the docset in that
+ directory and running make install
will install the docset in
+ ~/Library/Developer/Shared/Documentation/DocSets
+ so that Xcode will find it at startup. See
+- http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for
++ https://developer.apple.com/tools/creatingdocsetswithdoxygen.html for
+ more information.
+ ]]>
+
+@@ -2133,7 +2133,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+ Qt Help Project / Namespace.
++ Qt Help Project / Namespace.
+ ]]>
+
+
+@@ -2142,7 +2142,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+ Qt Help Project / Virtual Folders.
++ Qt Help Project / Virtual Folders.
+ ]]>
+
+
+@@ -2150,7 +2150,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+
+ Qt Help Project / Custom Filters.
++ Qt Help Project / Custom Filters.
+ ]]>
+
+
+@@ -2159,7 +2159,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+ Qt Help Project / Custom Filters.
++ Qt Help Project / Custom Filters.
+ ]]>
+
+
+@@ -2167,7 +2167,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+
+ Qt Help Project / Filter Attributes.
++ Qt Help Project / Filter Attributes.
+ ]]>
+
+
+@@ -2295,7 +2295,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+
+ ../mathjax. The default value points to
+ the MathJax Content Delivery Network so you can quickly see the result without
+ installing MathJax. However, it is strongly recommended to install a local
+- copy of MathJax from http://www.mathjax.org before deployment.
++ copy of MathJax from https://www.mathjax.org before deployment.
+ ]]>
+
+
+@@ -2427,7 +2427,7 @@ See the section \ref extsearch for details.
+ the search results.
+
Doxygen ships with an example indexer (\c doxyindexer) and
+ search engine (doxysearch.cgi
) which are based on the open source search
+- engine library Xapian.
++ engine library Xapian.
+
See the section \ref extsearch for details.
+ ]]>
+
+@@ -2440,7 +2440,7 @@ See the section \ref extsearch for details.
+ is enabled.
+
Doxygen ships with an example indexer (\c doxyindexer) and
+ search engine (doxysearch.cgi
) which are based on the open source search
+- engine library Xapian.
++ engine library Xapian.
+ See the section \ref extsearch for details.
+ ]]>
+
+@@ -2681,7 +2681,7 @@ or
+
+
+@@ -2886,7 +2886,7 @@ front of it.
+
+ - 1:1.8.13-9
+- backport to fix C# property initializer parsing
+- backport to fix non reachable links and redirected links in documentation
+
* Tue May 30 2017 Than Ngo - 1:1.8.13-8
- backport to fix problem where automatic line breaking caused
missing vertical bars in the parameter table for Latex output