use snprintf instead of multiple consecutive strlcpy/strlcats

This commit is contained in:
twinaphex 2021-05-26 05:22:18 +02:00
parent a84c9022af
commit 0dfb2b57fb

View File

@ -2673,15 +2673,21 @@ int generic_menu_entry_action(
} }
if (!string_is_empty(title_name)) if (!string_is_empty(title_name))
snprintf(speak_string, sizeof(speak_string),
"%s %s", title_name, current_label);
else
strlcpy(speak_string, current_label, sizeof(speak_string));
if (!string_is_equal(current_value, "..."))
{ {
strlcat(speak_string, " ", sizeof(speak_string)); if (!string_is_equal(current_value, "..."))
strlcat(speak_string, current_value, sizeof(speak_string)); snprintf(speak_string, sizeof(speak_string),
"%s %s %s", title_name, current_label, current_value);
else
snprintf(speak_string, sizeof(speak_string),
"%s %s", title_name, current_label);
}
else
{
if (!string_is_equal(current_value, "..."))
snprintf(speak_string, sizeof(speak_string),
"%s %s", current_label, current_value);
else
strlcpy(speak_string, current_label, sizeof(speak_string));
} }
if (!string_is_empty(speak_string)) if (!string_is_empty(speak_string))
@ -5114,12 +5120,11 @@ enum rarch_shader_type menu_driver_get_last_shader_pass_type(void)
return menu->last_shader_selection.pass_type; return menu->last_shader_selection.pass_type;
} }
void menu_driver_get_last_shader_path_int( static void menu_driver_get_last_shader_path_int(
struct rarch_state *p_rarch, enum rarch_shader_type type, settings_t *settings, enum rarch_shader_type type,
const char *shader_dir, const char *shader_file_name, const char *shader_dir, const char *shader_file_name,
const char **dir_out, const char **file_name_out) const char **dir_out, const char **file_name_out)
{ {
settings_t *settings = p_rarch->configuration_settings;
bool remember_last_dir = settings->bools.video_shader_remember_last_dir; bool remember_last_dir = settings->bools.video_shader_remember_last_dir;
const char *video_shader_dir = settings->paths.directory_video_shader; const char *video_shader_dir = settings->paths.directory_video_shader;
@ -5159,6 +5164,7 @@ void menu_driver_get_last_shader_preset_path(
const char **directory, const char **file_name) const char **directory, const char **file_name)
{ {
struct rarch_state *p_rarch = &rarch_st; struct rarch_state *p_rarch = &rarch_st;
settings_t *settings = p_rarch->configuration_settings;
menu_handle_t *menu = p_rarch->menu_driver_data; menu_handle_t *menu = p_rarch->menu_driver_data;
enum rarch_shader_type type = RARCH_SHADER_NONE; enum rarch_shader_type type = RARCH_SHADER_NONE;
const char *shader_dir = NULL; const char *shader_dir = NULL;
@ -5171,7 +5177,7 @@ void menu_driver_get_last_shader_preset_path(
shader_file_name = menu->last_shader_selection.preset_file_name; shader_file_name = menu->last_shader_selection.preset_file_name;
} }
menu_driver_get_last_shader_path_int(p_rarch, type, menu_driver_get_last_shader_path_int(settings, type,
shader_dir, shader_file_name, shader_dir, shader_file_name,
directory, file_name); directory, file_name);
} }
@ -5181,6 +5187,7 @@ void menu_driver_get_last_shader_pass_path(
{ {
struct rarch_state *p_rarch = &rarch_st; struct rarch_state *p_rarch = &rarch_st;
menu_handle_t *menu = p_rarch->menu_driver_data; menu_handle_t *menu = p_rarch->menu_driver_data;
settings_t *settings = p_rarch->configuration_settings;
enum rarch_shader_type type = RARCH_SHADER_NONE; enum rarch_shader_type type = RARCH_SHADER_NONE;
const char *shader_dir = NULL; const char *shader_dir = NULL;
const char *shader_file_name = NULL; const char *shader_file_name = NULL;
@ -5192,7 +5199,7 @@ void menu_driver_get_last_shader_pass_path(
shader_file_name = menu->last_shader_selection.pass_file_name; shader_file_name = menu->last_shader_selection.pass_file_name;
} }
menu_driver_get_last_shader_path_int(p_rarch, type, menu_driver_get_last_shader_path_int(settings, type,
shader_dir, shader_file_name, shader_dir, shader_file_name,
directory, file_name); directory, file_name);
} }
@ -6592,15 +6599,15 @@ finish:
static void handle_discord_join(const char* secret) static void handle_discord_join(const char* secret)
{ {
char url[2048] = FILE_PATH_LOBBY_LIBRETRO_URL; char url[2048];
struct string_list *list = string_split(secret, "|"); struct string_list *list = string_split(secret, "|");
struct rarch_state *p_rarch = &rarch_st; struct rarch_state *p_rarch = &rarch_st;
discord_state_t *discord_st = &p_rarch->discord_st; discord_state_t *discord_st = &p_rarch->discord_st;
strlcpy(discord_st->peer_party_id, strlcpy(discord_st->peer_party_id,
list->elems[0].data, sizeof(discord_st->peer_party_id)); list->elems[0].data, sizeof(discord_st->peer_party_id));
strlcat(url, discord_st->peer_party_id, sizeof(url)); snprintf(url, sizeof(url), FILE_PATH_LOBBY_LIBRETRO_URL "%s/",
strlcat(url, "/", sizeof(url)); discord_st->peer_party_id);
RARCH_LOG("[DISCORD]: Querying lobby id: %s at %s\n", RARCH_LOG("[DISCORD]: Querying lobby id: %s at %s\n",
discord_st->peer_party_id, url); discord_st->peer_party_id, url);
@ -10867,7 +10874,7 @@ bool command_set_shader(command_t *cmd, const char *arg)
/* TRANSLATION */ /* TRANSLATION */
#ifdef HAVE_TRANSLATE #ifdef HAVE_TRANSLATE
static bool task_auto_translate_callback(struct rarch_state *p_rarch) static bool task_auto_translate_callback(void)
{ {
bool was_paused = runloop_state.paused; bool was_paused = runloop_state.paused;
command_event(CMD_EVENT_AI_SERVICE_CALL, &was_paused); command_event(CMD_EVENT_AI_SERVICE_CALL, &was_paused);
@ -10924,7 +10931,7 @@ task_finished:
task_set_finished(task, true); task_set_finished(task, true);
if (*mode_ptr == 1 || *mode_ptr == 2) if (*mode_ptr == 1 || *mode_ptr == 2)
task_auto_translate_callback(p_rarch); task_auto_translate_callback();
if (task->user_data) if (task->user_data)
free(task->user_data); free(task->user_data);
} }
@ -12908,7 +12915,7 @@ static bool command_event_save_core_config(
/* In case of collision, find an alternative name. */ /* In case of collision, find an alternative name. */
for (i = 0; i < 16; i++) for (i = 0; i < 16; i++)
{ {
char tmp[64] = {0}; char tmp[64];
fill_pathname_base_noext( fill_pathname_base_noext(
config_name, config_name,
@ -12919,9 +12926,13 @@ static bool command_event_save_core_config(
sizeof(config_path)); sizeof(config_path));
if (i) if (i)
snprintf(tmp, sizeof(tmp), "-%u", i); snprintf(tmp, sizeof(tmp), "-%u.cfg", i);
else
{
tmp[0] = '\0';
strlcpy(tmp, ".cfg", sizeof(tmp));
}
strlcat(tmp, ".cfg", sizeof(tmp));
strlcat(config_path, tmp, sizeof(config_path)); strlcat(config_path, tmp, sizeof(config_path));
if (!path_is_valid(config_path)) if (!path_is_valid(config_path))
@ -35502,22 +35513,23 @@ bool retroarch_main_init(int argc, char *argv[])
{ {
char str_output[256]; char str_output[256];
char str[128]; char str[128];
str[0] = str_output[0] = '\0'; str[0] = '\0';
retroarch_get_capabilities(RARCH_CAPABILITIES_CPU, str, sizeof(str)); retroarch_get_capabilities(RARCH_CAPABILITIES_CPU, str, sizeof(str));
#ifdef HAVE_GIT_VERSION
snprintf(str_output, sizeof(str_output), snprintf(str_output, sizeof(str_output),
"%s: %s", "%s: %s" "\n" FILE_PATH_LOG_INFO " Built: " __DATE__ "\n" FILE_PATH_LOG_INFO " Version: " PACKAGE_VERSION "\n" FILE_PATH_LOG_INFO " Git: %s" "\n" FILE_PATH_LOG_INFO " =================================================\n",
msg_hash_to_str(MSG_CAPABILITIES),
str,
retroarch_git_version
);
#else
snprintf(str_output, sizeof(str_output),
"%s: %s" "\n" FILE_PATH_LOG_INFO " Built: " __DATE__ "\n" FILE_PATH_LOG_INFO " Version: " PACKAGE_VERSION "\n" FILE_PATH_LOG_INFO " =================================================\n",
msg_hash_to_str(MSG_CAPABILITIES), msg_hash_to_str(MSG_CAPABILITIES),
str); str);
strlcat(str_output, "\n" FILE_PATH_LOG_INFO " Built: " __DATE__ "\n" FILE_PATH_LOG_INFO " Version: " PACKAGE_VERSION "\n", sizeof(str_output));
#ifdef HAVE_GIT_VERSION
strlcat(str_output, FILE_PATH_LOG_INFO " Git: ", sizeof(str_output));
strlcat(str_output, retroarch_git_version, sizeof(str_output));
strlcat(str_output, "\n", sizeof(str_output));
#endif #endif
strlcat(str_output, FILE_PATH_LOG_INFO " =================================================\n", sizeof(str_output));
RARCH_LOG_OUTPUT(str_output); RARCH_LOG_OUTPUT(str_output);
} }
} }