folder_item_update_freeze();
if (newmsg_list != NULL) {
- GSList *elem;
+ GSList *elem, *to_filter = NULL;
int total = g_slist_length(newmsg_list), cur = 0;
if ((filtering == TRUE) &&
(item->folder->account != NULL) &&
(item->folder->account->filter_on_recv) &&
procmsg_msginfo_filter(msginfo))
- procmsg_msginfo_free(msginfo);
+ to_filter = g_slist_append(to_filter, msginfo);
else
exists_list = g_slist_prepend(exists_list, msginfo);
}
+ filtering_move_and_copy_msgs(to_filter);
+ for (elem = to_filter; elem; elem = g_slist_next(elem)) {
+ MsgInfo *msginfo = (MsgInfo *)elem->data;
+ procmsg_msginfo_free(msginfo);
+ }
+
+ g_slist_free(to_filter);
g_slist_free(newmsg_list);
statusbar_progress_all(0,0,0);
src->folder->klass->remove_folder(src->folder, src);
folder_write_list();
- if (old_id != NULL && new_id != NULL)
+ if (old_id != NULL && new_id != NULL) {
prefs_filtering_rename_path(old_id, new_id);
+ account_rename_path(old_id, new_id);
+ }
g_free(old_id);
g_free(new_id);
WantSyncData *want_sync_data = (WantSyncData *)data;
if (want_sync_data->folder == NULL || item->folder == want_sync_data->folder) {
- if(item->prefs->offlinesync && item->folder->klass->synchronise)
- want_sync_data->want_sync = TRUE;
- else
- want_sync_data->want_sync = FALSE;
+ if (item->prefs->offlinesync && item->folder->klass->synchronise)
+ want_sync_data->want_sync |= TRUE;
}
}
WantSyncData *want_sync_data = g_new0(WantSyncData, 1);
gboolean result;
want_sync_data->folder = folder;
+ want_sync_data->want_sync = FALSE;
folder_func_to_all_folders(folder_item_want_synchronise_func, want_sync_data);
result = want_sync_data->want_sync;