From: Andrej Kacian Date: Tue, 3 Oct 2006 10:19:12 +0000 (+0000) Subject: 2006-10-03 [ticho] 2.5.2cvs39 X-Git-Tag: rel_2_6_0~78 X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=600b132148d3b46c98f1df8d1ead01038387135e 2006-10-03 [ticho] 2.5.2cvs39 * src/filtering.c * src/folder.c * src/inc.c * src/mbox.c Colin's fix for "copy" filtering rules. --- diff --git a/ChangeLog b/ChangeLog index 2232f6739..6d317909c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-10-03 [ticho] 2.5.2cvs39 + + * src/filtering.c + * src/folder.c + * src/inc.c + * src/mbox.c + Colin's fix for "copy" filtering rules. + 2006-10-02 [colin] 2.5.2cvs38 * src/folderview.c diff --git a/PATCHSETS b/PATCHSETS index 21c774d1c..13cb7702a 100644 --- a/PATCHSETS +++ b/PATCHSETS @@ -1952,3 +1952,4 @@ ( cvs diff -u -r 1.207.2.125 -r 1.207.2.126 src/folderview.c; ) > 2.5.2cvs36.patchset ( cvs diff -u -r 1.207.2.126 -r 1.207.2.127 src/folderview.c; ) > 2.5.2cvs37.patchset ( cvs diff -u -r 1.207.2.127 -r 1.207.2.128 src/folderview.c; ) > 2.5.2cvs38.patchset +( cvs diff -u -r 1.60.2.21 -r 1.60.2.22 src/filtering.c; cvs diff -u -r 1.213.2.119 -r 1.213.2.120 src/folder.c; cvs diff -u -r 1.149.2.59 -r 1.149.2.60 src/inc.c; cvs diff -u -r 1.28.2.28 -r 1.28.2.29 src/mbox.c; ) > 2.5.2cvs39.patchset diff --git a/configure.ac b/configure.ac index 1c4823cf6..31eaf0740 100644 --- a/configure.ac +++ b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=5 MICRO_VERSION=2 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=38 +EXTRA_VERSION=39 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/filtering.c b/src/filtering.c index 602b17949..2b3282f18 100644 --- a/src/filtering.c +++ b/src/filtering.c @@ -181,7 +181,7 @@ void filtering_move_and_copy_msgs(GSList *msgs) GSList *messages = g_slist_copy(msgs); FolderItem *last_item = NULL; gboolean is_copy = FALSE, is_move = FALSE; - + debug_print("checking %d messages\n", g_slist_length(msgs)); while (messages) { GSList *batch = NULL, *cur; gint found = 0; @@ -208,6 +208,9 @@ void filtering_move_and_copy_msgs(GSList *msgs) if (found == 0) { debug_print("no more messages to move/copy\n"); break; + } else { + debug_print("%d messages to %s in %s\n", found, + is_copy ? "copy":"move", last_item->name ? last_item->name:"(noname)"); } for (cur = batch; cur; cur = cur->next) { MsgInfo *info = (MsgInfo *)cur->data; diff --git a/src/folder.c b/src/folder.c index 31fac1618..6165a85bc 100644 --- a/src/folder.c +++ b/src/folder.c @@ -1960,8 +1960,8 @@ gint folder_item_scan_full(FolderItem *item, gboolean filtering) &to_filter, &unfiltered, TRUE); + filtering_move_and_copy_msgs(newmsg_list); if (to_filter != NULL) { - 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); diff --git a/src/inc.c b/src/inc.c index c86a6c598..7ad4fa480 100644 --- a/src/inc.c +++ b/src/inc.c @@ -657,9 +657,8 @@ static gint inc_start(IncProgressDialog *inc_dialog) &filtered, &unfiltered, pop3_session->ac_prefs->filter_on_recv); - if (filtered != NULL) - filtering_move_and_copy_msgs(filtered); - if (unfiltered != NULL) + filtering_move_and_copy_msgs(msglist); + if (unfiltered != NULL) folder_item_move_msgs(inbox, unfiltered); for(msglist_element = msglist; msglist_element != NULL; diff --git a/src/mbox.c b/src/mbox.c index 03883f08c..dd7ea090b 100644 --- a/src/mbox.c +++ b/src/mbox.c @@ -251,16 +251,16 @@ gint proc_mbox(FolderItem *dest, const gchar *mbox, gboolean apply_filter, if (apply_filter) { procmsg_msglist_filter(to_filter, account, &filtered, &unfiltered, TRUE); - unfiltered = g_slist_reverse(unfiltered); - folder_item_move_msgs(dest, unfiltered); - for (cur = unfiltered; cur; cur = g_slist_next(cur)) { + + filtering_move_and_copy_msgs(to_filter); + for (cur = filtered; cur; cur = g_slist_next(cur)) { MsgInfo *info = (MsgInfo *)cur->data; procmsg_msginfo_free(info); } - filtered = g_slist_reverse(filtered); - filtering_move_and_copy_msgs(filtered); - for (cur = filtered; cur; cur = g_slist_next(cur)) { + unfiltered = g_slist_reverse(unfiltered); + folder_item_move_msgs(dest, unfiltered); + for (cur = unfiltered; cur; cur = g_slist_next(cur)) { MsgInfo *info = (MsgInfo *)cur->data; procmsg_msginfo_free(info); }