From eb32acbf41fa5dd33233d77c93e2f4c9c40305ce Mon Sep 17 00:00:00 2001 From: Tibor Nagy <xnagytibor@gmail.com> Date: Mon, 4 Mar 2019 21:23:35 +0100 Subject: [PATCH] openttd: Fix assertion failures due to the mishandling of schemes in the file browser, open links with NetSurf --- recipes/openttd/01_redox.patch | 80 ++++++++++++++++++++++++++-------- 1 file changed, 61 insertions(+), 19 deletions(-) diff --git a/recipes/openttd/01_redox.patch b/recipes/openttd/01_redox.patch index 944d7ba95..11387c56e 100644 --- a/recipes/openttd/01_redox.patch +++ b/recipes/openttd/01_redox.patch @@ -1,7 +1,7 @@ -diff -ruwN source/config.lib source-new/config.lib ---- source/config.lib 2018-12-29 07:28:58.975290421 -0700 -+++ source-new/config.lib 2019-01-06 17:30:43.830146522 -0700 -@@ -1486,7 +1486,7 @@ +diff -rupNw source/config.lib source-new/config.lib +--- source/config.lib 2019-03-04 21:01:49.523053923 +0100 ++++ source-new/config.lib 2019-03-04 21:00:15.870317336 +0100 +@@ -1486,7 +1486,7 @@ make_cflags_and_ldflags() { # Special CXXFlags for HOST CXXFLAGS="$CXXFLAGS" # Libs to compile. In fact this is just LDFLAGS @@ -10,10 +10,10 @@ diff -ruwN source/config.lib source-new/config.lib # LDFLAGS used for HOST LDFLAGS="$LDFLAGS" # FEATURES for HOST (lto) -diff -ruwN source/src/music/extmidi.cpp source-new/src/music/extmidi.cpp ---- source/src/music/extmidi.cpp 2018-12-29 07:28:59.143295501 -0700 -+++ source-new/src/music/extmidi.cpp 2018-12-29 10:14:06.637357598 -0700 -@@ -115,7 +115,11 @@ +diff -rupNw source/src/music/extmidi.cpp source-new/src/music/extmidi.cpp +--- source/src/music/extmidi.cpp 2019-03-04 21:01:49.899056924 +0100 ++++ source-new/src/music/extmidi.cpp 2019-03-04 21:00:15.886317459 +0100 +@@ -115,7 +115,11 @@ void MusicDriver_ExtMidi::DoPlay() switch (this->pid) { case 0: { close(0); @@ -25,10 +25,52 @@ diff -ruwN source/src/music/extmidi.cpp source-new/src/music/extmidi.cpp if (d != -1 && dup2(d, 1) != -1 && dup2(d, 2) != -1) { execvp(this->params[0], this->params); } -diff -ruwN source/src/rev.cpp.in source-new/src/rev.cpp.in ---- source/src/rev.cpp.in 2018-12-29 07:28:59.167296226 -0700 -+++ source-new/src/rev.cpp.in 2018-12-29 10:11:42.314241804 -0700 -@@ -57,7 +57,7 @@ +diff -rupNw source/src/os/unix/unix.cpp source-new/src/os/unix/unix.cpp +--- source/src/os/unix/unix.cpp 2019-03-04 21:01:49.915057051 +0100 ++++ source-new/src/os/unix/unix.cpp 2019-03-04 20:20:35.800062835 +0100 +@@ -69,12 +69,12 @@ ULONG __stack = (1024*1024)*2; // maybe + + bool FiosIsRoot(const char *path) + { +-#if !defined(__MORPHOS__) && !defined(__AMIGAOS__) ++#if !defined(__redox__) + return path[1] == '\0'; + #else +- /* On MorphOS or AmigaOS paths look like: "Volume:directory/subdirectory" */ ++ /* On Redox paths look like: "scheme:/directory/subdirectory" */ + const char *s = strchr(path, ':'); +- return s != NULL && s[1] == '\0'; ++ return (s != NULL) && (strlen(s) == 2) && (s[1] == '/') && (s[2] == '\0'); + #endif + } + +@@ -106,10 +106,10 @@ bool FiosIsValidFile(const char *path, c + { + char filename[MAX_PATH]; + int res; +-#if defined(__MORPHOS__) || defined(__AMIGAOS__) +- /* On MorphOS or AmigaOS paths look like: "Volume:directory/subdirectory" */ ++#if defined(__redox__) ++ /* On Redox paths look like: "scheme:/directory/subdirectory" */ + if (FiosIsRoot(path)) { +- res = seprintf(filename, lastof(filename), "%s:%s", path, ent->d_name); ++ res = seprintf(filename, lastof(filename), "%s%s", path, ent->d_name); + } else // XXX - only next line! + #else + assert(path[strlen(path) - 1] == PATHSEPCHAR); +@@ -370,7 +370,7 @@ void OSOpenBrowser(const char *url) + if (child_pid != 0) return; + + const char *args[3]; +- args[0] = "xdg-open"; ++ args[0] = "netsurf-fb"; + args[1] = url; + args[2] = NULL; + execvp(args[0], const_cast<char * const *>(args)); +diff -rupNw source/src/rev.cpp.in source-new/src/rev.cpp.in +--- source/src/rev.cpp.in 2019-03-04 21:01:49.923057115 +0100 ++++ source-new/src/rev.cpp.in 2019-03-04 21:00:15.922317739 +0100 +@@ -57,7 +57,7 @@ const char _openttd_build_date[] = __DAT * (compiling from sources without any version control software) * and 2 is for modified revision. */ @@ -37,9 +79,9 @@ diff -ruwN source/src/rev.cpp.in source-new/src/rev.cpp.in /** * The NewGRF revision of OTTD: -diff -ruwN source/src/stdafx.h source-new/src/stdafx.h ---- source/src/stdafx.h 2018-12-29 07:28:59.203297314 -0700 -+++ source-new/src/stdafx.h 2018-12-29 10:11:42.314241804 -0700 +diff -rupNw source/src/stdafx.h source-new/src/stdafx.h +--- source/src/stdafx.h 2019-03-04 21:01:49.955057370 +0100 ++++ source-new/src/stdafx.h 2019-03-04 21:00:15.930317800 +0100 @@ -12,6 +12,9 @@ #ifndef STDAFX_H #define STDAFX_H @@ -50,10 +92,10 @@ diff -ruwN source/src/stdafx.h source-new/src/stdafx.h #if defined(__APPLE__) #include "os/macosx/osx_stdafx.h" #endif /* __APPLE__ */ -diff -ruwN source/src/string.cpp source-new/src/string.cpp ---- source/src/string.cpp 2018-12-29 07:28:59.207297436 -0700 -+++ source-new/src/string.cpp 2018-12-29 10:11:42.314241804 -0700 -@@ -528,7 +528,7 @@ +diff -rupNw source/src/string.cpp source-new/src/string.cpp +--- source/src/string.cpp 2019-03-04 21:01:49.955057370 +0100 ++++ source-new/src/string.cpp 2019-03-04 21:00:15.938317862 +0100 +@@ -528,7 +528,7 @@ size_t Utf8TrimString(char *s, size_t ma return length; } -- GitLab