aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers
diff options
context:
space:
mode:
authorNot Zed <NotZed@HelixCode.com>2000-12-11 12:09:03 +0800
committerMichael Zucci <zucchi@src.gnome.org>2000-12-11 12:09:03 +0800
commit154f1347bdec7a894ba253bc0b5f8d33e3bc4b24 (patch)
treeece81483289850eab468e8b47fa9275f1e44a6a2 /camel/providers
parentba28f6622636fc3932aab4a0551e2d86b69fd6e4 (diff)
downloadgsoc2013-evolution-154f1347bdec7a894ba253bc0b5f8d33e3bc4b24.tar
gsoc2013-evolution-154f1347bdec7a894ba253bc0b5f8d33e3bc4b24.tar.gz
gsoc2013-evolution-154f1347bdec7a894ba253bc0b5f8d33e3bc4b24.tar.bz2
gsoc2013-evolution-154f1347bdec7a894ba253bc0b5f8d33e3bc4b24.tar.lz
gsoc2013-evolution-154f1347bdec7a894ba253bc0b5f8d33e3bc4b24.tar.xz
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')
-rw-r--r--camel/providers/local/camel-maildir-summary.c38
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)
{