( cvs diff -u -r 1.382.2.87 -r 1.382.2.88 src/compose.c; ) > 1.0.0cvs15.2.patchset
( cvs diff -u -r 1.94.2.38 -r 1.94.2.39 src/messageview.c; cvs diff -u -r 1.395.2.47 -r 1.395.2.48 src/summaryview.c; cvs diff -u -r 1.274.2.27 -r 1.274.2.28 src/mainwindow.c; cvs diff -u -r 1.382.2.88 -r 1.382.2.89 src/compose.c; cvs diff -u -r 1.50.2.6 -r 1.50.2.7 src/compose.h; cvs diff -u -r 1.150.2.18 -r 1.150.2.19 src/procmsg.c; cvs diff -u -r 1.60.2.9 -r 1.60.2.10 src/procmsg.h; cvs diff -u -r 1.43.2.12 -r 1.43.2.13 src/toolbar.c; ) > 1.0.0cvs18.1.patchset
( cvs diff -u -r 1.49.2.29 -r 1.49.2.30 src/procmime.c; ) > 1.0.0cvs19.1.patchset
+( cvs diff -u -r 1.213.2.22 -r 1.213.2.23 src/folder.c; cvs diff -u -r 1.207.2.26 -r 1.207.2.27 src/folderview.c; ) > 1.0.0cvs21.1.patchset
gint folder_item_open(FolderItem *item)
{
gchar *buf;
- if((item->folder->klass->scan_required != NULL) && (item->folder->klass->scan_required(item->folder, item))) {
+ if((item->folder->klass->scan_required != NULL) &&
+ (item->folder->klass->scan_required(item->folder, item))) {
folder_item_scan_full(item, TRUE);
}
folder_item_syncronize_flags(item);
folder = item->folder;
- g_return_val_if_fail(folder->klass->remove_all_msg != NULL, -1);
+ if (folder->klass->remove_all_msg != NULL) {
+ result = folder->klass->remove_all_msg(folder, item);
- result = folder->klass->remove_all_msg(folder, item);
+ if (result == 0) {
+ folder_item_free_cache(item);
+ item->cache = msgcache_new();
+ }
+ } else {
+ MsgInfoList *msglist;
- if (result == 0) {
- folder_item_free_cache(item);
- item->cache = msgcache_new();
+ msglist = folder_item_get_msg_list(item);
+ result = folder_item_remove_msgs(item, msglist);
+ procmsg_msg_list_free(msglist);
+ }
+ if (result == 0) {
item->new_msgs = 0;
item->unread_msgs = 0;
item->unreadmarked_msgs = 0;
for (cur = mlist ; cur != NULL ; cur = cur->next) {
MsgInfo * msginfo = (MsgInfo *) cur->data;
partial_mark_for_delete(msginfo);
- procmsg_msginfo_free(msginfo);
}
+ procmsg_msg_list_free(mlist);
folder_item_remove_all_msg(item);
}