about summary refs log tree commit diff stats
path: root/src/config/accounts.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/config/accounts.c')
-rw-r--r--src/config/accounts.c29
1 files changed, 7 insertions, 22 deletions
diff --git a/src/config/accounts.c b/src/config/accounts.c
index d087bbb9..96168b5b 100644
--- a/src/config/accounts.c
+++ b/src/config/accounts.c
@@ -49,14 +49,13 @@
 #include "xmpp/xmpp.h"
 #include "xmpp/jid.h"
 
-static gchar *accounts_loc;
+static char *accounts_loc;
 static GKeyFile *accounts;
 
 static Autocomplete all_ac;
 static Autocomplete enabled_ac;
 
 static void _save_accounts(void);
-static gchar* _get_accounts_file(void);
 
 void
 accounts_load(void)
@@ -64,7 +63,7 @@ accounts_load(void)
     log_info("Loading accounts");
     all_ac = autocomplete_new();
     enabled_ac = autocomplete_new();
-    accounts_loc = _get_accounts_file();
+    accounts_loc = files_get_data_path(FILE_ACCOUNTS);
 
     if (g_file_test(accounts_loc, G_FILE_TEST_EXISTS)) {
         g_chmod(accounts_loc, S_IRUSR | S_IWUSR);
@@ -858,27 +857,13 @@ _save_accounts(void)
 {
     gsize g_data_size;
     gchar *g_accounts_data = g_key_file_to_data(accounts, &g_data_size, NULL);
-    gchar *xdg_data = files_get_xdg_data_home();
-    GString *base_str = g_string_new(xdg_data);
-    g_string_append(base_str, "/profanity/");
-    gchar *true_loc = get_file_or_linked(accounts_loc, base_str->str);
+
+    gchar *base = g_path_get_basename(accounts_loc);
+    gchar *true_loc = get_file_or_linked(accounts_loc, base);
     g_file_set_contents(true_loc, g_accounts_data, g_data_size, NULL);
     g_chmod(accounts_loc, S_IRUSR | S_IWUSR);
-    g_free(xdg_data);
+
+    g_free(base);
     free(true_loc);
     g_free(g_accounts_data);
-    g_string_free(base_str, TRUE);
-}
-
-static gchar*
-_get_accounts_file(void)
-{
-    gchar *xdg_data = files_get_xdg_data_home();
-    GString *logfile = g_string_new(xdg_data);
-    g_string_append(logfile, "/profanity/accounts");
-    gchar *result = strdup(logfile->str);
-    g_free(xdg_data);
-    g_string_free(logfile, TRUE);
-
-    return result;
 }