From 57456485c477d2f493b4ecd69a3608fe1ad2dcbf Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Wed, 17 Oct 2007 17:27:20 -0400
Subject: [PATCH] Only change subscriptions when renaming succeeds; also quote slashes
---
program/include/rcube_imap.inc | 22 ++++++++++++----------
1 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc
index 8bcce8a..a525827 100644
--- a/program/include/rcube_imap.inc
+++ b/program/include/rcube_imap.inc
@@ -35,7 +35,7 @@
*
* @package Mail
* @author Thomas Bruederli <roundcube@gmail.com>
- * @version 1.36
+ * @version 1.39
* @link http://ilohamail.org
*/
class rcube_imap
@@ -1703,17 +1703,19 @@
if (strlen($abs_name))
$result = iil_C_RenameFolder($this->conn, $mailbox, $abs_name);
- // check if mailbox children are subscribed
- foreach ($a_subscribed as $c_subscribed)
- if (preg_match('/^'.preg_quote($mailbox.$this->delimiter).'/', $c_subscribed))
- {
- iil_C_UnSubscribe($this->conn, $c_subscribed);
- iil_C_Subscribe($this->conn, preg_replace('/^'.preg_quote($mailbox).'/', $abs_name, $c_subscribed));
- }
-
- // clear cache
if ($result)
{
+ $delm = $this->get_hierarchy_delimiter();
+
+ // check if mailbox children are subscribed
+ foreach ($a_subscribed as $c_subscribed)
+ if (preg_match('/^'.preg_quote($mailbox.$delm, '/').'/', $c_subscribed))
+ {
+ iil_C_UnSubscribe($this->conn, $c_subscribed);
+ iil_C_Subscribe($this->conn, preg_replace('/^'.preg_quote($mailbox, '/').'/', $abs_name, $c_subscribed));
+ }
+
+ // clear cache
$this->clear_message_cache($mailbox.'.msg');
$this->clear_cache('mailboxes');
}
--
Gitblit v1.9.1