fixed determining program main data path for Mac OS X
authorHolger Schemel <info@artsoft.org>
Sat, 14 Jan 2017 15:41:14 +0000 (16:41 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 14 Jan 2017 15:41:14 +0000 (16:41 +0100)
src/libgame/misc.c

index 4ffb51c707adb555962ba68876d13e685f369e74..bd069f921a93ad629d1e61e1d0d3995672f59639 100644 (file)
@@ -709,11 +709,19 @@ static char *getProgramMainDataPath()
     char *main_data_path_old = main_data_path;
 
     // cut relative path to Mac OS X application binary directory from path
-    main_data_path_old[strlen(main_data_path_old) -
-                      strlen(main_data_binary_subdir)] = '\0';
+    main_data_path[strlen(main_data_path) -
+                  strlen(main_data_binary_subdir)] = '\0';
+
+    // cut trailing path separator from path (but not if path is root directory)
+    if (strSuffix(main_data_path, "/") && !strEqual(main_data_path, "/"))
+      main_data_path[strlen(main_data_path) - 1] = '\0';
+
+    // replace empty path with current directory
+    if (strEqual(main_data_path, ""))
+      main_data_path = ".";
 
     // add relative path to Mac OS X application resources directory to path
-    main_data_path = getPath2(main_data_path_old, main_data_files_subdir);
+    main_data_path = getPath2(main_data_path, main_data_files_subdir);
 
     free(main_data_path_old);
   }