summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbderrahim Kitouni <akitouni@gnome.org>2018-10-03 14:05:10 +0100
committerAbderrahim Kitouni <akitouni@gnome.org>2018-10-03 14:09:30 +0100
commite8794ddd6107ce7b2acb2b46796309056611cfdc (patch)
tree4912a4760a4006d59230760695ca8ebf7f2d5f89
parent56009f6b49468c43473f43565317a452ab0a898f (diff)
downloaddconf-wip/override.tar.gz
engine: allow overriding the config directory used by dconfwip/override
This is used by flatpak. This patch is present in all flatpak runtimes and was likely originally written by Alexander Larsson.
-rw-r--r--engine/dconf-engine-source-user.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/engine/dconf-engine-source-user.c b/engine/dconf-engine-source-user.c
index 1657875..b6b8772 100644
--- a/engine/dconf-engine-source-user.c
+++ b/engine/dconf-engine-source-user.c
@@ -39,11 +39,17 @@ dconf_engine_source_user_open_gvdb (const gchar *name)
{
GvdbTable *table;
gchar *filename;
+ const gchar *override;
+
+ override = g_getenv ("DCONF_USER_CONFIG_DIR");
+ if (override == NULL)
+ filename = g_build_filename (g_get_user_config_dir (), "dconf", name, NULL);
+ else
+ filename = g_build_filename (g_get_home_dir (), override, name, NULL);
/* This can fail in the normal case of the user not having any
* settings. That's OK and it shouldn't be considered as an error.
*/
- filename = g_build_filename (g_get_user_config_dir (), "dconf", name, NULL);
table = gvdb_table_new (filename, FALSE, NULL);
g_free (filename);