forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mangband-1.1.3-paths.patch
118 lines (100 loc) · 2.96 KB
/
mangband-1.1.3-paths.patch
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);
}
/*