commit 6408f4a501cf08f6e33bb920b8bb4e51dddb23db
parent 2a3e98d24814b8a92b0d995c94a4c24c580a4c4a
Author: Stephan Sachse <ste.sachse@gmail.com>
Date: Sun, 26 Jul 2015 02:22:15 +0200
fix nntp manually filtering with account specific rules
manually running filter on nntp folders doesn't work correctly with
account specific rules. filtering_match_condition() in filtering.c:568
always gets a NULL as ac_prefs and every check with ac_prefs fails
subsequently. later cur_account is used instead, what is imo clearly
wrong and useless.
i have patched summaryview.c:5649 summary_filter() to extract the
account data from summaryview and hand over them as new parameter to
summary_filter_func().
works for me on fedora 22 and claws-mail-3.11.1
Signed-off-by: Stephan Sachse <ste.sachse@gmail.com>
Signed-off-by: Andrej Kacian <ticho@claws-mail.org>
Diffstat:
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/summaryview.c b/src/summaryview.c
@@ -231,7 +231,8 @@ static void summary_unthread_for_exec_func (GtkCMCTree *ctree,
void summary_simplify_subject(SummaryView *summaryview, gchar * rexp,
GSList * mlist);
-static void summary_filter_func (MsgInfo *msginfo);
+static void summary_filter_func (MsgInfo *msginfo,
+ PrefsAccount *ac_prefs);
static void summary_colorlabel_menu_item_activate_cb
(GtkWidget *widget,
@@ -5821,6 +5822,7 @@ static gboolean summary_filter_get_mode(void)
void summary_filter(SummaryView *summaryview, gboolean selected_only)
{
GSList *mlist = NULL, *cur_list;
+ PrefsAccount *ac_prefs = NULL;
summary_lock(summaryview);
/* are there any per-account filtering rules? */
@@ -5855,9 +5857,13 @@ void summary_filter(SummaryView *summaryview, gboolean selected_only)
mlist = folder_item_get_msg_list(summaryview->folder_item);
}
+ ac_prefs = ((summaryview->folder_item->folder != NULL) &&
+ (summaryview->folder_item->folder->account != NULL))
+ ? summaryview->folder_item->folder->account : NULL;
+
folder_item_set_batch(summaryview->folder_item, TRUE);
for (cur_list = mlist; cur_list; cur_list = cur_list->next) {
- summary_filter_func((MsgInfo *)cur_list->data);
+ summary_filter_func((MsgInfo *)cur_list->data, ac_prefs);
}
folder_item_set_batch(summaryview->folder_item, FALSE);
@@ -5884,7 +5890,7 @@ void summary_filter(SummaryView *summaryview, gboolean selected_only)
summary_show(summaryview, summaryview->folder_item);
}
-static void summary_filter_func(MsgInfo *msginfo)
+static void summary_filter_func(MsgInfo *msginfo, PrefsAccount *ac_prefs)
{
MailFilteringData mail_filtering_data;
@@ -5895,7 +5901,7 @@ static void summary_filter_func(MsgInfo *msginfo)
if (hooks_invoke(MAIL_MANUAL_FILTERING_HOOKLIST, &mail_filtering_data))
return;
- filter_message_by_msginfo(filtering_rules, msginfo, NULL,
+ filter_message_by_msginfo(filtering_rules, msginfo, ac_prefs,
FILTERING_MANUALLY, NULL);
}