X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.c;h=4ffb51c707adb555962ba68876d13e685f369e74;hb=56fe208c3f5ededc520ee0d76ad2fb72146e3dc9;hp=559fd3859a69b443e9a95267d269c92118780c5c;hpb=14a9d030139b185b174f538e1ac8f027182c521c;p=rocksndiamonds.git diff --git a/src/libgame/misc.c b/src/libgame/misc.c index 559fd385..4ffb51c7 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -682,6 +682,7 @@ static char *getProgramMainDataPath() #if defined(PLATFORM_MACOSX) static char *main_data_binary_subdir = NULL; + static char *main_data_files_subdir = NULL; if (main_data_binary_subdir == NULL) { @@ -693,14 +694,29 @@ static char *getProgramMainDataPath() program.program_title, MAC_APP_BINARY_SUBDIR); } - // cut relative path to Mac OS X application binary directory from path + if (main_data_files_subdir == NULL) + { + main_data_files_subdir = checked_malloc(strlen(program.program_title) + 1 + + strlen("app") + 1 + + strlen(MAC_APP_FILES_SUBDIR) + 1); + + sprintf(main_data_files_subdir, "%s.app/%s", + program.program_title, MAC_APP_FILES_SUBDIR); + } + if (strSuffix(main_data_path, main_data_binary_subdir)) - main_data_path[strlen(main_data_path) - - strlen(main_data_binary_subdir)] = '\0'; + { + 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'; - // 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'; + // add relative path to Mac OS X application resources directory to path + main_data_path = getPath2(main_data_path_old, main_data_files_subdir); + + free(main_data_path_old); + } #endif return main_data_path;