2011-11-26 [pawel] 3.7.10cvs105
authorPaweł Pękala <c0rn@gazeta.pl>
Sat, 26 Nov 2011 13:18:56 +0000 (13:18 +0000)
committerPaweł Pękala <c0rn@gazeta.pl>
Sat, 26 Nov 2011 13:18:56 +0000 (13:18 +0000)
* src/folder.c
Fix bug #2505 'tagsdb becomes polluted with old folder entries'

ChangeLog
PATCHSETS
configure.ac
src/folder.c

index 977cadf055ce8e73cd87fbfa788ed371208052ec..46459cb9dd4e701ca8c79ed8a1123d6c39306474 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-11-26 [pawel]     3.7.10cvs105
+
+       * src/folder.c
+               Fix bug #2505 'tagsdb becomes polluted with old folder entries'
+
 2011-11-25 [colin]     3.7.10cvs104
 
        * src/imap_gtk.c
 2011-11-25 [colin]     3.7.10cvs104
 
        * src/imap_gtk.c
index a1747cb479d5118caff1edae959d11a6518f5ae2..8e832ed4881abb7ebf6994407c2e7c07a83614bc 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.61.2.103 -r 1.61.2.104 src/account.c;  cvs diff -u -r 1.60.2.59 -r 1.60.2.60 src/filtering.c;  cvs diff -u -r 1.21.2.20 -r 1.21.2.21 src/filtering.h;  cvs diff -u -r 1.1.2.67 -r 1.1.2.68 src/imap_gtk.c;  cvs diff -u -r 1.2.2.39 -r 1.2.2.40 src/mh_gtk.c;  cvs diff -u -r 1.60.2.77 -r 1.60.2.78 src/prefs_actions.c;  cvs diff -u -r 1.5.2.7 -r 1.5.2.8 src/prefs_actions.h;  ) > 3.7.10cvs102.patchset
 ( cvs diff -u -r 1.59.2.87 -r 1.59.2.88 src/prefs_filtering.c;  ) > 3.7.10cvs103.patchset
 ( cvs diff -u -r 1.1.2.68 -r 1.1.2.69 src/imap_gtk.c;  cvs diff -u -r 1.2.2.40 -r 1.2.2.41 src/mh_gtk.c;  ) > 3.7.10cvs104.patchset
 ( cvs diff -u -r 1.61.2.103 -r 1.61.2.104 src/account.c;  cvs diff -u -r 1.60.2.59 -r 1.60.2.60 src/filtering.c;  cvs diff -u -r 1.21.2.20 -r 1.21.2.21 src/filtering.h;  cvs diff -u -r 1.1.2.67 -r 1.1.2.68 src/imap_gtk.c;  cvs diff -u -r 1.2.2.39 -r 1.2.2.40 src/mh_gtk.c;  cvs diff -u -r 1.60.2.77 -r 1.60.2.78 src/prefs_actions.c;  cvs diff -u -r 1.5.2.7 -r 1.5.2.8 src/prefs_actions.h;  ) > 3.7.10cvs102.patchset
 ( cvs diff -u -r 1.59.2.87 -r 1.59.2.88 src/prefs_filtering.c;  ) > 3.7.10cvs103.patchset
 ( cvs diff -u -r 1.1.2.68 -r 1.1.2.69 src/imap_gtk.c;  cvs diff -u -r 1.2.2.40 -r 1.2.2.41 src/mh_gtk.c;  ) > 3.7.10cvs104.patchset
+( cvs diff -u -r 1.213.2.203 -r 1.213.2.204 src/folder.c;  ) > 3.7.10cvs105.patchset
index ae2c92e34be77a3bca68eda5083099ec9480cc50..cd94fb0572ef3e14340e9e499f0c01bd3559611a 100644 (file)
@@ -12,7 +12,7 @@ MINOR_VERSION=7
 MICRO_VERSION=10
 INTERFACE_AGE=0
 BINARY_AGE=0
 MICRO_VERSION=10
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=104
+EXTRA_VERSION=105
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 350b951aaaead118b925bd2ad77dc7dba71b08c3..3887cbbfb582227c679d17d90ee83d480c6943f2 100644 (file)
@@ -398,7 +398,7 @@ void folder_item_remove(FolderItem *item)
 {
        GNode *node, *start_node;
        FolderUpdateData hookdata;
 {
        GNode *node, *start_node;
        FolderUpdateData hookdata;
-       gchar *tags_file = NULL;
+       gchar *tags_file = NULL, *tags_dir = NULL;
 
        cm_return_if_fail(item != NULL);
        cm_return_if_fail(item->folder != NULL);
 
        cm_return_if_fail(item != NULL);
        cm_return_if_fail(item->folder != NULL);
@@ -428,7 +428,12 @@ void folder_item_remove(FolderItem *item)
        tags_file = folder_item_get_tags_file(item);
        if (tags_file)
                claws_unlink(tags_file);
        tags_file = folder_item_get_tags_file(item);
        if (tags_file)
                claws_unlink(tags_file);
+       tags_dir = g_path_get_dirname(tags_file);
+       if (tags_dir)
+               rmdir(tags_dir);
+
        g_free(tags_file);
        g_free(tags_file);
+       g_free(tags_dir);
 
        hookdata.folder = item->folder;
        hookdata.update_flags = FOLDER_TREE_CHANGED | FOLDER_REMOVE_FOLDERITEM;
 
        hookdata.folder = item->folder;
        hookdata.update_flags = FOLDER_TREE_CHANGED | FOLDER_REMOVE_FOLDERITEM;