Rework some snprintf/strlcat calls

This commit is contained in:
libretroadmin 2023-06-21 09:25:04 +02:00
parent 57906892d8
commit 22dc6aff5a
4 changed files with 75 additions and 61 deletions

View File

@ -2988,19 +2988,24 @@ bool video_shader_apply_shader(
/* Display message */ /* Display message */
const char *msg_shader = msg_hash_to_str(MSG_SHADER); const char *msg_shader = msg_hash_to_str(MSG_SHADER);
size_t _len = strlcpy(msg, msg_shader, sizeof(msg)); size_t _len = strlcpy(msg, msg_shader, sizeof(msg));
msg[_len ] = ':'; msg[ _len] = ':';
msg[_len+1] = ' '; msg[++_len] = ' ';
msg[_len+2] = '\0';
if (preset_file) if (preset_file)
{ {
msg[_len+2] = '"'; msg[++_len] = '"';
msg[_len+3] = '\0'; msg[++_len] = '\0';
_len = strlcat(msg, preset_file, sizeof(msg)); _len += strlcpy(msg + _len,
msg[_len ] = '"'; preset_file, sizeof(msg) - _len);
msg[_len+1] = '\0'; msg[ _len] = '"';
msg[++_len] = '\0';
} }
else else
strlcat(msg, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NONE), sizeof(msg)); {
msg[++_len] = '\0';
_len += strlcpy(msg + _len,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NONE),
sizeof(msg) - _len);
}
#ifdef HAVE_GFX_WIDGETS #ifdef HAVE_GFX_WIDGETS
if (dispwidget_get_ptr()->active) if (dispwidget_get_ptr()->active)

View File

@ -3075,29 +3075,33 @@ void input_config_get_bind_string_joykey(
} }
else else
{ {
const char *na_str = size_t len = strlcpy(buf, prefix, size);
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE); len += snprintf(buf + len, size - len, "Hat #%u ",
size_t len = snprintf(buf, size, "%sHat #%u ", prefix,
(unsigned)GET_HAT(bind->joykey)); (unsigned)GET_HAT(bind->joykey));
switch (GET_HAT_DIR(bind->joykey)) switch (GET_HAT_DIR(bind->joykey))
{ {
case HAT_UP_MASK: case HAT_UP_MASK:
snprintf(buf + len, size - len, "up (%s)", na_str); len += strlcpy(buf + len, "up (", size - len);
break; break;
case HAT_DOWN_MASK: case HAT_DOWN_MASK:
snprintf(buf + len, size - len, "down (%s)", na_str); len += strlcpy(buf + len, "down (", size - len);
break; break;
case HAT_LEFT_MASK: case HAT_LEFT_MASK:
snprintf(buf + len, size - len, "left (%s)", na_str); len += strlcpy(buf + len, "left (", size - len);
break; break;
case HAT_RIGHT_MASK: case HAT_RIGHT_MASK:
snprintf(buf + len, size - len, "right (%s)", na_str); len += strlcpy(buf + len, "right (", size - len);
break; break;
default: default:
snprintf(buf + len, size - len, "? (%s)", na_str); len += strlcpy(buf + len, "? (", size - len);
break; break;
} }
len += strlcpy(buf + len,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE),
size - len);
buf[ len] = ')';
buf[++len] = '\0';
} }
} }
else else

View File

