summaryrefslogtreecommitdiff
path: root/src/glibext/configuration.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/glibext/configuration.c')
-rw-r--r--src/glibext/configuration.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/glibext/configuration.c b/src/glibext/configuration.c
index 1fa2968..8746bfd 100644
--- a/src/glibext/configuration.c
+++ b/src/glibext/configuration.c
@@ -1323,14 +1323,21 @@ void g_generic_config_build(GGenConfig *config, const char *name)
{
char *suffix; /* Fin du nom de fichier */
- suffix = strdup("chrysalide");
- suffix = stradd(suffix, G_DIR_SEPARATOR_S);
- suffix = stradd(suffix, name);
- suffix = stradd(suffix, ".xml");
+ if (g_path_is_absolute(name))
+ config->filename = strdup(name);
- config->filename = get_xdg_config_dir(suffix);
+ else
+ {
+ suffix = strdup("chrysalide");
+ suffix = stradd(suffix, G_DIR_SEPARATOR_S);
+ suffix = stradd(suffix, name);
+ suffix = stradd(suffix, ".xml");
+
+ config->filename = get_xdg_config_dir(suffix);
- free(suffix);
+ free(suffix);
+
+ }
}
@@ -1468,7 +1475,8 @@ bool g_generic_config_write(GGenConfig *config)
g_generic_config_runlock(config);
- save_xml_file(xdoc, config->filename);
+ if (result)
+ result = save_xml_file(xdoc, config->filename);
close_xml_file(xdoc, context);