+2006-03-07 [paul] 2.0.0cvs118
+
+ * src/news.c
+ * src/news_gtk.c
+ when unsubscribing a newsgroup, remove the
+ folder and msgs in .sylpheed-claws/newscache
+ Patch by Pawel Pekala <c0rn@gazeta.pl>
+
2006-03-07 [paul] 2.0.0cvs117
* src/textview.c
( cvs diff -u -r 1.179.2.97 -r 1.179.2.98 src/imap.c; ) > 2.0.0cvs115.patchset
( cvs diff -u -r 1.179.2.98 -r 1.179.2.99 src/imap.c; cvs diff -u -r 1.2.2.15 -r 1.2.2.16 src/gtk/inputdialog.c; ) > 2.0.0cvs116.patchset
( cvs diff -u -r 1.96.2.99 -r 1.96.2.100 src/textview.c; ) > 2.0.0cvs117.patchset
+( cvs diff -u -r 1.101.2.22 -r 1.101.2.23 src/news.c; cvs diff -u -r 1.2.2.16 -r 1.2.2.17 src/news_gtk.c; ) > 2.0.0cvs118.patchset
static int news_dummy_remove (Folder *folder,
FolderItem *item,
gint msgnum);
+static gint news_remove_folder (Folder *folder,
+ FolderItem *item);
static FolderClass news_class;
FolderClass *news_get_class(void)
news_class.item_get_path = news_item_get_path;
news_class.get_num_list = news_get_num_list;
news_class.scan_required = news_scan_required;
+ news_class.remove_folder = news_remove_folder;
/* Message functions */
news_class.get_msginfo = news_get_msginfo;
{
news_gtk_synchronise(item);
}
+
+static gint news_remove_folder(Folder *folder, FolderItem *item)
+{
+ gchar *path;
+
+ g_return_val_if_fail(folder != NULL, -1);
+ g_return_val_if_fail(item != NULL, -1);
+ g_return_val_if_fail(item->path != NULL, -1);
+
+ path = folder_item_get_path(item);
+ if (remove_dir_recursive(path) < 0) {
+ g_warning("can't remove directory `%s'\n", path);
+ g_free(path);
+ return -1;
+ }
+
+ g_free(path);
+ folder_item_remove(item);
+ return 0;
+}
folderview->opened = NULL;
}
- folder_item_remove(item);
+ if(item->folder->klass->remove_folder(item->folder, item) < 0) {
+ folder_item_scan(item);
+ alertpanel_error(_("Can't remove the folder '%s'."), name);
+ g_free(old_id);
+ return;
+ }
+
folder_write_list();
prefs_filtering_delete_path(old_id);