aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--filter/ChangeLog10
-rw-r--r--filter/filter-driver.c6
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);