Fri, 30 Jun 2017 16:12:25 +0300
Use common function for getting XDG specific directory
| libpurple/util.c | file | annotate | diff | comparison | revisions |
--- a/libpurple/util.c Fri Jun 30 15:39:44 2017 +0300 +++ b/libpurple/util.c Fri Jun 30 16:12:25 2017 +0300 @@ -2959,46 +2959,36 @@ return user_dir; } +static const gchar * +purple_xdg_dir(gchar **xdg_dir, const gchar *xdg_base_dir, const gchar *xdg_type) +{ + if (!*xdg_dir) { + if (!custom_user_dir) { + *xdg_dir = g_build_filename(xdg_base_dir, "purple", NULL); + } else { + *xdg_dir = g_build_filename(custom_user_dir, xdg_type, NULL); + } + } + + return *xdg_dir; +} + const gchar * purple_cache_dir(void) { - if (!cache_dir) { - if (!custom_user_dir) { - cache_dir = g_build_filename(g_get_user_cache_dir(), "purple", NULL); - } else { - cache_dir = g_build_filename(custom_user_dir, "cache", NULL); - } - } - - return cache_dir; + return purple_xdg_dir(&cache_dir, g_get_user_cache_dir(), "cache"); } const gchar * purple_config_dir(void) { - if (!config_dir) { - if (!custom_user_dir) { - config_dir = g_build_filename(g_get_user_config_dir(), "purple", NULL); - } else { - config_dir = g_build_filename(custom_user_dir, "config", NULL); - } - } - - return config_dir; + return purple_xdg_dir(&config_dir, g_get_user_config_dir(), "config"); } const gchar * purple_data_dir(void) { - if (!data_dir) { - if (!custom_user_dir) { - data_dir = g_build_filename(g_get_user_data_dir(), "purple", NULL); - } else { - data_dir = g_build_filename(custom_user_dir, "data", NULL); - } - } - - return data_dir; + return purple_xdg_dir(&data_dir, g_get_user_data_dir(), "data"); } void @@ -3108,7 +3098,7 @@ gboolean purple_util_write_data_to_config_file(const char *filename, const char *data, gssize size) { - const char *config_dir = purple_cache_dir(); + const char *config_dir = purple_config_dir(); gboolean ret = purple_util_write_data_to_file_common(config_dir, filename, data, size); return ret; @@ -3117,7 +3107,7 @@ gboolean purple_util_write_data_to_data_file(const char *filename, const char *data, gssize size) { - const char *data_dir = purple_cache_dir(); + const char *data_dir = purple_data_dir(); gboolean ret = purple_util_write_data_to_file_common(data_dir, filename, data, size); return ret;