From f9c107afbe9bb01627a9e6de48efdfbbda8e56e6 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Sun, 30 Jul 2006 15:38:06 -0400 Subject: [PATCH] Fixed folder renaming; added confirmation after deleting a folder --- program/include/rcube_imap.inc | 31 ++++++++++++++++--------------- 1 files changed, 16 insertions(+), 15 deletions(-) diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc index c98c480..4137d10 100644 --- a/program/include/rcube_imap.inc +++ b/program/include/rcube_imap.inc @@ -1245,28 +1245,29 @@ // set a new name to an existing mailbox - function rename_mailbox($mbox_name, $new_name, $subscribe=TRUE) + function rename_mailbox($mbox_name, $new_name) { $result = FALSE; // replace backslashes $name = preg_replace('/[\\\]+/', '-', $new_name); + + // encode mailbox name and reduce it to 100 chars + $name_enc = substr(UTF7EncodeString($new_name), 0, 100); - $name_enc = UTF7EncodeString($new_name); - - // reduce mailbox name to 100 chars - $name_enc = substr($name_enc, 0, 100); - + // make absolute path + $mailbox = $this->_mod_mailbox($mbox_name); $abs_name = $this->_mod_mailbox($name_enc); - $a_mailbox_cache = $this->get_cache('mailboxes'); - - if (strlen($abs_name) && (!is_array($a_mailbox_cache) || !in_array($abs_name, $a_mailbox_cache))) - $result = iil_C_RenameFolder($this->conn, $mbox_name, $abs_name); - - // update mailboxlist cache - if ($result && $subscribe) - $this->unsubscribe($mbox_name); - $this->subscribe($name_enc); + + if (strlen($abs_name)) + $result = iil_C_RenameFolder($this->conn, $mailbox, $abs_name); + + // clear cache + if ($result) + { + $this->clear_message_cache($mailbox.'.msg'); + $this->clear_cache('mailboxes'); + } return $result ? $name : FALSE; } -- Gitblit v1.9.1