From 5f71ecc1d176f2abad2490fb17e0ad08b56c87fb Mon Sep 17 00:00:00 2001 From: twinaphex Date: Thu, 30 Jun 2016 04:59:57 +0200 Subject: [PATCH] Create fill_pathname_join_special_ext --- libretro-common/file/file_path.c | 10 ++++++++++ libretro-common/include/file/file_path.h | 5 +++++ retroarch.c | 9 ++++----- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/libretro-common/file/file_path.c b/libretro-common/file/file_path.c index 6107d6d98a..84a24e1e4f 100644 --- a/libretro-common/file/file_path.c +++ b/libretro-common/file/file_path.c @@ -585,6 +585,16 @@ void fill_pathname_join(char *out_path, retro_assert(strlcat(out_path, path, size) < size); } +void fill_pathname_join_special_ext(char *out_path, + const char *dir, const char *path, + const char *last, const char *ext, + size_t size) +{ + fill_pathname_join(out_path, dir, path, size); + fill_string_join(out_path, last, size); + strlcat(out_path, ext, size); +} + void fill_pathname_join_concat(char *out_path, const char *dir, const char *path, const char *concat, diff --git a/libretro-common/include/file/file_path.h b/libretro-common/include/file/file_path.h index 236991534a..9e753c0096 100644 --- a/libretro-common/include/file/file_path.h +++ b/libretro-common/include/file/file_path.h @@ -310,6 +310,11 @@ void fill_pathname_resolve_relative(char *out_path, const char *in_refpath, void fill_pathname_join(char *out_path, const char *dir, const char *path, size_t size); +void fill_pathname_join_special_ext(char *out_path, + const char *dir, const char *path, + const char *last, const char *ext, + size_t size); + void fill_pathname_join_concat(char *out_path, const char *dir, const char *path, const char *concat, diff --git a/retroarch.c b/retroarch.c index da8b473ef0..b1d18ad545 100644 --- a/retroarch.c +++ b/retroarch.c @@ -1219,11 +1219,10 @@ bool retroarch_validate_game_options(char *s, size_t len, bool mkdir) APPLICATION_SPECIAL_DIRECTORY_CONFIG); /* Concatenate strings into full paths for game_path */ - fill_pathname_join(s, - config_directory, core_name, len); - fill_string_join(s, game_name, len); - strlcat(s, - file_path_str(FILE_PATH_OPT_EXTENSION), len); + fill_pathname_join_special_ext(s, + config_directory, core_name, game_name, + file_path_str(FILE_PATH_OPT_EXTENSION), + len); fill_pathname_join(core_path, config_directory, core_name, sizeof(core_path));