paths.c - cleanups

This commit is contained in:
twinaphex 2016-10-01 09:03:41 +02:00
parent 50bfd81e42
commit 346c1d356a

63
paths.c
View File

@ -67,6 +67,8 @@ static char path_core_options_file[PATH_MAX_LENGTH] = {0};
void path_set_redirect(void) void path_set_redirect(void)
{ {
char new_savefile_dir[PATH_MAX_LENGTH] = {0};
char new_savestate_dir[PATH_MAX_LENGTH] = {0};
uint32_t library_name_hash = 0; uint32_t library_name_hash = 0;
bool check_library_name_hash = false; bool check_library_name_hash = false;
rarch_system_info_t *info = NULL; rarch_system_info_t *info = NULL;
@ -83,13 +85,13 @@ void path_set_redirect(void)
/* Initialize current save directories /* Initialize current save directories
* with the values from the config. */ * with the values from the config. */
strlcpy(current_savefile_dir, strlcpy(new_savefile_dir,
old_savefile_dir, old_savefile_dir,
sizeof(current_savefile_dir)); sizeof(new_savefile_dir));
strlcpy(current_savestate_dir, strlcpy(new_savestate_dir,
old_savestate_dir, old_savestate_dir,
sizeof(current_savestate_dir)); sizeof(new_savestate_dir));
check_library_name_hash = (library_name_hash != 0); check_library_name_hash = (library_name_hash != 0);
#ifdef HAVE_MENU #ifdef HAVE_MENU
@ -106,26 +108,26 @@ void path_set_redirect(void)
&& !string_is_empty(old_savefile_dir)) && !string_is_empty(old_savefile_dir))
{ {
fill_pathname_join( fill_pathname_join(
current_savefile_dir, new_savefile_dir,
old_savefile_dir, old_savefile_dir,
info->info.library_name, info->info.library_name,
sizeof(current_savefile_dir)); sizeof(new_savefile_dir));
/* If path doesn't exist, try to create it, /* If path doesn't exist, try to create it,
* if everything fails revert to the original path. */ * if everything fails revert to the original path. */
if(!path_is_directory(current_savefile_dir) if(!path_is_directory(new_savefile_dir)
&& !string_is_empty(current_savefile_dir)) && !string_is_empty(new_savefile_dir))
{ {
path_mkdir(current_savefile_dir); path_mkdir(new_savefile_dir);
if(!path_is_directory(current_savefile_dir)) if(!path_is_directory(new_savefile_dir))
{ {
RARCH_LOG("%s %s\n", RARCH_LOG("%s %s\n",
msg_hash_to_str(MSG_REVERTING_SAVEFILE_DIRECTORY_TO), msg_hash_to_str(MSG_REVERTING_SAVEFILE_DIRECTORY_TO),
old_savefile_dir); old_savefile_dir);
strlcpy(current_savefile_dir, strlcpy(new_savefile_dir,
old_savefile_dir, old_savefile_dir,
sizeof(current_savefile_dir)); sizeof(new_savefile_dir));
} }
} }
} }
@ -135,46 +137,46 @@ void path_set_redirect(void)
&& !string_is_empty(old_savestate_dir)) && !string_is_empty(old_savestate_dir))
{ {
fill_pathname_join( fill_pathname_join(
current_savestate_dir, new_savestate_dir,
old_savestate_dir, old_savestate_dir,
info->info.library_name, info->info.library_name,
sizeof(current_savestate_dir)); sizeof(new_savestate_dir));
/* If path doesn't exist, try to create it. /* If path doesn't exist, try to create it.
* If everything fails, revert to the original path. */ * If everything fails, revert to the original path. */
if(!path_is_directory(current_savestate_dir) && if(!path_is_directory(new_savestate_dir) &&
!string_is_empty(current_savestate_dir)) !string_is_empty(new_savestate_dir))
{ {
path_mkdir(current_savestate_dir); path_mkdir(new_savestate_dir);
if(!path_is_directory(current_savestate_dir)) if(!path_is_directory(new_savestate_dir))
{ {
RARCH_LOG("%s %s\n", RARCH_LOG("%s %s\n",
msg_hash_to_str(MSG_REVERTING_SAVESTATE_DIRECTORY_TO), msg_hash_to_str(MSG_REVERTING_SAVESTATE_DIRECTORY_TO),
old_savestate_dir); old_savestate_dir);
strlcpy(current_savestate_dir, strlcpy(new_savestate_dir,
old_savestate_dir, old_savestate_dir,
sizeof(current_savestate_dir)); sizeof(new_savestate_dir));
} }
} }
} }
} }
/* Set savefile directory if empty based on content directory */ /* Set savefile directory if empty based on content directory */
if (string_is_empty(current_savefile_dir)) if (string_is_empty(new_savefile_dir))
{ {
strlcpy(current_savefile_dir, path_main_basename, strlcpy(new_savefile_dir, path_main_basename,
sizeof(current_savefile_dir)); sizeof(new_savefile_dir));
path_basedir(current_savefile_dir); path_basedir(new_savefile_dir);
} }
if (global) if (global)
{ {
if(path_is_directory(current_savefile_dir)) if(path_is_directory(new_savefile_dir))
strlcpy(global->name.savefile, current_savefile_dir, strlcpy(global->name.savefile, new_savefile_dir,
sizeof(global->name.savefile)); sizeof(global->name.savefile));
if(path_is_directory(current_savestate_dir)) if(path_is_directory(new_savestate_dir))
strlcpy(global->name.savestate, current_savestate_dir, strlcpy(global->name.savestate, new_savestate_dir,
sizeof(global->name.savestate)); sizeof(global->name.savestate));
if (path_is_directory(global->name.savefile)) if (path_is_directory(global->name.savefile))
@ -207,6 +209,11 @@ void path_set_redirect(void)
global->name.cheatfile); global->name.cheatfile);
} }
} }
strlcpy(current_savefile_dir, new_savefile_dir,
sizeof(current_savefile_dir));
strlcpy(current_savestate_dir, new_savestate_dir,
sizeof(current_savestate_dir));
} }
void path_set_basename(const char *path) void path_set_basename(const char *path)