- update to 1.8.17
- fixes test suite is failing - fixes broken urls in the xml output
This commit is contained in:
parent
7d44dfcd92
commit
d1c4879feb
1
.gitignore
vendored
1
.gitignore
vendored
@ -49,3 +49,4 @@ doxygen-1.7.1.src.tar.gz
|
||||
/doxygen-1.8.14.src.tar.gz
|
||||
/doxygen-1.8.15.src.tar.gz
|
||||
/doxygen-1.8.16.src.tar.gz
|
||||
/doxygen-1.8.17.src.tar.gz
|
||||
|
102
doxgen-1.8.17-broken-urls-in-the-xml-output.patch
Normal file
102
doxgen-1.8.17-broken-urls-in-the-xml-output.patch
Normal file
@ -0,0 +1,102 @@
|
||||
commit 2f79c6938c6d969f3d4ebc9ed0f2648668434502
|
||||
Author: albert-github <albert.tests@gmail.com>
|
||||
Date: Sat Jan 4 13:24:16 2020 +0100
|
||||
|
||||
issue #7477 Broken urls in the xml output
|
||||
|
||||
Made code analogous to HTML code.
|
||||
Also the doxygen internal tests suffered from this problem.
|
||||
|
||||
diff --git a/src/xmldocvisitor.cpp b/src/xmldocvisitor.cpp
|
||||
index 409c2fe6..1e6becbe 100644
|
||||
--- a/src/xmldocvisitor.cpp
|
||||
+++ b/src/xmldocvisitor.cpp
|
||||
@@ -824,18 +824,22 @@ void XmlDocVisitor::visitPre(DocImage *img)
|
||||
{
|
||||
if (m_hide) return;
|
||||
|
||||
- QCString baseName=img->name();
|
||||
- int i;
|
||||
- if ((i=baseName.findRev('/'))!=-1 || (i=baseName.findRev('\\'))!=-1)
|
||||
+ QCString url = img->url();
|
||||
+ QCString baseName;
|
||||
+ if (url.isEmpty())
|
||||
{
|
||||
- baseName=baseName.right(baseName.length()-i-1);
|
||||
+ baseName = img->relPath()+img->name();
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ baseName = correctURL(url,img->relPath());
|
||||
}
|
||||
visitPreStart(m_t, "image", FALSE, this, img->children(), baseName, TRUE, img->type(), img->width(), img->height(), img ->isInlineImage());
|
||||
|
||||
// copy the image to the output dir
|
||||
FileDef *fd;
|
||||
bool ambig;
|
||||
- if ((fd=findFileDef(Doxygen::imageNameDict,img->name(),ambig)))
|
||||
+ if (url.isEmpty() && (fd=findFileDef(Doxygen::imageNameDict,img->name(),ambig)))
|
||||
{
|
||||
QFile inImage(fd->absFilePath());
|
||||
QFile outImage(Config_getString(XML_OUTPUT)+"/"+baseName.data());
|
||||
diff --git a/testing/031/indexpage.xml b/testing/031/indexpage.xml
|
||||
index 2d74510a..eaf374b6 100644
|
||||
--- a/testing/031/indexpage.xml
|
||||
+++ b/testing/031/indexpage.xml
|
||||
@@ -11,42 +11,42 @@
|
||||
<image type="docbook" name="sample.png"/>
|
||||
More text.</para>
|
||||
<para>SVG image with caption:<linebreak/>
|
||||
-<image type="html" name="license-MIT-brightgreen.svg">A caption</image>
|
||||
+<image type="html" name="http://img.shields.io/badge/license-MIT-brightgreen.svg">A caption</image>
|
||||
</para>
|
||||
<para>PNG image with caption:<linebreak/>
|
||||
-<image type="html" name="license-MIT-brightgreen.png">A caption</image>
|
||||
+<image type="html" name="http://img.shields.io/badge/license-MIT-brightgreen.png">A caption</image>
|
||||
</para>
|
||||
<para>SVG image without caption:<linebreak/>
|
||||
-<image type="html" name="license-MIT-brightgreen.svg"/>
|
||||
+<image type="html" name="http://img.shields.io/badge/license-MIT-brightgreen.svg"/>
|
||||
</para>
|
||||
<para>PNG image without caption:<linebreak/>
|
||||
-<image type="html" name="license-MIT-brightgreen.png"/>
|
||||
+<image type="html" name="http://img.shields.io/badge/license-MIT-brightgreen.png"/>
|
||||
</para>
|
||||
<para>Inline SVG image with caption:<linebreak/>
|
||||
-This image is inline <image type="html" name="license-MIT-brightgreen.svg" inline="yes">MIT license</image>
|
||||
+This image is inline <image type="html" name="http://img.shields.io/badge/license-MIT-brightgreen.svg" inline="yes">MIT license</image>
|
||||
within the text.</para>
|
||||
<para>Inline PNG image with caption:<linebreak/>
|
||||
-This image is inline <image type="html" name="license-MIT-brightgreen.png" inline="yes">MIT license</image>
|
||||
+This image is inline <image type="html" name="http://img.shields.io/badge/license-MIT-brightgreen.png" inline="yes">MIT license</image>
|
||||
within the text.</para>
|
||||
<para>Markdown style linked SVG image:<linebreak/>
|
||||
-<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="license-MIT-brightgreen.svg" inline="yes"/></ulink></para>
|
||||
+<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="http://img.shields.io/badge/license-MIT-brightgreen.svg" inline="yes"/></ulink></para>
|
||||
<para>Markdown style linked PNG image:<linebreak/>
|
||||
-<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="license-MIT-brightgreen.png" inline="yes"/></ulink></para>
|
||||
+<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="http://img.shields.io/badge/license-MIT-brightgreen.png" inline="yes"/></ulink></para>
|
||||
<para>HTML style linked SVG image:<linebreak/>
|
||||
-<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="license-MIT-brightgreen.svg" inline="yes"/></ulink></para>
|
||||
+<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="http://img.shields.io/badge/license-MIT-brightgreen.svg" inline="yes"/></ulink></para>
|
||||
<para>HTML style linked PNG image:<linebreak/>
|
||||
-<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="license-MIT-brightgreen.png" inline="yes"/></ulink></para>
|
||||
+<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="http://img.shields.io/badge/license-MIT-brightgreen.png" inline="yes"/></ulink></para>
|
||||
<para>HTML style unlinked SVG image:<linebreak/>
|
||||
-<image type="html" name="license-MIT-brightgreen.svg" inline="yes"/>
|
||||
+<image type="html" name="http://img.shields.io/badge/license-MIT-brightgreen.svg" inline="yes"/>
|
||||
</para>
|
||||
<para>HTML style unlinked PNG image:<linebreak/>
|
||||
-<image type="html" name="license-MIT-brightgreen.png" inline="yes"/>
|
||||
+<image type="html" name="http://img.shields.io/badge/license-MIT-brightgreen.png" inline="yes"/>
|
||||
</para>
|
||||
<para>Some markdown image tests<linebreak/>
|
||||
-<image type="html" name="docs-Doxygen-blue.svg?foo&bar" inline="yes"/>
|
||||
+<image type="html" name="https://img.shields.io/badge/docs-Doxygen-blue.svg?foo&bar" inline="yes"/>
|
||||
<ulink url="http://www.doxygen.nl?foo&bar">Some normal link</ulink></para>
|
||||
<para>
|
||||
- <image type="html" name="docs-Doxygen-blue.svg?foo&bar" inline="yes"/>
|
||||
+ <image type="html" name="https://img.shields.io/badge/docs-Doxygen-blue.svg?foo&bar" inline="yes"/>
|
||||
<ulink url="http://www.doxygen.nl?foo&bar">Some normal link</ulink>
|
||||
</para>
|
||||
</detaileddescription>
|
@ -1,36 +0,0 @@
|
||||
diff -up doxygen-1.8.16/src/tagreader.cpp.me doxygen-1.8.16/src/tagreader.cpp
|
||||
--- doxygen-1.8.16/src/tagreader.cpp.me 2019-09-16 20:47:16.428896400 +0200
|
||||
+++ doxygen-1.8.16/src/tagreader.cpp 2019-09-16 20:48:53.426648016 +0200
|
||||
@@ -494,6 +494,23 @@ class TagFileParser : public QXmlDefault
|
||||
|
||||
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 QXmlDefault
|
||||
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
|
||||
}
|
||||
}
|
||||
|
@ -1,724 +0,0 @@
|
||||
diff -up doxygen-1.8.16/addon/doxywizard/wizard.h.orig doxygen-1.8.16/addon/doxywizard/wizard.h
|
||||
--- doxygen-1.8.16/addon/doxywizard/wizard.h.orig 2017-10-31 20:36:00.000000000 +0100
|
||||
+++ doxygen-1.8.16/addon/doxywizard/wizard.h 2019-12-10 11:45:32.750260467 +0100
|
||||
@@ -52,11 +52,11 @@ class TuneColorDialog : public QDialog
|
||||
void updateImage(int hue,int sat,int val);
|
||||
|
||||
private:
|
||||
- QImage *m_image;
|
||||
- QLabel *m_imageLab;
|
||||
- int m_hue;
|
||||
- int m_sat;
|
||||
- int m_gam;
|
||||
+ QImage *m_image = 0;
|
||||
+ QLabel *m_imageLab = 0;
|
||||
+ int m_hue = 0;
|
||||
+ int m_sat = 0;
|
||||
+ int m_gam = 0;
|
||||
};
|
||||
|
||||
class ColorPicker : public QWidget
|
||||
@@ -91,11 +91,11 @@ private:
|
||||
void setSat(int v);
|
||||
void setGam(int v);
|
||||
|
||||
- QPixmap *m_pix;
|
||||
- Mode m_mode;
|
||||
- int m_gam;
|
||||
- int m_hue;
|
||||
- int m_sat;
|
||||
+ QPixmap *m_pix = 0;
|
||||
+ Mode m_mode = Hue;
|
||||
+ int m_gam = 0;
|
||||
+ int m_hue = 0;
|
||||
+ int m_sat = 0;
|
||||
|
||||
};
|
||||
|
||||
@@ -120,16 +120,16 @@ class Step1 : public QWidget
|
||||
void setRecursiveScan(int);
|
||||
|
||||
private:
|
||||
- QLineEdit *m_projName;
|
||||
- QLineEdit *m_projBrief;
|
||||
- QLineEdit *m_projNumber;
|
||||
- QLineEdit *m_sourceDir;
|
||||
- QLineEdit *m_destDir;
|
||||
- QLabel *m_projIconLab;
|
||||
- QCheckBox *m_recursive;
|
||||
- QPushButton *m_srcSelectDir;
|
||||
- QPushButton *m_dstSelectDir;
|
||||
- Wizard *m_wizard;
|
||||
+ QLineEdit *m_projName = 0;
|
||||
+ QLineEdit *m_projBrief = 0;
|
||||
+ QLineEdit *m_projNumber = 0;
|
||||
+ QLineEdit *m_sourceDir = 0;
|
||||
+ QLineEdit *m_destDir = 0;
|
||||
+ QLabel *m_projIconLab = 0;
|
||||
+ QCheckBox *m_recursive = 0;
|
||||
+ QPushButton *m_srcSelectDir = 0;
|
||||
+ QPushButton *m_dstSelectDir = 0;
|
||||
+ Wizard *m_wizard = 0;
|
||||
const QHash<QString,Input *> &m_modelData;
|
||||
};
|
||||
|
||||
@@ -146,12 +146,12 @@ class Step2 : public QWidget
|
||||
void changeCrossRefState(int choice);
|
||||
|
||||
private:
|
||||
- QGroupBox *m_extractMode;
|
||||
- QGroupBox *m_optimizeLang;
|
||||
- QButtonGroup *m_extractModeGroup;
|
||||
- QButtonGroup *m_optimizeLangGroup;
|
||||
- QCheckBox *m_crossRef;
|
||||
- Wizard *m_wizard;
|
||||
+ QGroupBox *m_extractMode = 0;
|
||||
+ QGroupBox *m_optimizeLang = 0;
|
||||
+ QButtonGroup *m_extractModeGroup = 0;
|
||||
+ QButtonGroup *m_optimizeLangGroup = 0;
|
||||
+ QCheckBox *m_crossRef = 0;
|
||||
+ Wizard *m_wizard = 0;
|
||||
const QHash<QString,Input *> &m_modelData;
|
||||
};
|
||||
|
||||
@@ -175,18 +175,18 @@ class Step3 : public QWidget
|
||||
void tuneColorDialog();
|
||||
|
||||
private:
|
||||
- QGroupBox *m_texOptions;
|
||||
- QButtonGroup *m_texOptionsGroup;
|
||||
- QGroupBox *m_htmlOptions;
|
||||
- QButtonGroup *m_htmlOptionsGroup;
|
||||
- QCheckBox *m_htmlEnabled;
|
||||
- QCheckBox *m_latexEnabled;
|
||||
- QCheckBox *m_manEnabled;
|
||||
- QCheckBox *m_rtfEnabled;
|
||||
- QCheckBox *m_xmlEnabled;
|
||||
- QCheckBox *m_searchEnabled;
|
||||
- QPushButton *m_tuneColor;
|
||||
- Wizard *m_wizard;
|
||||
+ QGroupBox *m_texOptions = 0;
|
||||
+ QButtonGroup *m_texOptionsGroup = 0;
|
||||
+ QGroupBox *m_htmlOptions = 0;
|
||||
+ QButtonGroup *m_htmlOptionsGroup = 0;
|
||||
+ QCheckBox *m_htmlEnabled = 0;
|
||||
+ QCheckBox *m_latexEnabled = 0;
|
||||
+ QCheckBox *m_manEnabled = 0;
|
||||
+ QCheckBox *m_rtfEnabled = 0;
|
||||
+ QCheckBox *m_xmlEnabled = 0;
|
||||
+ QCheckBox *m_searchEnabled = 0;
|
||||
+ QPushButton *m_tuneColor = 0;
|
||||
+ Wizard *m_wizard = 0;
|
||||
const QHash<QString,Input *> &m_modelData;
|
||||
};
|
||||
|
||||
@@ -209,17 +209,17 @@ class Step4 : public QWidget
|
||||
void setCallerGraphEnabled(int state);
|
||||
|
||||
private:
|
||||
- QGroupBox *m_diagramMode;
|
||||
- QButtonGroup *m_diagramModeGroup;
|
||||
- QGroupBox *m_dotGroup;
|
||||
- QCheckBox *m_dotClass;
|
||||
- QCheckBox *m_dotCollaboration;
|
||||
- QCheckBox *m_dotInclude;
|
||||
- QCheckBox *m_dotIncludedBy;
|
||||
- QCheckBox *m_dotInheritance;
|
||||
- QCheckBox *m_dotCall;
|
||||
- QCheckBox *m_dotCaller;
|
||||
- Wizard *m_wizard;
|
||||
+ QGroupBox *m_diagramMode = 0;
|
||||
+ QButtonGroup *m_diagramModeGroup = 0;
|
||||
+ QGroupBox *m_dotGroup = 0;
|
||||
+ QCheckBox *m_dotClass = 0;
|
||||
+ QCheckBox *m_dotCollaboration = 0;
|
||||
+ QCheckBox *m_dotInclude = 0;
|
||||
+ QCheckBox *m_dotIncludedBy = 0;
|
||||
+ QCheckBox *m_dotInheritance = 0;
|
||||
+ QCheckBox *m_dotCall = 0;
|
||||
+ QCheckBox *m_dotCaller = 0;
|
||||
+ Wizard *m_wizard = 0;
|
||||
const QHash<QString,Input *> &m_modelData;
|
||||
};
|
||||
|
||||
@@ -243,14 +243,14 @@ class Wizard : public QSplitter
|
||||
|
||||
private:
|
||||
const QHash<QString,Input *> &m_modelData;
|
||||
- QTreeWidget *m_treeWidget;
|
||||
- QStackedWidget *m_topicStack;
|
||||
- Step1 *m_step1;
|
||||
- Step2 *m_step2;
|
||||
- Step3 *m_step3;
|
||||
- Step4 *m_step4;
|
||||
- QPushButton *m_next;
|
||||
- QPushButton *m_prev;
|
||||
+ QTreeWidget *m_treeWidget = 0;
|
||||
+ QStackedWidget *m_topicStack = 0;
|
||||
+ Step1 *m_step1 = 0;
|
||||
+ Step2 *m_step2 = 0;
|
||||
+ Step3 *m_step3 = 0;
|
||||
+ Step4 *m_step4 = 0;
|
||||
+ QPushButton *m_next = 0;
|
||||
+ QPushButton *m_prev = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
diff -up doxygen-1.8.16/src/classdef.cpp.orig doxygen-1.8.16/src/classdef.cpp
|
||||
--- doxygen-1.8.16/src/classdef.cpp.orig 2019-08-04 19:04:55.000000000 +0200
|
||||
+++ doxygen-1.8.16/src/classdef.cpp 2019-12-10 11:52:17.184826531 +0100
|
||||
@@ -265,7 +265,7 @@ class ClassDefImpl : public DefinitionIm
|
||||
|
||||
// PIMPL idiom
|
||||
class IMPL;
|
||||
- IMPL *m_impl;
|
||||
+ IMPL *m_impl = 0;
|
||||
};
|
||||
|
||||
ClassDef *createClassDef(
|
||||
@@ -525,7 +525,7 @@ class ClassDefAliasImpl : public Definit
|
||||
QPtrDict<void> *visitedClasses=0) const {}
|
||||
|
||||
private:
|
||||
- mutable bool m_visited;
|
||||
+ mutable bool m_visited = false;
|
||||
};
|
||||
|
||||
|
||||
@@ -563,27 +563,27 @@ class ClassDefImpl::IMPL
|
||||
/*! Include information about the header file should be included
|
||||
* in the documentation. 0 by default, set by setIncludeFile().
|
||||
*/
|
||||
- IncludeInfo *incInfo;
|
||||
+ IncludeInfo *incInfo = 0;
|
||||
|
||||
/*! List of base class (or super-classes) from which this class derives
|
||||
* directly.
|
||||
*/
|
||||
- BaseClassList *inherits;
|
||||
+ BaseClassList *inherits = 0;
|
||||
|
||||
/*! List of sub-classes that directly derive from this class
|
||||
*/
|
||||
- BaseClassList *inheritedBy;
|
||||
+ BaseClassList *inheritedBy = 0;
|
||||
|
||||
/*! Namespace this class is part of
|
||||
* (this is the inner most namespace in case of nested namespaces)
|
||||
*/
|
||||
- NamespaceDef *nspace;
|
||||
+ NamespaceDef *nspace = 0;
|
||||
|
||||
/*! File this class is defined in */
|
||||
- FileDef *fileDef;
|
||||
+ FileDef *fileDef = 0;
|
||||
|
||||
/*! List of all members (including inherited members) */
|
||||
- MemberNameInfoSDict *allMemberNameInfoSDict;
|
||||
+ MemberNameInfoSDict *allMemberNameInfoSDict = 0;
|
||||
|
||||
/*! Template arguments of this class */
|
||||
ArgumentList *tempArgs;
|
||||
@@ -595,7 +595,7 @@ class ClassDefImpl::IMPL
|
||||
FileList files;
|
||||
|
||||
/*! Examples that use this class */
|
||||
- ExampleSDict *exampleSDict;
|
||||
+ ExampleSDict *exampleSDict = 0;
|
||||
|
||||
/*! Holds the kind of "class" this is. */
|
||||
ClassDef::CompoundType compType;
|
||||
@@ -609,30 +609,30 @@ class ClassDefImpl::IMPL
|
||||
/*! The inner classes contained in this class. Will be 0 if there are
|
||||
* no inner classes.
|
||||
*/
|
||||
- ClassSDict *innerClasses;
|
||||
+ ClassSDict *innerClasses = 0;
|
||||
|
||||
/* classes for the collaboration diagram */
|
||||
- UsesClassDict *usesImplClassDict;
|
||||
- UsesClassDict *usedByImplClassDict;
|
||||
- UsesClassDict *usesIntfClassDict;
|
||||
+ UsesClassDict *usesImplClassDict = 0;
|
||||
+ UsesClassDict *usedByImplClassDict = 0;
|
||||
+ UsesClassDict *usesIntfClassDict = 0;
|
||||
|
||||
- ConstraintClassDict *constraintClassDict;
|
||||
+ ConstraintClassDict *constraintClassDict = 0;
|
||||
|
||||
/*! Template instances that exists of this class, the key in the
|
||||
* dictionary is the template argument list.
|
||||
*/
|
||||
- mutable QDict<ClassDef> *templateInstances;
|
||||
+ mutable QDict<ClassDef> *templateInstances = 0;
|
||||
|
||||
/*! Template instances that exists of this class, as defined by variables.
|
||||
* We do NOT want to document these individually. The key in the
|
||||
* dictionary is the template argument list.
|
||||
*/
|
||||
- mutable QDict<ClassDef> *variableInstances;
|
||||
+ mutable QDict<ClassDef> *variableInstances = 0;
|
||||
|
||||
- QDict<int> *templBaseClassNames;
|
||||
+ QDict<int> *templBaseClassNames = 0;
|
||||
|
||||
/*! The class this class is an instance of. */
|
||||
- const ClassDef *templateMaster;
|
||||
+ const ClassDef *templateMaster = 0;
|
||||
|
||||
/*! local class name which could be a typedef'ed alias name. */
|
||||
QCString className;
|
||||
@@ -640,56 +640,56 @@ class ClassDefImpl::IMPL
|
||||
/*! If this class is a Objective-C category, then this points to the
|
||||
* class which is extended.
|
||||
*/
|
||||
- ClassDef *categoryOf;
|
||||
+ ClassDef *categoryOf = 0;
|
||||
|
||||
QList<MemberList> memberLists;
|
||||
|
||||
/* user defined member groups */
|
||||
- MemberGroupSDict *memberGroupSDict;
|
||||
+ MemberGroupSDict *memberGroupSDict = 0;
|
||||
|
||||
/*! Is this an abstract class? */
|
||||
- bool isAbstract;
|
||||
+ bool isAbstract = false;
|
||||
|
||||
/*! Is the class part of an unnamed namespace? */
|
||||
- bool isStatic;
|
||||
+ bool isStatic = false;
|
||||
|
||||
/*! TRUE if classes members are merged with those of the base classes. */
|
||||
- bool membersMerged;
|
||||
+ bool membersMerged = false;
|
||||
|
||||
/*! TRUE if the class is defined in a source file rather than a header file. */
|
||||
- bool isLocal;
|
||||
+ bool isLocal = false;
|
||||
|
||||
- bool isTemplArg;
|
||||
+ bool isTemplArg = false;
|
||||
|
||||
/*! Does this class group its user-grouped members
|
||||
* as a sub-section of the normal (public/protected/..)
|
||||
* groups?
|
||||
*/
|
||||
- bool subGrouping;
|
||||
+ bool subGrouping = false;
|
||||
|
||||
/** Reason of existence is a "use" relation */
|
||||
- bool usedOnly;
|
||||
+ bool usedOnly = false;
|
||||
|
||||
/** List of titles to use for the summary */
|
||||
SDict<QCString> vhdlSummaryTitles;
|
||||
|
||||
/** Is this a simple (non-nested) C structure? */
|
||||
- bool isSimple;
|
||||
+ bool isSimple = false;
|
||||
|
||||
/** Does this class overloaded the -> operator? */
|
||||
- MemberDef *arrowOperator;
|
||||
+ MemberDef *arrowOperator = 0;
|
||||
|
||||
- ClassList *taggedInnerClasses;
|
||||
- ClassDef *tagLessRef;
|
||||
+ ClassList *taggedInnerClasses = 0;
|
||||
+ ClassDef *tagLessRef = 0;
|
||||
|
||||
/** Does this class represent a Java style enum? */
|
||||
- bool isJavaEnum;
|
||||
+ bool isJavaEnum = false;
|
||||
|
||||
- bool isGeneric;
|
||||
+ bool isGeneric = false;
|
||||
|
||||
- bool isAnonymous;
|
||||
+ bool isAnonymous = false;
|
||||
|
||||
- uint64 spec;
|
||||
+ uint64 spec = 0;
|
||||
|
||||
QCString metaData;
|
||||
};
|
||||
diff -up doxygen-1.8.16/src/docgroup.h.orig doxygen-1.8.16/src/docgroup.h
|
||||
--- doxygen-1.8.16/src/docgroup.h.orig 2019-08-02 18:43:41.000000000 +0200
|
||||
+++ doxygen-1.8.16/src/docgroup.h 2019-12-10 11:45:32.752260485 +0100
|
||||
@@ -42,9 +42,9 @@ class DocGroup
|
||||
|
||||
private:
|
||||
int findExistingGroup(int &groupId,const MemberGroupInfo *info);
|
||||
- int m_openCount;
|
||||
+ int m_openCount = 0;
|
||||
QCString m_memberGroupHeader;
|
||||
- int m_memberGroupId;
|
||||
+ int m_memberGroupId = 0;
|
||||
QCString m_memberGroupRelates;
|
||||
QCString m_memberGroupDocs;
|
||||
QStack<Grouping> m_autoGroupStack;
|
||||
diff -up doxygen-1.8.16/src/doctokenizer.h.orig doxygen-1.8.16/src/doctokenizer.h
|
||||
--- doxygen-1.8.16/src/doctokenizer.h.orig 2019-06-10 10:17:24.000000000 +0200
|
||||
+++ doxygen-1.8.16/src/doctokenizer.h 2019-12-10 11:45:32.752260485 +0100
|
||||
@@ -81,8 +81,8 @@ struct TokenInfo
|
||||
// comment blocks
|
||||
|
||||
// list token info
|
||||
- bool isEnumList;
|
||||
- int indent;
|
||||
+ bool isEnumList = false;
|
||||
+ int indent = 0;
|
||||
|
||||
// sections
|
||||
QCString sectionId;
|
||||
@@ -95,22 +95,22 @@ struct TokenInfo
|
||||
QCString verb;
|
||||
|
||||
// xrefitem
|
||||
- int id;
|
||||
+ int id = -1;
|
||||
|
||||
// html tag
|
||||
HtmlAttribList attribs;
|
||||
- bool endTag;
|
||||
- bool emptyTag;
|
||||
+ bool endTag = false;
|
||||
+ bool emptyTag = false;
|
||||
|
||||
// whitespace
|
||||
QCString chars;
|
||||
|
||||
// url
|
||||
- bool isEMailAddr;
|
||||
+ bool isEMailAddr = false;
|
||||
|
||||
// param attributes
|
||||
enum ParamDir { In=1, Out=2, InOut=3, Unspecified=0 };
|
||||
- ParamDir paramDir;
|
||||
+ ParamDir paramDir = Unspecified;
|
||||
};
|
||||
|
||||
// globals
|
||||
diff -up doxygen-1.8.16/src/dotgraph.h.orig doxygen-1.8.16/src/dotgraph.h
|
||||
--- doxygen-1.8.16/src/dotgraph.h.orig 2019-06-13 21:36:00.000000000 +0200
|
||||
+++ doxygen-1.8.16/src/dotgraph.h 2019-12-10 11:45:32.752260485 +0100
|
||||
@@ -83,22 +83,22 @@ class DotGraph
|
||||
QCString relImgName() const { return m_relPath + imgName(); }
|
||||
|
||||
// the following variables are used while writing the graph to a .dot file
|
||||
- GraphOutputFormat m_graphFormat;
|
||||
- EmbeddedOutputFormat m_textFormat;
|
||||
+ GraphOutputFormat m_graphFormat = GOF_BITMAP;
|
||||
+ EmbeddedOutputFormat m_textFormat = EOF_Html;
|
||||
QDir m_dir;
|
||||
QCString m_fileName;
|
||||
QCString m_relPath;
|
||||
- bool m_generateImageMap;
|
||||
- int m_graphId;
|
||||
+ bool m_generateImageMap = false;
|
||||
+ int m_graphId = 0;
|
||||
|
||||
QCString m_absPath;
|
||||
QCString m_baseName;
|
||||
QGString m_theGraph;
|
||||
- bool m_regenerate;
|
||||
- bool m_doNotAddImageToIndex;
|
||||
- bool m_noDivTag;
|
||||
- bool m_zoomable;
|
||||
- bool m_urlOnly;
|
||||
+ bool m_regenerate = false;
|
||||
+ bool m_doNotAddImageToIndex = false;
|
||||
+ bool m_noDivTag = false;
|
||||
+ bool m_zoomable = true;
|
||||
+ bool m_urlOnly = false;
|
||||
|
||||
private:
|
||||
DotGraph(const DotGraph &);
|
||||
diff -up doxygen-1.8.16/src/memberdef.cpp.orig doxygen-1.8.16/src/memberdef.cpp
|
||||
--- doxygen-1.8.16/src/memberdef.cpp.orig 2019-08-06 20:32:27.000000000 +0200
|
||||
+++ doxygen-1.8.16/src/memberdef.cpp 2019-12-10 11:45:32.753260493 +0100
|
||||
@@ -1299,32 +1299,32 @@ class MemberDefImpl::IMPL
|
||||
const ArgumentList *al,const char *meta
|
||||
);
|
||||
|
||||
- ClassDef *classDef; // member of or related to
|
||||
- FileDef *fileDef; // member of file definition
|
||||
- NamespaceDef *nspace; // the namespace this member is in.
|
||||
-
|
||||
- MemberDef *enumScope; // the enclosing scope, if this is an enum field
|
||||
- bool livesInsideEnum;
|
||||
- const MemberDef *annEnumType; // the anonymous enum that is the type of this member
|
||||
- MemberList *enumFields; // enumeration fields
|
||||
-
|
||||
- MemberDef *redefines; // the members that this member redefines
|
||||
- MemberList *redefinedBy; // the list of members that redefine this one
|
||||
-
|
||||
- MemberDef *memDef; // member definition for this declaration
|
||||
- MemberDef *memDec; // member declaration for this definition
|
||||
- ClassDef *relatedAlso; // points to class marked by relatedAlso
|
||||
+ ClassDef *classDef = 0; // member of or related to
|
||||
+ FileDef *fileDef = 0; // member of file definition
|
||||
+ NamespaceDef *nspace = 0; // the namespace this member is in.
|
||||
+
|
||||
+ MemberDef *enumScope = 0; // the enclosing scope, if this is an enum field
|
||||
+ bool livesInsideEnum = false;
|
||||
+ const MemberDef *annEnumType = 0; // the anonymous enum that is the type of this member
|
||||
+ MemberList *enumFields = 0; // enumeration fields
|
||||
+
|
||||
+ MemberDef *redefines = 0; // the members that this member redefines
|
||||
+ MemberList *redefinedBy = 0; // the list of members that redefine this one
|
||||
+
|
||||
+ MemberDef *memDef = 0; // member definition for this declaration
|
||||
+ MemberDef *memDec = 0; // member declaration for this definition
|
||||
+ ClassDef *relatedAlso = 0; // points to class marked by relatedAlso
|
||||
|
||||
- ExampleSDict *exampleSDict; // a dictionary of all examples for quick access
|
||||
+ ExampleSDict *exampleSDict = 0; // a dictionary of all examples for quick access
|
||||
|
||||
QCString type; // return actual type
|
||||
QCString accessorType; // return type that tell how to get to this member
|
||||
- ClassDef *accessorClass; // class that this member accesses (for anonymous types)
|
||||
+ ClassDef *accessorClass = 0; // class that this member accesses (for anonymous types)
|
||||
QCString args; // function arguments/variable array specifiers
|
||||
QCString def; // member definition in code (fully qualified name)
|
||||
QCString anc; // HTML anchor name
|
||||
- Specifier virt; // normal/virtual/pure virtual
|
||||
- Protection prot; // protection type [Public/Protected/Private]
|
||||
+ Specifier virt = Normal; // normal/virtual/pure virtual
|
||||
+ Protection prot = Public; // protection type [Public/Protected/Private]
|
||||
QCString decl; // member declaration in class
|
||||
|
||||
QCString bitfields; // struct member bitfields
|
||||
@@ -1334,13 +1334,13 @@ class MemberDefImpl::IMPL
|
||||
QCString initializer; // initializer
|
||||
QCString extraTypeChars; // extra type info found after the argument list
|
||||
QCString enumBaseType; // base type of the enum (C++11)
|
||||
- int initLines; // number of lines in the initializer
|
||||
+ int initLines = 0; // number of lines in the initializer
|
||||
|
||||
- uint64 memSpec; // The specifiers present for this member
|
||||
- MemberType mtype; // returns the kind of member
|
||||
- int maxInitLines; // when the initializer will be displayed
|
||||
- int userInitLines; // result of explicit \hideinitializer or \showinitializer
|
||||
- MemberDef *annMemb;
|
||||
+ uint64 memSpec = 0; // The specifiers present for this member
|
||||
+ MemberType mtype = MemberType_Define; // returns the kind of member
|
||||
+ int maxInitLines = 0; // when the initializer will be displayed
|
||||
+ int userInitLines = 0; // result of explicit \hideinitializer or \showinitializer
|
||||
+ MemberDef *annMemb = 0;
|
||||
|
||||
ArgumentList *defArgList; // argument list of this member definition
|
||||
ArgumentList *declArgList; // argument list of this member declaration
|
||||
@@ -1357,19 +1357,19 @@ class MemberDefImpl::IMPL
|
||||
// as its type then this is computed by
|
||||
// getClassDefOfAnonymousType() and
|
||||
// cached here.
|
||||
- SDict<MemberList> *classSectionSDict; // not accessible
|
||||
+ SDict<MemberList> *classSectionSDict = 0; // not accessible
|
||||
|
||||
- const MemberDef *groupAlias; // Member containing the definition
|
||||
- int grpId; // group id
|
||||
- MemberGroup *memberGroup; // group's member definition
|
||||
- GroupDef *group; // group in which this member is in
|
||||
+ const MemberDef *groupAlias = 0; // Member containing the definition
|
||||
+ int grpId = 0; // group id
|
||||
+ MemberGroup *memberGroup = 0; // group's member definition
|
||||
+ GroupDef *group = 0; // group in which this member is in
|
||||
Grouping::GroupPri_t grouppri; // priority of this definition
|
||||
QCString groupFileName; // file where this grouping was defined
|
||||
- int groupStartLine; // line " " " " "
|
||||
- MemberDef *groupMember;
|
||||
+ int groupStartLine = 0; // line " " " " "
|
||||
+ MemberDef *groupMember = 0;
|
||||
|
||||
- bool isTypedefValCached;
|
||||
- const ClassDef *cachedTypedefValue;
|
||||
+ bool isTypedefValCached = false;
|
||||
+ const ClassDef *cachedTypedefValue = 0;
|
||||
QCString cachedTypedefTemplSpec;
|
||||
QCString cachedResolvedType;
|
||||
|
||||
@@ -1379,41 +1379,41 @@ class MemberDefImpl::IMPL
|
||||
//QCString inbodyDocs;
|
||||
|
||||
// documentation inheritance
|
||||
- MemberDef *docProvider;
|
||||
+ MemberDef *docProvider = 0;
|
||||
|
||||
// to store the output file base from tag files
|
||||
QCString explicitOutputFileBase;
|
||||
|
||||
// objective-c
|
||||
- bool implOnly; // function found in implementation but not
|
||||
- // in the interface
|
||||
- mutable bool hasDocumentedParams;
|
||||
- mutable bool hasDocumentedReturnType;
|
||||
- bool isDMember;
|
||||
- Relationship related; // relationship of this to the class
|
||||
- bool stat; // is it a static function?
|
||||
- bool proto; // is it a prototype;
|
||||
- bool docEnumValues; // is an enum with documented enum values.
|
||||
-
|
||||
- mutable bool annScope; // member is part of an anonymous scope
|
||||
- mutable bool annUsed; // ugly: needs to be mutable to allow setAnonymousUsed to act as a
|
||||
- // const member.
|
||||
- bool hasCallGraph;
|
||||
- bool hasCallerGraph;
|
||||
- bool hasReferencedByRelation;
|
||||
- bool hasReferencesRelation;
|
||||
- bool explExt; // member was explicitly declared external
|
||||
- bool tspec; // member is a template specialization
|
||||
- bool groupHasDocs; // true if the entry that caused the grouping was documented
|
||||
- bool docsForDefinition; // TRUE => documentation block is put before
|
||||
- // definition.
|
||||
- // FALSE => block is put before declaration.
|
||||
- ClassDef *category;
|
||||
- MemberDef *categoryRelation;
|
||||
+ bool implOnly = false; // function found in implementation but not
|
||||
+ // in the interface
|
||||
+ mutable bool hasDocumentedParams = false;
|
||||
+ mutable bool hasDocumentedReturnType = false;
|
||||
+ bool isDMember = false;
|
||||
+ Relationship related = Member; // relationship of this to the class
|
||||
+ bool stat = false; // is it a static function?
|
||||
+ bool proto = false; // is it a prototype?
|
||||
+ bool docEnumValues = false; // is an enum with documented enum values.
|
||||
+
|
||||
+ mutable bool annScope = false; // member is part of an anonymous scope
|
||||
+ mutable bool annUsed = false; // ugly: needs to be mutable to allow setAnonymousUsed to act as a
|
||||
+ // const member.
|
||||
+ bool hasCallGraph = false;
|
||||
+ bool hasCallerGraph = false;
|
||||
+ bool hasReferencedByRelation = false;
|
||||
+ bool hasReferencesRelation = false;
|
||||
+ bool explExt = false; // member was explicitly declared external
|
||||
+ bool tspec = false; // member is a template specialization
|
||||
+ bool groupHasDocs = false; // true if the entry that caused the grouping was documented
|
||||
+ bool docsForDefinition = false; // TRUE => documentation block is put before
|
||||
+ // definition.
|
||||
+ // FALSE => block is put before declaration.
|
||||
+ ClassDef *category = 0;
|
||||
+ MemberDef *categoryRelation = 0;
|
||||
QCString declFileName;
|
||||
- int declLine;
|
||||
- int declColumn;
|
||||
- int numberOfFlowKW;
|
||||
+ int declLine = 0;
|
||||
+ int declColumn = 0;
|
||||
+ int numberOfFlowKW = 0;
|
||||
};
|
||||
|
||||
MemberDefImpl::IMPL::IMPL() :
|
||||
diff -up doxygen-1.8.16/src/membergroup.h.orig doxygen-1.8.16/src/membergroup.h
|
||||
--- doxygen-1.8.16/src/membergroup.h.orig 2019-12-10 11:45:32.754260502 +0100
|
||||
+++ doxygen-1.8.16/src/membergroup.h 2019-12-10 11:54:06.767797449 +0100
|
||||
@@ -101,18 +101,18 @@ class MemberGroup
|
||||
int docLine() const { return m_docLine; }
|
||||
|
||||
private:
|
||||
- MemberList *memberList; // list of all members in the group
|
||||
- MemberList *inDeclSection;
|
||||
- int grpId;
|
||||
+ MemberList *memberList = 0; // list of all members in the group
|
||||
+ MemberList *inDeclSection = 0;
|
||||
+ int grpId = 0;
|
||||
QCString grpHeader;
|
||||
QCString fileName; // base name of the generated file
|
||||
QCString doc;
|
||||
- bool inSameSection;
|
||||
- int m_numDecMembers;
|
||||
- int m_numDocMembers;
|
||||
- const Definition *m_parent;
|
||||
+ bool inSameSection = false;
|
||||
+ int m_numDecMembers = 0;
|
||||
+ int m_numDocMembers = 0;
|
||||
+ const Definition *m_parent = 0;
|
||||
QCString m_docFile;
|
||||
- int m_docLine;
|
||||
+ int m_docLine = 0;
|
||||
QList<ListItemInfo> *m_xrefListItems;
|
||||
};
|
||||
|
||||
diff -up doxygen-1.8.16/src/scanner.l.orig doxygen-1.8.16/src/scanner.l
|
||||
--- doxygen-1.8.16/src/scanner.l.orig 2019-12-10 11:45:32.756260520 +0100
|
||||
+++ doxygen-1.8.16/src/scanner.l 2019-12-10 11:54:52.099199108 +0100
|
||||
@@ -191,7 +191,7 @@ static QCString g_delimiter;
|
||||
static int g_column;
|
||||
|
||||
static int g_fencedSize=0;
|
||||
-static bool g_nestedComment=0;
|
||||
+static bool g_nestedComment=false;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
diff -up doxygen-1.8.16/src/tclscanner.l.orig doxygen-1.8.16/src/tclscanner.l
|
||||
--- doxygen-1.8.16/src/tclscanner.l.orig 2019-08-04 19:05:12.000000000 +0200
|
||||
+++ doxygen-1.8.16/src/tclscanner.l 2019-12-10 11:45:32.757260529 +0100
|
||||
@@ -1492,7 +1492,7 @@ tcl_inf("-> %s\n",(const char *)tcl.stri
|
||||
{
|
||||
tcl_inf("-> %s\n",(const char *)tcl.string_comment);
|
||||
int myPos=0;
|
||||
- bool myNew=0;
|
||||
+ bool myNew=false;
|
||||
int myLine=tcl.line_comment;
|
||||
BufStr myI(1024);
|
||||
BufStr myO(1024);
|
||||
diff -up doxygen-1.8.16/src/vhdldocgen.h.orig doxygen-1.8.16/src/vhdldocgen.h
|
||||
--- doxygen-1.8.16/src/vhdldocgen.h.orig 2019-06-10 10:17:24.000000000 +0200
|
||||
+++ doxygen-1.8.16/src/vhdldocgen.h 2019-12-10 11:45:32.757260529 +0100
|
||||
@@ -310,11 +310,11 @@ class FlowChart
|
||||
~FlowChart();
|
||||
|
||||
private:
|
||||
- int id;
|
||||
- int stamp;
|
||||
- int type;
|
||||
+ int id = 0;
|
||||
+ int stamp = 0;
|
||||
+ int type = 0;
|
||||
|
||||
- int line;
|
||||
+ int line = 0;
|
||||
|
||||
QCString label;
|
||||
QCString text;
|
||||
diff -up doxygen-1.8.16/src/vhdljjparser.h.orig doxygen-1.8.16/src/vhdljjparser.h
|
||||
--- doxygen-1.8.16/src/vhdljjparser.h.orig 2019-06-10 10:17:24.000000000 +0200
|
||||
+++ doxygen-1.8.16/src/vhdljjparser.h 2019-12-10 11:45:32.758260538 +0100
|
||||
@@ -87,9 +87,9 @@ struct VhdlConfNode
|
||||
QCString arch;
|
||||
QCString binding;
|
||||
QCString compSpec;
|
||||
- int level;
|
||||
- bool isLeaf;
|
||||
- bool isInlineConf;
|
||||
+ int level = 0;
|
||||
+ bool isLeaf = false;
|
||||
+ bool isInlineConf = false;
|
||||
|
||||
};
|
||||
|
||||
diff -up doxygen-1.8.16/src/clangparser.cpp.me doxygen-1.8.16/src/clangparser.cpp
|
||||
--- doxygen-1.8.16/src/clangparser.cpp.me 2019-12-10 12:08:46.334638776 +0100
|
||||
+++ doxygen-1.8.16/src/clangparser.cpp 2019-12-10 12:08:59.291755101 +0100
|
||||
@@ -174,7 +174,7 @@ void ClangParser::start(const char *file
|
||||
std::string error;
|
||||
// load a clang compilation database (https://clang.llvm.org/docs/JSONCompilationDatabase.html)
|
||||
// this only needs to be loaded once, and could be refactored to a higher level function
|
||||
- static std::unique_ptr<clang::tooling::CompilationDatabase> db =
|
||||
+ static std::shared_ptr<clang::tooling::CompilationDatabase> db =
|
||||
clang::tooling::CompilationDatabase::loadFromDirectory(clangCompileDatabase.data(), error);
|
||||
int clang_option_len = 0;
|
||||
std::vector<clang::tooling::CompileCommand> command;
|
||||
diff -up doxygen-1.8.16/src/doxygen.cpp.me doxygen-1.8.16/src/doxygen.cpp
|
||||
--- doxygen-1.8.16/src/doxygen.cpp.me 2019-12-10 12:05:44.254007471 +0100
|
||||
+++ doxygen-1.8.16/src/doxygen.cpp 2019-12-10 12:07:24.286903381 +0100
|
||||
@@ -520,7 +520,7 @@ static void addSTLClasses(Entry *root)
|
||||
addSTLMember(classEntry,info->templType2,info->templName2);
|
||||
}
|
||||
if (fullName=="std::auto_ptr" || fullName=="std::smart_ptr" || fullName=="std::shared_ptr" ||
|
||||
- fullName=="std::unique_ptr" || fullName=="std::weak_ptr")
|
||||
+ fullName=="std::shared_ptr" || fullName=="std::weak_ptr")
|
||||
{
|
||||
Entry *memEntry = new Entry;
|
||||
memEntry->name = "operator->";
|
78
doxygen-1.8.17-test-suite-is-failing.patch
Normal file
78
doxygen-1.8.17-test-suite-is-failing.patch
Normal file
@ -0,0 +1,78 @@
|
||||
commit cd9dee013dc749a10bbe019c350e0e62b6635795
|
||||
Author: albert-github <albert.tests@gmail.com>
|
||||
Date: Wed Jan 1 17:51:53 2020 +0100
|
||||
|
||||
issue #7464 1.8.17: test suite is failing
|
||||
|
||||
On Windows the syntax with the command and arguments in one string worked but on *nix (and Cygwin) it didn't.
|
||||
- changed calls to Popen to split command (see also: https://docs.python.org/3/library/subprocess.html).
|
||||
- explicitly specify files to check for xhtml
|
||||
- changed call to xmllint for xhtml and docbook (due to stdout overflow in some cases, we are not really interested in the, formatted, output of xmllint).
|
||||
- in the update part a `read` was left, should have been removed.
|
||||
|
||||
diff --git a/testing/runtests.py b/testing/runtests.py
|
||||
index a4118b86..10fe5021 100755
|
||||
--- a/testing/runtests.py
|
||||
+++ b/testing/runtests.py
|
||||
@@ -3,6 +3,7 @@
|
||||
from __future__ import print_function
|
||||
import argparse, glob, itertools, re, shutil, os, sys
|
||||
import subprocess
|
||||
+import shlex
|
||||
|
||||
config_reg = re.compile('.*\/\/\s*(?P<name>\S+):\s*(?P<value>.*)$')
|
||||
|
||||
@@ -28,10 +29,10 @@ def xpopen(cmd, cmd1="",encoding='utf-8-sig', getStderr=False):
|
||||
return os.popen(cmd).read() # Python 2 without encoding
|
||||
else:
|
||||
if (getStderr):
|
||||
- proc = subprocess.run(cmd1,encoding=encoding,capture_output=True) # Python 3 with encoding
|
||||
- return proc.stderr
|
||||
+ proc = subprocess.Popen(shlex.split(cmd1),stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding=encoding) # Python 3 with encoding
|
||||
+ return proc.stderr.read()
|
||||
else:
|
||||
- proc = subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding=encoding) # Python 3 with encoding
|
||||
+ proc = subprocess.Popen(shlex.split(cmd),stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding=encoding) # Python 3 with encoding
|
||||
return proc.stdout.read()
|
||||
|
||||
class Tester:
|
||||
@@ -137,7 +138,7 @@ class Tester:
|
||||
print('GENERATE_DOCBOOK=NO', file=f)
|
||||
if (self.args.xhtml):
|
||||
print('GENERATE_HTML=YES', file=f)
|
||||
- # HTML_OUTPUT can also be set locally
|
||||
+ # HTML_OUTPUT can also have been set locally
|
||||
print('HTML_OUTPUT=%s/html' % self.test_out, file=f)
|
||||
print('HTML_FILE_EXTENSION=.xhtml', file=f)
|
||||
if (self.args.pdf):
|
||||
@@ -184,7 +185,7 @@ class Tester:
|
||||
print('Non-existing file %s after \'check:\' statement' % check_file)
|
||||
return
|
||||
# convert output to canonical form
|
||||
- data = xpopen('%s --format --noblanks --nowarning %s' % (self.args.xmllint,check_file)).read()
|
||||
+ data = xpopen('%s --format --noblanks --nowarning %s' % (self.args.xmllint,check_file))
|
||||
if data:
|
||||
# strip version
|
||||
data = re.sub(r'xsd" version="[0-9.-]+"','xsd" version=""',data).rstrip('\n')
|
||||
@@ -326,7 +327,7 @@ class Tester:
|
||||
tests.append(glob.glob('%s/*.xml' % (docbook_output)))
|
||||
tests.append(glob.glob('%s/*/*/*.xml' % (docbook_output)))
|
||||
tests = ' '.join(list(itertools.chain.from_iterable(tests))).replace(self.args.outputdir +'/','').replace('\\','/')
|
||||
- exe_string = '%s --nonet --postvalid %s' % (self.args.xmllint,tests)
|
||||
+ exe_string = '%s --noout --nonet --postvalid %s' % (self.args.xmllint,tests)
|
||||
exe_string1 = exe_string
|
||||
exe_string += ' %s' % (redirx)
|
||||
exe_string += ' %s more "%s/temp"' % (separ,docbook_output)
|
||||
@@ -346,7 +347,11 @@ class Tester:
|
||||
redirx=' 2> %s/temp >nul:'%html_output
|
||||
else:
|
||||
redirx='2>%s/temp >/dev/null'%html_output
|
||||
- exe_string = '%s --path dtd --nonet --postvalid %s/*xhtml' % (self.args.xmllint,html_output)
|
||||
+ check_file = []
|
||||
+ check_file.append(glob.glob('%s/*.xhtml' % (html_output)))
|
||||
+ check_file.append(glob.glob('%s/*/*/*.xhtml' % (html_output)))
|
||||
+ check_file = ' '.join(list(itertools.chain.from_iterable(check_file))).replace(self.args.outputdir +'/','').replace('\\','/')
|
||||
+ exe_string = '%s --noout --path dtd --nonet --postvalid %s' % (self.args.xmllint,check_file)
|
||||
exe_string1 = exe_string
|
||||
exe_string += ' %s' % (redirx)
|
||||
exe_string += ' %s more "%s/temp"' % (separ,html_output)
|
43
doxygen.spec
43
doxygen.spec
@ -3,27 +3,27 @@
|
||||
%else
|
||||
%global xapian_core_support OFF
|
||||
%endif
|
||||
%global BuildDir Out
|
||||
|
||||
Summary: A documentation system for C/C++
|
||||
Name: doxygen
|
||||
Epoch: 1
|
||||
Version: 1.8.16
|
||||
Release: 3%{?dist}
|
||||
Version: 1.8.17
|
||||
Release: 1%{?dist}
|
||||
|
||||
# No version is specified.
|
||||
License: GPL+
|
||||
Url: http://www.doxygen.nl
|
||||
Source0: http://doxygen.nl/files/%{name}-%{version}.src.tar.gz
|
||||
# this icon is part of kdesdk
|
||||
Source1: doxywizard.png
|
||||
Source2: doxywizard.desktop
|
||||
Source1: doxywizard.desktop
|
||||
|
||||
# upstream patches
|
||||
Patch0: doxygen-1.8.16-#7248.patch
|
||||
Patch1: doxygen-1.8.16-covscan.patch
|
||||
Patch0: doxgen-1.8.17-broken-urls-in-the-xml-output.patch
|
||||
Patch1: doxygen-1.8.17-test-suite-is-failing.patch
|
||||
|
||||
BuildRequires: %{_bindir}/python3
|
||||
|
||||
BuildRequires: ImageMagick
|
||||
BuildRequires: gcc-c++ gcc
|
||||
BuildRequires: perl-interpreter
|
||||
%if ! 0%{?_module_build}
|
||||
@ -105,9 +105,8 @@ mv LANGUAGE.HOWTO.new LANGUAGE.HOWTO
|
||||
|
||||
|
||||
%build
|
||||
|
||||
mkdir -p %{_target_platform}
|
||||
pushd %{_target_platform}
|
||||
mkdir -p %{BuildDir}
|
||||
pushd %{BuildDir}
|
||||
%if ! 0%{?_module_build}
|
||||
%cmake \
|
||||
-DPYTHON_EXECUTABLE=%{_bindir}/python3 \
|
||||
@ -133,12 +132,21 @@ pushd %{_target_platform}
|
||||
%endif
|
||||
popd
|
||||
|
||||
make %{?_smp_mflags} -C %{_target_platform}
|
||||
make %{?_smp_mflags} -C %{BuildDir}
|
||||
|
||||
%install
|
||||
make install DESTDIR=%{buildroot} -C %{_target_platform}
|
||||
make install DESTDIR=%{buildroot} -C %{BuildDir}
|
||||
|
||||
install -m644 -p -D %{SOURCE1} %{buildroot}%{_datadir}/pixmaps/doxywizard.png
|
||||
# convert icons
|
||||
convert addon/doxywizard/doxywizard.ico doxywizard.png
|
||||
|
||||
# install icons
|
||||
icondir=%{buildroot}%{_datadir}/icons/hicolor
|
||||
mkdir -m755 -p $icondir/{16x16,32x32,48x48,128x128}/apps
|
||||
install -m644 -p -D doxywizard-6.png $icondir/16x16/apps/doxywizard.png
|
||||
install -m644 -p -D doxywizard-5.png $icondir/32x32/apps/doxywizard.png
|
||||
install -m644 -p -D doxywizard-4.png $icondir/48x48/apps/doxywizard.png
|
||||
install -m644 -p -D doxywizard-3.png $icondir/128x128/apps/doxywizard.png
|
||||
|
||||
# install man pages
|
||||
mkdir -p %{buildroot}/%{_mandir}/man1
|
||||
@ -155,11 +163,11 @@ rm -f %{buildroot}/%{_mandir}/man1/doxyindexer.1* %{buildroot}/%{_mandir}/man1/d
|
||||
rm -rf %{buildroot}/%{_docdir}/packages
|
||||
|
||||
%if ! 0%{?_module_build}
|
||||
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE2}
|
||||
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE1}
|
||||
%endif
|
||||
|
||||
%check
|
||||
make tests -C %{_target_platform}
|
||||
make tests -C %{BuildDir}
|
||||
|
||||
%files
|
||||
%doc LANGUAGE.HOWTO README.md
|
||||
@ -182,7 +190,7 @@ make tests -C %{_target_platform}
|
||||
%{_mandir}/man1/doxywizard*
|
||||
%{_datadir}/applications/doxywizard.desktop
|
||||
%endif
|
||||
%{_datadir}/pixmaps/doxywizard.png
|
||||
%{_datadir}/icons/hicolor/*/apps/doxywizard.png
|
||||
|
||||
%if ! 0%{?_module_build}
|
||||
%files latex
|
||||
@ -190,6 +198,9 @@ make tests -C %{_target_platform}
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Tue Jan 14 2020 Than Ngo <than@redhat.com> - 1:1.8.17-1
|
||||
- resolves #1786799, update to 1.8.17
|
||||
|
||||
* Tue Dec 10 2019 Than Ngo <than@redhat.com> - 1:1.8.16-3
|
||||
- fixed covscan issues
|
||||
|
||||
|
3
sources
3
sources
@ -1,2 +1 @@
|
||||
SHA512 (doxywizard.png) = 42a7e5903bf27463d3b072cf043aef071b519b53054bbe647c522d5e499e02f554867ab5e9971b06493769cc17b9d1588462aeade284de1f9d579cf9f99e8851
|
||||
SHA512 (doxygen-1.8.16.src.tar.gz) = 46a0189aa82d5a687bdd99a904f0c061fccca407d15867d14c8c4d13e8b21a8989e7ccd6af30840803b589ed20dd86084a4db880fba0d3bfa1fdcdd8d23e12de
|
||||
SHA512 (doxygen-1.8.17.src.tar.gz) = 98869f60eb1eeb48a7d75993de7e19151665797441364532f86382dc19a9db6b71049cf697592cb321391991120868f4e25b4c3e80f2a0f2b3c70b71d90be7b6
|
||||
|
Loading…
Reference in New Issue
Block a user