[evolution-patches] Fix for "Not all deleted mails getting expunged"
- From: "Pasupathilingam Sankarasivasubramanian" <psankar novell com>
- To: <evolution-patches lists ximian com>
- Cc: "Susarla Parthasarathi" <SParthasarathi novell com>
- Subject: [evolution-patches] Fix for "Not all deleted mails getting expunged"
- Date: Wed, 30 Mar 2005 22:33:14 -0700
Hi,
The attached patch will fix the bug 74254. The bug is, when more than
one mails are deleted and expunged, not all the mails are getting
expunged.
groupwise_expunge function in camel-groupwise-folder is changed.
Regards,
Sankar P
? 74254.patch
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/providers/groupwise/ChangeLog,v
retrieving revision 1.42
diff -u -p -r1.42 ChangeLog
--- ChangeLog 21 Mar 2005 16:58:40 -0000 1.42
+++ ChangeLog 31 Mar 2005 05:26:19 -0000
@@ -1,3 +1,10 @@
+2005-03-31 Sankar P <psankar novell com>
+
+ * camel-groupwise-folder.c: (groupwise_expunge)
+ Deferred removing a deleted item from the summary untill all items are deleted,
+ since instantaneous removal will alter the index of subsequent items in the summary
+ Fixes #74254
+
2005-03-15 Chenthill Palanisamy <pchenthill novell com>
Fixes #73421
Index: camel-groupwise-folder.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/providers/groupwise/camel-groupwise-folder.c,v
retrieving revision 1.43
diff -u -p -r1.43 camel-groupwise-folder.c
--- camel-groupwise-folder.c 21 Mar 2005 16:58:40 -0000 1.43
+++ camel-groupwise-folder.c 31 Mar 2005 05:26:20 -0000
@@ -1017,14 +1017,15 @@ groupwise_expunge (CamelFolder *folder,
EGwConnectionStatus status ;
CamelFolderChangeInfo *changes ;
int i, max;
- gboolean delete = FALSE ;
+ GSList *list;
+ list=NULL;
CAMEL_SERVICE_LOCK (groupwise_store, connect_lock);
changes = camel_folder_change_info_new () ;
cnc = cnc_lookup (priv) ;
-
+
container_id = g_strdup (camel_groupwise_store_container_id_lookup (groupwise_store, folder->name)) ;
max = camel_folder_summary_count (folder->summary);
@@ -1035,16 +1036,23 @@ groupwise_expunge (CamelFolder *folder,
const char *uid = camel_message_info_uid (info) ;
status = e_gw_connection_remove_item (cnc, container_id, uid);
if (status == E_GW_CONNECTION_STATUS_OK) {
- camel_folder_change_info_remove_uid (changes, (char *) uid);
- camel_folder_summary_remove_uid (folder->summary, uid) ;
- delete = TRUE ;
+ list=g_slist_append(list,(char *)uid);
}
}
camel_message_info_free (info);
}
- if (delete)
- camel_object_trigger_event (CAMEL_OBJECT (folder), "folder_changed", changes) ;
+ if (list) {
+ char *uid;
+ do {
+ uid=(char *)list->data;
+ camel_folder_change_info_remove_uid (changes, (char *) uid);
+ camel_folder_summary_remove_uid(folder->summary,uid);
+ list=g_slist_next(list);
+ } while (list);
+ g_slist_free(list);
+ camel_object_trigger_event (CAMEL_OBJECT (folder), "folder_changed", changes);
+ }
CAMEL_SERVICE_UNLOCK (groupwise_store, connect_lock);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]