From c063763e1ca09c4653b5212629375378c89ba36c Mon Sep 17 00:00:00 2001 From: Christoph Hohmann Date: Thu, 25 Jul 2002 23:00:59 +0000 Subject: [PATCH] * src/folder.c * src/folderview.c * src/imap.c fix imap folder rescanning --- ChangeLog.claws | 7 +++++++ configure.in | 2 +- src/folder.c | 5 ++++- src/folderview.c | 2 +- src/imap.c | 5 ++++- 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/ChangeLog.claws b/ChangeLog.claws index 091c18e8c..440491dd2 100644 --- a/ChangeLog.claws +++ b/ChangeLog.claws @@ -1,3 +1,10 @@ +2002-07-26 [christoph] 0.8.0claws14 + + * src/folder.c + * src/folderview.c + * src/imap.c + fix imap folder rescanning + 2002-07-25 [christoph] 0.8.0claws13 * src/filter.c diff --git a/configure.in b/configure.in index 295769fee..f0f42e8ca 100644 --- a/configure.in +++ b/configure.in @@ -8,7 +8,7 @@ MINOR_VERSION=8 MICRO_VERSION=0 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=claws13 +EXTRA_VERSION=claws14 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION dnl set $target diff --git a/src/folder.c b/src/folder.c index e749d6528..cf2fb562b 100644 --- a/src/folder.c +++ b/src/folder.c @@ -328,6 +328,9 @@ gboolean folder_tree_destroy_func(GNode *node, gpointer data) { void folder_tree_destroy(Folder *folder) { + g_return_if_fail(folder != NULL); + g_return_if_fail(folder->node != NULL); + prefs_scoring_clear(); prefs_filtering_clear(); @@ -449,7 +452,7 @@ void folder_scan_tree(Folder *folder) folder_tree_destroy(folder); folder->scan_tree(folder); - + g_node_traverse(folder->node, G_POST_ORDER, G_TRAVERSE_ALL, -1, folder_scan_tree_func, pptable); folder_persist_prefs_free(pptable); diff --git a/src/folderview.c b/src/folderview.c index 490b9281c..efb5661cd 100644 --- a/src/folderview.c +++ b/src/folderview.c @@ -1639,7 +1639,7 @@ static void folderview_selected(GtkCTree *ctree, GtkCTreeNode *row, gdk_pointer_ungrab(GDK_CURRENT_TIME); } - if((item->folder->type == F_IMAP) || (item->folder->type == F_NEWS)) { + if(((item->folder->type == F_IMAP) && !item->no_select) || (item->folder->type == F_NEWS)) { folder_item_scan(item); } diff --git a/src/imap.c b/src/imap.c index c3d32ef90..4345162aa 100644 --- a/src/imap.c +++ b/src/imap.c @@ -359,6 +359,9 @@ static gboolean imap_reset_uid_lists_func(GNode *node, gpointer data) static void imap_reset_uid_lists(Folder *folder) { + if(folder->node == NULL) + return; + /* Destroy all uid lists and rest last uid */ g_node_traverse(folder->node, G_IN_ORDER, G_TRAVERSE_ALL, -1, imap_reset_uid_lists_func, NULL); } @@ -1065,9 +1068,9 @@ void imap_scan_tree(Folder *folder) debug_print("IMAP root directory: %s\n", root_folder); } - folder_tree_destroy(folder); item = folder_item_new(folder, folder->name, root_folder); item->folder = folder; + item->no_select = TRUE; folder->node = g_node_new(item); imap_scan_tree_recursive(session, item); -- 2.25.1