[balsa] Broken mailbox view after moving IMAP folder



commit 71b5d618caeb43660592b1d479269aa606136fa3
Author: Albrecht Dreß <albrecht dress arcor de>
Date:   Tue Mar 12 10:10:12 2019 -0400

    Broken mailbox view after moving IMAP folder
    
    I noticed a bug when a folder on a IMAP server is moved sideways,
    e.g. from “INBOX/Folder1/Test” to “INBOX/Folder2/Test”:
    after moving, a partial re-scan of the mailbox tree is performed,
    which makes all my local folders disappear.  The effect does
    not occur if the folder is moved up or down the tree.  I could
    track down the source of the issue to src/folder-conf.c, function
    subfolder_conf_clicked_ok().
    
    * src/folder-conf.c (subfolder_conf_clicked_ok): rescan the
    whole IMAP folder tree after a sideways move.

 ChangeLog         | 15 +++++++++++++++
 src/folder-conf.c |  5 ++---
 2 files changed, 17 insertions(+), 3 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 14ea838e0..a8dfb335b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2019-03-12  Albrecht Dreß  <albrecht dress arcor de>
+
+       Broken mailbox view after moving IMAP folder sideways
+
+       I noticed a bug when a folder on a IMAP server is moved sideways,
+       e.g. from “INBOX/Folder1/Test” to “INBOX/Folder2/Test”:
+       after moving, a partial re-scan of the mailbox tree is performed,
+       which makes all my local folders disappear.  The effect does
+       not occur if the folder is moved up or down the tree.  I could
+       track down the source of the issue to src/folder-conf.c, function
+       subfolder_conf_clicked_ok().
+
+       * src/folder-conf.c (subfolder_conf_clicked_ok): rescan the
+       whole IMAP folder tree after a sideways move.
+
 2019-03-05  Albrecht Dreß  <albrecht dress arcor de>
 
        * libbalsa/send.c (libbalsa_create_rfc2440_buffer): fix confusing
diff --git a/src/folder-conf.c b/src/folder-conf.c
index 7937edb2c..fe20d7458 100644
--- a/src/folder-conf.c
+++ b/src/folder-conf.c
@@ -586,13 +586,12 @@ folder, parent);
                    }
                 } else {
                     /* moved it sideways: a chain of folders might
-                     * go away, so we'd better rescan from higher up
+                     * go away, so we'd better rescan the complete IMAP server
                      */
                     BalsaMailboxNode *mb = sdd->mbnode->parent;
-                    while (!mb->mailbox && mb->parent)
+                    while ((mb->mailbox != NULL) && (mb->parent != NULL))
                         mb = mb->parent;
                     balsa_mailbox_node_rescan(mb);
-                    balsa_mailbox_node_rescan(sdd->mbnode);
                 }
             }
         }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]