diff --git a/frontend/menu/disp/shared.h b/frontend/menu/disp/shared.h index d0ee3edc99..12c49c8aeb 100644 --- a/frontend/menu/disp/shared.h +++ b/frontend/menu/disp/shared.h @@ -148,7 +148,7 @@ static void disp_set_label(unsigned *w, unsigned type, unsigned i, if (type == MENU_FILE_CORE) { strlcpy(type_str, "(CORE)", type_str_size); - file_list_get_alt_at_offset(driver.menu->selection_buf, i, &path); + menu_list_get_alt_at_offset(driver.menu->selection_buf, i, &path); *w = 6; } else if (type == MENU_FILE_PLAIN) diff --git a/frontend/menu/menu_list.c b/frontend/menu/menu_list.c index 9d58bff5a3..b4bec390a5 100644 --- a/frontend/menu/menu_list.c +++ b/frontend/menu/menu_list.c @@ -48,6 +48,25 @@ void menu_list_free(menu_list_t *menu_list) menu_list_destroy(menu_list->selection_buf); } +void *menu_list_new(void) +{ + menu_list_t *list = (menu_list_t*)calloc(1, sizeof(*list)); + + if (!list) + return NULL; + + list->menu_stack = (file_list_t*)calloc(1, sizeof(file_list_t)); + list->selection_buf = (file_list_t*)calloc(1, sizeof(file_list_t)); + + if (!list->menu_stack || !list->selection_buf) + { + free(list); + return NULL; + } + + return list; +} + size_t menu_list_get_stack_size(void) { if (!driver.menu) diff --git a/frontend/menu/menu_list.h b/frontend/menu/menu_list.h index f358798225..7dbc37334c 100644 --- a/frontend/menu/menu_list.h +++ b/frontend/menu/menu_list.h @@ -31,6 +31,8 @@ typedef struct menu_list void menu_list_free(menu_list_t *menu_list); +void *menu_list_new(void); + void menu_list_destroy(file_list_t *list); void menu_list_flush_stack(file_list_t *list,