mirror of
https://github.com/libretro/RetroArch
synced 2025-04-10 15:45:19 +00:00
Merge pull request #12368 from jdgleaver/core-info-fix
This commit is contained in:
commit
53a266728b
20
core_info.c
20
core_info.c
@ -1233,19 +1233,25 @@ static void core_info_path_list_free(core_path_list_t *path_list)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static core_path_list_t *core_info_path_list_new(const char *core_dir,
|
static core_path_list_t *core_info_path_list_new(const char *core_dir,
|
||||||
const char *core_ext, bool show_hidden_files)
|
const char *core_exts, bool show_hidden_files)
|
||||||
{
|
{
|
||||||
core_path_list_t *path_list = (core_path_list_t*)calloc(1, sizeof(*path_list));
|
core_path_list_t *path_list = (core_path_list_t*)
|
||||||
bool dir_list_ok = false;
|
calloc(1, sizeof(*path_list));
|
||||||
|
struct string_list *core_ext_list = NULL;
|
||||||
|
bool dir_list_ok = false;
|
||||||
char exts[32];
|
char exts[32];
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
exts[0] = '\0';
|
exts[0] = '\0';
|
||||||
|
|
||||||
if (string_is_empty(core_ext) ||
|
if (string_is_empty(core_exts) ||
|
||||||
!path_list)
|
!path_list)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
core_ext_list = string_split(core_exts, "|");
|
||||||
|
if (!core_ext_list)
|
||||||
|
goto error;
|
||||||
|
|
||||||
/* Allocate list containers */
|
/* Allocate list containers */
|
||||||
path_list->dir_list = string_list_new();
|
path_list->dir_list = string_list_new();
|
||||||
path_list->core_list = (core_file_path_list_t*)calloc(1,
|
path_list->core_list = (core_file_path_list_t*)calloc(1,
|
||||||
@ -1260,7 +1266,7 @@ static core_path_list_t *core_info_path_list_new(const char *core_dir,
|
|||||||
|
|
||||||
/* Get list of file extensions to include
|
/* Get list of file extensions to include
|
||||||
* (core + lock file) */
|
* (core + lock file) */
|
||||||
fill_pathname_join_delim(exts, core_ext, FILE_PATH_LOCK_EXTENSION_NO_DOT,
|
fill_pathname_join_delim(exts, core_exts, FILE_PATH_LOCK_EXTENSION_NO_DOT,
|
||||||
'|', sizeof(exts));
|
'|', sizeof(exts));
|
||||||
|
|
||||||
/* Fetch core directory listing */
|
/* Fetch core directory listing */
|
||||||
@ -1314,7 +1320,7 @@ static core_path_list_t *core_info_path_list_new(const char *core_dir,
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* Check whether this is a core or lock file */
|
/* Check whether this is a core or lock file */
|
||||||
if (string_is_equal(file_ext, core_ext))
|
if (string_list_find_elem(core_ext_list, file_ext))
|
||||||
{
|
{
|
||||||
path_list->core_list->list[
|
path_list->core_list->list[
|
||||||
path_list->core_list->size].path = file_path;
|
path_list->core_list->size].path = file_path;
|
||||||
@ -1332,9 +1338,11 @@ static core_path_list_t *core_info_path_list_new(const char *core_dir,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string_list_free(core_ext_list);
|
||||||
return path_list;
|
return path_list;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
string_list_free(core_ext_list);
|
||||||
core_info_path_list_free(path_list);
|
core_info_path_list_free(path_list);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user