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 */
const char *msg_shader = msg_hash_to_str(MSG_SHADER);
size_t _len = strlcpy(msg, msg_shader, sizeof(msg));
msg[_len ] = ':';
msg[_len+1] = ' ';
msg[_len+2] = '\0';
msg[ _len] = ':';
msg[++_len] = ' ';
if (preset_file)
{
msg[_len+2] = '"';
msg[_len+3] = '\0';
_len = strlcat(msg, preset_file, sizeof(msg));
msg[_len ] = '"';
msg[_len+1] = '\0';
msg[++_len] = '"';
msg[++_len] = '\0';
_len += strlcpy(msg + _len,
preset_file, sizeof(msg) - _len);
msg[ _len] = '"';
msg[++_len] = '\0';
}
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
if (dispwidget_get_ptr()->active)

View File

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

View File

@ -1761,9 +1761,11 @@ static unsigned menu_displaylist_parse_system_info(file_list_t *list)
/* CPU Cores */
{
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),
cores);
sizeof(entry));
snprintf(entry + _len, sizeof(entry) - _len,
": %u", cores);
if (menu_entries_append(list, entry, "",
MENU_ENUM_LABEL_CPU_CORES, MENU_SETTINGS_CORE_INFO_NONE,
0, 0, NULL))
@ -1895,8 +1897,9 @@ static unsigned menu_displaylist_parse_system_info(file_list_t *list)
entry[ _len] = ':';
entry[++_len] = ' ';
entry[++_len] = '\0';
_len += snprintf(entry + _len, sizeof(entry) - _len,
"%s (v%d.%d)", os_ver, major, minor);
_len += strlcpy (entry + _len, os_ver, sizeof(entry) - _len);
_len += snprintf(entry + _len, sizeof(entry) - _len,
" (v%d.%d)", major, minor);
if (menu_entries_append(list, entry, "",
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE,
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();
if (memory_used != 0 && memory_total != 0)
{
snprintf(entry, sizeof(entry), "%s: %" PRIu64 "/%" PRIu64 " MB",
msg_hash_to_str(MSG_MEMORY),
BYTES_TO_MB(memory_used),
BYTES_TO_MB(memory_total));
_len = strlcpy(entry,
msg_hash_to_str(MSG_MEMORY), sizeof(entry));
snprintf(entry + _len, sizeof(entry) - _len, ": %" PRIu64 "/%" PRIu64 " MB",
BYTES_TO_MB(memory_used), BYTES_TO_MB(memory_total));
if (menu_entries_append(list, entry, "",
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY,
MENU_SETTINGS_CORE_INFO_NONE,
@ -1944,8 +1947,9 @@ static unsigned menu_displaylist_parse_system_info(file_list_t *list)
/* N/A */
if (state == FRONTEND_POWERSTATE_NONE)
snprintf(tmp, sizeof(tmp), "%s",
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE));
strlcpy(tmp,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE),
sizeof(tmp));
/* n% (No Source) */
else if (state == FRONTEND_POWERSTATE_NO_SOURCE)
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));
/* Power Source */
_len = snprintf(entry, sizeof(entry), "%s: ",
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE));
_len = strlcpy(entry, 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);
if (menu_entries_append(list, entry, "",
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;
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),
val);
sizeof(entry));
snprintf(entry + _len, sizeof(entry) - _len, ": %.2f", val);
if (menu_entries_append(list, entry, "",
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE,
0, 0, NULL))
@ -2015,9 +2023,10 @@ static unsigned menu_displaylist_parse_system_info(file_list_t *list)
metrics.type = DISPLAY_METRIC_MM_HEIGHT;
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),
val);
sizeof(entry));
snprintf(entry + _len, sizeof(entry) - _len, ": %.2f", val);
if (menu_entries_append(list, entry, "",
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE,
0, 0, NULL))
@ -2028,9 +2037,10 @@ static unsigned menu_displaylist_parse_system_info(file_list_t *list)
metrics.type = DISPLAY_METRIC_DPI;
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),
val);
sizeof(entry));
snprintf(entry + _len, sizeof(entry) - _len, ": %.2f", val);
if (menu_entries_append(list, entry, "",
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE,
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,
char *s, size_t len)
{
size_t _len;
struct retro_game_geometry *geom = NULL;
video_driver_state_t *video_st = video_state_get_ptr();
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;
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))
snprintf(s, len, "%u (%ux)",
*setting->value.target.unsigned_integer,
snprintf(s + _len, len - _len, " (%ux)",
*setting->value.target.unsigned_integer / geom->base_width);
else if ((rotation % 2) && (*setting->value.target.unsigned_integer % geom->base_height == 0))
snprintf(s, len, "%u (%ux)",
*setting->value.target.unsigned_integer,
snprintf(s + _len, len - _len, " (%ux)",
*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,
char *s, size_t len)
{
size_t _len;
struct retro_game_geometry *geom = NULL;
video_driver_state_t *video_st = video_state_get_ptr();
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;
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))
snprintf(s, len, "%u (%ux)",
*setting->value.target.unsigned_integer,
snprintf(s + _len, len - _len, " (%ux)",
*setting->value.target.unsigned_integer / geom->base_height);
else if ((rotation % 2) && (*setting->value.target.unsigned_integer % geom->base_width == 0))
snprintf(s, len, "%u (%ux)",
*setting->value.target.unsigned_integer,
snprintf(s + _len, len - _len, " (%ux)",
*setting->value.target.unsigned_integer / geom->base_width);
else
snprintf(s, len, "%u",
*setting->value.target.unsigned_integer);
}
#ifdef HAVE_WASAPI
@ -7766,10 +7762,12 @@ static void get_string_representation_input_mouse_index(
if (!string_is_empty(device_name))
strlcpy(s, device_name, len);
else if (map > 0)
snprintf(s, len,
"%s (#%u)",
{
size_t _len = strlcpy(s,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE),
map + 1);
len);
snprintf(s + _len, len - _len, " (#%u)", map + 1);
}
else
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 label_split_joycon[MAX_USERS][64];
#endif
tmp_string[0] = '\0';
snprintf(tmp_string, sizeof(tmp_string), "input_player%u", user + 1);
size_t _len = strlcpy(tmp_string, "input_player", sizeof(tmp_string));
snprintf(tmp_string + _len, sizeof(tmp_string) - _len, "%u", user + 1);
snprintf(analog_to_digital[user], sizeof(analog_to_digital[user]),
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_label[MAX_USERS][255];
unsigned user_value = user + 1;
snprintf(binds_list[user], sizeof(binds_list[user]), "%d_input_binds_list", user_value);
size_t _len = snprintf(binds_list[user], sizeof(binds_list[user]), "%d", user_value);
strlcpy(binds_list[user] + _len, "_input_binds_list", sizeof(binds_list[user]) - _len);
snprintf(binds_label[user], sizeof(binds_label[user]),
val_input_user_binds, user_value);
@ -21524,9 +21520,8 @@ static bool setting_append_list(
for (user = 0; user < max_users; user++)
{
char s1[64], s2[64];
snprintf(s1, sizeof(s1), "%s_user_p%d",
lbl_network_remote_enable, user + 1);
size_t _len = strlcpy(s1, lbl_network_remote_enable, sizeof(s1));
snprintf(s1 + _len, sizeof(s1) - _len, "_user_p%d", user + 1);
snprintf(s2, sizeof(s2), val_network_remote_enable, user + 1);
CONFIG_BOOL_ALT(