[evolution-data-server] Bug #672258 - Error while moving messages in local folders



commit d5b63b78629cb168d56b0ddb0cf16219b7063955
Author: Milan Crha <mcrha redhat com>
Date:   Mon Mar 26 17:47:52 2012 +0200

    Bug #672258 - Error while moving messages in local folders

 camel/providers/local/camel-maildir-folder.c  |    3 +++
 camel/providers/local/camel-maildir-summary.c |   18 ++++++++++++++++++
 2 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/camel/providers/local/camel-maildir-folder.c b/camel/providers/local/camel-maildir-folder.c
index 9f79fb9..f8aadd7 100644
--- a/camel/providers/local/camel-maildir-folder.c
+++ b/camel/providers/local/camel-maildir-folder.c
@@ -354,6 +354,9 @@ maildir_folder_transfer_messages_to_sync (CamelFolder *source,
 						_("Cannot transfer message to destination folder: %s"),
 						g_strerror (errno));
 					camel_message_info_free (info);
+					g_free (s_filename);
+					g_free (d_filename);
+					g_free (new_filename);
 					break;
 				}
 			} else {
diff --git a/camel/providers/local/camel-maildir-summary.c b/camel/providers/local/camel-maildir-summary.c
index 124f541..220f240 100644
--- a/camel/providers/local/camel-maildir-summary.c
+++ b/camel/providers/local/camel-maildir-summary.c
@@ -51,6 +51,7 @@
 #define CAMEL_MAILDIR_SUMMARY_VERSION (0x2000)
 
 static CamelMessageInfo *message_info_new_from_header (CamelFolderSummary *, struct _camel_header_raw *);
+static CamelMessageInfo *maildir_message_info_from_db (CamelFolderSummary *summary, CamelMIRecord *record);
 static void message_info_free (CamelFolderSummary *, CamelMessageInfo *mi);
 
 static gint maildir_summary_load (CamelLocalSummary *cls, gint forceindex, GError **error);
@@ -102,6 +103,7 @@ camel_maildir_summary_class_init (CamelMaildirSummaryClass *class)
 	folder_summary_class->message_info_size = sizeof (CamelMaildirMessageInfo);
 	folder_summary_class->content_info_size = sizeof (CamelMaildirMessageContentInfo);
 	folder_summary_class->message_info_new_from_header = message_info_new_from_header;
+	folder_summary_class->message_info_from_db = maildir_message_info_from_db;
 	folder_summary_class->message_info_free = message_info_free;
 	folder_summary_class->next_uid_string = maildir_summary_next_uid_string;
 
@@ -333,6 +335,22 @@ message_info_new_from_header (CamelFolderSummary *s,
 	return mi;
 }
 
+static CamelMessageInfo *
+maildir_message_info_from_db (CamelFolderSummary *summary,
+			      CamelMIRecord *record)
+{
+	CamelMessageInfo *mi;
+
+	mi = ((CamelFolderSummaryClass *) camel_maildir_summary_parent_class)->message_info_from_db (summary, record);
+	if (mi) {
+		CamelMaildirMessageInfo *mdi = (CamelMaildirMessageInfo *) mi;
+
+		camel_maildir_info_set_filename (mdi, camel_maildir_summary_info_to_name (mdi));
+	}
+
+	return mi;
+}
+
 static void
 message_info_free (CamelFolderSummary *s,
                    CamelMessageInfo *mi)



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