diff --git a/libretro-common/file/file_path.c b/libretro-common/file/file_path.c index fd31e93cdc..bae812756d 100644 --- a/libretro-common/file/file_path.c +++ b/libretro-common/file/file_path.c @@ -406,7 +406,7 @@ char *find_last_slash(const char *str) #ifdef _WIN32 const char *backslash = strrchr(str, '\\'); - if (backslash && ((slash && backslash > slash) || !slash)) + if (!slash || (backslash > slash)) return (char*)backslash; #endif return (char*)slash; @@ -547,11 +547,18 @@ bool fill_pathname_parent_dir_name(char *out_dir, char *temp = strdup(in_dir); char *last = find_last_slash(temp); - *last = '\0'; + if (last && last[1] == 0) + { + *last = '\0'; + last = find_last_slash(temp); + } + + if (last) + *last = '\0'; in_dir = find_last_slash(temp); - success = in_dir && in_dir + 1; + success = in_dir && in_dir[1]; if (success) strlcpy(out_dir, in_dir + 1, size); diff --git a/retroarch.c b/retroarch.c index 0bcf15bf46..5a0b3121ca 100644 --- a/retroarch.c +++ b/retroarch.c @@ -3416,7 +3416,7 @@ static enum runloop_state runloop_check_state( { input_bits_t current_input; #ifdef HAVE_MENU - static input_bits_t last_input = {{0}}; + static input_bits_t last_input = {{0}}; #endif static bool old_quit_key = false; static bool quit_key = false;