pipelight: Add patch for wine 6.13 compatibility

Wine 6.13 introduces a function argument named 'new' to a header file.
This confuses the C++ compiler.
This commit is contained in:
Stefan Frijters 2021-07-26 12:44:38 +02:00
parent 5732bf5886
commit cf9c9cae38
No known key found for this signature in database
GPG key ID: 7619A6BC6E7DFA6F
2 changed files with 46 additions and 1 deletions

View file

@ -21,7 +21,10 @@ in stdenv.mkDerivation rec {
NIX_CFLAGS_COMPILE = [ "-fpermissive" ];
patches = [ ./pipelight.patch ];
patches = [
./pipelight.patch
./wine-6.13-new-args.patch
];
configurePhase = ''
patchShebangs .

View file

@ -0,0 +1,42 @@
diff --git a/src/windows/pluginloader/apihook.c b/src/windows/pluginloader/apihook.c
index 80bf726..6b80f70 100644
--- a/src/windows/pluginloader/apihook.c
+++ b/src/windows/pluginloader/apihook.c
@@ -42,7 +42,9 @@
#include "common/common.h"
#include "pluginloader.h"
+#define new cnew
#include <windows.h> // for PVOID and other types
+#undef new
#include <string.h> // for memset
void* patchDLLExport(PVOID ModuleBase, const char* functionName, void* newFunctionPtr){
diff --git a/src/windows/pluginloader/npnfunctions.c b/src/windows/pluginloader/npnfunctions.c
index e4e38aa..19f29d5 100644
--- a/src/windows/pluginloader/npnfunctions.c
+++ b/src/windows/pluginloader/npnfunctions.c
@@ -41,7 +41,9 @@
#include "common/common.h"
#include "pluginloader.h"
+#define new cnew
#include <windows.h>
+#undef new
/* Shockwave sometimes calls the function with a wrong instance? Is this a wine bug? */
NPP shockwaveInstanceBug = NULL;
diff --git a/src/windows/pluginloader/pluginloader.c b/src/windows/pluginloader/pluginloader.c
index 8f1170a..99dbceb 100644
--- a/src/windows/pluginloader/pluginloader.c
+++ b/src/windows/pluginloader/pluginloader.c
@@ -50,7 +50,9 @@
#include "pluginloader.h"
#include "apihook.h"
+#define new cnew
#include <windows.h>
+#undef new
#include <objbase.h> // for CoInitializeEx
#include <GL/gl.h>