mirror of
https://github.com/wesnoth/wesnoth
synced 2025-04-29 19:02:00 +00:00
Adapt filesystem functions to userdata/userconfig split
This commit is contained in:
parent
2b22f942e0
commit
146fff09b4
@ -531,7 +531,7 @@ static const std::string& get_version_path_suffix()
|
||||
}
|
||||
#endif
|
||||
|
||||
void set_preferences_dir(std::string path)
|
||||
void set_user_data_dir(std::string path)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
if(path.empty()) {
|
||||
@ -625,6 +625,12 @@ void set_preferences_dir(std::string path)
|
||||
setup_user_data_dir();
|
||||
}
|
||||
|
||||
void set_user_config_dir(std::string path)
|
||||
{
|
||||
user_config_dir = path;
|
||||
create_directory_if_missing(user_config_dir);
|
||||
}
|
||||
|
||||
static void setup_user_data_dir()
|
||||
{
|
||||
#ifdef _WIN32
|
||||
@ -681,7 +687,7 @@ const std::string& get_user_data_dir()
|
||||
// if the user deletes a dir while we are running?
|
||||
if (user_data_dir.empty())
|
||||
{
|
||||
set_preferences_dir(std::string());
|
||||
set_user_data_dir(std::string());
|
||||
}
|
||||
return user_data_dir;
|
||||
}
|
||||
@ -692,17 +698,18 @@ const std::string &get_user_config_dir()
|
||||
{
|
||||
#if defined(_X11) && !defined(PREFERENCES_DIR)
|
||||
char const *xdg_config = getenv("XDG_CONFIG_HOME");
|
||||
std::string path;
|
||||
if (!xdg_config || xdg_config[0] == '\0') {
|
||||
xdg_config = getenv("HOME");
|
||||
if (!xdg_config) {
|
||||
user_config_dir = get_user_data_dir();
|
||||
return user_config_dir;
|
||||
}
|
||||
user_config_dir = xdg_config;
|
||||
user_config_dir += "/.config";
|
||||
} else user_config_dir = xdg_config;
|
||||
user_config_dir += "/wesnoth";
|
||||
create_directory_if_missing_recursive(user_config_dir);
|
||||
path = xdg_config;
|
||||
path += "/.config";
|
||||
} else path = xdg_config;
|
||||
path += "/wesnoth";
|
||||
set_user_config_dir(path);
|
||||
#else
|
||||
user_config_dir = get_user_data_dir();
|
||||
#endif
|
||||
|
@ -74,7 +74,8 @@ std::string get_addon_campaigns_dir();
|
||||
* maximum 1000 files then start always giving 999
|
||||
*/
|
||||
std::string get_next_filename(const std::string& name, const std::string& extension);
|
||||
void set_preferences_dir(std::string path);
|
||||
void set_user_config_dir(std::string path);
|
||||
void set_user_data_dir(std::string path);
|
||||
|
||||
const std::string &get_user_config_dir();
|
||||
const std::string &get_user_data_dir();
|
||||
|
@ -274,7 +274,7 @@ static int process_command_args(const commandline_options& cmdline_opts) {
|
||||
// Options that don't change behavior based on any others should be checked alphabetically below.
|
||||
|
||||
if(cmdline_opts.config_dir) {
|
||||
set_preferences_dir(*cmdline_opts.config_dir);
|
||||
set_user_data_dir(*cmdline_opts.config_dir);
|
||||
}
|
||||
if(cmdline_opts.config_path) {
|
||||
std::cout << get_user_data_dir() << '\n';
|
||||
|
Loading…
x
Reference in New Issue
Block a user