[evolution-patches] 70590, again, filtering problems




the last patch introduced a small bug, that is, moved messages get deleted, but then always placed in the inbox anyway - if the backend implements move as copy+delete, or if coming from pop.


Index: camel/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/ChangeLog,v
retrieving revision 1.2435
diff -u -p -r1.2435 ChangeLog
--- camel/ChangeLog	2 Mar 2005 02:56:20 -0000	1.2435
+++ camel/ChangeLog	2 Mar 2005 05:11:19 -0000
@@ -1,3 +1,11 @@
+2005-03-02  Not Zed  <NotZed Ximian com>
+
+	** See bug #70590 (again)
+
+	* camel-filter-driver.c (camel_filter_driver_filter_message):
+	don't drop to default folder if we moved it.
+	(do_move): mark moved, not copied.
+
 2005-03-01  Not Zed  <NotZed Ximian com>
 
 	** See bug #72876
Index: camel/camel-filter-driver.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/camel-filter-driver.c,v
retrieving revision 1.92
diff -u -p -r1.92 camel-filter-driver.c
--- camel/camel-filter-driver.c	1 Mar 2005 00:58:02 -0000	1.92
+++ camel/camel-filter-driver.c	2 Mar 2005 05:11:19 -0000
@@ -106,6 +106,7 @@ struct _CamelFilterDriverPrivate {
 	gboolean terminated;       /* message processing was terminated */
 	gboolean deleted;          /* message was marked for deletion */
 	gboolean copied;           /* message was copied to some folder or another */
+	gboolean moved;		   /* message was moved to some folder or another */
 	
 	CamelMimeMessage *message; /* input message */
 	CamelMessageInfo *info;    /* message summary info */
@@ -553,8 +554,7 @@ do_move (struct _ESExp *f, int argc, str
 			}
 			
 			if (!camel_exception_is_set (p->ex)) {
-				/* a 'move' is a copy & delete */
-				p->copied = TRUE;
+				p->moved = TRUE;
 				camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Move to folder %s", folder);
 			}
 		}
@@ -1413,6 +1413,7 @@ camel_filter_driver_filter_message (Came
 	p->terminated = FALSE;
 	p->deleted = FALSE;
 	p->copied = FALSE;
+	p->moved = FALSE;
 	p->message = message;
 	p->info = info;
 	p->uid = uid;
@@ -1479,7 +1480,7 @@ camel_filter_driver_filter_message (Came
 	}
 	
 	/* Logic: if !Moved and there exists a default folder... */
-	if (!(p->copied && p->deleted) && p->defaultfolder) {
+	if (!(p->copied && p->deleted) && !p->moved && p->defaultfolder) {
 		/* copy it to the default inbox */
 		filtered = TRUE;
 		camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Copy to default folder");


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]