From bc04a7ee78544d2b898e0123b19a77850e96737d Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Wed, 18 Nov 2009 08:58:15 -0500 Subject: [PATCH] - fix creating default folder when moving message and target folder doesn't exists --- program/include/rcube_imap.php | 25 +++++++++++-------------- 1 files changed, 11 insertions(+), 14 deletions(-) diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php index a358186..7c8a262 100644 --- a/program/include/rcube_imap.php +++ b/program/include/rcube_imap.php @@ -603,21 +603,23 @@ { if ($this->skip_deleted) { // @TODO: this could be cached - $msg_index = $this->_search_index($mailbox, 'ALL UNDELETED'); - $max = max($msg_index); - list($begin, $end) = $this->_get_message_range(count($msg_index), $page); - $msg_index = array_slice($msg_index, $begin, $end-$begin); + if ($msg_index = $this->_search_index($mailbox, 'ALL UNDELETED')) { + $max = max($msg_index); + list($begin, $end) = $this->_get_message_range(count($msg_index), $page); + $msg_index = array_slice($msg_index, $begin, $end-$begin); + } } else if ($max = iil_C_CountMessages($this->conn, $mailbox)) { list($begin, $end) = $this->_get_message_range($max, $page); $msg_index = range($begin+1, $end); } else - return array(); + $msg_index = array(); if ($slice) $msg_index = array_slice($msg_index, ($this->sort_order == 'DESC' ? 0 : -$slice), $slice); // fetch reqested headers from server - $this->_fetch_headers($mailbox, join(",", $msg_index), $a_msg_headers, $cache_key); + if ($msg_index) + $this->_fetch_headers($mailbox, join(",", $msg_index), $a_msg_headers, $cache_key); } // use SORT command else if ($this->get_capability('sort') && ($msg_index = iil_C_Sort($this->conn, $mailbox, $this->sort_field, $this->skip_deleted ? 'UNDELETED' : ''))) @@ -633,13 +635,8 @@ $this->_fetch_headers($mailbox, join(',', $msg_index), $a_msg_headers, $cache_key); } // fetch specified header for all messages and sort - else + else if ($a_index = iil_C_FetchHeaderIndex($this->conn, $mailbox, "1:*", $this->sort_field, $this->skip_deleted)) { - $a_index = iil_C_FetchHeaderIndex($this->conn, $mailbox, "1:*", $this->sort_field, $this->skip_deleted); - - if (empty($a_index)) - return array(); - asort($a_index); // ASC $msg_index = array_keys($a_index); $max = max($msg_index); @@ -1714,8 +1711,8 @@ // make sure mailbox exists if ($to_mbox != 'INBOX' && !in_array($to_mbox, $this->_list_mailboxes())) { - if (in_array($to_mbox_in, $this->default_folders)) - $this->create_mailbox($to_mbox_in, TRUE); + if (in_array($tbox, $this->default_folders)) + $this->create_mailbox($tbox, TRUE); else return FALSE; } -- Gitblit v1.9.1