resolves #1742614, update to 1.8.16

This commit is contained in:
Than Ngo 2019-09-11 11:55:10 +02:00
parent b3059010fd
commit a8fac62078
9 changed files with 7 additions and 223 deletions

1
.gitignore vendored
View File

@ -48,3 +48,4 @@ doxygen-1.7.1.src.tar.gz
/doxygen-1.8.13.src.tar.gz
/doxygen-1.8.14.src.tar.gz
/doxygen-1.8.15.src.tar.gz
/doxygen-1.8.16.src.tar.gz

View File

@ -1,25 +0,0 @@
From f217b5c36b39a294b920437ff66055ee1a3fa5b7 Mon Sep 17 00:00:00 2001
From: albert-github <albert.tests@gmail.com>
Date: Tue, 19 Mar 2019 10:42:24 +0100
Subject: [PATCH] issue #6892 xml not well-formed (invalid token) for c++
the `declname` and `defname` should also be converted (compare as well the routine `generateXMLForMember`)
---
src/xmlgen.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index 420a653fc..568e48886 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -360,8 +360,8 @@ static void writeTemplateArgumentList(ArgumentList *al,
}
if (!a->name.isEmpty())
{
- t << indentStr << " <declname>" << a->name << "</declname>" << endl;
- t << indentStr << " <defname>" << a->name << "</defname>" << endl;
+ t << indentStr << " <declname>" << convertToXML(a->name) << "</declname>" << endl;
+ t << indentStr << " <defname>" << convertToXML(a->name) << "</defname>" << endl;
}
if (!a->defval.isEmpty())
{

View File

@ -1,52 +0,0 @@
commit c26c5fc4fb852098c7188e7762778c87a50771cb
Author: albert-github <albert.tests@gmail.com>
Date: Mon Jan 7 18:48:13 2019 +0100
issue #6749 doxygen 1.8.15 segfault
An empty string was defined in a `<a href="">` resulting in a null pointer access.
diff --git a/src/util.cpp b/src/util.cpp
index f9c2492f..9a0e513b 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -5444,6 +5444,7 @@ QCString escapeCharsInString(const char *name,bool allowDots,bool allowUnderscor
static bool allowUnicodeNames = Config_getBool(ALLOW_UNICODE_NAMES);
static GrowBuf growBuf;
growBuf.clear();
+ if (name==0) return "";
char c;
const char *p=name;
while ((c=*p++)!=0)
@@ -6962,6 +6963,7 @@ void filterLatexString(FTextStream &t,const char *str,
QCString latexEscapeLabelName(const char *s)
{
+ if (s==0) return "";
QGString result;
QCString tmp(qstrlen(s)+1);
FTextStream t(&result);
@@ -6999,6 +7001,7 @@ QCString latexEscapeLabelName(const char *s)
QCString latexEscapeIndexChars(const char *s)
{
+ if (s==0) return "";
QGString result;
QCString tmp(qstrlen(s)+1);
FTextStream t(&result);
@@ -7037,6 +7040,7 @@ QCString latexEscapeIndexChars(const char *s)
QCString latexEscapePDFString(const char *s)
{
+ if (s==0) return "";
QGString result;
FTextStream t(&result);
const char *p=s;
@@ -7061,6 +7065,7 @@ QCString latexEscapePDFString(const char *s)
QCString latexFilterURL(const char *s)
{
+ if (s==0) return "";
QGString result;
FTextStream t(&result);
const char *p=s;

View File

@ -1,27 +0,0 @@
commit cfe381e3ee55b8291faeea55fe3b67bb9e545d60
Author: Vladimír Vondruš <mosra@centrum.cz>
Date: Sat Dec 29 21:52:39 2018 +0100
Properly handle empty TOC in XML output.
Caused the test (079) to fail with a SIGSEGV, but larger projects exit
with a success return code and the generated XML is either truncated or
empty. Weird.
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index bacf4d41..033e611f 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -1818,10 +1818,10 @@ static void generateXMLForPage(PageDef *pd,FTextStream &ti,bool isExample)
}
}
writeInnerPages(pd->getSubPages(),t);
- if (pd->localToc().isXmlEnabled())
+ SectionDict *sectionDict = pd->getSectionDict();
+ if (pd->localToc().isXmlEnabled() && sectionDict)
{
t << " <tableofcontents>" << endl;
- SectionDict *sectionDict = pd->getSectionDict();
SDict<SectionInfo>::Iterator li(*sectionDict);
SectionInfo *si;
int level=1,l;

View File

@ -1,48 +0,0 @@
commit e54ccc0e6eb12a0720860d863a89cb3f1a83f2a2
Author: Dimitri van Heesch <doxygen@gmail.com>
Date: Sun Feb 3 14:33:35 2019 +0100
Issue 6814: Inconsistent whitespace removal for operators in 1.8.15
diff --git a/src/util.cpp b/src/util.cpp
index 9a0e513b..3a3bfd38 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -1895,7 +1895,7 @@ QCString removeRedundantWhiteSpace(const QCString &s)
if (g_charAroundSpace.charMap[(uchar)pc].before &&
g_charAroundSpace.charMap[(uchar)nc].after &&
!(pc==',' && nc=='.') &&
- (osp<8 || (osp>=8 && pc!='"' && isId(nc)) || (osp>=8 && pc!='"' && nc!='"'))
+ (osp<8 || (osp>=8 && isId(pc) && isId(nc)))
// e.g. 'operator >>' -> 'operator>>',
// 'operator "" _x' -> 'operator""_x',
// but not 'operator int' -> 'operatorint'
commit 2802e2b4ee8158dba3f3584037e99907c6db7ec4
Author: Dimitri van Heesch <doxygen@gmail.com>
Date: Mon Feb 4 22:19:56 2019 +0100
Issue 6814: Further finetuning for inconsistent whitespace removal for operators in 1.8.15
diff --git a/src/util.cpp b/src/util.cpp
index 3a3bfd38..53b176d4 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -1847,7 +1847,8 @@ QCString removeRedundantWhiteSpace(const QCString &s)
case '*':
if (i>0 && pc!=' ' && pc!='\t' && pc!=':' &&
pc!='*' && pc!='&' && pc!='(' && pc!='/' &&
- pc!='.' && (osp<9 || !(pc=='>' && osp==11)))
+ pc!='.' && osp<9
+ )
// avoid splitting &&, **, .*, operator*, operator->*
{
*dst++=' ';
@@ -1855,7 +1856,7 @@ QCString removeRedundantWhiteSpace(const QCString &s)
*dst++=c;
break;
case '&':
- if (i>0 && isId(pc))
+ if (i>0 && isId(pc) && osp<9)
{
if (nc != '=')
// avoid splitting operator&=

View File

@ -1,20 +0,0 @@
diff -up doxygen-1.8.15/src/dirdef.cpp.me doxygen-1.8.15/src/dirdef.cpp
--- doxygen-1.8.15/src/dirdef.cpp.me 2019-02-14 22:57:29.709491363 +0100
+++ doxygen-1.8.15/src/dirdef.cpp 2019-02-14 22:59:10.922169840 +0100
@@ -936,14 +936,14 @@ void buildDirectories()
for (;(fd=fni.current());++fni)
{
//printf("buildDirectories %s\n",fd->name().data());
- if (fd->getReference().isEmpty())
+ if (fd->getReference().isEmpty() && !fd->isDocumentationFile())
{
DirDef *dir;
if ((dir=Doxygen::directories->find(fd->getPath()))==0) // new directory
{
dir = DirDef::mergeDirectoryInTree(fd->getPath());
}
- if (dir && !fd->isDocumentationFile()) dir->addFile(fd);
+ if (dir) dir->addFile(fd);
}
else
{

View File

@ -1,42 +0,0 @@
commit e26a5b8eed8a012e6a400f1ed6baf27980668b53
Author: Vladimír Vondruš <mosra@centrum.cz>
Date: Sat Dec 29 21:30:51 2018 +0100
testing: add a test for XML output with an empty TOC.
Fails, in particular causes Doxygen to produce an empty (or truncated)
XML file but returning with a success error code.
diff --git a/testing/079/empty.xml b/testing/079/empty.xml
new file mode 100644
index 00000000..3e1d6915
--- /dev/null
+++ b/testing/079/empty.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+ <compounddef id="empty" kind="page">
+ <compoundname>empty</compoundname>
+ <title>An empty page</title>
+ <briefdescription>
+ </briefdescription>
+ <detaileddescription>
+<para>With an empty TOC. </para>
+ </detaileddescription>
+ </compounddef>
+</doxygen>
diff --git a/testing/079_tableofcontents.dox b/testing/079_tableofcontents.dox
new file mode 100644
index 00000000..499771d7
--- /dev/null
+++ b/testing/079_tableofcontents.dox
@@ -0,0 +1,9 @@
+// objective: test TOC generation for an empty page
+// check: empty.xml
+/**
+@page empty An empty page
+
+@tableofcontents
+
+With an empty TOC.
+*/

View File

@ -7,8 +7,8 @@
Summary: A documentation system for C/C++
Name: doxygen
Epoch: 1
Version: 1.8.15
Release: 10%{?dist}
Version: 1.8.16
Release: 1%{?dist}
# No version is specified.
License: GPL+
@ -19,12 +19,6 @@ Source1: doxywizard.png
Source2: doxywizard.desktop
# upstream patches
Patch0: doxygen-1.8.15-handle_empty_TOC_in_XML_output.patch
Patch1: doxygen-1.8.15-test_for_XML_output_with_an_empty_TOC.patch
Patch2: doxygen-1.8.15-inconsistent_whitespace_removal_for_operators.patch
Patch3: doxygen-1.8.15-crash.patch
Patch4: doxygen-1.8.15-multilib.patch
Patch5: https://github.com/doxygen/doxygen/pull/6893.patch
BuildRequires: %{_bindir}/python3
@ -193,6 +187,9 @@ make tests -C %{_target_platform}
%endif
%changelog
* Wed Sep 11 2019 Than Ngo <than@redhat.com> - 1.8.16-1
- resolves #1742614, update to 1.8.16
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.8.15-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

View File

@ -1,2 +1,2 @@
SHA512 (doxywizard.png) = 42a7e5903bf27463d3b072cf043aef071b519b53054bbe647c522d5e499e02f554867ab5e9971b06493769cc17b9d1588462aeade284de1f9d579cf9f99e8851
SHA512 (doxygen-1.8.15.src.tar.gz) = a5512e78be66c1591d8ec7e284d5d25c92a97218c79e6fed3c538c723a8dfef4ff7085970bf271a6b639e907157cd4df9fb55d3c975f8d3302fb1012a4d92079
SHA512 (doxygen-1.8.16.src.tar.gz) = 46a0189aa82d5a687bdd99a904f0c061fccca407d15867d14c8c4d13e8b21a8989e7ccd6af30840803b589ed20dd86084a4db880fba0d3bfa1fdcdd8d23e12de