From 1b43e60c7ca7211624db30d6b9b7df532bec776b Mon Sep 17 00:00:00 2001 From: LibretroAdmin Date: Sat, 6 Aug 2022 19:51:00 +0200 Subject: [PATCH] (Ozone) Use less path_remove_extension and work more with return values from file_path.c functions (menu_cbs_title) Small optimization to string concatenation --- menu/cbs/menu_cbs_title.c | 11 ++++++----- menu/drivers/ozone.c | 40 ++++++++++++++++++++++++++++++--------- 2 files changed, 37 insertions(+), 14 deletions(-) diff --git a/menu/cbs/menu_cbs_title.c b/menu/cbs/menu_cbs_title.c index 08560e21e0..5f3f682afb 100644 --- a/menu/cbs/menu_cbs_title.c +++ b/menu/cbs/menu_cbs_title.c @@ -789,21 +789,22 @@ static int action_get_title_generic(char *s, size_t len, string_list_initialize(&list_path); if (string_split_noalloc(&list_path, path, "|")) { + size_t _len; char elem0_path[255]; if (list_path.size > 0) strlcpy(elem0_path, list_path.elems[0].data, sizeof(elem0_path)); string_list_deinitialize(&list_path); + _len = strlcpy(s, text, len); if (!string_is_empty(elem0_path)) { path_remove_extension(elem0_path); - snprintf(s, len, "%s: %s", - text, - path_basename(elem0_path)); + s[_len ] = ':'; + s[_len+1] = ' '; + s[_len+2] = '\0'; + strlcat(s, path_basename(elem0_path), len); } - else - strlcpy(s, text, len); return 0; } } diff --git a/menu/drivers/ozone.c b/menu/drivers/ozone.c index f15c548560..59f0b2e2bc 100644 --- a/menu/drivers/ozone.c +++ b/menu/drivers/ozone.c @@ -4466,7 +4466,7 @@ static void ozone_context_reset_horizontal_list(ozone_handle_t *ozone) if (string_ends_with_size(path, ".lpl", strlen(path), STRLEN_CONST(".lpl"))) { - size_t len; + size_t len, _len; struct texture_image ti; char sysname[PATH_MAX_LENGTH]; char texturepath[PATH_MAX_LENGTH]; @@ -4475,10 +4475,16 @@ static void ozone_context_reset_horizontal_list(ozone_handle_t *ozone) /* Add current node to playlist database name map */ RHMAP_SET_STR(ozone->playlist_db_node_map, path, node); - fill_pathname_base(sysname, path, sizeof(sysname)); - path_remove_extension(sysname); - - len = fill_pathname_join_special(texturepath, ozone->icons_path, sysname, + _len = fill_pathname_base( + sysname, path, sizeof(sysname)); + /* Manually strip the extension (and dot) from sysname */ + sysname[_len-4] = + sysname[_len-3] = + sysname[_len-2] = + sysname[_len-1] = '\0'; + _len = _len-4; + len = fill_pathname_join_special(texturepath, + ozone->icons_path, sysname, sizeof(texturepath)); texturepath[len] = '.'; texturepath[len+1] = 'p'; @@ -4486,10 +4492,11 @@ static void ozone_context_reset_horizontal_list(ozone_handle_t *ozone) texturepath[len+3] = 'g'; texturepath[len+4] = '\0'; - /* If the playlist icon doesn't exist return default */ + /* If the playlist icon doesn't exist, return default */ if (!path_is_valid(texturepath)) { - len = fill_pathname_join_special(texturepath, ozone->icons_path, "default", + len = fill_pathname_join_special( + texturepath, ozone->icons_path, "default", sizeof(texturepath)); texturepath[len] = '.'; texturepath[len+1] = 'p'; @@ -4515,8 +4522,23 @@ static void ozone_context_reset_horizontal_list(ozone_handle_t *ozone) image_texture_free(&ti); } - strlcat(sysname, "-content.png", sizeof(sysname)); - fill_pathname_join_special(content_texturepath, ozone->icons_path, sysname, + /* Manually append '-content.png' to end of sysname string */ + sysname[_len ] = '-'; + sysname[_len+1 ] = 'c'; + sysname[_len+2 ] = 'o'; + sysname[_len+3 ] = 'n'; + sysname[_len+4 ] = 't'; + sysname[_len+5 ] = 'e'; + sysname[_len+6 ] = 'n'; + sysname[_len+7 ] = 't'; + sysname[_len+8 ] = '.'; + sysname[_len+9 ] = 'p'; + sysname[_len+10] = 'n'; + sysname[_len+11] = 'g'; + sysname[_len+12] = '\0'; + /* Assemble new icon path */ + fill_pathname_join_special( + content_texturepath, ozone->icons_path, sysname, sizeof(content_texturepath)); /* If the content icon doesn't exist, return default-content */