aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ChangeLog.ja5
-rw-r--r--libsylph/imap.c26
3 files changed, 17 insertions, 19 deletions
diff --git a/ChangeLog b/ChangeLog
index b0583377..9bbdf78f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-01-23
+
+ * libsylph/imap.c: imap_do_copy_msgs(): fixed a bug that cache files
+ in source folder was not removed was fixed.
+
2006-01-20
* src/compose.c: compose_new(): fixed filename encoding.
diff --git a/ChangeLog.ja b/ChangeLog.ja
index aca98832..6fae920a 100644
--- a/ChangeLog.ja
+++ b/ChangeLog.ja
@@ -1,3 +1,8 @@
+2006-01-23
+
+ * libsylph/imap.c: imap_do_copy_msgs(): ソースフォルダのキャッシュ
+ ファイルが削除されなかったバグを修正。
+
2006-01-20
* src/compose.c: compose_new(): ファイル名エンコーディングを修正。
diff --git a/libsylph/imap.c b/libsylph/imap.c
index 43ccdeec..ac0cd1b2 100644
--- a/libsylph/imap.c
+++ b/libsylph/imap.c
@@ -1,6 +1,6 @@
/*
* LibSylph -- E-Mail client library
- * Copyright (C) 1999-2005 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2006 Hiroyuki Yamamoto
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -1341,15 +1341,8 @@ static gint imap_do_copy_msgs(Folder *folder, FolderItem *dest, GSList *msglist,
dest->updated = TRUE;
- if (remove_source) {
- ok = imap_remove_msgs_by_seq_set(folder, src, seq_list);
- if (ok != IMAP_SUCCESS) {
- imap_seq_set_free(seq_list);
- return ok;
- }
- }
-
imap_seq_set_free(seq_list);
+ g_free(destdir);
for (cur = msglist; cur != NULL; cur = cur->next) {
msginfo = (MsgInfo *)cur->data;
@@ -1358,18 +1351,13 @@ static gint imap_do_copy_msgs(Folder *folder, FolderItem *dest, GSList *msglist,
dest->new++;
if (MSG_IS_UNREAD(msginfo->flags))
dest->unread++;
-
- if (remove_source) {
- src->total--;
- if (MSG_IS_NEW(msginfo->flags))
- src->new--;
- if (MSG_IS_UNREAD(msginfo->flags))
- src->unread--;
- MSG_SET_TMP_FLAGS(msginfo->flags, MSG_INVALID);
- }
}
- g_free(destdir);
+ if (remove_source) {
+ ok = imap_remove_msgs(folder, src, msglist);
+ if (ok != IMAP_SUCCESS)
+ return ok;
+ }
if (ok == IMAP_SUCCESS)
return 0;