From 71d3dab216f7a512564a42f97b0cdd106328b70b Mon Sep 17 00:00:00 2001 From: hiro Date: Tue, 12 Jul 2005 07:24:58 +0000 Subject: clear summary cache to prevent cache discrepancy after sending from queue. git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@423 ee746299-78ed-0310-b773-934348b2243d --- src/procmsg.c | 29 +++++++++++++++++++++++------ src/procmsg.h | 3 +++ 2 files changed, 26 insertions(+), 6 deletions(-) (limited to 'src') 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); -- cgit v1.2.3