From 96ffd8e0253a1ba0cc1fe5aa6965ab734f112117 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 17 Dec 2016 12:55:38 +0100 Subject: [PATCH] Revert "Remove HAVE_COMPRESSION ifdefs in file_path.c" This reverts commit 4103b70833bacdd6fdd5af697bff92b996cd4f1c. --- configuration.c | 8 ++++---- file_path_special.c | 22 ---------------------- file_path_special.h | 15 --------------- gfx/drivers_shader/glslang_util.cpp | 4 +--- libretro-common/file/file_path.c | 8 ++++++++ menu/cbs/menu_cbs_get_value.c | 2 +- menu/cbs/menu_cbs_ok.c | 5 ++--- menu/menu_displaylist.c | 2 +- retroarch.c | 2 +- tasks/task_content.c | 2 +- tasks/task_decompress.c | 2 +- tasks/task_http.c | 4 +--- tasks/task_screenshot.c | 3 +-- 13 files changed, 22 insertions(+), 57 deletions(-) diff --git a/configuration.c b/configuration.c index 4a09693356..0f6ee0a82c 100644 --- a/configuration.c +++ b/configuration.c @@ -2233,7 +2233,7 @@ bool config_load_override(void) if (system) core_name = system->info.library_name; - game_name = path_basename_special(path_get(RARCH_PATH_BASENAME)); + game_name = path_basename(path_get(RARCH_PATH_BASENAME)); if (string_is_empty(core_name) || string_is_empty(game_name)) return false; @@ -2390,7 +2390,7 @@ bool config_load_remap(void) if (system) core_name = system->info.library_name; - game_name = path_basename_special(path_get(RARCH_PATH_BASENAME)); + game_name = path_basename(path_get(RARCH_PATH_BASENAME)); if (string_is_empty(core_name) || string_is_empty(game_name)) return false; @@ -2492,7 +2492,7 @@ bool config_load_shader_preset(void) if (system) core_name = system->info.library_name; - game_name = path_basename_special(path_get(RARCH_PATH_BASENAME)); + game_name = path_basename(path_get(RARCH_PATH_BASENAME)); if (string_is_empty(core_name) || string_is_empty(game_name)) return false; @@ -3092,7 +3092,7 @@ bool config_save_overrides(int override_type) if (system) core_name = system->info.library_name; - game_name = path_basename_special(path_get(RARCH_PATH_BASENAME)); + game_name = path_basename(path_get(RARCH_PATH_BASENAME)); if (string_is_empty(core_name) || string_is_empty(game_name)) return false; diff --git a/file_path_special.c b/file_path_special.c index 674dc4f4b8..349359790d 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -534,25 +534,3 @@ void path_basedir_wrapper(char *path) else snprintf(path, 3, ".%s", path_default_slash()); } - -/** - * path_basename: - * @path : path - * - * Get basename from @path. - * - * Returns: basename from path. - **/ -const char *path_basename_special(const char *path) -{ -#ifdef HAVE_COMPRESSION - /* We cut either at the first compression-related - * hash or the last slash; whichever comes last. */ - const char *delim = path_get_archive_delim(path); - - if (delim) - return delim + 1; -#endif - - return path_basename(path); -} diff --git a/file_path_special.h b/file_path_special.h index ae79fc3031..521866143a 100644 --- a/file_path_special.h +++ b/file_path_special.h @@ -21,9 +21,6 @@ #include #include -#include - -RETRO_BEGIN_DECLS enum file_path_enum { @@ -121,16 +118,6 @@ enum application_special_type void fill_short_pathname_representation_wrapper(char* out_rep, const char *in_path, size_t size); -/** - * path_basename_special: - * @path : path - * - * Get basename from @path. - * - * Returns: basename from path. - **/ -const char *path_basename_special(const char *path); - /** * path_basedir: * @path : path @@ -146,6 +133,4 @@ bool fill_pathname_application_data(char *s, size_t len); void fill_pathname_application_special(char *s, size_t len, enum application_special_type type); -RETRO_END_DECLS - #endif diff --git a/gfx/drivers_shader/glslang_util.cpp b/gfx/drivers_shader/glslang_util.cpp index 9916a3c7bd..6f0793f103 100644 --- a/gfx/drivers_shader/glslang_util.cpp +++ b/gfx/drivers_shader/glslang_util.cpp @@ -28,8 +28,6 @@ #include "glslang_util.hpp" #include "glslang.hpp" -#include "../../file_path_special.h" - #include "../../verbosity.h" using namespace std; @@ -42,7 +40,7 @@ static bool read_shader_file(const char *path, vector *output, bool root char *ptr = NULL; char *buf = nullptr; ssize_t len = 0; - const char *basename = path_basename_special(path); + const char *basename = path_basename(path); include_path[0] = tmp[0] = '\0'; diff --git a/libretro-common/file/file_path.c b/libretro-common/file/file_path.c index 03d7277348..a58e7d3a78 100644 --- a/libretro-common/file/file_path.c +++ b/libretro-common/file/file_path.c @@ -510,8 +510,16 @@ void path_parent_dir(char *path) **/ const char *path_basename(const char *path) { + /* We cut either at the first compression-related hash or the last slash; whichever comes last */ const char *last = find_last_slash(path); +#ifdef HAVE_COMPRESSION + const char *delim = path_get_archive_delim(path); + + if (delim) + return delim + 1; +#endif + if (last) return last + 1; diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c index 5d39610bba..6a4fcecf39 100644 --- a/menu/cbs/menu_cbs_get_value.c +++ b/menu/cbs/menu_cbs_get_value.c @@ -1412,7 +1412,7 @@ static void menu_action_setting_disp_set_label_core_option_create( strlcpy(s, "", len); if (!string_is_empty(path_get(RARCH_PATH_BASENAME))) - strlcpy(s, path_basename_special(path_get(RARCH_PATH_BASENAME)), len); + strlcpy(s, path_basename(path_get(RARCH_PATH_BASENAME)), len); strlcpy(s2, path, len2); } diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 58ce5ca41c..ba16d33d66 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -1693,7 +1693,7 @@ static int generic_action_ok_shader_preset_save(const char *path, break; case ACTION_OK_SHADER_PRESET_SAVE_GAME: { - const char *game_name = path_basename_special(path_get(RARCH_PATH_BASENAME)); + const char *game_name = path_basename(path_get(RARCH_PATH_BASENAME)); fill_pathname_join(file, directory, game_name, sizeof(file)); } break; @@ -1803,8 +1803,7 @@ static int generic_action_ok_remap_file_save(const char *path, case ACTION_OK_REMAP_FILE_SAVE_GAME: if (!string_is_empty(core_name)) fill_pathname_join(file, core_name, - path_basename_special(path_get(RARCH_PATH_BASENAME)), - sizeof(file)); + path_basename(path_get(RARCH_PATH_BASENAME)), sizeof(file)); break; } diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 72e1d7a6cb..847fba1215 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3413,7 +3413,7 @@ static int menu_displaylist_parse_cores( path = str_list->elems[i].data; if (!string_is_empty(info->path)) - path = path_basename_special(path); + path = path_basename(path); #ifndef HAVE_DYNAMIC if (frontend_driver_has_fork()) diff --git a/retroarch.c b/retroarch.c index f7b9857d5f..af54841baa 100644 --- a/retroarch.c +++ b/retroarch.c @@ -908,7 +908,7 @@ bool retroarch_validate_game_options(char *s, size_t len, bool mkdir) if (system) core_name = system->info.library_name; - game_name = path_basename_special(path_get(RARCH_PATH_BASENAME)); + game_name = path_basename(path_get(RARCH_PATH_BASENAME)); if (string_is_empty(core_name) || string_is_empty(game_name)) return false; diff --git a/tasks/task_content.c b/tasks/task_content.c index 91a860c914..57db1866cd 100644 --- a/tasks/task_content.c +++ b/tasks/task_content.c @@ -393,7 +393,7 @@ static bool load_content_from_compressed_archive( attributes.i = 0; fill_pathname_join(new_path, new_basedir, - path_basename_special(path), sizeof(new_path)); + path_basename(path), sizeof(new_path)); ret = file_archive_compressed_read(path, NULL, new_path, &new_path_len); diff --git a/tasks/task_decompress.c b/tasks/task_decompress.c index 8f527210df..709270d65a 100644 --- a/tasks/task_decompress.c +++ b/tasks/task_decompress.c @@ -328,7 +328,7 @@ bool task_push_decompress( t->user_data = user_data; snprintf(tmp, sizeof(tmp), "%s '%s'", - msg_hash_to_str(MSG_EXTRACTING), path_basename_special(source_file)); + msg_hash_to_str(MSG_EXTRACTING), path_basename(source_file)); t->title = strdup(tmp); diff --git a/tasks/task_http.c b/tasks/task_http.c index 4002816186..a34b4853e4 100644 --- a/tasks/task_http.c +++ b/tasks/task_http.c @@ -23,8 +23,6 @@ #include #include -#include "../file_path_special.h" - #include "../msg_hash.h" #include "../verbosity.h" #include "tasks_internal.h" @@ -293,7 +291,7 @@ void *task_push_http_transfer(const char *url, bool mute, const char *type, t->progress = -1; snprintf(tmp, sizeof(tmp), "%s '%s'", - msg_hash_to_str(MSG_DOWNLOADING), path_basename_special(url)); + msg_hash_to_str(MSG_DOWNLOADING), path_basename(url)); t->title = strdup(tmp); diff --git a/tasks/task_screenshot.c b/tasks/task_screenshot.c index d7d32d4efa..d80479cac2 100644 --- a/tasks/task_screenshot.c +++ b/tasks/task_screenshot.c @@ -202,8 +202,7 @@ static bool screenshot_dump( else { if (settings->auto_screenshot_filename) - fill_str_dated_filename(state->shotname, - path_basename(name_base), + fill_str_dated_filename(state->shotname, path_basename(name_base), IMG_EXT, sizeof(state->shotname)); else snprintf(state->shotname, sizeof(state->shotname),