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.
This commit is contained in:
Michael Vetter
2020-07-01 10:05:45 +02:00
parent 7d6ef8f4c8
commit 1224aa414e
6 changed files with 83 additions and 101 deletions

View File

@@ -154,7 +154,7 @@ files_get_config_path(char *config_base)
}
gchar*
files_get_data_path(char *data_base)
files_get_data_path(const char *const data_base)
{
gchar *xdg_data = _files_get_xdg_data_home();
GString *file_str = g_string_new(xdg_data);
@@ -167,6 +167,24 @@ files_get_data_path(char *data_base)
return result;
}
gchar*
files_get_account_data_path(const char *const specific_dir, const char *const jid)
{
gchar *data_dir = files_get_data_path(specific_dir);
GString *result_dir = g_string_new(data_dir);
g_free(data_dir);
gchar *account_dir = str_replace(jid, "@", "_at_");
g_string_append(result_dir, "/");
g_string_append(result_dir, account_dir);
g_free(account_dir);
gchar *result = g_strdup(result_dir->str);
g_string_free(result_dir, TRUE);
return result;
}
static char*
_files_get_xdg_config_home(void)
{

View File

@@ -61,7 +61,8 @@
void files_create_directories(void);
gchar* files_get_config_path(char *config_base);
gchar* files_get_data_path(char *data_base);
gchar* files_get_data_path(const char *const data_base);
gchar* files_get_account_data_path(const char *const specific_dir, const char *const jid);
gchar* files_get_log_file(char *log_file);
gchar* files_get_inputrc_file(void);