aboutsummaryrefslogtreecommitdiffstats
path: root/filter/filter-driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'filter/filter-driver.c')
-rw-r--r--filter/filter-driver.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/filter/filter-driver.c b/filter/filter-driver.c
index 369d3573e2..0a5ecc0561 100644
--- a/filter/filter-driver.c
+++ b/filter/filter-driver.c
@@ -292,7 +292,6 @@ do_delete (struct _ESExp *f, int argc, struct _ESExpResult **argv, FilterDriver
d(fprintf (stderr, "doing delete\n"));
p->deleted = TRUE;
- p->info->flags = p->info->flags | CAMEL_MESSAGE_DELETED;
report_status (driver, FILTER_STATUS_ACTION, "Delete");
return NULL;
@@ -347,7 +346,6 @@ do_move (struct _ESExp *f, int argc, struct _ESExpResult **argv, FilterDriver *d
d(fprintf (stderr, "moving message...\n"));
p->copied = TRUE;
p->deleted = TRUE; /* a 'move' is a copy & delete */
- p->info->flags = p->info->flags | CAMEL_MESSAGE_DELETED;
for (i = 0; i < argc; i++) {
if (argv[i]->type == ESEXP_RES_STRING) {
/* open folders we intent to move to */
@@ -704,6 +702,10 @@ filter_driver_filter_message (FilterDriver *driver, CamelMimeMessage *message, C
mail_tool_camel_lock_down ();
}
+ /* *Now* we can set the DELETED flag... */
+ if (p->deleted)
+ info->flags = info->flags | CAMEL_MESSAGE_DELETED;
+
if (freeinfo) {
camel_flag_list_free (&info->user_flags);
camel_tag_list_free (&info->user_tags);