summaryrefslogtreecommitdiff
path: root/walls_conf.c
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2009-12-25 02:55:04 +0100
committerJon Bergli Heier <snakebite@jvnv.net>2009-12-25 02:55:04 +0100
commitfb6417dcf2df2e5c09fa3a36640d10e563d0ae5b (patch)
treec82ec13c34c20950881ac98cd75fb6326938882a /walls_conf.c
parentba76e3af574a4e55d8bf2f1009f11481b7422a4d (diff)
parentf6e2ba790e189721549da70219a85f7cfa769742 (diff)
Merge ssh://ai/~/walls
Diffstat (limited to 'walls_conf.c')
-rw-r--r--walls_conf.c13
1 files changed, 11 insertions, 2 deletions
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 <unistd.h>
+
+#include <glib/gstdio.h>
#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;
}