!37 [sync] PR-35: Fix some issues

From: @openeuler-sync-bot
Reviewed-by: @small_leek
Signed-off-by: @small_leek
This commit is contained in:
openeuler-ci-bot 2021-06-04 15:50:15 +08:00 committed by Gitee
commit 8aa215f9f2
7 changed files with 681 additions and 1 deletions

View File

@ -0,0 +1,82 @@
From 320878afdf87d87745d9e36731ae70b8bc23063d Mon Sep 17 00:00:00 2001
From: albert-github <albert.tests@gmail.com>
Date: Wed, 10 Jun 2020 12:32:24 +0200
Subject: [PATCH] Incorrect label in map of dot files in xhtml
https://github.com/doxygen/doxygen/pull/7840/commits/320878afdf87d87745d9e36731ae70b8bc23063d
When a filename of a file starts with a digit the mapping of the resulting dot files results in message like:
```
Syntax of value for attribute id of map is not valid
```
an id cannot start with a digit, so an "a" is placed in front of it (unconditionally to overcome problems with a double label id i.e filename 087.cpp and a087.cpp).
---
src/dotfilepatcher.cpp | 2 +-
src/dotgraph.cpp | 2 +-
src/util.cpp | 10 ++++++++++
src/util.h | 1 +
4 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/dotfilepatcher.cpp b/src/dotfilepatcher.cpp
index e386af9..338be69 100644
--- a/src/dotfilepatcher.cpp
+++ b/src/dotfilepatcher.cpp
@@ -459,7 +459,7 @@ bool DotFilePatcher::run() const
convertMapFile(tt,map->mapFile,map->relPath,map->urlOnly,map->context);
if (!result.isEmpty())
{
- t << "<map name=\"" << map->label << "\" id=\"" << map->label << "\">" << endl;
+ t << "<map name=\"" << map->label << "\" id=\"" << correctId(map->label) << "\">" << endl;
t << result;
t << "</map>" << endl;
}
diff --git a/src/dotgraph.cpp b/src/dotgraph.cpp
index e622dd4..55ea5ab 100644
--- a/src/dotgraph.cpp
+++ b/src/dotgraph.cpp
@@ -246,7 +246,7 @@ void DotGraph::generateCode(FTextStream &t)
else // add link to bitmap file with image map
{
if (!m_noDivTag) t << "<div class=\"center\">";
- t << "<img src=\"" << relImgName() << "\" border=\"0\" usemap=\"#" << getMapLabel() << "\" alt=\"" << getImgAltText() << "\"/>";
+ t << "<img src=\"" << relImgName() << "\" border=\"0\" usemap=\"#" << correctId(getMapLabel()) << "\" alt=\"" << getImgAltText() << "\"/>";
if (!m_noDivTag) t << "</div>";
t << endl;
if (m_regenerate || !insertMapFile(t, absMapName(), m_relPath, getMapLabel()))
diff --git a/src/util.cpp b/src/util.cpp
index 6d6112e..e8cf778 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -5382,6 +5382,16 @@ QCString convertToId(const char *s)
return growBuf.get();
}
+/*! Some strings have been corrected but the requirement regarding the fact
+ * that an id cannot have a digit at the first position. To overcome problems
+ * with double labels we always place an "a" in front
+ */
+QCString correctId(QCString s)
+{
+ if (s.isEmpty()) return s;
+ return "a" + s;
+}
+
/*! Converts a string to an XML-encoded string */
QCString convertToXML(const char *s, bool keepEntities)
{
diff --git a/src/util.h b/src/util.h
index 98223b1..54421b2 100644
--- a/src/util.h
+++ b/src/util.h
@@ -278,6 +278,7 @@ QCString insertTemplateSpecifierInScope(const QCString &scope,const QCString &te
QCString stripScope(const char *name);
QCString convertToId(const char *s);
+QCString correctId(QCString s);
QCString convertToHtml(const char *s,bool keepEntities=TRUE);
--
2.23.0

View File

@ -0,0 +1,30 @@
From 939eca311ced62d9cb41d8e3c1acc207c99e09ed Mon Sep 17 00:00:00 2001
From: albert-github <albert.tests@gmail.com>
Date: Thu, 15 Oct 2020 13:06:23 +0200
Subject: [PATCH] Incorrect label / name in case regeneration of HTML without
regeneration of dot files
https://github.com/doxygen/doxygen/commit/de56d1864473485861bac89436337e8114fb2f6b
This is a further regression on #7840.
In case we regenerate the HTML files but not the image files based on dot we get incorrect labels for the id / name in the HTML output.
---
src/dotgraph.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/dotgraph.cpp b/src/dotgraph.cpp
index 55ea5ab..e1844b5 100644
--- a/src/dotgraph.cpp
+++ b/src/dotgraph.cpp
@@ -249,7 +249,7 @@ void DotGraph::generateCode(FTextStream &t)
t << "<img src=\"" << relImgName() << "\" border=\"0\" usemap=\"#" << correctId(getMapLabel()) << "\" alt=\"" << getImgAltText() << "\"/>";
if (!m_noDivTag) t << "</div>";
t << endl;
- if (m_regenerate || !insertMapFile(t, absMapName(), m_relPath, getMapLabel()))
+ if (m_regenerate || !insertMapFile(t, absMapName(), m_relPath, correctId(getMapLabel())))
{
int mapId = DotManager::instance()->
createFilePatcher(m_fileName)->
--
2.23.0

View File

@ -0,0 +1,34 @@
From dc67dbe5bd5a48756c591ad02b9f68fbd2a57687 Mon Sep 17 00:00:00 2001
From: Dimitri van Heesch <doxygen@gmail.com>
Date: Sun, 19 Jan 2020 20:31:52 +0100
Subject: [PATCH] issue #7474: [1.8.16 regression] HTML output varies from ASLR
---
src/memberlist.cpp | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/memberlist.cpp b/src/memberlist.cpp
index 278023b..edd164b 100644
--- a/src/memberlist.cpp
+++ b/src/memberlist.cpp
@@ -75,8 +75,15 @@ int MemberList::compareValues(const MemberDef *c1, const MemberDef *c2) const
return 1;
}
int cmp = qstricmp(c1->name(),c2->name());
- if (cmp==0) cmp = qstricmp(c1->argsString(),c2->argsString());
- return cmp!=0 ? cmp : c1->getDefLine()-c2->getDefLine();
+ if (cmp==0 && c1->argsString() && c2->argsString())
+ {
+ cmp = qstricmp(c1->argsString(),c2->argsString());
+ }
+ if (cmp==0)
+ {
+ cmp = c1->getDefLine()-c2->getDefLine();
+ }
+ return cmp;
}
int MemberList::countInheritableMembers(const ClassDef *inheritedFrom) const
--
1.8.3.1

View File

@ -0,0 +1,78 @@
From 8a7647bd12f383730c886b34c431ae976ec5ff83 Mon Sep 17 00:00:00 2001
From: albert-github <albert.tests@gmail.com>
Date: Mon, 24 Feb 2020 14:46:26 +0100
Subject: [PATCH] issue #7583 External Links in Inheritance Diagrams open in
the Image Frame.
When having a function it opens in the current frame and uses the complete frame. Images (e.g. inherited diagrams) are displayed in a small "sub frame" and when displaying the link here it is not readable and furthermore the user doesn't know anything about the "sub frame". In case of an image the link should be displayed in the parent frame of the image.
---
src/diagram.cpp | 2 +-
src/dotfilepatcher.cpp | 2 +-
src/util.cpp | 9 +++++++--
src/util.h | 2 +-
4 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/diagram.cpp b/src/diagram.cpp
index 18817e9..25b2c06 100644
--- a/src/diagram.cpp
+++ b/src/diagram.cpp
@@ -261,7 +261,7 @@ static void writeMapArea(FTextStream &t,const ClassDef *cd,QCString relPath,
t << "<area ";
if (!ref.isEmpty())
{
- t << externalLinkTarget();
+ t << externalLinkTarget(true);
}
t << "href=\"";
t << externalRef(relPath,ref,TRUE);
diff --git a/src/dotfilepatcher.cpp b/src/dotfilepatcher.cpp
index efc6341..7a65d89 100644
--- a/src/dotfilepatcher.cpp
+++ b/src/dotfilepatcher.cpp
@@ -173,7 +173,7 @@ static QCString replaceRef(const QCString &buf,const QCString relPath,
QCString url = link.mid(marker+1);
if (!ref.isEmpty())
{
- result = externalLinkTarget();
+ result = externalLinkTarget(true);
if (result != "") setTarget = TRUE;
}
result+= href+"=\"";
diff --git a/src/util.cpp b/src/util.cpp
index 25ca13e..92f593c 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -8163,10 +8163,15 @@ void writeSummaryLink(OutputList &ol,const char *label,const char *title,
}
#endif
-QCString externalLinkTarget()
+QCString externalLinkTarget(const bool parent)
{
static bool extLinksInWindow = Config_getBool(EXT_LINKS_IN_WINDOW);
- if (extLinksInWindow) return "target=\"_blank\" "; else return "";
+ if (extLinksInWindow)
+ return "target=\"_blank\" ";
+ else if (parent)
+ return "target=\"_parent\" ";
+ else
+ return "";
}
QCString externalRef(const QCString &relPath,const QCString &ref,bool href)
diff --git a/src/util.h b/src/util.h
index b9628e9..19827b5 100644
--- a/src/util.h
+++ b/src/util.h
@@ -437,7 +437,7 @@ QCString filterTitle(const QCString &title);
bool patternMatch(const QFileInfo &fi,const QStrList *patList);
-QCString externalLinkTarget();
+QCString externalLinkTarget(const bool parent = false);
QCString externalRef(const QCString &relPath,const QCString &ref,bool href);
int nextUtf8CharPosition(const QCString &utf8Str,int len,int startPos);
const char *writeUtf8Char(FTextStream &t,const char *s);
--
1.8.3.1

View File

@ -0,0 +1,181 @@
From cd581388f3d013c501e3cefbaf3e81cf93d46fcb Mon Sep 17 00:00:00 2001
From: Dimitri van Heesch <doxygen@gmail.com>
Date: Sun, 19 Apr 2020 14:21:18 +0200
Subject: [PATCH] issue #7706: Md5 hash does not match for two different runs
(part 2)
---
src/dotfilepatcher.cpp | 41 +++++++++++++++++++++--------------------
src/dotgraph.cpp | 12 +-----------
2 files changed, 22 insertions(+), 31 deletions(-)
diff --git a/src/dotfilepatcher.cpp b/src/dotfilepatcher.cpp
index e386af9..20ce4c1 100644
--- a/src/dotfilepatcher.cpp
+++ b/src/dotfilepatcher.cpp
@@ -132,7 +132,7 @@ static QCString replaceRef(const QCString &buf,const QCString relPath,
//bool isXLink=FALSE;
int len = 6;
int indexS = buf.find("href=\""), indexE;
- bool setTarget = FALSE;
+ bool targetAlreadySet = buf.find("target=")!=-1;
if (indexS>5 && buf.find("xlink:href=\"")!=-1) // XLink href (for SVG)
{
indexS-=6;
@@ -152,9 +152,9 @@ static QCString replaceRef(const QCString &buf,const QCString relPath,
// fake ref node to resolve the url
DocRef *df = new DocRef( (DocNode*) 0, link.mid(5), context );
result+=externalRef(relPath,df->ref(),TRUE);
- if (!df->file().isEmpty())
+ if (!df->file().isEmpty())
result += df->file().data() + Doxygen::htmlFileExtension;
- if (!df->anchor().isEmpty())
+ if (!df->anchor().isEmpty())
result += "#" + df->anchor();
delete df;
result += "\"";
@@ -174,7 +174,6 @@ static QCString replaceRef(const QCString &buf,const QCString relPath,
if (!ref.isEmpty())
{
result = externalLinkTarget(true);
- if (result != "") setTarget = TRUE;
}
result+= href+"=\"";
result+=externalRef(relPath,ref,TRUE);
@@ -185,12 +184,14 @@ static QCString replaceRef(const QCString &buf,const QCString relPath,
result = href+"=\"" + link + "\"";
}
}
- if (!target.isEmpty() && !setTarget)
+ if (!target.isEmpty() && !targetAlreadySet)
{
result+=" target=\""+target+"\"";
}
QCString leftPart = buf.left(indexS);
QCString rightPart = buf.mid(indexE+1);
+ //printf("replaceRef(\n'%s'\n)->\n'%s+%s+%s'\n",
+ // buf.data(),leftPart.data(),result.data(),rightPart.data());
return leftPart + result + rightPart;
}
else
@@ -215,7 +216,7 @@ bool DotFilePatcher::convertMapFile(FTextStream &t,const char *mapName,
const QCString &context)
{
QFile f(mapName);
- if (!f.open(IO_ReadOnly))
+ if (!f.open(IO_ReadOnly))
{
err("problems opening map file %s for inclusion in the docs!\n"
"If you installed Graphviz/dot after a previous failing run, \n"
@@ -250,7 +251,7 @@ bool DotFilePatcher::convertMapFile(FTextStream &t,const char *mapName,
return TRUE;
}
-DotFilePatcher::DotFilePatcher(const char *patchFile)
+DotFilePatcher::DotFilePatcher(const char *patchFile)
: m_patchFile(patchFile)
{
m_maps.setAutoDelete(TRUE);
@@ -346,7 +347,7 @@ bool DotFilePatcher::run() const
}
QFile fi(tmpName);
QFile fo(patchFile);
- if (!fi.open(IO_ReadOnly))
+ if (!fi.open(IO_ReadOnly))
{
err("problem opening file %s for patching!\n",tmpName.data());
QDir::current().rename(tmpName,patchFile);
@@ -380,7 +381,7 @@ bool DotFilePatcher::run() const
ASSERT(numBytes<maxLineLen);
if (isSVGFile)
{
- if (interactiveSVG_local)
+ if (interactiveSVG_local)
{
if (line.find("<svg")!=-1 && !replacedHeader)
{
@@ -412,7 +413,7 @@ bool DotFilePatcher::run() const
replacedHeader=TRUE;
}
}
- if (!insideHeader || !foundSize) // copy SVG and replace refs,
+ if (!insideHeader || !foundSize) // copy SVG and replace refs,
// unless we are inside the header of the SVG.
// Then we replace it with another header.
{
@@ -602,18 +603,18 @@ bool DotFilePatcher::writeSVGFigureLink(FTextStream &out,const QCString &relPath
if (height<=60) height=300; else height+=300; // add some extra space for zooming
if (height>600) height=600; // clip to maximum height of 600 pixels
out << "<div class=\"zoom\">";
- //out << "<object type=\"image/svg+xml\" data=\""
- //out << "<embed type=\"image/svg+xml\" src=\""
- out << "<iframe scrolling=\"no\" frameborder=\"0\" src=\""
+ //out << "<object type=\"image/svg+xml\" data=\""
+ //out << "<embed type=\"image/svg+xml\" src=\""
+ out << "<iframe scrolling=\"no\" frameborder=\"0\" src=\""
<< relPath << baseName << ".svg\" width=\"100%\" height=\"" << height << "\">";
}
else
{
- //out << "<object type=\"image/svg+xml\" data=\""
- //out << "<embed type=\"image/svg+xml\" src=\""
- out << "<iframe scrolling=\"no\" frameborder=\"0\" src=\""
- << relPath << baseName << ".svg\" width=\""
- << ((width*96+48)/72) << "\" height=\""
+ //out << "<object type=\"image/svg+xml\" data=\""
+ //out << "<embed type=\"image/svg+xml\" src=\""
+ out << "<iframe scrolling=\"no\" frameborder=\"0\" src=\""
+ << relPath << baseName << ".svg\" width=\""
+ << ((width*96+48)/72) << "\" height=\""
<< ((height*96+48)/72) << "\">";
}
writeSVGNotSupported(out);
@@ -650,7 +651,7 @@ bool DotFilePatcher::writeVecGfxFigure(FTextStream &out,const QCString &baseName
}
//printf("Got PDF/EPS size %d,%d\n",width,height);
int maxWidth = 350; /* approx. page width in points, excl. margins */
- int maxHeight = 550; /* approx. page height in points, excl. margins */
+ int maxHeight = 550; /* approx. page height in points, excl. margins */
out << "\\nopagebreak\n"
"\\begin{figure}[H]\n"
"\\begin{center}\n"
diff --git a/src/dotgraph.cpp b/src/dotgraph.cpp
index e622dd4..c0cc4fd 100644
--- a/src/dotgraph.cpp
+++ b/src/dotgraph.cpp
@@ -74,15 +74,6 @@ static bool checkDeliverables(const QCString &file1,
return file1Ok && file2Ok;
}
-static void removeDotGraph(const QCString &dotName)
-{
- if (Config_getBool(DOT_CLEANUP))
- {
- QDir d;
- d.remove(dotName);
- }
-}
-
static bool insertMapFile(FTextStream &out,const QCString &mapFile,
const QCString &relPath,const QCString &mapLabel)
{
@@ -108,7 +99,7 @@ static bool insertMapFile(FTextStream &out,const QCString &mapFile,
QCString DotGraph::imgName() const
{
return m_baseName + ((m_graphFormat == GOF_BITMAP) ?
- ("." + getDotImageExtension()) : (Config_getBool(USE_PDFLATEX) ? ".pdf" : ".eps"));
+ ("." + getDotImageExtension()) : (Config_getBool(USE_PDFLATEX) ? ".pdf" : ".eps"));
}
QCString DotGraph::writeGraph(
@@ -166,7 +157,6 @@ bool DotGraph::prepareDotFile()
)
{
// all needed files are there
- removeDotGraph(absDotName());
return FALSE;
}
--
1.8.3.1

View File

@ -0,0 +1,265 @@
From f3ebc866c88b31ab393637e30189d41ddb7f84f0 Mon Sep 17 00:00:00 2001
From: Dimitri van Heesch <doxygen@gmail.com>
Date: Fri, 17 Apr 2020 21:39:13 +0200
Subject: [PATCH] issue #7706: Md5 hash does not match for two different runs
---
src/memberlist.cpp | 79 +++++++++++++++++++++++++++++-------------------------
1 file changed, 42 insertions(+), 37 deletions(-)
diff --git a/src/memberlist.cpp b/src/memberlist.cpp
index 8a76a1d..b5377a4 100644
--- a/src/memberlist.cpp
+++ b/src/memberlist.cpp
@@ -1,12 +1,12 @@
/******************************************************************************
*
- *
+ *
*
* Copyright (C) 1997-2015 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby
- * granted. No representations are made about the suitability of this software
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
@@ -63,10 +63,11 @@ MemberList::~MemberList()
delete memberGroupList;
}
-int MemberList::compareValues(const MemberDef *c1, const MemberDef *c2) const
+static int genericCompareMembers(const MemberDef *c1,const MemberDef *c2)
{
- static bool sortConstructorsFirst = Config_getBool(SORT_MEMBERS_CTORS_1ST);
- if (sortConstructorsFirst) {
+ bool sortConstructorsFirst = Config_getBool(SORT_MEMBERS_CTORS_1ST);
+ if (sortConstructorsFirst)
+ {
int ord1 = c1->isConstructor() ? 2 : (c1->isDestructor() ? 1 : 0);
int ord2 = c2->isConstructor() ? 2 : (c2->isDestructor() ? 1 : 0);
if (ord1 > ord2)
@@ -74,11 +75,19 @@ int MemberList::compareValues(const MemberDef *c1, const MemberDef *c2) const
else if (ord2 > ord1)
return 1;
}
+ // sort on name
int cmp = qstricmp(c1->name(),c2->name());
+ // then on argument list
if (cmp==0 && c1->argsString() && c2->argsString())
{
cmp = qstricmp(c1->argsString(),c2->argsString());
}
+ // then on file in which the item is defined
+ if (cmp==0)
+ {
+ cmp = qstricmp(c1->getDefFileName(),c2->getDefFileName());
+ }
+ // then on line number at which the member is defined
if (cmp==0)
{
cmp = c1->getDefLine()-c2->getDefLine();
@@ -86,6 +95,11 @@ int MemberList::compareValues(const MemberDef *c1, const MemberDef *c2) const
return cmp;
}
+int MemberList::compareValues(const MemberDef *c1, const MemberDef *c2) const
+{
+ return genericCompareMembers(c1,c2);
+}
+
int MemberList::countInheritableMembers(const ClassDef *inheritedFrom) const
{
int count=0;
@@ -295,7 +309,7 @@ MemberDef *MemberList::take(uint index)
}
MemberListIterator::MemberListIterator(const MemberList &l) :
- QListIterator<MemberDef>(l)
+ QListIterator<MemberDef>(l)
{
}
@@ -385,9 +399,9 @@ bool MemberList::declVisible() const
case MemberType_Service: // fall through
case MemberType_Sequence: // fall through
case MemberType_Dictionary: // fall through
- case MemberType_Event:
+ case MemberType_Event:
return TRUE;
- case MemberType_Enumeration:
+ case MemberType_Enumeration:
{
// if this is an anonymous enum and there are variables of this
// enum type (i.e. enumVars>0), then we do not show the enum here.
@@ -399,7 +413,7 @@ bool MemberList::declVisible() const
break;
case MemberType_Friend:
return TRUE;
- case MemberType_EnumValue:
+ case MemberType_EnumValue:
{
if (m_inGroup)
{
@@ -431,7 +445,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,
}
//printf(" --> writePlainDeclaration() numDecMembers()=%d\n",
// numDecMembers());
-
+
ol.pushGeneratorState();
bool first=TRUE;
@@ -460,13 +474,13 @@ void MemberList::writePlainDeclarations(OutputList &ol,
case MemberType_Service: // fall through
case MemberType_Sequence: // fall through
case MemberType_Dictionary: // fall through
- case MemberType_Event:
+ case MemberType_Event:
{
if (first) ol.startMemberList(),first=FALSE;
md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup,inheritedFrom,inheritId);
break;
}
- case MemberType_Enumeration:
+ case MemberType_Enumeration:
{
// if this is an anonymous enum and there are variables of this
// enum type (i.e. enumVars>0), then we do not show the enum here.
@@ -531,7 +545,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,
case MemberType_Friend:
if (inheritedFrom==0)
{
- if (first)
+ if (first)
{
ol.startMemberList();
first=FALSE;
@@ -539,7 +553,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,
md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup,inheritedFrom,inheritId);
break;
}
- case MemberType_EnumValue:
+ case MemberType_EnumValue:
{
if (m_inGroup)
{
@@ -565,7 +579,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,
//printf("anonymous compound members\n");
if (md->isBriefSectionVisible())
{
- if (first)
+ if (first)
{
ol.startMemberList();
first=FALSE;
@@ -576,10 +590,10 @@ void MemberList::writePlainDeclarations(OutputList &ol,
}
}
}
-
- if (!first)
+
+ if (!first)
{
- ol.endMemberList();
+ ol.endMemberList();
}
ol.popGeneratorState();
@@ -635,7 +649,7 @@ void MemberList::writeDeclarations(OutputList &ol,
if (title)
{
ol.writeInheritedSectionTitle(inheritId,cd->getReference(),
- cd->getOutputFileBase(),
+ cd->getOutputFileBase(),
cd->anchor(),title,cd->displayName());
}
ol.popGeneratorState();
@@ -643,7 +657,7 @@ void MemberList::writeDeclarations(OutputList &ol,
}
else if (num>numEnumValues)
{
- if (title)
+ if (title)
{
if (showInline)
{
@@ -663,7 +677,7 @@ void MemberList::writeDeclarations(OutputList &ol,
ol.endMemberHeader();
}
}
- if (subtitle)
+ if (subtitle)
{
QCString st=subtitle;
st = st.stripWhiteSpace();
@@ -728,7 +742,7 @@ void MemberList::writeDeclarations(OutputList &ol,
}
}
}
- if (inheritedFrom && cd)
+ if (inheritedFrom && cd)
{
// also add members that of this list type, that are grouped together
// in a separate list in class 'inheritedFrom'
@@ -772,7 +786,7 @@ void MemberList::writeDocumentation(OutputList &ol,
overloadCountDict.setAutoDelete(TRUE);
for (mli.toFirst() ; (md=mli.current()) ; ++mli)
{
- if (md->isDetailedSectionVisible(m_inGroup,container->definitionType()==Definition::TypeFile) &&
+ if (md->isDetailedSectionVisible(m_inGroup,container->definitionType()==Definition::TypeFile) &&
!(md->isEnumValue() && !showInline))
{
uint *pCount = overloadTotalDict.find(md->name());
@@ -790,7 +804,7 @@ void MemberList::writeDocumentation(OutputList &ol,
for (mli.toFirst() ; (md=mli.current()) ; ++mli)
{
- if (md->isDetailedSectionVisible(m_inGroup,container->definitionType()==Definition::TypeFile) &&
+ if (md->isDetailedSectionVisible(m_inGroup,container->definitionType()==Definition::TypeFile) &&
!(md->isEnumValue() && !showInline))
{
uint overloadCount = *overloadTotalDict.find(md->name());
@@ -949,7 +963,7 @@ void MemberList::addListReferences(Definition *def)
MemberDef *vmd;
for ( ; (vmd=vmli.current()) ; ++vmli)
{
- //printf(" adding %s\n",vmd->name().data());
+ //printf(" adding %s\n",vmd->name().data());
vmd->addListReference(def);
}
}
@@ -990,7 +1004,7 @@ void MemberList::setNeedsSorting(bool b)
m_needsSorting = b;
}
-QCString MemberList::listTypeAsString(MemberListType type)
+QCString MemberList::listTypeAsString(MemberListType type)
{
switch(type)
{
@@ -1087,16 +1101,7 @@ void MemberList::writeTagFile(FTextStream &tagFile)
int MemberSDict::compareValues(const MemberDef *c1, const MemberDef *c2) const
{
- //printf("MemberSDict::compareValues(%s,%s)\n",c1->name().data(),c2->name().data());
- int cmp = qstricmp(c1->name(),c2->name());
- if (cmp)
- {
- return cmp;
- }
- else
- {
- return c1->getDefLine()-c2->getDefLine();
- }
+ return genericCompareMembers(c1,c2);
}
--
1.8.3.1

View File

@ -3,7 +3,7 @@
Name: doxygen
Epoch: 1
Version: 1.8.17
Release: 6
Release: 7
Summary: A documentation system for C/C++
License: GPL+
Url: http://www.doxygen.nl
@ -12,6 +12,12 @@ Source1: doxywizard.desktop
Patch1: test_suite_is_failing.patch
Patch2: RTFGenerator-should-exit-with-0-when-gengrate-file-s.patch
Patch3: backport-issue-7474-1.8.16-regression-HTML-output-varies-from-ASLR.patch
Patch4: backport-issue-7706-Md5-hash-does-not-match-for-two-different-runs.patch
Patch5: backport-issue-7583-External-Links-in-Inheritance-Diagrams-open-in-the-Image-Frame.patch
Patch6: backport-issue-7706-Md5-hash-does-not-match-for-two-different-runs-part2.patch
Patch7: backport-Incorrect-label-in-map-of-dot-files-in-xhtml.patch
Patch8: backport-Incorrect-label-name-in-case-regeneration-of-HTML-without_regeneration_of_dot_files.patch
BuildRequires: python3 ImageMagick gcc-c++ gcc perl-interpreter
BuildRequires: tex(dvips) tex(latex) tex(multirow.sty) tex(sectsty.sty) tex(tocloft.sty)
@ -98,6 +104,10 @@ make tests -C %{BuildDir}
%{_datadir}/icons/hicolor/*/apps/doxywizard.png
%changelog
* Fri Jun 4 2021 wangchen<wangchen137@huawei.com> - 1.8.17-7
- Fix Md5 hash does not match for two different runs.
Fix Incorrect label name in case regeneration of HTML without regeneration of dot files.
* Sat May 22 2021 zoulin<zoulin13@huawei.com> - 1.8.17-6
- Modify version number