mirror of
https://github.com/libretro/RetroArch
synced 2025-04-09 21:45:45 +00:00
Merge pull request #2272 from pyroesp/Add_File_Check_2
File check bug fix with 7z and zip files
This commit is contained in:
commit
d8d18fc886
27
retroarch.c
27
retroarch.c
@ -1486,6 +1486,9 @@ void rarch_playlist_load_content(void *data, unsigned idx)
|
|||||||
{
|
{
|
||||||
const char *path = NULL;
|
const char *path = NULL;
|
||||||
const char *core_path = NULL;
|
const char *core_path = NULL;
|
||||||
|
char *path_check = NULL;
|
||||||
|
char *path_tolower = NULL;
|
||||||
|
RFILE *fp = NULL;
|
||||||
content_playlist_t *playlist = (content_playlist_t*)data;
|
content_playlist_t *playlist = (content_playlist_t*)data;
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
@ -1496,14 +1499,34 @@ void rarch_playlist_load_content(void *data, unsigned idx)
|
|||||||
content_playlist_get_index(playlist,
|
content_playlist_get_index(playlist,
|
||||||
idx, &path, NULL, &core_path, NULL, NULL, NULL);
|
idx, &path, NULL, &core_path, NULL, NULL, NULL);
|
||||||
|
|
||||||
RFILE *fp = retro_fopen(path, RFILE_MODE_READ, -1);
|
path_tolower = strdup(path);
|
||||||
|
for (int i = 0; i < strlen(path_tolower); ++i)
|
||||||
|
{
|
||||||
|
path_tolower[i] = tolower(path_tolower[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strstr(path_tolower, ".zip"))
|
||||||
|
{
|
||||||
|
strstr(path_tolower, ".zip")[4] = '\0';
|
||||||
|
}
|
||||||
|
else if (strstr(path_tolower, ".7z"))
|
||||||
|
{
|
||||||
|
*(strstr(path_tolower, ".7z")[3] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
path_check = (char *)calloc(strlen(path_tolower) + 1, sizeof(char));
|
||||||
|
strncpy(path_check, path, strlen(path_tolower));
|
||||||
|
|
||||||
|
fp = retro_fopen(path_check, RFILE_MODE_READ, -1);
|
||||||
if (!fp)
|
if (!fp)
|
||||||
{
|
{
|
||||||
rarch_main_msg_queue_push("File could not be loaded.\n", 1, 100, true);
|
rarch_main_msg_queue_push("File could not be loaded.\n", 1, 100, true);
|
||||||
RARCH_LOG("File at %s failed to load.\n", path);
|
RARCH_LOG("File at %s failed to load.\n", path_check);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
retro_fclose(fp);
|
retro_fclose(fp);
|
||||||
|
free(path_tolower);
|
||||||
|
free(path_check);
|
||||||
|
|
||||||
strlcpy(settings->libretro, core_path, sizeof(settings->libretro));
|
strlcpy(settings->libretro, core_path, sizeof(settings->libretro));
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user