aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/imap/camel-imap-summary.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/providers/imap/camel-imap-summary.c')
-rw-r--r--camel/providers/imap/camel-imap-summary.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/camel/providers/imap/camel-imap-summary.c b/camel/providers/imap/camel-imap-summary.c
index f64cc00c19..ecfd6a1425 100644
--- a/camel/providers/imap/camel-imap-summary.c
+++ b/camel/providers/imap/camel-imap-summary.c
@@ -230,3 +230,30 @@ camel_imap_summary_add_offline (CamelFolderSummary *summary, const char *uid,
camel_message_info_set_uid (mi, g_strdup (uid));
camel_folder_summary_add (summary, mi);
}
+
+void
+camel_imap_summary_add_offline_uncached (CamelFolderSummary *summary, const char *uid,
+ const CamelMessageInfo *info)
+{
+ CamelMessageInfo *mi;
+ CamelMessageContentInfo *ci;
+
+ /* Create summary entry */
+ mi = camel_folder_summary_info_new (summary);
+ ci = camel_folder_summary_content_info_new (summary);
+
+ camel_message_info_dup_to (info, mi);
+ mi->content = ci;
+
+ /* copy our private fields */
+ ((CamelImapMessageInfo *)mi)->server_flags =
+ ((CamelImapMessageInfo *)info)->server_flags;
+
+ /* Copy flags 'n' tags */
+ camel_flag_list_copy (&(mi->user_flags), &(info->user_flags));
+ camel_tag_list_copy (&(mi->user_tags), &(info->user_tags));
+
+ /* Set uid and add to summary */
+ camel_message_info_set_uid (mi, g_strdup (uid));
+ camel_folder_summary_add (summary, mi);
+}