disable gpg signatures check on folder move/scan
authorColin Leroy <colin@colino.net>
Thu, 15 Jul 2004 19:59:58 +0000 (19:59 +0000)
committerColin Leroy <colin@colino.net>
Thu, 15 Jul 2004 19:59:58 +0000 (19:59 +0000)
ChangeLog-gtk2.claws
PATCHSETS
configure.ac
src/folder.c

index 81702aa8ef285f273afb2bac9bcbac8104d19329..92850e31a5d07b74a8fe7633d62eec8636024191 100644 (file)
@@ -1,3 +1,10 @@
+2004-07-15 [colin]     0.9.12cvs18.14
+
+       * src/folder.c
+               Disable GPG signature check during
+               folder move and scan
+       (Closes Bug 521 Signature checking slows down Folder-Move)
+
 2004-07-14 [colin]     0.9.12cvs18.13
 
        * src/common/partial_download.c
index 9579298f435a4a15b253ea58499fa4d36d3702e5..b0c19c628e231f2c319a795feaf6cf2c63034ab5 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
@@ -27,3 +27,4 @@
 ( cvs diff -u -r 1.213.2.8 -r 1.213.2.9 src/folder.c; cvs diff -u -r 1.94.2.19 -r 1.94.2.20 src/messageview.c; cvs diff -u -r 1.56.2.15 -r 1.56.2.16 src/pop.c; cvs diff -u -r 1.17.2.10 -r 1.17.2.11 src/pop.h; cvs diff -u -r 1.150.2.6 -r 1.150.2.7 src/procmsg.c; cvs diff -u -r 1.395.2.17 -r 1.395.2.18 src/summaryview.c; cvs diff -u -r 1.24.2.2 -r 1.24.2.3 src/common/Makefile.am; echo new files src/common/partial_download.c src/common/partial_download.h; ) > 0.9.12cvs18.11.patchset
 ( cvs diff -u -r 1.1.2.1 -r 1.1.2.2 src/common/partial_download.c; cvs diff -u -r 1.1.2.1 -r 1.1.2.2 src/common/partial_download.h; ) > 0.9.12cvs18.12.patchset
 ( cvs diff -u -r 1.1.2.2 -r 1.1.2.3 src/common/partial_download.c; ) > 0.9.12cvs18.13.patchset
+( cvs diff -u -r 1.213.2.9 -r 1.213.2.10 src/folder.c; ) > 0.9.12cvs18.14.patchset
index 26e078d37b2db64f2c02f0e6568eaabacedd3bf3..f8f471d1690446d58fd61aa1b234a78f16f500f2 100644 (file)
@@ -13,7 +13,7 @@ INTERFACE_AGE=0
 BINARY_AGE=0
 EXTRA_VERSION=18
 EXTRA_RELEASE=
-EXTRA_GTK2_VERSION=.13
+EXTRA_GTK2_VERSION=.14
 
 if test \( $EXTRA_VERSION -eq 0 \) -o \( "x$EXTRA_RELEASE" != "x" \); then
     VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}${EXTRA_RELEASE}${EXTRA_GTK2_VERSION}
index 618003ca72e5b493915e028d434f297702095edd..af8abe5b1e91209edb43039fd5a7039a6f9851e6 100644 (file)
@@ -1580,21 +1580,30 @@ gint folder_item_scan_full(FolderItem *item, gboolean filtering)
        guint newcnt = 0, unreadcnt = 0, totalcnt = 0, unreadmarkedcnt = 0;
        guint cache_max_num, folder_max_num, cache_cur_num, folder_cur_num;
        gboolean update_flags = 0, old_uids_valid = FALSE;
-    
-       g_return_val_if_fail(item != NULL, -1);
-       if (item->path == NULL) return -1;
+       gint err = -1;
+#ifdef USE_GPGME
+       gint old_auto_check = 0;
+       old_auto_check = prefs_common.auto_check_signatures;
+       prefs_common.auto_check_signatures = 0;
+#endif
+       if (item == NULL)
+               goto bail_scan;
+       if (item->path == NULL)
+               goto bail_scan;
 
        folder = item->folder;
 
-       g_return_val_if_fail(folder != NULL, -1);
-       g_return_val_if_fail(folder->klass->get_num_list != NULL, -1);
+       if (folder == NULL)
+               goto bail_scan;
+       if (folder->klass->get_num_list == NULL)
+               goto bail_scan;
 
        debug_print("Scanning folder %s for cache changes.\n", item->path);
 
        /* Get list of messages for folder and cache */
        if (folder->klass->get_num_list(item->folder, item, &folder_list, &old_uids_valid) < 0) {
                debug_print("Error fetching list of message numbers\n");
-               return(-1);
+               goto bail_scan;
        }
 
        if (old_uids_valid) {
@@ -1807,8 +1816,12 @@ gint folder_item_scan_full(FolderItem *item, gboolean filtering)
 
        folder_item_update(item, update_flags);
        folder_item_update_thaw();
-
-       return 0;
+       err = 0;
+bail_scan:
+#ifdef USE_GPGME
+       prefs_common.auto_check_signatures = old_auto_check;
+#endif
+       return err;
 }
 
 gint folder_item_syncronize_flags(FolderItem *item)
@@ -2384,7 +2397,12 @@ FolderItem *folder_item_move_recursive(FolderItem *src, FolderItem *dest)
        FolderItem *next_item;
        GNode *srcnode;
        gchar *old_id, *new_id;
-
+       gint err = 1;
+#ifdef USE_GPGME
+       gint old_auto_check = 0;
+       old_auto_check = prefs_common.auto_check_signatures;
+       prefs_common.auto_check_signatures = 0;
+#endif
        mlist = folder_item_get_msg_list(src);
 
        /* move messages */
@@ -2392,7 +2410,7 @@ FolderItem *folder_item_move_recursive(FolderItem *src, FolderItem *dest)
        new_item = folder_create_folder(dest, src->name);
        if (new_item == NULL) {
                printf("Can't create folder\n");
-               return NULL;
+               goto bail_move;
        }
        
        if (new_item->folder == NULL)
@@ -2425,7 +2443,7 @@ FolderItem *folder_item_move_recursive(FolderItem *src, FolderItem *dest)
                        next_item = (FolderItem*) srcnode->data;
                        srcnode = srcnode->next;
                        if (folder_item_move_recursive(next_item, new_item) == NULL)
-                               return NULL;
+                               goto bail_move;
                }
        }
        old_id = folder_item_get_identifier(src);
@@ -2441,8 +2459,17 @@ FolderItem *folder_item_move_recursive(FolderItem *src, FolderItem *dest)
                prefs_filtering_rename_path(old_id, new_id);
        g_free(old_id);
        g_free(new_id);
+       err = 0;
 
-       return new_item;
+bail_move:
+#ifdef USE_GPGME
+       prefs_common.auto_check_signatures = old_auto_check;
+#endif
+
+       if (err != 0)
+               return NULL;
+       else
+               return new_item;
 }
 
 gint folder_item_move_to(FolderItem *src, FolderItem *dest, FolderItem **new_item)