2005-01-21 Jeffrey Stedfast <fejj@novell.com>
+ * providers/Makefile.am: Removed "imap" from the build and made
+ "imap4" the default.
+
+ * providers/imap4/libcamelimap4.urls: Fixed to only list "imap"
+
+ * providers/imap4/camel-imap4-provider.c: Changed the 'protocol'
+ string to "imap" from "imap4" so we override the old imap urls.
+
+ * providers/imap4/camel-imap4-summary.c: Updated to load/save in
+ the same format as the old imap code so no migration is necessary.
+
* camel-offline-journal.c: Same.
* camel-offline-folder.c (camel_offline_folder_downsync): Use a
* Outlook). Also, some IMAP servers such as GroupWise don't
* store mail in MIME format and so must re-construct the
* entire message in order to extract the requested part, so
- * it is *mush* more efficient (generally) to just request the
+ * it is *much* more efficient (generally) to just request the
* entire message anyway. */
ic = camel_imap4_engine_queue (engine, folder, "UID FETCH %s BODY.PEEK[]\r\n", uid);
camel_imap4_command_register_untagged (ic, "FETCH", untagged_fetch);
static CamelMessageInfo *imap4_message_info_new_from_header (CamelFolderSummary *summary, struct _camel_header_raw *header);
static CamelMessageInfo *imap4_message_info_load (CamelFolderSummary *summary, FILE *fin);
static int imap4_message_info_save (CamelFolderSummary *summary, FILE *fout, CamelMessageInfo *info);
-
+static CamelMessageInfo *imap4_message_info_clone (CamelFolderSummary *summary, const CamelMessageInfo *mi);
+static CamelMessageContentInfo *imap4_content_info_load (CamelFolderSummary *summary, FILE *in);
+static int imap4_content_info_save (CamelFolderSummary *summary, FILE *out, CamelMessageContentInfo *info);
static CamelFolderSummaryClass *parent_class = NULL;
summary_class->message_info_new_from_header = imap4_message_info_new_from_header;
summary_class->message_info_load = imap4_message_info_load;
summary_class->message_info_save = imap4_message_info_save;
+ summary_class->message_info_clone = imap4_message_info_clone;
+ summary_class->content_info_load = imap4_content_info_load;
+ summary_class->content_info_save = imap4_content_info_save;
}
static void
CAMEL_MESSAGE_DRAFT | CAMEL_MESSAGE_FLAGGED | CAMEL_MESSAGE_SEEN;
folder_summary->message_info_size = sizeof (CamelIMAP4MessageInfo);
+ folder_summary->content_info_size = sizeof (CamelIMAP4MessageContentInfo);
summary->update_flags = TRUE;
summary->uidvalidity_changed = FALSE;
return 0;
}
+static CamelMessageInfo *
+imap4_message_info_clone (CamelFolderSummary *summary, const CamelMessageInfo *mi)
+{
+ const CamelIMAP4MessageInfo *src = (const CamelIMAP4MessageInfo *) mi;
+ CamelIMAP4MessageInfo *dest;
+
+ dest = (CamelIMAP4MessageInfo *) CAMEL_FOLDER_SUMMARY_CLASS (parent_class)->message_info_clone (summary, mi);
+ dest->server_flags = src->server_flags;
+
+ /* FIXME: parent clone should do this */
+ dest->info.content = camel_folder_summary_content_info_new (summary);
+
+ return (CamelMessageInfo *) dest;
+}
+
+static CamelMessageContentInfo *
+imap4_content_info_load (CamelFolderSummary *summary, FILE *in)
+{
+ if (fgetc (in))
+ return CAMEL_FOLDER_SUMMARY_CLASS (parent_class)->content_info_load (summary, in);
+ else
+ return camel_folder_summary_content_info_new (summary);
+}
+
+static int
+imap4_content_info_save (CamelFolderSummary *summary, FILE *out, CamelMessageContentInfo *info)
+{
+ if (info->type) {
+ fputc (1, out);
+ return CAMEL_FOLDER_SUMMARY_CLASS (parent_class)->content_info_save (summary, out, info);
+ } else
+ return fputc (0, out);
+}
+
void
camel_imap4_summary_set_exists (CamelFolderSummary *summary, guint32 exists)
#define CAMEL_IMAP4_SUMMARY_GET_CLASS(obj) (CAMEL_CHECK_GET_CLASS ((obj), CAMEL_TYPE_FOLDER_SUMMARY, CamelIMAP4SummaryClass))
typedef struct _CamelIMAP4MessageInfo CamelIMAP4MessageInfo;
+typedef struct _CamelIMAP4MessageContentInfo CamelIMAP4MessageContentInfo;
+
typedef struct _CamelIMAP4Summary CamelIMAP4Summary;
typedef struct _CamelIMAP4SummaryClass CamelIMAP4SummaryClass;
guint32 server_flags;
};
+struct _CamelIMAP4MessageContentInfo {
+ CamelMessageContentInfo info;
+
+};
+
struct _CamelIMAP4Summary {
CamelFolderSummary parent_object;