From f22b5439f2e783f47f61042bebb6cc53672568fd Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Fri, 04 Jun 2010 03:05:06 -0400
Subject: [PATCH] - Fix: don't call FETCH when THREADS returns empty result

---
 program/include/rcube_imap.php |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index 97662e4..926a864 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -822,8 +822,11 @@
             return $this->_list_thread_header_set($mailbox, $page, $sort_field, $sort_order, $slice);
 
         // search set is threaded, we need a new one
-        if ($this->search_threads)
+        if ($this->search_threads) {
+            if (empty($this->search_set['tree']))
+                return array();
             $this->search('', $this->search_string, $this->search_charset, $sort_field);
+        }
 
         $msgs = $this->search_set;
         $a_msg_headers = array();
@@ -945,8 +948,15 @@
     private function _list_thread_header_set($mailbox, $page=NULL, $sort_field=NULL, $sort_order=NULL, $slice=0)
     {
         // update search_set if previous data was fetched with disabled threading
-        if (!$this->search_threads)
+        if (!$this->search_threads) {
+            if (empty($this->search_set))
+                return array();
             $this->search('', $this->search_string, $this->search_charset, $sort_field);
+        }
+
+        // empty result
+        if (empty($this->search_set['tree']))
+            return array();
 
         $thread_tree = $this->search_set['tree'];
         $msg_depth = $this->search_set['depth'];

--
Gitblit v1.9.1