From ccf250ec1d0a979e878769cb87d939c970fc863a Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Fri, 04 Jun 2010 06:06:10 -0400
Subject: [PATCH] - performance improvement: we can skip THREAD when folder is empty

---
 program/include/rcube_imap_generic.php |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/program/include/rcube_imap_generic.php b/program/include/rcube_imap_generic.php
index ab37902..411e1d3 100644
--- a/program/include/rcube_imap_generic.php
+++ b/program/include/rcube_imap_generic.php
@@ -1552,8 +1552,15 @@
 
     function thread($folder, $algorithm='REFERENCES', $criteria='', $encoding='US-ASCII')
     {
+        $old_sel = $this->selected;
+
 	    if (!$this->select($folder)) {
-		    return false;
+    		return false;
+	    }
+
+        // return empty result when folder is empty and we're just after SELECT
+        if ($old_sel != $folder && !$this->exists) {
+            return array(array(), array(), array());
 	    }
 
     	$encoding  = $encoding ? trim($encoding) : 'US-ASCII';

--
Gitblit v1.9.1