move function for getting program base directory to appropriate source file
authorHolger Schemel <info@artsoft.org>
Tue, 7 Nov 2017 22:19:16 +0000 (23:19 +0100)
committerHolger Schemel <info@artsoft.org>
Fri, 23 Mar 2018 22:21:16 +0000 (23:21 +0100)
src/libgame/misc.c
src/libgame/setup.c
src/libgame/setup.h

index 7ac8d566362aef4a052b16909e9d1a3b3f92e963..701d38fb83b3b1c246aa375634f504538b9f0452 100644 (file)
@@ -696,45 +696,6 @@ char *getBasePath(char *filename)
   return basepath;
 }
 
-static char *getProgramMainDataPath(char *command_filename, char *base_path)
-{
-  /* check if the program's main data base directory is configured */
-  if (!strEqual(base_path, "."))
-    return base_path;
-
-  /* if the program is configured to start from current directory (default),
-     determine program package directory from program binary (some versions
-     of KDE/Konqueror and Mac OS X (especially "Mavericks") apparently do not
-     set the current working directory to the program package directory) */
-  char *main_data_path = getBasePath(command_filename);
-
-#if defined(PLATFORM_MACOSX)
-  if (strSuffix(main_data_path, MAC_APP_BINARY_SUBDIR))
-  {
-    char *main_data_path_old = main_data_path;
-
-    // cut relative path to Mac OS X application binary directory from path
-    main_data_path[strlen(main_data_path) -
-                  strlen(MAC_APP_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, MAC_APP_FILES_SUBDIR);
-
-    free(main_data_path_old);
-  }
-#endif
-
-  return main_data_path;
-}
-
 
 /* ------------------------------------------------------------------------- */
 /* various string functions                                                  */
index 8662b204bb5f336ca426408be1b2fe841efa58a7..d6ec2eeb175c322233dfb856b9c0b8bde9cb727a 100644 (file)
@@ -425,6 +425,45 @@ inline static char *getLevelArtworkDir(int type)
   return LEVELDIR_ARTWORK_PATH(leveldir_current, type);
 }
 
+char *getProgramMainDataPath(char *command_filename, char *base_path)
+{
+  /* check if the program's main data base directory is configured */
+  if (!strEqual(base_path, "."))
+    return base_path;
+
+  /* if the program is configured to start from current directory (default),
+     determine program package directory from program binary (some versions
+     of KDE/Konqueror and Mac OS X (especially "Mavericks") apparently do not
+     set the current working directory to the program package directory) */
+  char *main_data_path = getBasePath(command_filename);
+
+#if defined(PLATFORM_MACOSX)
+  if (strSuffix(main_data_path, MAC_APP_BINARY_SUBDIR))
+  {
+    char *main_data_path_old = main_data_path;
+
+    // cut relative path to Mac OS X application binary directory from path
+    main_data_path[strlen(main_data_path) -
+                  strlen(MAC_APP_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, MAC_APP_FILES_SUBDIR);
+
+    free(main_data_path_old);
+  }
+#endif
+
+  return main_data_path;
+}
+
 char *getProgramConfigFilename(char *command_filename_ptr)
 {
   char *command_filename_1 = getStringCopy(command_filename_ptr);
index f7b7892859c813c1d01d4f1b44ec8ac9a72a6488..2f1f65a9986c34df05aa9fbad7bbb1673c2bead2 100644 (file)
@@ -222,6 +222,7 @@ typedef struct hashtable     SetupFileHash;
 
 
 char *setLevelArtworkDir(TreeInfo *);
+char *getProgramMainDataPath(char *, char *);
 char *getProgramConfigFilename(char *);
 char *getTapeFilename(int);
 char *getSolutionTapeFilename(int);