diff --git a/command_event.c b/command_event.c index 361766bb74..78277bfdb8 100644 --- a/command_event.c +++ b/command_event.c @@ -651,7 +651,7 @@ static void event_set_savestate_auto_index(void) fill_pathname_base(state_base, global->name.savestate, sizeof(state_base)); - if (!(dir_list = dir_list_new_special(state_dir, DIR_LIST_PLAIN))) + if (!(dir_list = dir_list_new_special(state_dir, DIR_LIST_PLAIN, NULL))) return; for (i = 0; i < dir_list->size; i++) @@ -1502,7 +1502,7 @@ bool event_command(enum event_command cmd) if (!*settings->video.shader_dir) return false; - global->shader_dir.list = dir_list_new_special(NULL, DIR_LIST_SHADERS); + global->shader_dir.list = dir_list_new_special(NULL, DIR_LIST_SHADERS, NULL); if (!global->shader_dir.list || global->shader_dir.list->size == 0) { diff --git a/core_info.c b/core_info.c index 47c70ba345..5637bd7d95 100644 --- a/core_info.c +++ b/core_info.c @@ -107,7 +107,7 @@ void core_info_get_name(const char *path, char *s, size_t len) core_info_t *core_info = NULL; core_info_list_t *core_info_list = NULL; settings_t *settings = config_get_ptr(); - struct string_list *contents = dir_list_new_special(NULL, DIR_LIST_CORES); + struct string_list *contents = dir_list_new_special(NULL, DIR_LIST_CORES, NULL); if (!contents) return; @@ -174,7 +174,7 @@ core_info_list_t *core_info_list_new(void) core_info_t *core_info = NULL; core_info_list_t *core_info_list = NULL; settings_t *settings = config_get_ptr(); - struct string_list *contents = dir_list_new_special(NULL, DIR_LIST_CORES); + struct string_list *contents = dir_list_new_special(NULL, DIR_LIST_CORES, NULL); if (!contents) return NULL; diff --git a/database_info.c b/database_info.c index 6546ff7006..92182f03d1 100644 --- a/database_info.c +++ b/database_info.c @@ -392,7 +392,7 @@ database_info_handle_t *database_info_dir_init(const char *dir, if (!db) return NULL; - db->list = dir_list_new_special(dir, DIR_LIST_CORE_INFO); + db->list = dir_list_new_special(dir, DIR_LIST_CORE_INFO, NULL); if (!db->list) goto error; diff --git a/dir_list_special.c b/dir_list_special.c index ec56763231..15a72988d8 100644 --- a/dir_list_special.c +++ b/dir_list_special.c @@ -19,7 +19,7 @@ #include "file_ext.h" #include "configuration.h" -struct string_list *dir_list_new_special(const char *input_dir, enum dir_list_type type) +struct string_list *dir_list_new_special(const char *input_dir, enum dir_list_type type, const char *filter) { const char *dir = NULL; const char *exts = NULL; @@ -54,7 +54,7 @@ struct string_list *dir_list_new_special(const char *input_dir, enum dir_list_ty break; case DIR_LIST_PLAIN: dir = input_dir; - exts = NULL; + exts = filter; break; case DIR_LIST_NONE: default: diff --git a/dir_list_special.h b/dir_list_special.h index 2193eeb9ce..dd479206f4 100644 --- a/dir_list_special.h +++ b/dir_list_special.h @@ -35,6 +35,6 @@ enum dir_list_type DIR_LIST_SHADERS }; -struct string_list *dir_list_new_special(const char *input_dir, enum dir_list_type type); +struct string_list *dir_list_new_special(const char *input_dir, enum dir_list_type type, const char *filter); #endif diff --git a/menu/drivers/zarch.c b/menu/drivers/zarch.c index c97e1d88a2..79cbf453d0 100644 --- a/menu/drivers/zarch.c +++ b/menu/drivers/zarch.c @@ -1283,6 +1283,7 @@ static bool zarch_menu_init_list(void *data) strlcpy(info.label, menu_hash_to_str(MENU_VALUE_HISTORY_TAB), sizeof(info.label)); + menu_entries_push(menu_stack, info.path, info.label, info.type, info.flags, 0); menu_entries_push(menu_stack, info.path, info.label, info.type, info.flags, 0); event_command(EVENT_CMD_HISTORY_INIT); diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 500ee536bf..8e1da3fb84 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -2495,7 +2495,7 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type) ret = menu_displaylist_parse_settings(menu, info, menu_hash_to_str(MENU_LABEL_CONTENT_HISTORY_SIZE), PARSE_ONLY_UINT, false); { - struct string_list *str_list = dir_list_new_special(settings->playlist_directory, DIR_LIST_COLLECTIONS); + struct string_list *str_list = dir_list_new_special(settings->playlist_directory, DIR_LIST_COLLECTIONS, NULL); if (str_list && str_list->size) { unsigned i; diff --git a/tasks/task_database.c b/tasks/task_database.c index 2c9eac0bb2..8b5e0a02bc 100644 --- a/tasks/task_database.c +++ b/tasks/task_database.c @@ -543,7 +543,7 @@ void rarch_main_data_db_iterate(bool is_thread) { case DATABASE_STATUS_ITERATE_BEGIN: if (db_state && !db_state->list) - db_state->list = dir_list_new_special(NULL, DIR_LIST_DATABASES); + db_state->list = dir_list_new_special(NULL, DIR_LIST_DATABASES, NULL); db->status = DATABASE_STATUS_ITERATE_START; break; case DATABASE_STATUS_ITERATE_START: