char *fs_uae_expand_path(const char* path) { char* lower = g_ascii_strdown(path, -1); int replace = 0; const char *replace_with = NULL; if (check_path_prefix(lower, "~", &replace)) { replace_with = fs_uae_home_dir(); } else if (check_path_prefix(lower, "$home", &replace)) { replace_with = fs_uae_home_dir(); } else if (check_path_prefix(lower, "$app", &replace)) { replace_with = fs_uae_app_dir(); } else if (check_path_prefix(lower, "$exe", &replace)) { replace_with = fs_uae_exe_dir(); } else if (check_path_prefix(lower, "$fsuae", &replace)) { replace_with = fs_uae_base_dir(); } else if (check_path_prefix(lower, "$base", &replace)) { replace_with = fs_uae_base_dir(); } else if (check_path_prefix(lower, "$documents", &replace)) { replace_with = fs_uae_documents_dir(); } else if (check_path_prefix(lower, "$config", &replace)) { replace_with = g_fs_uae_config_dir_path; } else if (check_path_prefix(lower, "$temp", &replace)) { replace_with = fs_uae_temp_dir(); } free(lower); if (replace_with) { const char *src = path + replace; return g_build_filename(replace_with, src, NULL); } else { return g_strdup(path); } }
char *fs_uae_expand_path(const char* path) { char* lower = g_ascii_strdown(path, -1); int replace = 0; const char *replace_with = NULL; if (g_str_has_prefix(lower, "~/") || g_str_has_prefix(lower, "~\\")) { replace = 2; replace_with = fs_uae_home_dir(); } if (g_str_has_prefix(lower, "$home/") || g_str_has_prefix(lower, "$home\\")) { replace = 6; replace_with = fs_uae_home_dir(); } if (g_str_has_prefix(lower, "$app/") || g_str_has_prefix(lower, "$app\\")) { replace = 5; replace_with = fs_uae_app_dir(); } if (g_str_has_prefix(lower, "$exe/") || g_str_has_prefix(lower, "$exe\\")) { replace = 5; replace_with = fs_uae_exe_dir(); } if (g_str_has_prefix(lower, "$fsuae/") || g_str_has_prefix(lower, "$fsuae\\")) { replace = 7; replace_with = fs_uae_base_dir(); } if (g_str_has_prefix(lower, "$base/") || g_str_has_prefix(lower, "$base\\")) { replace = 6; replace_with = fs_uae_base_dir(); } if (g_str_has_prefix(lower, "$documents/") || g_str_has_prefix(lower, "$documents\\")) { replace = 11; replace_with = fs_uae_documents_dir(); } if (g_str_has_prefix(lower, "$config/") || g_str_has_prefix(lower, "$config\\")) { replace = 8; replace_with = g_fs_uae_config_dir_path; } free(lower); if (replace && replace_with) { const char *src = path + replace; return g_build_filename(replace_with, src, NULL); } else { return g_strdup(path); } }