resolves #1742614, update to 1.8.16
This commit is contained in:
parent
b3059010fd
commit
a8fac62078
1
.gitignore
vendored
1
.gitignore
vendored
@ -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
|
||||
|
25
6893.patch
25
6893.patch
@ -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())
|
||||
{
|
@ -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;
|
@ -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;
|
@ -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&=
|
@ -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
|
||||
{
|
@ -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.
|
||||
+*/
|
13
doxygen.spec
13
doxygen.spec
@ -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
|
||||
|
||||
|
2
sources
2
sources
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user