about summary refs log tree commit diff stats
path: root/src/config/preferences.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2016-07-24 21:35:12 +0100
committerJames Booth <boothj5@gmail.com>2016-07-24 21:49:35 +0100
commita3a73cf0031fef7b4012b27bc1955c406175f0fe (patch)
treea9bfba0b9899eff139a9a8e5436468e35d6b7e91 /src/config/preferences.c
parent29452f8f1b8f7a61773905169b3883f1b494c786 (diff)
downloadprofani-tty-a3a73cf0031fef7b4012b27bc1955c406175f0fe.tar.gz
Move all filepath handling to files.c
Diffstat (limited to 'src/config/preferences.c')
-rw-r--r--src/config/preferences.c29
1 files changed, 7 insertions, 22 deletions
diff --git a/src/config/preferences.c b/src/config/preferences.c
index d2d3b8ce..bb9693fe 100644
--- a/src/config/preferences.c
+++ b/src/config/preferences.c
@@ -62,7 +62,7 @@
 
 #define INPBLOCK_DEFAULT 1000
 
-static gchar *prefs_loc;
+static char *prefs_loc;
 static GKeyFile *prefs;
 gint log_maxsize = 0;
 
@@ -70,7 +70,6 @@ static Autocomplete boolean_choice_ac;
 static Autocomplete room_trigger_ac;
 
 static void _save_prefs(void);
-static gchar* _get_preferences_file(void);
 static const char* _get_group(preference_t pref);
 static const char* _get_key(preference_t pref);
 static gboolean _get_default_boolean(preference_t pref);
@@ -80,7 +79,7 @@ void
 prefs_load(void)
 {
     GError *err;
-    prefs_loc = _get_preferences_file();
+    prefs_loc = files_get_config_path(FILE_PROFRC);
 
     if (g_file_test(prefs_loc, G_FILE_TEST_EXISTS)) {
         g_chmod(prefs_loc, S_IRUSR | S_IWUSR);
@@ -1140,29 +1139,15 @@ _save_prefs(void)
 {
     gsize g_data_size;
     gchar *g_prefs_data = g_key_file_to_data(prefs, &g_data_size, NULL);
-    gchar *xdg_config = files_get_xdg_config_home();
-    GString *base_str = g_string_new(xdg_config);
-    g_string_append(base_str, "/profanity/");
-    gchar *true_loc = get_file_or_linked(prefs_loc, base_str->str);
+    gchar *base = g_path_get_basename(prefs_loc);
+    gchar *true_loc = get_file_or_linked(prefs_loc, base);
+
     g_file_set_contents(true_loc, g_prefs_data, g_data_size, NULL);
     g_chmod(prefs_loc, S_IRUSR | S_IWUSR);
-    g_free(xdg_config);
+
+    g_free(base);
     free(true_loc);
     g_free(g_prefs_data);
-    g_string_free(base_str, TRUE);
-}
-
-static gchar*
-_get_preferences_file(void)
-{
-    gchar *xdg_config = files_get_xdg_config_home();
-    GString *prefs_file = g_string_new(xdg_config);
-    g_string_append(prefs_file, "/profanity/profrc");
-    gchar *result = strdup(prefs_file->str);
-    g_free(xdg_config);
-    g_string_free(prefs_file, TRUE);
-
-    return result;
 }
 
 // get the preference group for a specific preference