aboutsummaryrefslogtreecommitdiff
path: root/libsylph/imap.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2009-09-14 05:27:03 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2009-09-14 05:27:03 +0000
commita94ab16492fbcd9c4b568a237bd21df8aed78763 (patch)
tree5754ccb1f4239963572ccb449842d8dc610a444c /libsylph/imap.c
parent5ca8acc55bfcd804401e885f863f0f88ddfacdcb (diff)
update summary caches on receiving.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2247 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'libsylph/imap.c')
-rw-r--r--libsylph/imap.c44
1 files changed, 43 insertions, 1 deletions
diff --git a/libsylph/imap.c b/libsylph/imap.c
index 6213f273..10f9a273 100644
--- a/libsylph/imap.c
+++ b/libsylph/imap.c
@@ -1,6 +1,6 @@
/*
* LibSylph -- E-Mail client library
- * Copyright (C) 1999-2008 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2009 Hiroyuki Yamamoto
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -119,6 +119,15 @@ static gint imap_add_msgs (Folder *folder,
GSList *file_list,
gboolean remove_source,
gint *first);
+static gint imap_add_msg_msginfo (Folder *folder,
+ FolderItem *dest,
+ MsgInfo *msginfo,
+ gboolean remove_source);
+static gint imap_add_msgs_msginfo (Folder *folder,
+ FolderItem *dest,
+ GSList *msglist,
+ gboolean remove_source,
+ gint *first);
static gint imap_move_msg (Folder *folder,
FolderItem *dest,
@@ -396,6 +405,8 @@ static FolderClass imap_class =
imap_get_msginfo,
imap_add_msg,
imap_add_msgs,
+ imap_add_msg_msginfo,
+ imap_add_msgs_msginfo,
imap_move_msg,
imap_move_msgs,
imap_copy_msg,
@@ -1337,6 +1348,37 @@ static gint imap_add_msgs(Folder *folder, FolderItem *dest, GSList *file_list,
return last_uid;
}
+static gint imap_add_msg_msginfo(Folder *folder, FolderItem *dest,
+ MsgInfo *msginfo, gboolean remove_source)
+{
+ GSList msglist;
+
+ g_return_val_if_fail(msginfo != NULL, -1);
+
+ msglist.data = msginfo;
+ msglist.next = NULL;
+
+ return imap_add_msgs_msginfo(folder, dest, &msglist, remove_source,
+ NULL);
+}
+
+static gint imap_add_msgs_msginfo(Folder *folder, FolderItem *dest,
+ GSList *msglist, gboolean remove_source,
+ gint *first)
+{
+ GSList *file_list;
+ gint ret;
+
+ file_list = procmsg_get_message_file_list(msglist);
+ g_return_val_if_fail(file_list != NULL, -1);
+
+ ret = imap_add_msgs(folder, dest, file_list, remove_source, first);
+
+ procmsg_message_file_list_free(file_list);
+
+ return ret;
+}
+
static gint imap_do_copy_msgs(Folder *folder, FolderItem *dest, GSList *msglist,
gboolean remove_source)
{