From 1ef4be2280d17373961fd698c3043026025aa1e7 Mon Sep 17 00:00:00 2001 From: libretroadmin Date: Sat, 15 Jun 2024 15:04:05 +0200 Subject: [PATCH] (menu) More string_list removal --- menu/cbs/menu_cbs_deferred_push.c | 39 +++++++++++++++++++------------ menu/cbs/menu_cbs_ok.c | 13 ++++------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 707aa763dc..335967b43a 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -354,22 +354,35 @@ static int deferred_push_cursor_manager_list_generic( menu_displaylist_info_t *info, enum database_query_type type) { char query[256]; + char *tok, *save; + char *elem0 = NULL; + char *elem1 = NULL; + char *path_cpy = NULL; int ret = -1; const char *path = info->path; - struct string_list str_list = {0}; - settings_t *settings = config_get_ptr(); if (!path) - goto end; + return -1; - string_list_initialize(&str_list); - string_split_noalloc(&str_list, path, "|"); + path_cpy = strdup(path); + tok = strtok_r(path_cpy, "|", &save); - database_info_build_query_enum(query, sizeof(query), type, - str_list.elems[0].data); + if (tok) + elem0 = strdup(tok); + if ((tok = strtok_r(NULL, "|", &save))) + elem1 = strdup(tok); + free(path_cpy); + + database_info_build_query_enum(query, sizeof(query), type, elem0); if (string_is_empty(query)) - goto end; + { + if (elem0) + free(elem0); + if (elem1) + free(elem1); + return -1; + } if (!string_is_empty(info->path_b)) free(info->path_b); @@ -378,15 +391,11 @@ static int deferred_push_cursor_manager_list_generic( if (!string_is_empty(info->path)) free(info->path); - info->path = strdup(str_list.elems[1].data); - info->path_b = strdup(str_list.elems[0].data); + info->path = elem1; + info->path_b = elem0; info->path_c = strdup(query); - ret = deferred_push_dlist(info, DISPLAYLIST_DATABASE_QUERY, settings); - -end: - string_list_deinitialize(&str_list); - return ret; + return deferred_push_dlist(info, DISPLAYLIST_DATABASE_QUERY, config_get_ptr()); } GENERIC_DEFERRED_CURSOR_MANAGER(deferred_push_cursor_manager_list_deferred_query_rdb_entry_max_users, DATABASE_QUERY_ENTRY_MAX_USERS) diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index d6a5e51887..ad2e0872b2 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -5310,12 +5310,11 @@ static int action_ok_download_generic(const char *path, break; case MENU_ENUM_LABEL_CB_CORE_CONTENT_DOWNLOAD: { - struct string_list str_list = {0}; - - string_list_initialize(&str_list); - if (string_split_noalloc(&str_list, menu_label, ";")) - strlcpy(s, str_list.elems[0].data, sizeof(s)); - string_list_deinitialize(&str_list); + char *tok, *save; + char *menu_label_cpy = strdup(menu_label); + if ((tok = strtok_r(menu_label_cpy, ";", &save))) + strlcpy(s, tok, sizeof(s)); + free(menu_label_cpy); } break; case MENU_ENUM_LABEL_CB_CORE_SYSTEM_FILES_DOWNLOAD: @@ -6905,10 +6904,8 @@ static int generic_action_ok_dropdown_setting(const char *path, const char *labe setting->values, "|"); if (idx < tmp_str_list.size) - { strlcpy(setting->value.target.string, tmp_str_list.elems[idx].data, setting->size); - } string_list_deinitialize(&tmp_str_list); break;