1
0
mirror of https://github.com/libretro/RetroArch synced 2025-03-29 22:20:21 +00:00

(playlist.c) Cleanups

This commit is contained in:
libretroadmin 2023-01-09 02:58:52 +01:00
parent 3ae8e35d0e
commit ef0672f80b

@ -255,53 +255,53 @@ static void playlist_path_id_free(playlist_path_id_t *path_id)
static playlist_path_id_t *playlist_path_id_init(const char *path)
{
playlist_path_id_t *path_id = (playlist_path_id_t*)malloc(sizeof(*path_id));
const char *archive_delim = NULL;
char real_path[PATH_MAX_LENGTH];
playlist_path_id_t *path_id = (playlist_path_id_t*)malloc(sizeof(*path_id));
if (!path_id)
return NULL;
path_id->real_path = NULL;
path_id->archive_path = NULL;
path_id->real_path_hash = 0;
path_id->archive_path_hash = 0;
path_id->is_archive = false;
path_id->is_in_archive = false;
path_id->real_path = NULL;
path_id->archive_path = NULL;
path_id->real_path_hash = 0;
path_id->archive_path_hash = 0;
path_id->is_archive = false;
path_id->is_in_archive = false;
if (string_is_empty(path))
return path_id;
/* Get real path */
strlcpy(real_path, path, sizeof(real_path));
playlist_resolve_path(PLAYLIST_SAVE, false, real_path,
sizeof(real_path));
path_id->real_path = strdup(real_path);
path_id->real_path_hash = playlist_path_hash(real_path);
/* Check archive status */
path_id->is_archive = path_is_compressed_file(real_path);
archive_delim = path_get_archive_delim(real_path);
/* If path refers to a file inside an archive,
* extract the path of the parent archive */
if (archive_delim)
if (!string_is_empty(path))
{
char archive_path[PATH_MAX_LENGTH];
size_t len = (1 + archive_delim - real_path);
if (len >= PATH_MAX_LENGTH)
len = PATH_MAX_LENGTH;
strlcpy(archive_path, real_path, len * sizeof(char));
char real_path[PATH_MAX_LENGTH];
const char *archive_delim = NULL;
/* Get real path */
strlcpy(real_path, path, sizeof(real_path));
playlist_resolve_path(PLAYLIST_SAVE, false, real_path,
sizeof(real_path));
path_id->archive_path = strdup(archive_path);
path_id->archive_path_hash = playlist_path_hash(archive_path);
path_id->is_in_archive = true;
}
else if (path_id->is_archive)
{
path_id->archive_path = path_id->real_path;
path_id->archive_path_hash = path_id->real_path_hash;
path_id->real_path = strdup(real_path);
path_id->real_path_hash = playlist_path_hash(real_path);
/* Check archive status */
path_id->is_archive = path_is_compressed_file(real_path);
archive_delim = path_get_archive_delim(real_path);
/* If path refers to a file inside an archive,
* extract the path of the parent archive */
if (archive_delim)
{
char archive_path[PATH_MAX_LENGTH];
size_t len = (1 + archive_delim - real_path);
if (len >= PATH_MAX_LENGTH)
len = PATH_MAX_LENGTH;
strlcpy(archive_path, real_path, len * sizeof(char));
path_id->archive_path = strdup(archive_path);
path_id->archive_path_hash = playlist_path_hash(archive_path);
path_id->is_in_archive = true;
}
else if (path_id->is_archive)
{
path_id->archive_path = path_id->real_path;
path_id->archive_path_hash = path_id->real_path_hash;
}
}
return path_id;
@ -420,8 +420,7 @@ static bool playlist_path_matches_entry(playlist_path_id_t *path_id,
/* Check whether entry contains a path ID cache */
if (!entry->path_id)
{
entry->path_id = playlist_path_id_init(entry->path);
if (!entry->path_id)
if (!(entry->path_id = playlist_path_id_init(entry->path)))
return false;
}
@ -3055,10 +3054,10 @@ bool playlist_entries_are_equal(
if (!entry_a || !entry_b || !config)
return false;
if (string_is_empty(entry_a->path) &&
string_is_empty(entry_a->core_path) &&
string_is_empty(entry_b->path) &&
string_is_empty(entry_b->core_path))
if ( string_is_empty(entry_a->path)
&& string_is_empty(entry_a->core_path)
&& string_is_empty(entry_b->path)
&& string_is_empty(entry_b->core_path))
return true;
/* Check content paths */
@ -3253,7 +3252,8 @@ bool playlist_scan_refresh_enabled(playlist_t *playlist)
return !string_is_empty(playlist->scan_record.content_dir);
}
void playlist_set_default_core_path(playlist_t *playlist, const char *core_path)
void playlist_set_default_core_path(playlist_t *playlist,
const char *core_path)
{
char real_core_path[PATH_MAX_LENGTH];
@ -3274,8 +3274,8 @@ void playlist_set_default_core_path(playlist_t *playlist, const char *core_path)
{
if (playlist->default_core_path)
free(playlist->default_core_path);
playlist->default_core_path = strdup(real_core_path);
playlist->modified = true;
playlist->default_core_path = strdup(real_core_path);
playlist->modified = true;
}
}
@ -3289,8 +3289,8 @@ void playlist_set_default_core_name(
{
if (playlist->default_core_name)
free(playlist->default_core_name);
playlist->default_core_name = strdup(core_name);
playlist->modified = true;
playlist->default_core_name = strdup(core_name);
playlist->modified = true;
}
}
@ -3300,7 +3300,7 @@ void playlist_set_label_display_mode(playlist_t *playlist,
if (playlist && playlist->label_display_mode != label_display_mode)
{
playlist->label_display_mode = label_display_mode;
playlist->modified = true;
playlist->modified = true;
}
}
@ -3379,9 +3379,9 @@ void playlist_set_scan_file_exts(playlist_t *playlist, const char *file_exts)
/* Check whether string value has changed
* (note that a NULL or empty argument will
* unset the playlist value) */
if (( current_string_empty && !new_string_empty) ||
(!current_string_empty && new_string_empty) ||
!string_is_equal(playlist->scan_record.file_exts, file_exts))
if ( ( current_string_empty && !new_string_empty)
|| (!current_string_empty && new_string_empty)
|| !string_is_equal(playlist->scan_record.file_exts, file_exts))
playlist->modified = true;
else
return; /* Strings are identical; do nothing */
@ -3459,13 +3459,12 @@ void playlist_set_scan_filter_dat_content(playlist_t *playlist, bool filter_dat_
* other than DETECT) */
bool playlist_entry_has_core(const struct playlist_entry *entry)
{
if (!entry ||
string_is_empty(entry->core_path) ||
string_is_empty(entry->core_name) ||
string_is_equal(entry->core_path, FILE_PATH_DETECT) ||
string_is_equal(entry->core_name, FILE_PATH_DETECT))
if ( !entry
|| string_is_empty(entry->core_path)
|| string_is_empty(entry->core_name)
|| string_is_equal(entry->core_path, FILE_PATH_DETECT)
|| string_is_equal(entry->core_name, FILE_PATH_DETECT))
return false;
return true;
}
@ -3495,11 +3494,11 @@ core_info_t *playlist_get_default_core_info(playlist_t* playlist)
{
core_info_t *core_info = NULL;
if (!playlist ||
string_is_empty(playlist->default_core_path) ||
string_is_empty(playlist->default_core_name) ||
string_is_equal(playlist->default_core_path, FILE_PATH_DETECT) ||
string_is_equal(playlist->default_core_name, FILE_PATH_DETECT))
if ( !playlist
|| string_is_empty(playlist->default_core_path)
|| string_is_empty(playlist->default_core_name)
|| string_is_equal(playlist->default_core_path, FILE_PATH_DETECT)
|| string_is_equal(playlist->default_core_name, FILE_PATH_DETECT))
return NULL;
/* Search for associated core */