fix per-core config on PC
This commit is contained in:
parent
8f45063f74
commit
e022b39061
|
@ -450,9 +450,9 @@ int menu_set_settings(void *data, unsigned setting, unsigned action)
|
||||||
else if (action == RGUI_ACTION_START)
|
else if (action == RGUI_ACTION_START)
|
||||||
g_settings.core_specific_config = default_core_specific_config;
|
g_settings.core_specific_config = default_core_specific_config;
|
||||||
|
|
||||||
if (g_settings.core_specific_config)
|
if (g_settings.core_specific_config && *g_extern.core_specific_config_path)
|
||||||
strlcpy(g_extern.config_path, g_extern.core_specific_config_path, sizeof(g_extern.config_path));
|
strlcpy(g_extern.config_path, g_extern.core_specific_config_path, sizeof(g_extern.config_path));
|
||||||
else
|
else if (!g_settings.core_specific_config && *g_extern.original_config_path)
|
||||||
strlcpy(g_extern.config_path, g_extern.original_config_path, sizeof(g_extern.config_path));
|
strlcpy(g_extern.config_path, g_extern.original_config_path, sizeof(g_extern.config_path));
|
||||||
break;
|
break;
|
||||||
#if defined(HAVE_THREADS)
|
#if defined(HAVE_THREADS)
|
||||||
|
|
14
settings.c
14
settings.c
|
@ -446,11 +446,14 @@ void config_load(void)
|
||||||
parse_config_file();
|
parse_config_file();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!*g_extern.original_config_path && *g_settings.libretro)
|
if (!*g_extern.original_config_path)
|
||||||
{
|
{
|
||||||
path_resolve_realpath(g_extern.config_path, sizeof(g_extern.config_path));
|
path_resolve_realpath(g_extern.config_path, sizeof(g_extern.config_path));
|
||||||
strlcpy(g_extern.original_config_path, g_extern.config_path, sizeof(g_extern.original_config_path));
|
strlcpy(g_extern.original_config_path, g_extern.config_path, sizeof(g_extern.original_config_path));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (*g_settings.libretro)
|
||||||
|
{
|
||||||
if (*g_settings.rgui_config_directory)
|
if (*g_settings.rgui_config_directory)
|
||||||
{
|
{
|
||||||
path_resolve_realpath(g_settings.rgui_config_directory, sizeof(g_settings.rgui_config_directory));
|
path_resolve_realpath(g_settings.rgui_config_directory, sizeof(g_settings.rgui_config_directory));
|
||||||
|
@ -458,7 +461,7 @@ void config_load(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
strlcpy(g_extern.core_specific_config_path, g_extern.config_path, sizeof(g_extern.core_specific_config_path));
|
strlcpy(g_extern.core_specific_config_path, g_extern.original_config_path, sizeof(g_extern.core_specific_config_path));
|
||||||
path_basedir(g_extern.core_specific_config_path);
|
path_basedir(g_extern.core_specific_config_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -466,11 +469,16 @@ void config_load(void)
|
||||||
|
|
||||||
if (g_settings.core_specific_config)
|
if (g_settings.core_specific_config)
|
||||||
{
|
{
|
||||||
|
char tmp[PATH_MAX];
|
||||||
|
strlcpy(tmp, g_settings.libretro, sizeof(tmp));
|
||||||
strlcpy(g_extern.config_path, g_extern.core_specific_config_path, sizeof(g_extern.config_path));
|
strlcpy(g_extern.config_path, g_extern.core_specific_config_path, sizeof(g_extern.config_path));
|
||||||
RARCH_LOG("Loading core-specific config from: %s.\n", g_extern.config_path);
|
RARCH_LOG("Loading core-specific config from: %s.\n", g_extern.config_path);
|
||||||
|
|
||||||
if (!config_load_file(g_extern.config_path))
|
if (!config_load_file(g_extern.config_path))
|
||||||
RARCH_WARN("Core-specific config not found, reusing last config.\n");
|
RARCH_WARN("Core-specific config not found, reusing last config.\n");
|
||||||
|
|
||||||
|
// make sure we don't accidentally switch this
|
||||||
|
strlcpy(g_settings.libretro, tmp, sizeof(g_settings.libretro));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue