aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog11
-rw-r--r--camel/camel-folder-summary.c5
-rw-r--r--camel/providers/local/camel-local-summary.c16
3 files changed, 25 insertions, 7 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index b7914e1745..38d2d8d142 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,3 +1,14 @@
+2001-07-12 Not Zed <NotZed@Ximian.com>
+
+ * camel-folder-summary.c
+ (camel_folder_summary_info_new_from_message): Removed some code i
+ wasn't supposed to commit.
+
+ * providers/local/camel-local-summary.c (local_summary_add): Only
+ set info->size if it is not zero.
+ (local_summary_add): If we dont get a size from the info passed
+ in, calculate it using a null stream write. Should do #4392.
+
2001-07-11 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-part-utils.c (extract_metatag_charset): New function
diff --git a/camel/camel-folder-summary.c b/camel/camel-folder-summary.c
index 2e2d66d062..120d927766 100644
--- a/camel/camel-folder-summary.c
+++ b/camel/camel-folder-summary.c
@@ -870,7 +870,6 @@ CamelMessageInfo *camel_folder_summary_info_new_from_message(CamelFolderSummary
{
CamelMessageInfo *info;
struct _CamelFolderSummaryPrivate *p = _PRIVATE(s);
- CamelStreamNull *sn;
info = ((CamelFolderSummaryClass *)(CAMEL_OBJECT_GET_CLASS(s)))->message_info_new_from_message(s, msg);
@@ -884,10 +883,6 @@ CamelMessageInfo *camel_folder_summary_info_new_from_message(CamelFolderSummary
}
info->content = summary_build_content_info_message(s, info, (CamelMimePart *)msg);
-#if 0
- sn = camel_stream_null_new();
- camel_data_wrapper_write_to_stream((CamelDataWrapper *)msg, sn);
-#endif
return info;
}
diff --git a/camel/providers/local/camel-local-summary.c b/camel/providers/local/camel-local-summary.c
index a1f1c1334b..c925e6e36a 100644
--- a/camel/providers/local/camel-local-summary.c
+++ b/camel/providers/local/camel-local-summary.c
@@ -33,7 +33,8 @@
#include <stdlib.h>
#include "camel-local-summary.h"
-#include <camel/camel-mime-message.h>
+#include "camel/camel-mime-message.h"
+#include "camel/camel-stream-null.h"
#define io(x)
#define d(x) /*(printf("%s(%d): ", __FILE__, __LINE__),(x))*/
@@ -393,8 +394,19 @@ local_summary_add(CamelLocalSummary *cls, CamelMimeMessage *msg, const CamelMess
}
mi->flags = mi->flags | (info->flags & 0xffff);
- mi->size = info->size;
+ if (info->size)
+ mi->size = info->size;
}
+
+ /* we need to calculate the size ourselves */
+ if (mi->size == 0) {
+ CamelStreamNull *sn = (CamelStreamNull *)camel_stream_null_new();
+
+ camel_data_wrapper_write_to_stream((CamelDataWrapper *)msg, (CamelStream *)sn);
+ mi->size = sn->written;
+ camel_object_unref((CamelObject *)sn);
+ }
+
mi->flags &= ~(CAMEL_MESSAGE_FOLDER_NOXEV|CAMEL_MESSAGE_FOLDER_FLAGGED);
xev = camel_local_summary_encode_x_evolution(cls, mi);
camel_medium_set_header((CamelMedium *)msg, "X-Evolution", xev);