aboutsummaryrefslogtreecommitdiffstats
path: root/camel
diff options
context:
space:
mode:
Diffstat (limited to 'camel')
-rw-r--r--camel/ChangeLog7
-rw-r--r--camel/camel-folder-summary.c2
-rw-r--r--camel/camel-folder.c31
-rw-r--r--camel/camel-search-private.c2
4 files changed, 31 insertions, 11 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index a21445fa11..aeffd7473f 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,5 +1,12 @@
2001-02-23 Not Zed <NotZed@Ximian.com>
+ * camel-folder-summary.c (camel_message_info_new_from_header):
+ Doh, cut and paste problem, use mlist not cc.
+
+ * camel-folder.c (move_message_to):
+ (copy_message_to): If the source folder doesn't support a
+ summary, dont try and get the message info from it.
+
* camel-filter-search.c (check_header): Implement a pseudo-header
"x-camel-mlist" which just looks up in the message info for a
match.
diff --git a/camel/camel-folder-summary.c b/camel/camel-folder-summary.c
index fe327040b1..4e9e9e9d1b 100644
--- a/camel/camel-folder-summary.c
+++ b/camel/camel-folder-summary.c
@@ -2537,7 +2537,7 @@ camel_message_info_new_from_header (struct _header_raw *header)
camel_message_info_set_from(info, from);
camel_message_info_set_to(info, to);
camel_message_info_set_cc(info, cc);
- camel_message_info_set_mlist(info, cc);
+ camel_message_info_set_mlist(info, mlist);
return info;
}
diff --git a/camel/camel-folder.c b/camel/camel-folder.c
index af9edcfe5d..faff5f7556 100644
--- a/camel/camel-folder.c
+++ b/camel/camel-folder.c
@@ -1057,7 +1057,7 @@ static void
copy_message_to (CamelFolder *source, const char *uid, CamelFolder *dest, CamelException *ex)
{
CamelMimeMessage *msg;
- CamelMessageInfo *info;
+ CamelMessageInfo *info = NULL;
/* Default implementation. */
@@ -1065,11 +1065,18 @@ copy_message_to (CamelFolder *source, const char *uid, CamelFolder *dest, CamelE
msg = CF_CLASS(source)->get_message(source, uid, ex);
if (!msg)
return;
- info = CF_CLASS(source)->get_message_info (source, uid);
+ if (source->has_summary_capability)
+ info = CF_CLASS(source)->get_message_info (source, uid);
+ else
+ info = camel_message_info_new_from_header(((CamelMimePart *)msg)->headers);
camel_folder_append_message (dest, msg, info, ex);
camel_object_unref (CAMEL_OBJECT (msg));
- if (info)
- CF_CLASS(source)->free_message_info(source, info);
+ if (info) {
+ if (source->has_summary_capability)
+ CF_CLASS(source)->free_message_info(source, info);
+ else
+ camel_message_info_free(info);
+ }
}
/**
@@ -1109,21 +1116,27 @@ move_message_to (CamelFolder *source, const char *uid,
CamelFolder *dest, CamelException *ex)
{
CamelMimeMessage *msg;
- CamelMessageInfo *info;
+ CamelMessageInfo *info = NULL;
/* Default implementation. */
msg = CF_CLASS(source)->get_message (source, uid, ex);
if (!msg)
return;
- info = CF_CLASS(source)->get_message_info (source, uid);
+ if (source->has_summary_capability)
+ info = CF_CLASS(source)->get_message_info (source, uid);
+ else
+ info = camel_message_info_new_from_header(((CamelMimePart *)msg)->headers);
camel_folder_append_message (dest, msg, info, ex);
camel_object_unref (CAMEL_OBJECT (msg));
if (!camel_exception_is_set(ex))
CF_CLASS(source)->set_message_flags(source, uid, CAMEL_MESSAGE_DELETED, CAMEL_MESSAGE_DELETED);
-
- if (info)
- CF_CLASS(source)->free_message_info(source, info);
+ if (info) {
+ if (source->has_summary_capability)
+ CF_CLASS(source)->free_message_info(source, info);
+ else
+ camel_message_info_free(info);
+ }
}
/**
diff --git a/camel/camel-search-private.c b/camel/camel-search-private.c
index f002bc3ad4..a288e91ca6 100644
--- a/camel/camel-search-private.c
+++ b/camel/camel-search-private.c
@@ -372,7 +372,7 @@ camel_search_header_match (const char *value, const char *match, camel_search_ma
{
const char *p;
int vlen, mlen;
-
+
while (*value && isspace (*value))
value++;