Aleksander Machniak
2015-09-11 fef8537adbf12d200eca51d7d27fe597a43ebeda
program/lib/Roundcube/rcube_imap.php
@@ -995,7 +995,7 @@
            $slice_length = min($page_size, $cnt - $from);
            // fetch resultset headers, sort and slice them
            if (!empty($sort_field)) {
            if (!empty($sort_field) && $search_set->get_parameters('SORT') != $sort_field) {
                $this->sort_field = null;
                $this->page_size = 1000;  // fetch up to 1000 matching messages per folder
                $this->threading = false;
@@ -1005,13 +1005,16 @@
                    if (!$resultset->is_empty()) {
                        $this->search_set = $resultset;
                        $this->search_threads = $resultset instanceof rcube_result_thread;
                        $a_msg_headers = array_merge($a_msg_headers, $this->list_search_messages($resultset->get_parameters('MAILBOX'), 1));
                        $a_headers     =  $this->list_search_messages($resultset->get_parameters('MAILBOX'), 1);
                        $a_msg_headers = array_merge($a_msg_headers, $a_headers);
                        unset($a_headers);
                    }
                }
                // sort headers
                if (!empty($a_msg_headers)) {
                    $a_msg_headers = $this->conn->sortHeaders($a_msg_headers, $sort_field, $this->sort_order);
                    $a_msg_headers = rcube_imap_generic::sortHeaders($a_msg_headers, $sort_field, $this->sort_order);
                }
                // store (sorted) message index
@@ -1139,12 +1142,8 @@
                return array();
            }
            if (!$this->check_connection()) {
                return array();
            }
            // if not already sorted
            $a_msg_headers = $this->conn->sortHeaders(
            $a_msg_headers = rcube_imap_generic::sortHeaders(
                $a_msg_headers, $this->sort_field, $this->sort_order);
            // only return the requested part of the set