aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog13
-rw-r--r--camel/camel-mime-part-utils.c3
-rw-r--r--camel/providers/imap/camel-imap-folder.c2
-rw-r--r--camel/providers/local/camel-spool-summary.c7
4 files changed, 24 insertions, 1 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index 75af583835..343e98921d 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,3 +1,16 @@
+2002-04-11 Not Zed <NotZed@Ximian.com>
+
+ * providers/local/camel-spool-summary.c (spool_summary_sync_full):
+ If the last message(s) were deleted, and we had any messages
+ output, account for the lost \n of the following From line by
+ adding an extra \n. fix for #8214.
+
+2002-04-10 Not Zed <NotZed@Ximian.com>
+
+ * camel-mime-part-utils.c (convert_buffer): If we get a 0 length
+ input, return a 0 lenght output as valid - fixes bugs with some
+ iconv impl and its simpler anyway.
+
2002-04-11 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c: Set the UID_SET_LIMIT value
diff --git a/camel/camel-mime-part-utils.c b/camel/camel-mime-part-utils.c
index 0d79c02e9a..987e5e77d7 100644
--- a/camel/camel-mime-part-utils.c
+++ b/camel/camel-mime-part-utils.c
@@ -108,6 +108,9 @@ convert_buffer (GByteArray *in, const char *to, const char *from)
char *outbuf;
iconv_t cd;
+ if (in->len == 0)
+ return g_byte_array_new();
+
d(printf("converting buffer from %s to %s: '%.*s'\n", from, to, (int)in->len, in->data));
cd = e_iconv_open(to, from);
diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c
index a2931e3d8a..811533d25a 100644
--- a/camel/providers/imap/camel-imap-folder.c
+++ b/camel/providers/imap/camel-imap-folder.c
@@ -1731,7 +1731,7 @@ add_message_from_data (CamelFolder *folder, GPtrArray *messages,
if (seq - first >= messages->len)
g_ptr_array_set_size (messages, seq - first + 1);
-
+
msg = camel_mime_message_new ();
if (camel_data_wrapper_construct_from_stream (CAMEL_DATA_WRAPPER (msg), stream) == -1) {
camel_object_unref (CAMEL_OBJECT (msg));
diff --git a/camel/providers/local/camel-spool-summary.c b/camel/providers/local/camel-spool-summary.c
index d8c85b9e6d..ff8f6a85a9 100644
--- a/camel/providers/local/camel-spool-summary.c
+++ b/camel/providers/local/camel-spool-summary.c
@@ -784,6 +784,13 @@ spool_summary_sync_full(CamelSpoolSummary *cls, gboolean expunge, CamelFolderCha
}
}
+ /* if the last message was deleted, and we had any messages left,
+ make sure we close out with a closing \n - since we removed the
+ one part of the From line following it */
+ if (lastdel && count > 0) {
+ write(fdout, "\n", 1);
+ }
+
/* sync out content */
if (fsync(fdout) == -1) {
g_warning("Cannot sync temporary folder: %s", strerror(errno));