From: Colin Leroy Date: Thu, 15 Jun 2006 07:02:07 +0000 (+0000) Subject: 2006-06-15 [colin] 2.3.0cvs14 X-Git-Tag: rel_2_4_0~115 X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=d4cf1bc3c70bb726ebceaf057378ef059b5962e9 2006-06-15 [colin] 2.3.0cvs14 * src/folder.c Better fix (avoid losing the folder if scan_tree fails) --- diff --git a/ChangeLog b/ChangeLog index dfe718646..0c673e534 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-06-15 [colin] 2.3.0cvs14 + + * src/folder.c + Better fix (avoid losing the folder if scan_tree + fails) + 2006-06-15 [cleroy] 2.3.0cvs13 * src/folder.c diff --git a/PATCHSETS b/PATCHSETS index a0608fb4e..af5939110 100644 --- a/PATCHSETS +++ b/PATCHSETS @@ -1588,3 +1588,4 @@ ( cvs diff -u -r 1.654.2.1631 -r 1.654.2.1632 configure.ac; ) > 2.3.0cvs11.patchset ( cvs diff -u -r 1.1.2.6 -r 1.1.2.7 manual/sylpheed-claws-manual.xml; cvs diff -u -r 1.1.2.1 -r 1.1.2.2 manual/dtd/manual.xsl; cvs diff -u -r 1.1.2.4 -r 1.1.2.5 manual/fr/sylpheed-claws-manual.xml; cvs diff -u -r 1.1.2.2 -r 1.1.2.3 manual/pl/sylpheed-claws-manual.xml; ) > 2.3.0cvs12.patchset ( cvs diff -u -r 1.213.2.99 -r 1.213.2.100 src/folder.c; ) > 2.3.0cvs13.patchset +( cvs diff -u -r 1.213.2.100 -r 1.213.2.101 src/folder.c; ) > 2.3.0cvs14.patchset diff --git a/configure.ac b/configure.ac index 2d392fd3d..ab49d57fe 100644 --- a/configure.ac +++ b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=3 MICRO_VERSION=0 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=13 +EXTRA_VERSION=14 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/folder.c b/src/folder.c index acd07b390..8114b5165 100644 --- a/src/folder.c +++ b/src/folder.c @@ -205,7 +205,6 @@ static void reset_parent_type(FolderItem *item, gpointer data) { void folder_item_change_type(FolderItem *item, SpecialFolderItemType newtype) { - FolderItem *parent; Folder *folder = NULL; FolderUpdateData hookdata; @@ -832,17 +831,22 @@ void folder_scan_tree(Folder *folder, gboolean rebuild) { GHashTable *pptable; FolderUpdateData hookdata; - + Folder *old_folder = folder; + if (!folder->klass->scan_tree) return; pptable = folder_persist_prefs_new(folder); if (rebuild) - folder_tree_destroy(folder); + folder_remove(folder); - if (folder->klass->scan_tree(folder) < 0) + if (folder->klass->scan_tree(folder) < 0) { + if (rebuild) + folder_add(old_folder); return; + } else if (rebuild) + folder_add(folder); hookdata.folder = folder; hookdata.update_flags = FOLDER_TREE_CHANGED;