edgar: correct user settings directory (#4632)

* edgar: correct user settings directory
This commit is contained in:
TURX
2020-01-23 14:26:22 +08:00
committed by Schrijvers Luc
parent b16beab563
commit 85537d1a18
2 changed files with 49 additions and 20 deletions

View File

@@ -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

View File

@@ -1,40 +1,65 @@
From 04f238abd162bc62a3d4bd846ef34d644c5e9f3b Mon Sep 17 00:00:00 2001
From: begasus <begasus@gmail.com>
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 <turx2003@gmail.com>
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 <FindDirectory.h>
+#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