(cheevos) Cleanups - only use snprintf for formatting

This commit is contained in:
libretroadmin 2024-06-16 22:20:15 +02:00
parent 38f278519c
commit 3fc7024df9
7 changed files with 592 additions and 568 deletions

View File

@ -398,15 +398,15 @@ static void rcheevos_show_mastery_placard(void)
#if defined (HAVE_GFX_WIDGETS)
if (gfx_widgets_ready())
{
char msg[128];
char badge_name[32];
const char* displayname = rc_client_get_user_info(rcheevos_locals.client)->display_name;
const bool content_runtime_log = settings->bools.content_runtime_log;
const bool content_runtime_log_aggr = settings->bools.content_runtime_log_aggregate;
char badge_name[32];
char msg[128];
size_t len = strlcpy(msg, displayname, sizeof(msg));
if (len < sizeof(msg) - 12 &&
(content_runtime_log || content_runtime_log_aggr))
if (len < sizeof(msg) - 12
&& (content_runtime_log || content_runtime_log_aggr))
{
const char* content_path = path_get(RARCH_PATH_CONTENT);
const char* core_path = path_get(RARCH_PATH_CORE);
@ -422,7 +422,7 @@ static void rcheevos_show_mastery_placard(void)
runtime_log_add_runtime_usec(runtime_log,
runloop_state->core_runtime_usec);
len += snprintf(msg + len, sizeof(msg) - len, " | ");
len += strlcpy(msg + len, " | ", sizeof(msg) - len);
runtime_log_get_runtime_str(runtime_log, msg + len, sizeof(msg) - len);
msg[sizeof(msg) - 1] = '\0';
@ -430,7 +430,8 @@ static void rcheevos_show_mastery_placard(void)
}
}
snprintf(badge_name, sizeof(badge_name), "i%s", game->badge_name);
len = strlcpy(badge_name, "i", sizeof(badge_name));
strlcpy(badge_name + len, game->badge_name, sizeof(badge_name) - len);
gfx_widgets_push_achievement(title, msg, badge_name);
}
else
@ -474,8 +475,10 @@ static void rcheevos_award_achievement(const rc_client_achievement_t* cheevo)
#endif
{
char buffer[256];
snprintf(buffer, sizeof(buffer), "%s: %s",
msg_hash_to_str(MSG_ACHIEVEMENT_UNLOCKED), cheevo->title);
size_t _len = strlcpy(buffer, msg_hash_to_str(MSG_ACHIEVEMENT_UNLOCKED),
sizeof(buffer));
_len += strlcpy(buffer + _len, ": ", sizeof(buffer) - _len);
strlcpy(buffer + _len, cheevo->title, sizeof(buffer) - _len);
runloop_msg_queue_push(buffer, 0, 2 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
runloop_msg_queue_push(cheevo->description, 0, 3 * 60, false, NULL,
@ -558,12 +561,13 @@ static void rcheevos_lboard_started(const rc_client_leaderboard_t* lboard)
if (settings->bools.cheevos_visibility_lboard_start)
{
char buffer[256];
size_t _len = strlcpy(buffer, msg_hash_to_str(MSG_LEADERBOARD_STARTED),
sizeof(buffer));
_len += strlcpy(buffer + _len, ": ", sizeof(buffer) - _len);
_len += strlcpy(buffer + _len, lboard->title, sizeof(buffer) - _len);
if (lboard->description && *lboard->description)
snprintf(buffer, sizeof(buffer), "%s: %s - %s",
msg_hash_to_str(MSG_LEADERBOARD_STARTED), lboard->title, lboard->description);
else
snprintf(buffer, sizeof(buffer), "%s: %s",
msg_hash_to_str(MSG_LEADERBOARD_STARTED), lboard->title);
snprintf(buffer + _len, sizeof(buffer) - _len, "- %s",
lboard->description);
runloop_msg_queue_push(buffer, 0, 2 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
@ -623,8 +627,9 @@ static void rcheevos_client_log_message(const char* message, const rc_client_t*
static void rcheevos_server_error(const char* api_name, const char* message)
{
char buffer[256];
snprintf(buffer, sizeof(buffer), "%s failed: %s", api_name, message);
size_t _len = strlcpy(buffer, api_name, sizeof(buffer));
_len += strlcpy(buffer + _len, " failed: ", sizeof(buffer) - _len);
_len += strlcpy(buffer + _len, message, sizeof(buffer) - _len);
runloop_msg_queue_push(buffer, 0, 4 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_ERROR);
}
@ -786,8 +791,10 @@ void rcheevos_award_achievement(rcheevos_locals_t* locals,
#endif
{
char buffer[256];
snprintf(buffer, sizeof(buffer), "%s: %s",
msg_hash_to_str(MSG_ACHIEVEMENT_UNLOCKED), cheevo->title);
size_t _len = strlcpy(buffer, msg_hash_to_str(MSG_ACHIEVEMENT_UNLOCKED),
sizeof(buffer));
_len += strlcpy(buffer + _len, ": ", sizeof(buffer) - _len);
_len += strlcpy(buffer + _len, cheevo->title, sizeof(buffer) - _len);
runloop_msg_queue_push(buffer, 0, 2 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
runloop_msg_queue_push(cheevo->description, 0, 3 * 60, false, NULL,
@ -867,7 +874,8 @@ static void rcheevos_assign_leaderboard_tracker_ids(rcheevos_locals_t* locals)
unsigned tracker_id;
char buffer[32];
for (; lboard < end; ++lboard) {
for (; lboard < end; ++lboard)
{
if (lboard->active_tracker_id != 0xFF)
continue;
@ -875,7 +883,8 @@ static void rcheevos_assign_leaderboard_tracker_ids(rcheevos_locals_t* locals)
if (locals->active_lboard_trackers != 0 && lboard->value_hash != 0)
{
scan = locals->game.leaderboards;
for (; scan < end; ++scan) {
for (; scan < end; ++scan)
{
if (scan->active_tracker_id == 0 || scan->active_tracker_id == 0xFF)
continue;
@ -983,7 +992,6 @@ static void rcheevos_lboard_canceled(rcheevos_ralboard_t * lboard,
bool widgets_ready)
{
const settings_t *settings = config_get_ptr();
char buffer[256];
if (!lboard)
return;
@ -997,8 +1005,11 @@ static void rcheevos_lboard_canceled(rcheevos_ralboard_t * lboard,
if (settings->bools.cheevos_visibility_lboard_cancel)
{
snprintf(buffer, sizeof(buffer), "%s: %s",
msg_hash_to_str(MSG_LEADERBOARD_FAILED), lboard->title);
char buffer[256];
size_t _len = strlcpy(buffer, msg_hash_to_str(MSG_LEADERBOARD_FAILED),
sizeof(buffer));
_len += strlcpy(buffer + _len, ": ", sizeof(buffer) - _len);
strlcpy(buffer + _len, lboard->title, sizeof(buffer) - _len);
runloop_msg_queue_push(buffer, 0, 2 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
}
@ -1032,12 +1043,13 @@ static void rcheevos_lboard_started(
if (settings->bools.cheevos_visibility_lboard_start)
{
size_t _len = strlcpy(buffer, msg_hash_to_str(MSG_LEADERBOARD_STARTED),
sizeof(buffer));
_len += strlcpy(buffer + _len, ": ", sizeof(buffer) - _len);
_len += strlcpy(buffer + _len, lboard->title, sizeof(buffer) - _len);
if (lboard->description && *lboard->description)
snprintf(buffer, sizeof(buffer), "%s: %s - %s",
msg_hash_to_str(MSG_LEADERBOARD_STARTED), lboard->title, lboard->description);
else
snprintf(buffer, sizeof(buffer), "%s: %s",
msg_hash_to_str(MSG_LEADERBOARD_STARTED), lboard->title);
snprintf(buffer + _len, sizeof(buffer) - _len, "- %s",
lboard->description);
runloop_msg_queue_push(buffer, 0, 2 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
@ -1782,6 +1794,7 @@ void rcheevos_validate_config_settings(void)
if (!rc_libretro_is_setting_allowed(disallowed_settings, key, val))
{
char buffer[128];
/* TODO/FIXME - localize */
snprintf(buffer, sizeof(buffer), "Hardcore paused. Setting not allowed: %s=%s", key, val);
CHEEVOS_LOG(RCHEEVOS_TAG "%s\n", buffer);
rcheevos_pause_hardcore();
@ -2344,7 +2357,8 @@ static void rcheevos_show_game_placard(void)
if (gfx_widgets_ready())
{
char badge_name[32];
snprintf(badge_name, sizeof(badge_name), "i%s", game->badge_name);
size_t _len = strlcpy(badge_name, "i", sizeof(badge_name));
_len += strlcpy(badge_name + _len, game->badge_name, sizeof(badge_name) - _len);
gfx_widgets_push_achievement(game->title, msg, badge_name);
}
else
@ -2407,12 +2421,13 @@ static void rcheevos_client_login_callback(int result,
const char* error_message, rc_client_t* client, void* userdata)
{
const rc_client_user_t* user;
char msg[256] = "";
if (result != RC_OK)
{
snprintf(msg, sizeof(msg), "RetroAchievements login failed: %s",
error_message);
char msg[256];
size_t _len = strlcpy(msg, "RetroAchievements login failed: ",
sizeof(msg));
_len += strlcpy(msg + _len, error_message, sizeof(msg) - _len);
CHEEVOS_LOG(RCHEEVOS_TAG "%s\n", msg);
runloop_msg_queue_push(msg, 0, 2 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
@ -2444,6 +2459,7 @@ static void rcheevos_client_login_callback(int result,
if (settings->bools.cheevos_visibility_account)
{
/* TODO/FIXME - localize */
char msg[256];
snprintf(msg, sizeof(msg),
"RetroAchievements: Logged in as \"%s\".",
user->display_name);
@ -2595,9 +2611,9 @@ void rcheevos_show_mastery_placard(void)
#if defined (HAVE_GFX_WIDGETS)
if (gfx_widgets_ready())
{
char msg[128];
const bool content_runtime_log = settings->bools.content_runtime_log;
const bool content_runtime_log_aggr = settings->bools.content_runtime_log_aggregate;
char msg[128];
size_t len = strlcpy(msg, rcheevos_locals.displayname, sizeof(msg));
if (len < sizeof(msg) - 12 &&

View File

@ -79,7 +79,7 @@ static void get_first_valid_core(char* path_return, size_t len)
{
if (!ent)
break;
if (strlen(ent->d_name) > strlen(extension)
if (strlen(ent->d_name) > strlen(extension)
&& !strcmp(ent->d_name + strlen(ent->d_name) - strlen(extension), extension))
{
size_t _len = strlcpy(path_return, "sdmc:/retroarch/cores/", len);
@ -244,8 +244,8 @@ static void frontend_ctr_exec(const char *path, bool should_load_game)
is corrupt so we have to quit */
{
char error[PATH_MAX + 32];
snprintf(error, sizeof(error), "Can't launch core: %s", path);
size_t _len = strlcpy(error, "Can't launch core: ", sizeof(error));
strlcpy(error + _len, path, sizeof(error) - _len);
error_and_quit(error);
}
}
@ -335,7 +335,7 @@ static void ctr_check_dspfirm(void)
{
size_t dspfirm_size = ptr[1];
ptr -= 0x40;
if ((ptr + (dspfirm_size >> 2)) >
if ((ptr + (dspfirm_size >> 2)) >
(code_buffer + (code_size >> 2)))
break;
@ -480,7 +480,7 @@ static void frontend_ctr_init(void* data)
static int frontend_ctr_get_rating(void)
{
u8 device_model = 0xFF;
/*(0 = O3DS, 1 = O3DSXL, 2 = N3DS, 3 = 2DS, 4 = N3DSXL, 5 = N2DSXL)*/
CFGU_GetSystemModel(&device_model);
@ -592,7 +592,7 @@ static void frontend_ctr_get_os(char* s, size_t len, int* major, int* minor)
static void frontend_ctr_get_name(char* s, size_t len)
{
u8 device_model = 0xFF;
/*(0 = O3DS, 1 = O3DSXL, 2 = N3DS, 3 = 2DS, 4 = N3DSXL, 5 = N2DSXL)*/
CFGU_GetSystemModel(&device_model);

View File

@ -79,12 +79,10 @@ static void frontend_emscripten_get_env(int *argc, char *argv[],
if (home)
{
base_path[0] = '\0';
user_path[0] = '\0';
snprintf(base_path, sizeof(base_path),
"%s/retroarch", home);
snprintf(user_path, sizeof(user_path),
"%s/retroarch/userdata", home);
size_t _len = strlcpy(base_path, home, sizeof(base_path));
strlcpy(base_path + _len, "/retroarch", sizeof(base_path) - _len);
_len = strlcpy(user_path, home, sizeof(user_path));
strlcpy(user_path + _len, "/retroarch/userdata", sizeof(user_path) - _len);
}
else
{

View File

@ -453,7 +453,7 @@ static void frontend_win32_init(void *data)
static void init_nvda(void)
{
#ifdef HAVE_DYLIB
if ( (g_plat_win32_flags & PLAT_WIN32_FLAG_USE_NVDA)
if ( (g_plat_win32_flags & PLAT_WIN32_FLAG_USE_NVDA)
&& !nvda_lib)
{
if ((nvda_lib = dylib_load("nvdaControllerClient64.dll")))
@ -750,8 +750,8 @@ static void frontend_win32_respawn(char *s, size_t len, char *args)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
char executable_args[PATH_MAX_LENGTH];
char executable_path[PATH_MAX_LENGTH] = {0};
char executable_args[PATH_MAX_LENGTH] = {0};
if (win32_fork_mode != FRONTEND_FORK_RESTART)
return;
@ -761,7 +761,7 @@ static void frontend_win32_respawn(char *s, size_t len, char *args)
path_set(RARCH_PATH_CORE, executable_path);
/* Remove executable path from arguments given to CreateProcess */
snprintf(executable_args, sizeof(executable_args), "%s", strstr(args, ".exe") + 4);
strlcpy(executable_args, strstr(args, ".exe") + 4, sizeof(executable_args));
memset(&si, 0, sizeof(si));
si.cb = sizeof(si);
@ -853,7 +853,7 @@ static const char *accessibility_win_language_id(const char* language)
return "412";
else if (string_is_equal(language,"pl"))
return "415";
else if (string_is_equal(language,"cs"))
else if (string_is_equal(language,"cs"))
return "405";
return "";
}
@ -966,12 +966,12 @@ static bool create_win32_process(char* cmd, const char * input)
size_t input_len = strlen(input);
if (!CreatePipe(&rd, &wr, NULL, input_len))
return false;
SetHandleInformation(rd, HANDLE_FLAG_INHERIT, HANDLE_FLAG_INHERIT);
WriteFile(wr, input, input_len, &dummy, NULL);
CloseHandle(wr);
si.dwFlags |= STARTF_USESTDHANDLES;
si.hStdInput = rd;
si.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
@ -1006,7 +1006,7 @@ static bool is_narrator_running_windows(void)
{
long res = nvdaController_testIfRunning_func();
if (res != 0)
if (res != 0)
{
/* The running nvda service wasn't found, so revert
back to the powershell method
@ -1057,7 +1057,7 @@ static bool accessibility_speak_windows(int speed,
#ifdef HAVE_NVDA
init_nvda();
#endif
if (g_plat_win32_flags & PLAT_WIN32_FLAG_USE_POWERSHELL)
{
const char * template_lang = "powershell.exe -NoProfile -WindowStyle Hidden -Command \"Add-Type -AssemblyName System.Speech; $synth = New-Object System.Speech.Synthesis.SpeechSynthesizer; $synth.SelectVoice(\\\"%s\\\"); $synth.Rate = %s; $synth.Speak($input);\"";
@ -1079,7 +1079,7 @@ static bool accessibility_speak_windows(int speed,
wchar_t *wc = utf8_to_utf16_string_alloc(speak_text);
long res = nvdaController_testIfRunning_func();
if (!wc || res != 0)
if (!wc || res != 0)
{
RARCH_ERR("Error communicating with NVDA\n");
if (wc)

View File

@ -269,7 +269,7 @@ static void frontend_xdk_exec(const char *path, bool should_load_content)
memset(&ptr, 0, sizeof(ptr));
if (should_load_content && !path_is_empty(RARCH_PATH_CONTENT))
snprintf((char*)ptr.Data, sizeof(ptr.Data), "%s", path_get(RARCH_PATH_CONTENT));
strlcpy((char*)ptr.Data, path_get(RARCH_PATH_CONTENT), sizeof(ptr.Data));
if (!string_is_empty(path))
XLaunchNewImage(path, !string_is_empty((const char*)ptr.Data) ? &ptr : NULL);

File diff suppressed because it is too large Load Diff

View File

@ -8171,7 +8171,7 @@ int retroarch_get_capabilities(enum rarch_capabilities type,
_MSC_VER);
#elif defined(__SNC__)
_len = strlcpy(str_out, msg_hash_to_str(MSG_COMPILER), str_len);
_len += snprintf(str_out + _len, str_len - _Len, ": SNC (%d)",
_len += snprintf(str_out + _len, str_len - _len, ": SNC (%d)",
__SN_VER__);
#elif defined(_WIN32) && defined(__GNUC__)
_len = strlcpy(str_out, msg_hash_to_str(MSG_COMPILER), str_len);