diff options
author | Michael Vetter <jubalh@iodoru.org> | 2020-07-01 10:05:45 +0200 |
---|---|---|
committer | Michael Vetter <jubalh@iodoru.org> | 2020-07-01 10:05:45 +0200 |
commit | 1224aa414e56a763412ee33c2b8779d4e6cb1608 (patch) | |
tree | 45c16465961c5365379f4f99971be1fafe031b1f /src/database.c | |
parent | 7d6ef8f4c8fd4d2a6560095b16e9ba147d3c4c47 (diff) | |
download | profani-tty-1224aa414e56a763412ee33c2b8779d4e6cb1608.tar.gz |
Use files_get_account_data_path instead of duplicate code
We often had a use case where we want the account specific data dir. Let's create a function for this instead of doing it by hand each time.
Diffstat (limited to 'src/database.c')
-rw-r--r-- | src/database.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/src/database.c b/src/database.c index 271c64b6..3337e8df 100644 --- a/src/database.c +++ b/src/database.c @@ -56,31 +56,25 @@ static prof_msg_type_t _get_message_type_type(const char *const type); static char* _get_db_filename(ProfAccount *account) { - char *databasedir = files_get_data_path(DIR_DATABASE); - GString *basedir = g_string_new(databasedir); - free(databasedir); + gchar *database_dir = files_get_account_data_path(DIR_DATABASE, account->jid); - g_string_append(basedir, "/"); - - gchar *account_dir = str_replace(account->jid, "@", "_at_"); - g_string_append(basedir, account_dir); - free(account_dir); - - int res = g_mkdir_with_parents(basedir->str, S_IRWXU); + int res = g_mkdir_with_parents(database_dir, S_IRWXU); if (res == -1) { char *errmsg = strerror(errno); if (errmsg) { - log_error("DATABASE: error creating directory: %s, %s", basedir->str, errmsg); + log_error("DATABASE: error creating directory: %s, %s", database_dir, errmsg); } else { - log_error("DATABASE: creating directory: %s", basedir->str); + log_error("DATABASE: creating directory: %s", database_dir); } - g_string_free(basedir, TRUE); + g_free(database_dir); return NULL; } - g_string_append(basedir, "/chatlog.db"); - char *result = strdup(basedir->str); - g_string_free(basedir, TRUE); + GString *chatlog_filename = g_string_new(database_dir); + g_string_append(chatlog_filename, "/chatlog.db"); + gchar *result = g_strdup(chatlog_filename->str); + g_string_free(chatlog_filename, TRUE); + g_free(database_dir); return result; } |