Skip to content

Commit

Permalink
Rewrite create_string_list_rdb_entry_{string|int}
Browse files Browse the repository at this point in the history
  • Loading branch information
LibretroAdmin committed Jul 15, 2023
1 parent 19ae344 commit 2785d2d
Showing 1 changed file with 25 additions and 49 deletions.
74 changes: 25 additions & 49 deletions menu/menu_displaylist.c
Original file line number Diff line number Diff line change
Expand Up @@ -2340,44 +2340,32 @@ static int create_string_list_rdb_entry_string(
{
size_t _len;
char tmp[128];
struct string_list str_list;
union string_list_elem_attr attr;
char *output_label = NULL;
int str_len = 0;
char *out_lbl = NULL;
size_t str_len = (strlen(label) + 1)
+ (strlen(actual_string) + 1)
+ (path_len + 1);

if (!string_list_initialize(&str_list))
if (!(out_lbl = (char*)calloc(str_len, sizeof(char))))
return -1;

attr.i = 0;

str_len += strlen(label) + 1;
string_list_append(&str_list, label, attr);

str_len += strlen(actual_string) + 1;
string_list_append(&str_list, actual_string, attr);

str_len += path_len + 1;
string_list_append(&str_list, path, attr);

if (!(output_label = (char*)calloc(str_len, sizeof(char))))
{
string_list_deinitialize(&str_list);
return -1;
}

string_list_join_concat(output_label, str_len, &str_list, "|");
string_list_deinitialize(&str_list);
_len = strlcpy(out_lbl, label, str_len);
out_lbl[ _len] = '|';
out_lbl[++_len] = '\0';
_len += strlcpy(out_lbl + _len, actual_string, str_len - _len);
out_lbl[ _len] = '|';
out_lbl[++_len] = '\0';
strlcpy(out_lbl + _len, path, str_len - _len);

_len = strlcpy(tmp, desc, sizeof(tmp));
tmp[ _len] = ':';
tmp[++_len] = ' ';
tmp[++_len] = '\0';
strlcpy(tmp + _len, actual_string, sizeof(tmp) - _len);
menu_entries_append(list, tmp, output_label,
menu_entries_append(list, tmp, out_lbl,
enum_idx,
0, 0, 0, NULL);

free(output_label);
free(out_lbl);

return 0;
}
Expand All @@ -2390,40 +2378,28 @@ static int create_string_list_rdb_entry_int(
file_list_t *list)
{
size_t _len;
struct string_list str_list;
union string_list_elem_attr attr;
char str[16];
char tmp[128];
char output_label[PATH_MAX_LENGTH];
int str_len = 0;

char out_lbl[PATH_MAX_LENGTH];
str[0] = '\0';
output_label[0] = '\0';

if (!string_list_initialize(&str_list))
return -1;

attr.i = 0;

str_len += strlen(label) + 1;
string_list_append(&str_list, label, attr);

_len = snprintf(str, sizeof(str), "%d", actual_int);
str_len += _len + 1;
string_list_append(&str_list, str, attr);
out_lbl[0] = '\0';

str_len += path_len + 1;
string_list_append(&str_list, path, attr);
snprintf(str, sizeof(str), "%d", actual_int);

string_list_join_concat(output_label, str_len, &str_list, "|");
string_list_deinitialize(&str_list);
_len = strlcpy(out_lbl, label, sizeof(out_lbl));
out_lbl[ _len] = '|';
out_lbl[++_len] = '\0';
_len += strlcpy(out_lbl + _len, str, sizeof(out_lbl) - _len);
out_lbl[ _len] = '|';
out_lbl[++_len] = '\0';
strlcpy(out_lbl + _len, path, sizeof(out_lbl) - _len);

_len = strlcpy(tmp, desc, sizeof(tmp));
tmp[ _len] = ':';
tmp[++_len] = ' ';
tmp[++_len] = '\0';
strlcpy(tmp + _len, str, sizeof(tmp) - _len);
menu_entries_append(list, tmp, output_label,
menu_entries_append(list, tmp, out_lbl,
enum_idx,
0, 0, 0, NULL);

Expand Down

0 comments on commit 2785d2d

Please sign in to comment.