Also look for entries in $XDG_DATA_HOME (or $HOME)
This commit is contained in:
parent
43e1ff6b0d
commit
3710ad4b6d
|
@ -158,6 +158,7 @@ static int _settings_browse_folder(Settings * settings, Config * config,
|
||||||
static int _settings_browse_folder_access(char const * filename, int mode);
|
static int _settings_browse_folder_access(char const * filename, int mode);
|
||||||
static int _settings_browse_folder_access_path(char const * path,
|
static int _settings_browse_folder_access_path(char const * path,
|
||||||
char const * filename, int mode);
|
char const * filename, int mode);
|
||||||
|
static int _settings_browse_home(Settings * settings, Config * config);
|
||||||
static void _settings_rtrim(String * string, char c);
|
static void _settings_rtrim(String * string, char c);
|
||||||
|
|
||||||
static int _settings_browse(Settings * settings)
|
static int _settings_browse(Settings * settings)
|
||||||
|
@ -205,6 +206,7 @@ static int _settings_browse(Settings * settings)
|
||||||
free(p);
|
free(p);
|
||||||
if(datadir == 0)
|
if(datadir == 0)
|
||||||
ret = _settings_browse_folder(settings, config, DATADIR);
|
ret = _settings_browse_folder(settings, config, DATADIR);
|
||||||
|
ret |= _settings_browse_home(settings, config);
|
||||||
config_delete(config);
|
config_delete(config);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -358,6 +360,27 @@ static int _settings_browse_folder_access_path(char const * path,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int _settings_browse_home(Settings * settings, Config * config)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
char const fallback[] = ".local/share";
|
||||||
|
char const * path;
|
||||||
|
char const * homedir;
|
||||||
|
String * p;
|
||||||
|
|
||||||
|
/* use $XDG_DATA_HOME if set and not empty */
|
||||||
|
if((path = getenv("XDG_DATA_HOME")) != NULL && strlen(path) > 0)
|
||||||
|
return _settings_browse_folder(settings, config, path);
|
||||||
|
/* fallback to "$HOME/.local/share" */
|
||||||
|
if((homedir = getenv("HOME")) == NULL)
|
||||||
|
homedir = g_get_home_dir();
|
||||||
|
if((p = string_new_append(homedir, "/", fallback, NULL)) == NULL)
|
||||||
|
return -_settings_error(error_get(), 1);
|
||||||
|
ret = _settings_browse_folder(settings, config, p);
|
||||||
|
free(p);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static void _settings_rtrim(String * string, char c)
|
static void _settings_rtrim(String * string, char c)
|
||||||
{
|
{
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user