@ -1761,9 +1761,11 @@ static unsigned menu_displaylist_parse_system_info(file_list_t *list)
/* CPU Cores */ /* CPU Cores */
{ {
unsigned cores = cpu_features_get_core_amount(); unsigned cores = cpu_features_get_core_amount();
snprintf(entry, sizeof(entry), "%s: %u", size_t _len = strlcpy(entry,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CPU_CORES), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CPU_CORES),
cores); sizeof(entry));
snprintf(entry + _len, sizeof(entry) - _len,
": %u", cores);
if (menu_entries_append(list, entry, "", if (menu_entries_append(list, entry, "",
MENU_ENUM_LABEL_CPU_CORES, MENU_SETTINGS_CORE_INFO_NONE, MENU_ENUM_LABEL_CPU_CORES, MENU_SETTINGS_CORE_INFO_NONE,
0, 0, NULL)) 0, 0, NULL))
@ -1895,8 +1897,9 @@ static unsigned menu_displaylist_parse_system_info(file_list_t *list)
entry[ _len] = ':'; entry[ _len] = ':';
entry[++_len] = ' '; entry[++_len] = ' ';
entry[++_len] = '\0'; entry[++_len] = '\0';
_len += strlcpy (entry + _len, os_ver, sizeof(entry) - _len);
_len += snprintf(entry + _len, sizeof(entry) - _len, _len += snprintf(entry + _len, sizeof(entry) - _len,
"%s (v%d.%d)", os_ver, major, minor); " (v%d.%d)", major, minor);
if (menu_entries_append(list, entry, "", if (menu_entries_append(list, entry, "",
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE, MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE,
0, 0, NULL)) 0, 0, NULL))
@ -1921,10 +1924,10 @@ static unsigned menu_displaylist_parse_system_info(file_list_t *list)
uint64_t memory_used = memory_total - frontend_driver_get_free_memory(); uint64_t memory_used = memory_total - frontend_driver_get_free_memory();
if (memory_used != 0 && memory_total != 0) if (memory_used != 0 && memory_total != 0)
{ {
snprintf(entry, sizeof(entry), "%s: %" PRIu64 "/%" PRIu64 " MB", _len = strlcpy(entry,
msg_hash_to_str(MSG_MEMORY), msg_hash_to_str(MSG_MEMORY), sizeof(entry));
BYTES_TO_MB(memory_used), snprintf(entry + _len, sizeof(entry) - _len, ": %" PRIu64 "/%" PRIu64 " MB",
BYTES_TO_MB(memory_total)); BYTES_TO_MB(memory_used), BYTES_TO_MB(memory_total));
if (menu_entries_append(list, entry, "", if (menu_entries_append(list, entry, "",
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY, MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY,
MENU_SETTINGS_CORE_INFO_NONE, MENU_SETTINGS_CORE_INFO_NONE,
@ -1944,8 +1947,9 @@ static unsigned menu_displaylist_parse_system_info(file_list_t *list)
/* N/A */ /* N/A */
if (state == FRONTEND_POWERSTATE_NONE) if (state == FRONTEND_POWERSTATE_NONE)
snprintf(tmp, sizeof(tmp), "%s", strlcpy(tmp,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE)); msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE),
sizeof(tmp));
/* n% (No Source) */ /* n% (No Source) */
else if (state == FRONTEND_POWERSTATE_NO_SOURCE) else if (state == FRONTEND_POWERSTATE_NO_SOURCE)
snprintf(tmp, sizeof(tmp), "%d%% (%s)", percent, snprintf(tmp, sizeof(tmp), "%d%% (%s)", percent,
@ -1964,8 +1968,11 @@ static unsigned menu_displaylist_parse_system_info(file_list_t *list)
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_DISCHARGING)); msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_DISCHARGING));
/* Power Source */ /* Power Source */
_len = snprintf(entry, sizeof(entry), "%s: ", _len = strlcpy(entry, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE)); sizeof(entry));
entry[ _len] = ':';
entry[++_len] = ' ';
entry[++_len] = '\0';
strlcpy(entry + _len, tmp, sizeof(entry) - _len); strlcpy(entry + _len, tmp, sizeof(entry) - _len);
if (menu_entries_append(list, entry, "", if (menu_entries_append(list, entry, "",
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE, MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE,
@ -2002,9 +2009,10 @@ static unsigned menu_displaylist_parse_system_info(file_list_t *list)
metrics.type = DISPLAY_METRIC_MM_WIDTH; metrics.type = DISPLAY_METRIC_MM_WIDTH;
if (video_context_driver_get_metrics(&metrics)) if (video_context_driver_get_metrics(&metrics))
{ {
snprintf(entry, sizeof(entry), "%s: %.2f", _len = strlcpy(entry,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_MM_WIDTH), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_MM_WIDTH),
val); sizeof(entry));
snprintf(entry + _len, sizeof(entry) - _len, ": %.2f", val);
if (menu_entries_append(list, entry, "", if (menu_entries_append(list, entry, "",
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE, MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE,
0, 0, NULL)) 0, 0, NULL))
@ -2015,9 +2023,10 @@ static unsigned menu_displaylist_parse_system_info(file_list_t *list)
metrics.type = DISPLAY_METRIC_MM_HEIGHT; metrics.type = DISPLAY_METRIC_MM_HEIGHT;
if (video_context_driver_get_metrics(&metrics)) if (video_context_driver_get_metrics(&metrics))
{ {
snprintf(entry, sizeof(entry), "%s: %.2f", _len = strlcpy(entry,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_MM_HEIGHT), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_MM_HEIGHT),
val); sizeof(entry));
snprintf(entry + _len, sizeof(entry) - _len, ": %.2f", val);
if (menu_entries_append(list, entry, "", if (menu_entries_append(list, entry, "",
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE, MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE,
0, 0, NULL)) 0, 0, NULL))
@ -2028,9 +2037,10 @@ static unsigned menu_displaylist_parse_system_info(file_list_t *list)
metrics.type = DISPLAY_METRIC_DPI; metrics.type = DISPLAY_METRIC_DPI;
if (video_context_driver_get_metrics(&metrics)) if (video_context_driver_get_metrics(&metrics))
{ {
snprintf(entry, sizeof(entry), "%s: %.2f", _len = strlcpy(entry,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_DPI), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_DPI),
val); sizeof(entry));
snprintf(entry + _len, sizeof(entry) - _len, ": %.2f", val);
if (menu_entries_append(list, entry, "", if (menu_entries_append(list, entry, "",
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE, MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE,
0, 0, NULL)) 0, 0, NULL))

View File

@ -4830,6 +4830,7 @@ static void setting_get_string_representation_uint_video_monitor_index(rarch_set
static void setting_get_string_representation_uint_custom_viewport_width(rarch_setting_t *setting, static void setting_get_string_representation_uint_custom_viewport_width(rarch_setting_t *setting,
char *s, size_t len) char *s, size_t len)
{ {
size_t _len;
struct retro_game_geometry *geom = NULL; struct retro_game_geometry *geom = NULL;
video_driver_state_t *video_st = video_state_get_ptr(); video_driver_state_t *video_st = video_state_get_ptr();
struct retro_system_av_info *av_info = &video_st->av_info; struct retro_system_av_info *av_info = &video_st->av_info;
@ -4838,23 +4839,21 @@ static void setting_get_string_representation_uint_custom_viewport_width(rarch_s
return; return;
geom = (struct retro_game_geometry*)&av_info->geometry; geom = (struct retro_game_geometry*)&av_info->geometry;
_len = snprintf(s, len, "%u",
*setting->value.target.unsigned_integer);
if (!(rotation % 2) && (*setting->value.target.unsigned_integer % geom->base_width == 0)) if (!(rotation % 2) && (*setting->value.target.unsigned_integer % geom->base_width == 0))
snprintf(s, len, "%u (%ux)", snprintf(s + _len, len - _len, " (%ux)",
*setting->value.target.unsigned_integer,
*setting->value.target.unsigned_integer / geom->base_width); *setting->value.target.unsigned_integer / geom->base_width);
else if ((rotation % 2) && (*setting->value.target.unsigned_integer % geom->base_height == 0)) else if ((rotation % 2) && (*setting->value.target.unsigned_integer % geom->base_height == 0))
snprintf(s, len, "%u (%ux)", snprintf(s + _len, len - _len, " (%ux)",
*setting->value.target.unsigned_integer,
*setting->value.target.unsigned_integer / geom->base_height); *setting->value.target.unsigned_integer / geom->base_height);
else
snprintf(s, len, "%u",
*setting->value.target.unsigned_integer);
} }
static void setting_get_string_representation_uint_custom_viewport_height(rarch_setting_t *setting, static void setting_get_string_representation_uint_custom_viewport_height(rarch_setting_t *setting,
char *s, size_t len) char *s, size_t len)
{ {
size_t _len;
struct retro_game_geometry *geom = NULL; struct retro_game_geometry *geom = NULL;
video_driver_state_t *video_st = video_state_get_ptr(); video_driver_state_t *video_st = video_state_get_ptr();
struct retro_system_av_info *av_info = &video_st->av_info; struct retro_system_av_info *av_info = &video_st->av_info;
@ -4863,18 +4862,15 @@ static void setting_get_string_representation_uint_custom_viewport_height(rarch_
return; return;
geom = (struct retro_game_geometry*)&av_info->geometry; geom = (struct retro_game_geometry*)&av_info->geometry;
_len = snprintf(s, len, "%u",
*setting->value.target.unsigned_integer);
if (!(rotation % 2) && (*setting->value.target.unsigned_integer % geom->base_height == 0)) if (!(rotation % 2) && (*setting->value.target.unsigned_integer % geom->base_height == 0))
snprintf(s, len, "%u (%ux)", snprintf(s + _len, len - _len, " (%ux)",
*setting->value.target.unsigned_integer,
*setting->value.target.unsigned_integer / geom->base_height); *setting->value.target.unsigned_integer / geom->base_height);
else if ((rotation % 2) && (*setting->value.target.unsigned_integer % geom->base_width == 0)) else if ((rotation % 2) && (*setting->value.target.unsigned_integer % geom->base_width == 0))
snprintf(s, len, "%u (%ux)", snprintf(s + _len, len - _len, " (%ux)",
*setting->value.target.unsigned_integer,
*setting->value.target.unsigned_integer / geom->base_width); *setting->value.target.unsigned_integer / geom->base_width);
else
snprintf(s, len, "%u",
*setting->value.target.unsigned_integer);
} }
#ifdef HAVE_WASAPI #ifdef HAVE_WASAPI
@ -7766,10 +7762,12 @@ static void get_string_representation_input_mouse_index(
if (!string_is_empty(device_name)) if (!string_is_empty(device_name))
strlcpy(s, device_name, len); strlcpy(s, device_name, len);
else if (map > 0) else if (map > 0)
snprintf(s, len, {
"%s (#%u)", size_t _len = strlcpy(s,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE),
map + 1); len);
snprintf(s + _len, len - _len, " (#%u)", map + 1);
}
else else
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DONT_CARE), len); strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DONT_CARE), len);
} }
@ -8954,10 +8952,8 @@ static bool setting_append_list_input_player_options(
static char split_joycon[MAX_USERS][64]; static char split_joycon[MAX_USERS][64];
static char label_split_joycon[MAX_USERS][64]; static char label_split_joycon[MAX_USERS][64];
#endif #endif
size_t _len = strlcpy(tmp_string, "input_player", sizeof(tmp_string));
tmp_string[0] = '\0'; snprintf(tmp_string + _len, sizeof(tmp_string) - _len, "%u", user + 1);
snprintf(tmp_string, sizeof(tmp_string), "input_player%u", user + 1);
snprintf(analog_to_digital[user], sizeof(analog_to_digital[user]), snprintf(analog_to_digital[user], sizeof(analog_to_digital[user]),
msg_hash_to_str(MENU_ENUM_LABEL_INPUT_PLAYER_ANALOG_DPAD_MODE), user + 1); msg_hash_to_str(MENU_ENUM_LABEL_INPUT_PLAYER_ANALOG_DPAD_MODE), user + 1);
@ -14831,8 +14827,8 @@ static bool setting_append_list(
static char binds_list[MAX_USERS][255]; static char binds_list[MAX_USERS][255];
static char binds_label[MAX_USERS][255]; static char binds_label[MAX_USERS][255];
unsigned user_value = user + 1; unsigned user_value = user + 1;
size_t _len = snprintf(binds_list[user], sizeof(binds_list[user]), "%d", user_value);
snprintf(binds_list[user], sizeof(binds_list[user]), "%d_input_binds_list", user_value); strlcpy(binds_list[user] + _len, "_input_binds_list", sizeof(binds_list[user]) - _len);
snprintf(binds_label[user], sizeof(binds_label[user]), snprintf(binds_label[user], sizeof(binds_label[user]),
val_input_user_binds, user_value); val_input_user_binds, user_value);
@ -21524,9 +21520,8 @@ static bool setting_append_list(
for (user = 0; user < max_users; user++) for (user = 0; user < max_users; user++)
{ {
char s1[64], s2[64]; char s1[64], s2[64];
size_t _len = strlcpy(s1, lbl_network_remote_enable, sizeof(s1));
snprintf(s1, sizeof(s1), "%s_user_p%d", snprintf(s1 + _len, sizeof(s1) - _len, "_user_p%d", user + 1);
lbl_network_remote_enable, user + 1);
snprintf(s2, sizeof(s2), val_network_remote_enable, user + 1); snprintf(s2, sizeof(s2), val_network_remote_enable, user + 1);
CONFIG_BOOL_ALT( CONFIG_BOOL_ALT(