From 91cb9dfe789871f9f0e9080752e21b7d4aaef94d Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Mon, 23 Apr 2012 05:22:15 -0400
Subject: [PATCH] - Fix parsing ESEARCH (ALL) result and enabling ESEARCH for ordinary searches

---
 program/include/rcube_result_index.php |    4 +++-
 program/include/rcube_imap_generic.php |    2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/program/include/rcube_imap_generic.php b/program/include/rcube_imap_generic.php
index 9fce20a..77b0cc4 100644
--- a/program/include/rcube_imap_generic.php
+++ b/program/include/rcube_imap_generic.php
@@ -1611,7 +1611,7 @@
 
         // If ESEARCH is supported always use ALL
         // but not when items are specified or using simple id2uid search
-        if (empty($items) && ((int) $criteria != $criteria)) {
+        if (empty($items) && preg_match('/[^0-9]/', $criteria)) {
             $items = array('ALL');
         }
 
diff --git a/program/include/rcube_result_index.php b/program/include/rcube_result_index.php
index 2572aea..cd90067 100644
--- a/program/include/rcube_result_index.php
+++ b/program/include/rcube_result_index.php
@@ -100,7 +100,7 @@
 // @TODO: Implement compression using compressMessageSet() in __sleep() and __wakeup() ?
 // @TODO: work with compressed result?!
                     if (isset($this->params['ALL'])) {
-                        $data[$idx] = implode(self::SEPARATOR_ELEMENT,
+                        $data_item = implode(self::SEPARATOR_ELEMENT,
                             rcube_imap_generic::uncompressMessageSet($this->params['ALL']));
                     }
                 }
@@ -111,6 +111,8 @@
             unset($data[$i]);
         }
 
+        $data = array_filter($data);
+
         if (empty($data)) {
             return;
         }

--
Gitblit v1.9.1