You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/games-roguelike/mangband/files/mangband-1.1.3-paths.patch

119 lines
3.0 KiB

diff --git a/src/config.h.in b/src/config.h.in
index e8efdca..9a6290a 100644
--- a/config.h.in
+++ a/config.h.in
@@ -473,6 +473,9 @@
#ifndef DEFAULT_PATH
# define DEFAULT_PATH "./lib/"
#endif
+#ifndef DEFAULT_PATH_W
+# define DEFAULT_PATH_W DEFAULT_PATH
+#endif
/*
diff --git a/src/server/externs.h b/src/server/externs.h
index 249e41b..e1a5c4f 100644
--- a/server/externs.h
+++ a/server/externs.h
@@ -644,7 +644,7 @@ extern errr init_e_info_txt(FILE *fp, char *buf);
extern errr init_r_info_txt(FILE *fp, char *buf);
/* init.c */
-extern void init_file_paths(char *path);
+extern void init_file_paths(char *path, char *path2);
extern void init_some_arrays(void);
extern void load_server_cfg(void);
diff --git a/src/server/init2.c b/src/server/init2.c
index 00d8a01..27fd2b7 100644
--- a/server/init2.c
+++ a/server/init2.c
@@ -63,10 +63,11 @@
* to succeed even if the strings have not been allocated yet,
* as long as the variables start out as "NULL".
*/
-void init_file_paths(char *path)
+void init_file_paths(char *path, char *path2)
{
char *tail;
-
+ char *tail2;
+ char *tmp;
/*** Free everything ***/
@@ -103,6 +104,10 @@ void init_file_paths(char *path)
/* Prepare to append to the Base Path */
tail = path + strlen(path);
+ tmp = string_make(path2);
+
+ /* Prepare to append to the Base Path */
+ tail2 = path2 + strlen(path2);
#ifdef VM
@@ -123,8 +128,8 @@ void init_file_paths(char *path)
/*** Build the sub-directory names ***/
/* Build a path name */
- strcpy(tail, "data");
- ANGBAND_DIR_DATA = string_make(path);
+ strcpy(tail2, "data");
+ ANGBAND_DIR_DATA = string_make(path2);
/* Build a path name */
strcpy(tail, "edit");
@@ -147,16 +152,16 @@ void init_file_paths(char *path)
ANGBAND_DIR_PREF = string_make(path);
#endif
/* Build a path name */
- strcpy(tail, "save");
- ANGBAND_DIR_SAVE = string_make(path);
+ strcpy(tail2, "save");
+ ANGBAND_DIR_SAVE = string_make(path2);
/* Build a path name */
strcpy(tail, "text");
ANGBAND_DIR_TEXT = string_make(path);
/* Build a path name */
- strcpy(tail, "user");
- ANGBAND_DIR_USER = string_make(path);
+ strcpy(tail2, "user");
+ ANGBAND_DIR_USER = string_make(path2);
#if 0
/* Build a path name */
strcpy(tail, "apex");
diff --git a/src/server/main.c b/src/server/main.c
index 4260b8d..7884b2f 100644
--- a/server/main.c
+++ a/server/main.c
@@ -142,6 +142,7 @@ extern unsigned _ovrbuffer = 0x1500;
static void init_stuff(void)
{
char path[1024];
+ char path2[1024];
#if defined(AMIGA) || defined(VM)
@@ -161,10 +162,16 @@ static void init_stuff(void)
/* Hack -- Add a path separator (only if needed) */
if (!suffix(path, PATH_SEP)) strcat(path, PATH_SEP);
+ /* Use the angband_path, or a default */
+ strcpy(path2, tail ? tail : DEFAULT_PATH_W);
+
+ /* Hack -- Add a path separator (only if needed) */
+ if (!suffix(path2, PATH_SEP)) strcat(path2, PATH_SEP);
+
#endif /* AMIGA / VM */
/* Initialize */
- init_file_paths(path);
+ init_file_paths(path, path2);
}
/*