[Svn] r2149 - trunk/roundcubemail/program/include

trac at roundcube.net trac at roundcube.net
Fri Dec 12 12:57:20 CET 2008


Author: alec
Date: 2008-12-12 05:57:20 -0600 (Fri, 12 Dec 2008)
New Revision: 2149

Modified:
   trunk/roundcubemail/program/include/rcube_imap.php
Log:
#1485622: fix rcube_imap::message_index() to return always messages IDs


Modified: trunk/roundcubemail/program/include/rcube_imap.php
===================================================================
--- trunk/roundcubemail/program/include/rcube_imap.php	2008-12-12 08:02:33 UTC (rev 2148)
+++ trunk/roundcubemail/program/include/rcube_imap.php	2008-12-12 11:57:20 UTC (rev 2149)
@@ -107,7 +107,17 @@
     $ICL_PORT = $port;
     $IMAP_USE_INTERNAL_DATE = false;
 
-    $this->conn = iil_Connect($host, $user, $pass, array('imap' => $auth_type ? $auth_type : 'check'));
+    // set connection options
+    $options['imap'] = $auth_type ? $auth_type : 'check';
+
+    // Setting root and delimiter before iil_Connect can save time detecting them
+    // using NAMESPACE and LIST 
+    if (is_string($imap_root = rcmail::get_instance()->config->get('imap_root'))) 
+        $options['rootdir'] = $imap_root;
+    if($imap_delimiter = rcmail::get_instance()->config->get('imap_delimiter'))
+        $options['delimiter'] = $imap_delimiter;
+
+    $this->conn = iil_Connect($host, $user, $pass, $options);
     $this->host = $host;
     $this->user = $user;
     $this->pass = $pass;
@@ -811,7 +821,7 @@
     // we have a saved search result. get index from there
     if (!isset($this->cache[$key]) && $this->search_string && $mailbox == $this->mailbox)
     {
-      $this->cache[$key] = $a_msg_headers = array();
+      $this->cache[$key] = array();
       
       if ($this->get_capability('sort'))
         {
@@ -832,7 +842,7 @@
         else if ($this->sort_order=="DESC")
           arsort($a_index);
 
-        $this->cache[$key] = $a_index;
+        $this->cache[$key] = array_keys($a_index);
 	}
     }
 
@@ -848,10 +858,9 @@
     if ($cache_status>0)
       {
       $a_index = $this->get_message_cache_index($cache_key, TRUE, $this->sort_field, $this->sort_order);
-      return array_values($a_index);
+      return array_keys($a_index);
       }
 
-
     // fetch complete message index
     $msg_count = $this->_messagecount($mailbox);
     if ($this->get_capability('sort') && ($a_index = iil_C_Sort($this->conn, $mailbox, $this->sort_field, '')))
@@ -870,7 +879,7 @@
       else if ($this->sort_order=="DESC")
         arsort($a_index);
         
-      $this->cache[$key] = $a_index;
+      $this->cache[$key] = array_keys($a_index);
       }
 
     return $this->cache[$key];

_______________________________________________
http://lists.roundcube.net/mailman/listinfo/svn



More information about the Svn mailing list