+2011-11-20 [pawel] 3.7.10cvs96
+
+ * src/filtering.c
+ * src/filtering.h
+ * src/prefs_actions.c
+ Fix bug #1489 'Filter action mark_as_read inoperative
+ following move action'
+ Sort actions lists to have proper order of execution
+
2011-11-20 [pawel] 3.7.10cvs95
* src/prefs_actions.c
( cvs diff -u -r 1.1.2.59 -r 1.1.2.60 manual/advanced.xml; ) > 3.7.10cvs93.patchset
( cvs diff -u -r 1.83.2.182 -r 1.83.2.183 src/mimeview.c; ) > 3.7.10cvs94.patchset
( cvs diff -u -r 1.60.2.75 -r 1.60.2.76 src/prefs_actions.c; cvs diff -u -r 1.59.2.84 -r 1.59.2.85 src/prefs_filtering.c; cvs diff -u -r 1.12.2.79 -r 1.12.2.80 src/prefs_template.c; ) > 3.7.10cvs95.patchset
+( cvs diff -u -r 1.60.2.58 -r 1.60.2.59 src/filtering.c; cvs diff -u -r 1.21.2.19 -r 1.21.2.20 src/filtering.h; cvs diff -u -r 1.60.2.76 -r 1.60.2.77 src/prefs_actions.c; ) > 3.7.10cvs96.patchset
g_free(action);
}
+static gint action_list_sort(gconstpointer a, gconstpointer b)
+{
+ int first = filtering_is_final_action((FilteringAction *) a) ? 1 : 0;
+ int second = filtering_is_final_action((FilteringAction *) b) ? 1 : 0;
+
+ return (first - second);
+}
+
+GSList *filtering_action_list_sort(GSList *action_list)
+{
+ return g_slist_sort(action_list, action_list_sort);
+}
+
FilteringProp * filteringprop_new(gboolean enabled,
const gchar *name,
gint account_id,
filtering->name = name ? g_strdup(name): NULL;
filtering->account_id = account_id;
filtering->matchers = matchers;
- filtering->action_list = action_list;
+ filtering->action_list = filtering_action_list_sort(action_list);
return filtering;
}