diff options
Diffstat (limited to 'libsylph/news.c')
-rw-r--r-- | libsylph/news.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/libsylph/news.c b/libsylph/news.c index 55cd7c0d..5a6afc14 100644 --- a/libsylph/news.c +++ b/libsylph/news.c @@ -176,18 +176,20 @@ static Folder *news_folder_new(const gchar *name, const gchar *path) static void news_folder_destroy(Folder *folder) { - gchar *dir; - - dir = folder_get_path(folder); - if (is_dir_exist(dir)) - remove_dir_recursive(dir); - g_free(dir); - - dir = g_strconcat(get_news_cache_dir(), G_DIR_SEPARATOR_S, - folder->account->nntp_server, NULL); - if (is_dir_exist(dir)) - g_rmdir(dir); - g_free(dir); + if (REMOTE_FOLDER(folder)->remove_cache_on_destroy) { + gchar *dir; + + dir = folder_get_path(folder); + if (is_dir_exist(dir)) + remove_dir_recursive(dir); + g_free(dir); + + dir = g_strconcat(get_news_cache_dir(), G_DIR_SEPARATOR_S, + folder->account->nntp_server, NULL); + if (is_dir_exist(dir)) + g_rmdir(dir); + g_free(dir); + } folder_remote_folder_destroy(REMOTE_FOLDER(folder)); } |