summaryrefslogtreecommitdiff
path: root/src/fileio.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/fileio.cpp')
-rw-r--r--src/fileio.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/fileio.cpp b/src/fileio.cpp
index f33c8e0c1..f92a7f6ab 100644
--- a/src/fileio.cpp
+++ b/src/fileio.cpp
@@ -363,6 +363,16 @@ void FioCreateDirectory(const char *name)
CreateDirectory(OTTD2FS(name), NULL);
#elif defined(OS2) && !defined(__INNOTEK_LIBC__)
mkdir(OTTD2FS(name));
+#elif defined(__MORPHOS__) || defined(__AMIGAOS__)
+ char buf[MAX_PATH];
+ ttd_strlcpy(buf, name, MAX_PATH);
+
+ size_t len = strlen(name) - 1;
+ if (buf[len] == '/') {
+ buf[len] = '\0'; // Kill pathsep, so mkdir() will not fail
+ }
+
+ mkdir(OTTD2FS(buf), 0755);
#else
mkdir(OTTD2FS(name), 0755);
#endif
@@ -720,7 +730,10 @@ void DeterminePaths(const char *exe)
char *autosave_dir = str_fmt("%s%s", _personal_dir, FioGetSubdirectory(AUTOSAVE_DIR));
/* Make the necessary folders */
+#if !defined(__MORPHOS__) && !defined(__AMIGA__) && defined(WITH_PERSONAL_DIR)
FioCreateDirectory(_personal_dir);
+#endif
+
FioCreateDirectory(save_dir);
FioCreateDirectory(autosave_dir);