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.
119 lines
3.0 KiB
119 lines
3.0 KiB
8 years ago
|
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);
|
||
|
}
|
||
|
|
||
|
/*
|