diff options
-rw-r--r-- | filter/ChangeLog | 10 | ||||
-rw-r--r-- | filter/filter-driver.c | 6 |
2 files changed, 14 insertions, 2 deletions
diff --git a/filter/ChangeLog b/filter/ChangeLog index def818a6be..24dc82fac7 100644 --- a/filter/ChangeLog +++ b/filter/ChangeLog @@ -1,3 +1,13 @@ +2000-10-27 Jeffrey Stedfast <fejj@helixcode.com> + + * filter-driver.c (do_move): Don't mark as deleted here, otherwise + the message will have the DELETED flag set in the folder it's + being moved to. + (do_delete): Don't set the DELETED flag here either...we'll only + set it at the very end of the filtering process. + (filter_driver_filter_message): Set the DELETED flag after all + processing is completed. + 2000-10-26 Jeffrey Stedfast <fejj@helixcode.com> * filtertypes.xml: Readded Source url stuff. 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); |