diff options
author | Not Zed <NotZed@HelixCode.com> | 2000-12-11 12:09:03 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2000-12-11 12:09:03 +0800 |
commit | 154f1347bdec7a894ba253bc0b5f8d33e3bc4b24 (patch) | |
tree | ece81483289850eab468e8b47fa9275f1e44a6a2 /camel/providers/local | |
parent | ba28f6622636fc3932aab4a0551e2d86b69fd6e4 (diff) | |
download | gsoc2013-evolution-154f1347bdec7a894ba253bc0b5f8d33e3bc4b24.tar.gz gsoc2013-evolution-154f1347bdec7a894ba253bc0b5f8d33e3bc4b24.tar.zst gsoc2013-evolution-154f1347bdec7a894ba253bc0b5f8d33e3bc4b24.zip |
Hrm, we actually want to call set_header, not add_header here, probably
2000-12-11 Not Zed <NotZed@HelixCode.com>
* camel-medium.c (camel_medium_set_header): Hrm, we actually want
to call set_header, not add_header here, probably explains some
duplicate X-Evolution headers i was trying to track down. Also
changed the api to handle a NULL value == remove the header.
* providers/local/camel-maildir-summary.c
(maildir_summary_decode_x_evolution): Always return error, we dont
use x-evolution for maildir.
(maildir_summary_encode_x_evolution): Always return a NULL string,
likewise.
(maildir_summary_add): Hook in here, since the _new function
doesn't have access to any flags from the caller. If we have
flags, then update the filename again. Not ideal, but should
work.
svn path=/trunk/; revision=6897
Diffstat (limited to 'camel/providers/local')
-rw-r--r-- | camel/providers/local/camel-maildir-summary.c | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/camel/providers/local/camel-maildir-summary.c b/camel/providers/local/camel-maildir-summary.c index 8bf630efe5..8d421d5fdd 100644 --- a/camel/providers/local/camel-maildir-summary.c +++ b/camel/providers/local/camel-maildir-summary.c @@ -46,9 +46,11 @@ static void message_info_free(CamelFolderSummary *, CamelMessageInfo *mi); static int maildir_summary_load(CamelLocalSummary *cls, int forceindex, CamelException *ex); static int maildir_summary_check(CamelLocalSummary *cls, CamelFolderChangeInfo *changeinfo, CamelException *ex); static int maildir_summary_sync(CamelLocalSummary *cls, gboolean expunge, CamelFolderChangeInfo *changeinfo, CamelException *ex); -/*static int maildir_summary_add(CamelLocalSummary *cls, CamelMimeMessage *msg, CamelMessageInfo *info, CamelFolderChangeInfo *, CamelException *ex);*/ +static CamelMessageInfo *maildir_summary_add(CamelLocalSummary *cls, CamelMimeMessage *msg, const CamelMessageInfo *info, CamelFolderChangeInfo *, CamelException *ex); static char *maildir_summary_next_uid_string(CamelFolderSummary *s); +static int maildir_summary_decode_x_evolution(CamelLocalSummary *cls, const char *xev, CamelMessageInfo *mi); +static char *maildir_summary_encode_x_evolution(CamelLocalSummary *cls, const CamelMessageInfo *mi); static void camel_maildir_summary_class_init (CamelMaildirSummaryClass *class); static void camel_maildir_summary_init (CamelMaildirSummary *gspaper); @@ -100,7 +102,9 @@ camel_maildir_summary_class_init (CamelMaildirSummaryClass *class) lklass->load = maildir_summary_load; lklass->check = maildir_summary_check; lklass->sync = maildir_summary_sync; - /*lklass->add = maildir_summary_add;*/ + lklass->add = maildir_summary_add; + lklass->encode_x_evolution = maildir_summary_encode_x_evolution; + lklass->decode_x_evolution = maildir_summary_decode_x_evolution; } static void @@ -215,8 +219,34 @@ int camel_maildir_summary_name_to_info(CamelMessageInfo *info, const char *name) return 0; } -/* FIXME: We need to also provide an encode/decode X-Evolution function, as the default - is no good for us, and can screw up the uid info */ +/* for maildir, x-evolution isn't used, so dont try and get anything out of it */ +static int maildir_summary_decode_x_evolution(CamelLocalSummary *cls, const char *xev, CamelMessageInfo *mi) +{ + return -1; +} + +static char *maildir_summary_encode_x_evolution(CamelLocalSummary *cls, const CamelMessageInfo *mi) +{ + return NULL; +} + +/* FIXME: + both 'new' and 'add' will try and set the filename, this is not ideal ... +*/ +static CamelMessageInfo *maildir_summary_add(CamelLocalSummary *cls, CamelMimeMessage *msg, const CamelMessageInfo *info, CamelFolderChangeInfo *changes, CamelException *ex) +{ + CamelMessageInfo *mi; + + mi = ((CamelLocalSummaryClass *) parent_class)->add(cls, msg, info, changes, ex); + if (mi) { + if (info) { + camel_maildir_info_set_filename(mi, camel_maildir_summary_info_to_name(mi)); + d(printf("Setting filename to %s\n", camel_maildir_info_filename(mi))); + } + } + + return mi; +} static CamelMessageInfo *message_info_new(CamelFolderSummary * s, struct _header_raw *h) { |