summaryrefslogtreecommitdiff
blob: dd955157019663205a79f9b19df6b4d22937604f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
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);
 }
 
 /*