#if defined(PLATFORM_MACOSX)
static char *main_data_binary_subdir = NULL;
+ static char *main_data_files_subdir = NULL;
if (main_data_binary_subdir == NULL)
{
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);
- // replace empty path with current directory
- if (strEqual(main_data_path, ""))
- main_data_path = ".";
+ free(main_data_path_old);
+ }
#endif
return main_data_path;