Fix issue with enums being defined in multiple files
This is a regression in 1.8.20 that causes python-wxpython4 to FTBFS. More information about the issue is available here: https://github.com/doxygen/doxygen/issues/7979
This commit is contained in:
parent
5d96c55069
commit
2f055ba6e3
86
doxygen-1.8.20-enums-multiple-files.patch
Normal file
86
doxygen-1.8.20-enums-multiple-files.patch
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
From 9d9d08582ccea7ef90000acebfd09f8c8acc577a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dimitri van Heesch <doxygen@gmail.com>
|
||||||
|
Date: Fri, 28 Aug 2020 20:22:46 +0200
|
||||||
|
Subject: [PATCH] issue #7979: C++ enums being defined in multiple files after
|
||||||
|
b265433 (multi-thread input processing)
|
||||||
|
|
||||||
|
---
|
||||||
|
src/scanner.l | 16 ++++++++--------
|
||||||
|
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/scanner.l b/src/scanner.l
|
||||||
|
index 7c710fa4..70f15d65 100644
|
||||||
|
--- a/src/scanner.l
|
||||||
|
+++ b/src/scanner.l
|
||||||
|
@@ -60,6 +60,9 @@
|
||||||
|
|
||||||
|
#define USE_STATE2STRING 0
|
||||||
|
|
||||||
|
+static AtomicInt anonCount;
|
||||||
|
+static AtomicInt anonNSCount;
|
||||||
|
+
|
||||||
|
struct scannerYY_state
|
||||||
|
{
|
||||||
|
OutlineParserInterface *thisParser;
|
||||||
|
@@ -105,8 +108,6 @@ struct scannerYY_state
|
||||||
|
int yyBegLineNr = 1 ;
|
||||||
|
int yyColNr = 1 ;
|
||||||
|
int yyBegColNr = 1 ;
|
||||||
|
- int anonCount = 0 ;
|
||||||
|
- int anonNSCount = 0 ;
|
||||||
|
QCString yyFileName;
|
||||||
|
MethodTypes mtype = Method;
|
||||||
|
bool stat = false;
|
||||||
|
@@ -3784,7 +3785,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP})
|
||||||
|
BEGIN(MemberSpecSkip);
|
||||||
|
}
|
||||||
|
<TypedefName>";" { /* typedef of anonymous type */
|
||||||
|
- yyextra->current->name.sprintf("@%d",yyextra->anonCount++);
|
||||||
|
+ yyextra->current->name.sprintf("@%d",anonCount++);
|
||||||
|
if ((yyextra->current->section == Entry::ENUM_SEC) || (yyextra->current->spec&Entry::Enum))
|
||||||
|
{
|
||||||
|
yyextra->current->program+=','; // add field terminator
|
||||||
|
@@ -3859,7 +3860,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP})
|
||||||
|
{
|
||||||
|
// anonymous compound yyextra->inside -> insert dummy variable name
|
||||||
|
//printf("Adding anonymous variable for scope %s\n",p->name.data());
|
||||||
|
- yyextra->msName.sprintf("@%d",yyextra->anonCount++);
|
||||||
|
+ yyextra->msName.sprintf("@%d",anonCount++);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -5644,12 +5645,12 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP})
|
||||||
|
}
|
||||||
|
else // use invisible name
|
||||||
|
{
|
||||||
|
- yyextra->current->name.sprintf("@%d",yyextra->anonNSCount);
|
||||||
|
+ yyextra->current->name.sprintf("@%d",anonNSCount.load());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
- yyextra->current->name.sprintf("@%d",yyextra->anonCount++);
|
||||||
|
+ yyextra->current->name.sprintf("@%d",anonCount++);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
yyextra->curlyCount=0;
|
||||||
|
@@ -7247,7 +7248,6 @@ static void parseMain(yyscan_t yyscanner,
|
||||||
|
yyextra->column = 0;
|
||||||
|
scannerYYrestart(0,yyscanner);
|
||||||
|
|
||||||
|
- //yyextra->anonCount = 0; // don't reset per file
|
||||||
|
//depthIf = 0;
|
||||||
|
yyextra->protection = Public;
|
||||||
|
yyextra->mtype = Method;
|
||||||
|
@@ -7301,7 +7301,7 @@ static void parseMain(yyscan_t yyscanner,
|
||||||
|
|
||||||
|
parseCompounds(yyscanner,rt);
|
||||||
|
|
||||||
|
- yyextra->anonNSCount++;
|
||||||
|
+ anonNSCount++;
|
||||||
|
|
||||||
|
// add additional entries that were created during processing
|
||||||
|
for (auto &kv: yyextra->outerScopeEntries)
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
@ -16,7 +16,7 @@ Summary: A documentation system for C/C++
|
|||||||
Name: doxygen
|
Name: doxygen
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 1.8.20
|
Version: 1.8.20
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
|
|
||||||
# No version is specified.
|
# No version is specified.
|
||||||
License: GPL+
|
License: GPL+
|
||||||
@ -25,6 +25,7 @@ Source0: http://doxygen.nl/files/%{name}-%{version}.src.tar.gz
|
|||||||
# this icon is part of kdesdk
|
# this icon is part of kdesdk
|
||||||
Source1: doxywizard.desktop
|
Source1: doxywizard.desktop
|
||||||
# upstream patches
|
# upstream patches
|
||||||
|
Patch0: doxygen-1.8.20-enums-multiple-files.patch
|
||||||
|
|
||||||
BuildRequires: %{_bindir}/python3
|
BuildRequires: %{_bindir}/python3
|
||||||
BuildRequires: ImageMagick
|
BuildRequires: ImageMagick
|
||||||
@ -302,6 +303,9 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE1}
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Aug 28 2020 Scott Talbert <swt@techie.net> - 1:1.8.20-2
|
||||||
|
- Fix issue with enums being defined in multiple files
|
||||||
|
|
||||||
* Tue Aug 25 2020 Than Ngo <than@redhat.com> - 1.8.20-1
|
* Tue Aug 25 2020 Than Ngo <than@redhat.com> - 1.8.20-1
|
||||||
- update to 1.8.20
|
- update to 1.8.20
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user