From c4853688b49fe88429171570b660523a72b1e331 Mon Sep 17 00:00:00 2001
From: Ethan Lee <flibitijibibo@gmail.com>
Date: Thu, 2 Jul 2020 15:57:40 -0400
Subject: [PATCH] Separate mkdirs from path string generation

---
 desktop_version/src/FileSystemUtils.cpp | 28 ++++++++++++++++---------
 1 file changed, 18 insertions(+), 10 deletions(-)

diff --git a/desktop_version/src/FileSystemUtils.cpp b/desktop_version/src/FileSystemUtils.cpp
index bc65211d..f8463c91 100644
--- a/desktop_version/src/FileSystemUtils.cpp
+++ b/desktop_version/src/FileSystemUtils.cpp
@@ -74,17 +74,25 @@ int FILESYSTEM_init(char *argvZero, char* baseDir, char *assetsPath)
 	PHYSFS_setWriteDir(output);
 	printf("Base directory: %s\n", output);
 
-	/* Create save directory */
-	strcpy(saveDir, "saves");
-	strcat(saveDir, PHYSFS_getDirSeparator());
-	mkdirResult = PHYSFS_mkdir(saveDir);
-	printf("Save directory: %s%s\n", output, saveDir);
+	/* Create the save/level folders */
+	mkdirResult |= PHYSFS_mkdir("saves");
+	mkdirResult |= PHYSFS_mkdir("levels");
 
-	/* Create level directory */
-	strcpy(levelDir, "levels");
-	strcat(levelDir, PHYSFS_getDirSeparator());
-	mkdirResult |= PHYSFS_mkdir(levelDir);
-	printf("Level directory: %s%s\n", output, levelDir);
+	/* Store full save directory */
+	SDL_snprintf(saveDir, sizeof(saveDir), "%s%s%s",
+		output,
+		"saves",
+		PHYSFS_getDirSeparator()
+	);
+	printf("Save directory: %s\n", saveDir);
+
+	/* Store full level directory */
+	SDL_snprintf(levelDir, sizeof(levelDir), "%s%s%s",
+		output,
+		"levels",
+		PHYSFS_getDirSeparator()
+	);
+	printf("Level directory: %s\n", levelDir);
 
 	/* We didn't exist until now, migrate files! */
 	if (mkdirResult == 0)