diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 18dfe3bfd4..932a74518e 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -429,7 +429,14 @@ static int general_push(menu_displaylist_info_t *info, { /* Need to use the scratch buffer here */ char tmp_str[PATH_MAX_LENGTH]; - fill_pathname_join_special(tmp_str, menu->scratch2_buf, +#if IOS + char tmp_path[PATH_MAX_LENGTH]; + fill_pathname_expand_special(tmp_path, menu->scratch2_buf, sizeof(tmp_path)); + const char *menu_path = tmp_path; +#else + const char *menu_path = menu->scratch2_buf; +#endif + fill_pathname_join_special(tmp_str, menu_path, menu->scratch_buf, sizeof(tmp_str)); if (!string_is_empty(info->path)) diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 5a0ea1e495..54033b9610 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -1970,6 +1970,12 @@ static int file_load_with_detect_core_wrapper( menu_entries_get_last_stack(&menu_path, &menu_label, NULL, NULL, NULL); +#if IOS + char tmp_path[PATH_MAX_LENGTH]; + fill_pathname_expand_special(tmp_path, menu_path, sizeof(tmp_path)); + menu_path = tmp_path; +#endif + if (!string_is_empty(menu_path)) strlcpy(menu_path_new, menu_path, sizeof(menu_path_new)); @@ -2151,6 +2157,12 @@ static int generic_action_ok(const char *path, menu_entries_get_last_stack(&menu_path, &menu_label, NULL, &enum_idx, NULL); +#if IOS + char tmp_path[PATH_MAX_LENGTH]; + fill_pathname_expand_special(tmp_path, menu_path, sizeof(tmp_path)); + menu_path = tmp_path; +#endif + if (!string_is_empty(path)) fill_pathname_join_special(action_path, menu_path, path, sizeof(action_path)); @@ -7553,6 +7565,12 @@ static int action_ok_load_archive_detect_core(const char *path, menu_path = menu->scratch2_buf; content_path = menu->scratch_buf; +#if IOS + char tmp_path[PATH_MAX_LENGTH]; + fill_pathname_expand_special(tmp_path, menu_path, sizeof(tmp_path)); + menu_path = tmp_path; +#endif + core_info_get_list(&list); def_info.data = list;