From 97a656643866f16289264954be961aa3f314ac20 Mon Sep 17 00:00:00 2001
From: svncommit <devs@roundcube.net>
Date: Mon, 15 Oct 2007 05:17:08 -0400
Subject: [PATCH] When a parent folder is deleted, delete the children immediately, instead of one-by-one as r833 did.

---
 program/include/rcube_imap.inc |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc
index 3fe5b1c..9eb3594 100644
--- a/program/include/rcube_imap.inc
+++ b/program/include/rcube_imap.inc
@@ -1739,6 +1739,8 @@
     else if (is_string($mbox_name) && strlen($mbox_name))
       $a_mboxes = explode(',', $mbox_name);
 
+    $all_mboxes = iil_C_ListMailboxes($this->conn, $this->_mod_mailbox($root), '*');
+
     if (is_array($a_mboxes))
       foreach ($a_mboxes as $mbox_name)
         {
@@ -1751,6 +1753,15 @@
         $result = iil_C_DeleteFolder($this->conn, $mailbox);
         if ($result>=0)
           $deleted = TRUE;
+
+        foreach ($all_mboxes as $c_mbox)
+          if (preg_match('/^'.preg_quote($mailbox.$this->delimiter).'/', $c_mbox))
+            {
+            iil_C_UnSubscribe($this->conn, $c_mbox);
+            $result = iil_C_DeleteFolder($this->conn, $c_mbox);
+            if ($result>=0)
+              $deleted = TRUE;
+            }
         }
 
     // clear mailboxlist cache

--
Gitblit v1.9.1