From 85537d1a18a20e7a23d906325aa600606fb0afcb Mon Sep 17 00:00:00 2001 From: TURX Date: Thu, 23 Jan 2020 14:26:22 +0800 Subject: [PATCH] edgar: correct user settings directory (#4632) * edgar: correct user settings directory --- games-arcade/edgar/edgar-1.30.recipe | 6 +- .../edgar/patches/edgar-1.30.patchset | 63 +++++++++++++------ 2 files changed, 49 insertions(+), 20 deletions(-) diff --git a/games-arcade/edgar/edgar-1.30.recipe b/games-arcade/edgar/edgar-1.30.recipe index e497d6107..bc5c82a1e 100644 --- a/games-arcade/edgar/edgar-1.30.recipe +++ b/games-arcade/edgar/edgar-1.30.recipe @@ -8,7 +8,7 @@ but his quest will not be easy..." HOMEPAGE="https://www.parallelrealities.co.uk/games/edgar/" COPYRIGHT="2009-2018 Parallel Realities" LICENSE="GNU GPL v2" -REVISION="2" +REVISION="3" SOURCE_URI="https://github.com/riksweeney/edgar/releases/download/$portVersion/edgar-$portVersion-1.tar.gz" CHECKSUM_SHA256="5dc782f999b22ee5dc6c1cb767137205c840a40cfd1a483147cb82d7c6d00b2e" SOURCE_FILENAME="edgar-$portVersion.tar.gz" @@ -18,6 +18,10 @@ ADDITIONAL_FILES="edgar.rdef.in" ARCHITECTURES="x86_gcc2 x86 x86_64" +USER_SETTINGS_FILES=" + settings/parallelrealities/Edgar directory + " + PROVIDES=" edgar = $portVersion app:edgar = $portVersion diff --git a/games-arcade/edgar/patches/edgar-1.30.patchset b/games-arcade/edgar/patches/edgar-1.30.patchset index bad35432e..08c624593 100644 --- a/games-arcade/edgar/patches/edgar-1.30.patchset +++ b/games-arcade/edgar/patches/edgar-1.30.patchset @@ -1,40 +1,65 @@ -From 04f238abd162bc62a3d4bd846ef34d644c5e9f3b Mon Sep 17 00:00:00 2001 -From: begasus -Date: Fri, 4 Jan 2019 08:58:59 +0100 -Subject: correct load/save path +From 75a7140e56071a2214ede84ac404013661890b8e Mon Sep 17 00:00:00 2001 +From: TURX +Date: Tue, 21 Jan 2020 23:14:22 +0800 +Subject: [PATCH] fix Haiku support +--- + src/system/load_save.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) diff --git a/src/system/load_save.c b/src/system/load_save.c -index 2d55feb..b6b136d 100644 +index 2d55feba5..b2309a4c3 100644 --- a/src/system/load_save.c +++ b/src/system/load_save.c -@@ -73,7 +73,7 @@ extern Game game; +@@ -41,6 +41,10 @@ Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA. + #include "load_save.h" + #include "resources.h" + ++#ifdef __HAIKU__ ++#include ++#endif ++ + static char gameSavePath[MAX_PATH_LENGTH], tempFile[MAX_PATH_LENGTH], saveFileIndex[MAX_PATH_LENGTH], continueFile[MAX_PATH_LENGTH]; + static int temporaryDataExists; + +@@ -57,6 +61,7 @@ extern Game game; + { + char *userHome; + char dir[MAX_PATH_LENGTH]; ++ char path[MAX_PATH_LENGTH]; + struct passwd *pass; + + pass = getpwuid(geteuid()); +@@ -72,6 +77,9 @@ extern Game game; + #if MACOS == 1 snprintf(dir, sizeof(dir), "%s/Library/Application Support", userHome); ++ #elif defined(__HAIKU__) ++ find_directory(B_USER_SETTINGS_DIRECTORY, 0, true, path, sizeof(path)); ++ snprintf(dir, sizeof(dir), "%s/parallelrealities", path); #else -- snprintf(dir, sizeof(dir), "%s/.parallelrealities", userHome); -+ snprintf(dir, sizeof(dir), "%s/config/settings/parallelrealities", userHome); + snprintf(dir, sizeof(dir), "%s/.parallelrealities", userHome); #endif +@@ -85,6 +93,9 @@ extern Game game; - if ((mkdir(dir, S_IRWXU|S_IRWXG|S_IROTH|S_IXOTH) != 0) && (errno != EEXIST)) -@@ -86,7 +86,7 @@ extern Game game; #if MACOS == 1 snprintf(dir, sizeof(dir), "%s/Library/Application Support/Edgar", userHome); ++ #elif defined(__HAIKU__) ++ find_directory(B_USER_SETTINGS_DIRECTORY, 0, true, path, sizeof(path)); ++ snprintf(dir, sizeof(dir), "%s/parallelrealities/Edgar", path); #else -- snprintf(dir, sizeof(dir), "%s/.parallelrealities/edgar", userHome); -+ snprintf(dir, sizeof(dir), "%s/config/settings/parallelrealities/Edgar", userHome); + snprintf(dir, sizeof(dir), "%s/.parallelrealities/edgar", userHome); #endif +@@ -98,6 +109,9 @@ extern Game game; - if ((mkdir(dir, S_IRWXU|S_IRWXG|S_IROTH|S_IXOTH) != 0) && (errno != EEXIST)) -@@ -99,7 +99,7 @@ extern Game game; #if MACOS == 1 snprintf(gameSavePath, sizeof(gameSavePath), "%s/Library/Application Support/Edgar/", userHome); ++ #elif defined(__HAIKU__) ++ find_directory(B_USER_SETTINGS_DIRECTORY, 0, true, path, sizeof(path)); ++ snprintf(gameSavePath, sizeof(gameSavePath), "%s/parallelrealities/Edgar", path); #else -- snprintf(gameSavePath, sizeof(gameSavePath), "%s/.parallelrealities/edgar/", userHome); -+ snprintf(gameSavePath, sizeof(gameSavePath), "%s/config/settings/parallelrealities/Edgar/", userHome); + snprintf(gameSavePath, sizeof(gameSavePath), "%s/.parallelrealities/edgar/", userHome); #endif - - snprintf(tempFile, sizeof(tempFile), "%stmpsave", gameSavePath); -- -2.19.1 +2.20.1