From 248e03dca32346993c1747d9c382a37c11572fc8 Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Tue, 4 Jul 2017 14:29:08 +0200 Subject: [PATCH] - backport to fix C# property initializer parsing - backport to fix non reachable links and redirected links in documentation --- ...8.13-C#-property-initializer-parsing.patch | 38 ++ doxygen-1.8.13-non-reachable-links.patch | 568 ++++++++++++++++++ doxygen.spec | 8 +- 3 files changed, 613 insertions(+), 1 deletion(-) create mode 100644 doxygen-1.8.13-C#-property-initializer-parsing.patch create mode 100644 doxygen-1.8.13-non-reachable-links.patch 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