app-doc/doxygen: 1.8.16: fix external tag file issue
authorMatthias Maier <tamiko@gentoo.org>
Thu, 12 Dec 2019 19:37:36 +0000 (13:37 -0600)
committerMatthias Maier <tamiko@gentoo.org>
Thu, 12 Dec 2019 19:46:27 +0000 (13:46 -0600)
Closes: https://bugs.gentoo.org/701930
Package-Manager: Portage-2.3.81, Repoman-2.3.20
Signed-off-by: Matthias Maier <tamiko@gentoo.org>
app-doc/doxygen/doxygen-1.8.16.ebuild
app-doc/doxygen/files/doxygen-1.8.16-fix-external-tag-files-with-TOC.patch [new file with mode: 0644]

index 98f6fa7490490de51711b956e2dd9c99d6034143..e37985247ca3ad9edd8986f8d53809be08d73193 100644 (file)
@@ -64,6 +64,7 @@ PATCHES=(
        "${FILESDIR}/${PN}-1.8.16-link_with_pthread.patch"
        "${FILESDIR}/${PN}-1.8.15-llvm7.patch" #666692
        "${FILESDIR}/${PN}-1.8.16-ghostscript-compatilibility.patch" #695710
+       "${FILESDIR}/${PN}-1.8.16-fix-external-tag-files-with-TOC.patch" #701930
 )
 
 DOCS=( LANGUAGE.HOWTO README.md )
diff --git a/app-doc/doxygen/files/doxygen-1.8.16-fix-external-tag-files-with-TOC.patch b/app-doc/doxygen/files/doxygen-1.8.16-fix-external-tag-files-with-TOC.patch
new file mode 100644 (file)
index 0000000..cc0704b
--- /dev/null
@@ -0,0 +1,50 @@
+From 4a72a9b07e805b4ba27560e8e921bcee0002ef4c Mon Sep 17 00:00:00 2001
+From: albert-github <albert.tests@gmail.com>
+Date: Mon, 9 Sep 2019 13:28:28 +0200
+Subject: [PATCH] issue #7248: Including external tag files with TOC produces a
+ broken index.qhp
+
+Ignore automatically generated anchor names when importing a tag file.
+
+Upstream: https://github.com/doxygen/doxygen/pull/7250
+---
+ src/tagreader.cpp | 19 ++++++++++++++++++-
+ 1 file changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/src/tagreader.cpp b/src/tagreader.cpp
+index 56dbe7df9..d79d9b5c5 100644
+--- a/src/tagreader.cpp
++++ b/src/tagreader.cpp
+@@ -494,6 +494,23 @@ class TagFileParser : public QXmlDefaultHandler
+     void endDocAnchor()
+     {
++      // Check whether or not the tag is automatically generate, in that case ignore the tag.
++      switch(m_state)
++      {
++        case InClass:
++        case InFile:
++        case InNamespace:
++        case InGroup:
++        case InPage:
++        case InMember:
++        case InPackage:
++        case InDir:
++          if (QString(m_curString).startsWith("autotoc_md")) return;
++          break;
++        default:
++          warn("Unexpected tag 'docanchor' found");
++          return;
++      }
+       switch(m_state)
+       {
+         case InClass:     m_curClass->docAnchors.append(new TagAnchorInfo(m_fileName,m_curString,m_title)); break;
+@@ -504,7 +521,7 @@ class TagFileParser : public QXmlDefaultHandler
+         case InMember:    m_curMember->docAnchors.append(new TagAnchorInfo(m_fileName,m_curString,m_title)); break;
+         case InPackage:   m_curPackage->docAnchors.append(new TagAnchorInfo(m_fileName,m_curString,m_title)); break;
+         case InDir:       m_curDir->docAnchors.append(new TagAnchorInfo(m_fileName,m_curString,m_title)); break;
+-        default:   warn("Unexpected tag 'docanchor' found"); break; 
++        default:   warn("Unexpected tag 'docanchor' found"); break;  // Not really necessary anymore
+       }
+     }