Rewrite path_b and path_c

This commit is contained in:
twinaphex 2017-09-28 02:30:31 +02:00
parent 72f42b602f
commit 72087d1749
4 changed files with 43 additions and 36 deletions

View File

@ -282,8 +282,13 @@ static int deferred_push_core_collection_list_deferred(
static int deferred_push_database_manager_list_deferred(
menu_displaylist_info_t *info)
{
strlcpy(info->path_b, info->path, sizeof(info->path_b));
info->path_c[0] = '\0';
if (info->path_b && !string_is_empty(info->path_b))
free(info->path_b);
if (info->path_c && !string_is_empty(info->path_c))
free(info->path_c);
info->path_b = strdup(info->path);
info->path_c = NULL;
return deferred_push_dlist(info, DISPLAYLIST_DATABASE_QUERY);
}
@ -458,9 +463,15 @@ static int deferred_push_cursor_manager_list_deferred(
settings->paths.path_content_database,
rdb, sizeof(rdb_path));
strlcpy(info->path_b, info->path, sizeof(info->path_b));
if (info->path_b && !string_is_empty(info->path_b))
free(info->path_b);
if (info->path_c && !string_is_empty(info->path_c))
free(info->path_c);
info->path_b = strdup(info->path);
info->path_c = strdup(query);
strlcpy(info->path, rdb_path, sizeof(info->path));
strlcpy(info->path_c, query, sizeof(info->path_c));
ret = deferred_push_dlist(info, DISPLAYLIST_DATABASE_QUERY);
@ -488,9 +499,15 @@ static int deferred_push_cursor_manager_list_generic(
if (string_is_empty(query))
goto end;
if (info->path_b && !string_is_empty(info->path_b))
free(info->path_b);
if (info->path_c && !string_is_empty(info->path_c))
free(info->path_c);
strlcpy(info->path, str_list->elems[1].data, sizeof(info->path));
strlcpy(info->path_b, str_list->elems[0].data, sizeof(info->path_b));
strlcpy(info->path_c, query, sizeof(info->path_c));
info->path_b = strdup(str_list->elems[0].data);
info->path_c = strdup(query);
ret = deferred_push_dlist(info, DISPLAYLIST_DATABASE_QUERY);
@ -614,8 +631,14 @@ static int deferred_push_cursor_manager_list_deferred_query_subsearch(
goto end;
strlcpy(info->path, str_list->elems[1].data, sizeof(info->path));
strlcpy(info->path_b, str_list->elems[0].data, sizeof(info->path_b));
strlcpy(info->path_c, query, sizeof(info->path_c));
if (info->path_b && !string_is_empty(info->path_b))
free(info->path_b);
info->path_b = strdup(str_list->elems[0].data);
if (info->path_c && !string_is_empty(info->path_c))
free(info->path_c);
info->path_c = strdup(query);
ret = deferred_push_dlist(info, DISPLAYLIST_DATABASE_QUERY);

View File

@ -4313,19 +4313,19 @@ void menu_displaylist_info_free(menu_displaylist_info_t *info)
return;
if (info->exts)
free(info->exts);
info->exts = NULL;
#if 0
if (info->path)
free(info->path);
if (info->path_b)
free(info->path_b);
if (info->path_c)
free(info->path_c);
info->exts = NULL;
info->path_b = NULL;
info->path_c = NULL;
#if 0
if (info->path)
free(info->path);
if (info->label)
free(info->label);
info->path = NULL;
info->path_b = NULL;
info->path_c = NULL;
info->label = NULL;
#endif
}
@ -4345,14 +4345,14 @@ void menu_displaylist_info_init(menu_displaylist_info_t *info)
info->download_core = false;
info->need_navigation_clear = false;
info->path[0] = '\0';
info->path_b[0] = '\0';
info->path_c[0] = '\0';
info->label[0] = '\0';
info->type = 0;
info->type_default = 0;
info->flags = 0;
info->label_hash = 0;
info->directory_ptr = 0;
info->path_b = NULL;
info->path_c = NULL;
info->exts = NULL;
info->list = NULL;
info->menu_list = NULL;

View File

@ -185,8 +185,8 @@ typedef struct menu_displaylist_info
bool need_navigation_clear;
char path[PATH_MAX_LENGTH];
char path_b[PATH_MAX_LENGTH];
char path_c[PATH_MAX_LENGTH];
char *path_b;
char *path_c;
char *exts;
char label[255];
unsigned type;

View File

@ -259,26 +259,10 @@ void menu_dialog_push(void)
if (!menu_dialog_is_push_pending())
return;
info.need_sort = false;
info.need_refresh = false;
info.need_entries_refresh = false;
info.need_push = false;
info.need_clear = false;
info.need_navigation_clear= false;
menu_displaylist_info_init(&info);
info.list = menu_entries_get_menu_stack_ptr(0);
info.menu_list = NULL;
info.path[0] = '\0';
info.path_b[0] = '\0';
info.path_c[0] = '\0';
info.label[0] = '\0';
info.label_hash = 0;
info.exts = NULL;
info.type = 0;
info.type_default = 0;
info.directory_ptr = 0;
info.flags = 0;
info.enum_idx = MENU_ENUM_LABEL_HELP;
info.setting = NULL;
strlcpy(info.label,
msg_hash_to_str(MENU_ENUM_LABEL_HELP),