aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ChangeLog.ja5
-rw-r--r--src/procmsg.c29
-rw-r--r--src/procmsg.h3
4 files changed, 36 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 548f640f..0e8ff5c7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2005-07-12
+ * src/procmsg.[ch]: procmsg_send_queue(): clear summary cache to
+ prevent cache discrepancy.
+
+2005-07-12
+
* src/filesel.c: comply with prefs_common.comply_gnome_hig option.
2005-07-12
diff --git a/ChangeLog.ja b/ChangeLog.ja
index 691958ce..02024401 100644
--- a/ChangeLog.ja
+++ b/ChangeLog.ja
@@ -1,5 +1,10 @@
2005-07-12
+ * src/procmsg.[ch]: procmsg_send_queue(): キャッシュの不整合を防ぐ
+ ためにサマリキャッシュをクリアするようにした。
+
+2005-07-12
+
* src/filesel.c: prefs_common.comply_gnome_hig オプションに従うように
した。
diff --git a/src/procmsg.c b/src/procmsg.c
index d3be3765..8f30ab11 100644
--- a/src/procmsg.c
+++ b/src/procmsg.c
@@ -776,6 +776,24 @@ FILE *procmsg_open_mark_file(FolderItem *item, DataOpenMode mode)
return fp;
}
+void procmsg_clear_cache(FolderItem *item)
+{
+ FILE *fp;
+
+ fp = procmsg_open_cache_file(item, DATA_WRITE);
+ if (fp)
+ fclose(fp);
+}
+
+void procmsg_clear_mark(FolderItem *item)
+{
+ FILE *fp;
+
+ fp = procmsg_open_mark_file(item, DATA_WRITE);
+ if (fp)
+ fclose(fp);
+}
+
/* return the reversed thread tree */
GNode *procmsg_get_thread_tree(GSList *mlist)
{
@@ -1202,16 +1220,12 @@ void procmsg_get_filter_keyword(MsgInfo *msginfo, gchar **header, gchar **key,
void procmsg_empty_trash(FolderItem *trash)
{
- FILE *fp;
-
if (trash && trash->total > 0) {
debug_print("Emptying messages in %s ...\n", trash->path);
folder_item_remove_all_msg(trash);
- fp = procmsg_open_cache_file(trash, DATA_WRITE);
- if (fp) fclose(fp);
- fp = procmsg_open_mark_file(trash, DATA_WRITE);
- if (fp) fclose(fp);
+ procmsg_clear_cache(trash);
+ procmsg_clear_mark(trash);
trash->cache_dirty = FALSE;
trash->mark_dirty = FALSE;
}
@@ -1296,6 +1310,9 @@ gint procmsg_send_queue(FolderItem *queue, gboolean save_msgs,
}
procmsg_msg_list_free(mlist);
+
+ procmsg_clear_cache(queue);
+ queue->cache_dirty = FALSE;
queue->mtime = 0;
return ret;
diff --git a/src/procmsg.h b/src/procmsg.h
index 852bc6f0..55b803a0 100644
--- a/src/procmsg.h
+++ b/src/procmsg.h
@@ -243,6 +243,9 @@ FILE *procmsg_open_cache_file (FolderItem *item,
FILE *procmsg_open_mark_file (FolderItem *item,
DataOpenMode mode);
+void procmsg_clear_cache (FolderItem *item);
+void procmsg_clear_mark (FolderItem *item);
+
GNode *procmsg_get_thread_tree (GSList *mlist);
gint procmsg_move_messages (GSList *mlist);