From 78e1dc3199ff8408ea7e297ff5f985ee29938ea8 Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Thu, 24 Dec 2009 05:07:09 +0100 Subject: Check for and create the config directory if necessary. --- walls_conf.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'walls_conf.c') diff --git a/walls_conf.c b/walls_conf.c index 7ef3a8d..9eb4fdc 100644 --- a/walls_conf.c +++ b/walls_conf.c @@ -1,9 +1,13 @@ +#include + +#include #include "walls_conf.h" GKeyFile *keyfile = NULL; void conf_open() { gchar *filename; + gchar *confdir; GError *error = NULL; keyfile = g_key_file_new(); @@ -13,9 +17,14 @@ void conf_open() { } filename = g_strdup_printf("%s/walls/config", g_get_user_config_dir()); + confdir = g_path_get_dirname(filename); + if(g_access(confdir, F_OK) == -1) { + g_mkdir_with_parents(confdir, 0700); + } + g_free(confdir); if(!g_key_file_load_from_file(keyfile, filename, G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, &error)) { - g_warning("%s", error->message); + g_warning("Can't read config: %s", error->message); g_error_free(error); } @@ -29,7 +38,7 @@ gint conf_get_int(const gchar *group_name, const gchar *key, gint _default) { ret = g_key_file_get_integer(keyfile, group_name, key, &error); if(ret == 0) { - g_warning("%s", error->message); + g_warning("Can't get key from config: %s", error->message); g_error_free(error); return _default; } -- cgit v1.2.3