From d5ffb58726237d81f167c7460ce4eabb4b768c51 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Tue, 02 Mar 2010 02:59:54 -0500
Subject: [PATCH] Use case sensitive check when checking for default folders (#1486346)

---
 program/include/rcube_imap.php |   50 +++++++++++++++++++++++++++++---------------------
 1 files changed, 29 insertions(+), 21 deletions(-)

diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index 8d20036..fdf524d 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -105,8 +105,9 @@
     if ($use_ssl && extension_loaded('openssl'))
       $ICL_SSL = $use_ssl == 'imaps' ? 'ssl' : $use_ssl;
     else if ($use_ssl) {
-      raise_error(array('code' => 403, 'type' => 'imap', 'file' => __FILE__,
-                        'message' => 'Open SSL not available;'), TRUE, FALSE);
+      raise_error(array('code' => 403, 'type' => 'imap',
+        'file' => __FILE__, 'line' => __LINE__,
+        'message' => "Open SSL not available"), TRUE, FALSE);
       $port = 143;
     }
 
@@ -136,9 +137,9 @@
     else if (!$this->conn && $GLOBALS['iil_error'])
       {
       $this->error_code = $GLOBALS['iil_errornum'];
-      raise_error(array('code' => 403,
-                       'type' => 'imap',
-                       'message' => $GLOBALS['iil_error']), TRUE, FALSE);
+      raise_error(array('code' => 403, 'type' => 'imap',
+        'file' => __FILE__, 'line' => __LINE__,
+        'message' => $GLOBALS['iil_error']), TRUE, FALSE);
       }
 
     // get server properties
@@ -1698,17 +1699,27 @@
   /**
    * Append a mail message (source) to a specific mailbox
    *
-   * @param string Target mailbox
-   * @param string Message source
+   * @param string   Target mailbox
+   * @param string   The message source string or filename
+   * @param string   Headers string if $message contains only the body
+   * @param boolean  True if $message is a filename
+   *
    * @return boolean True on success, False on error
    */
-  function save_message($mbox_name, &$message)
+  function save_message($mbox_name, &$message, $headers='', $is_file=false)
     {
     $mailbox = $this->mod_mailbox($mbox_name);
 
     // make sure mailbox exists
-    if (($mailbox == 'INBOX') || in_array($mailbox, $this->_list_mailboxes()))
-      $saved = iil_C_Append($this->conn, $mailbox, $message);
+    if (($mailbox == 'INBOX') || in_array($mailbox, $this->_list_mailboxes())) {
+      if ($is_file) {
+        $separator = rcmail::get_instance()->config->header_delimiter();
+        $saved = iil_C_AppendFromFile($this->conn, $mailbox, $message,
+          $headers, $separator.$separator);
+        }
+      else
+        $saved = iil_C_Append($this->conn, $mailbox, $message);
+      }
 
     if ($saved)
       {
@@ -2145,9 +2156,9 @@
     foreach ($this->default_folders as $folder)
       {
       $abs_name = $this->mod_mailbox($folder);
-      if (!in_array_nocase($abs_name, $a_folders))
+      if (!in_array($abs_name, $a_folders))
         $this->create_mailbox($folder, TRUE);
-      else if (!in_array_nocase($abs_name, $a_subscribed))
+      else if (!in_array($abs_name, $a_subscribed))
         $this->subscribe($folder);
       }
     }
@@ -3000,15 +3011,12 @@
     {
     if (!$mbox_name)
       $mbox_name = $this->mailbox;
-      
-    $index = array_flip((array)$this->uid_id_map[$mbox_name]);
-    if (isset($index[$id]))
-      $uid = $index[$id];
-    else
-      {
-      $uid = iil_C_ID2UID($this->conn, $mbox_name, $id);
-      $this->uid_id_map[$mbox_name][$uid] = $id;
-      }
+
+    if ($uid = array_search($id, (array)$this->uid_id_map[$mbox_name]))
+      return $uid;
+
+    $uid = iil_C_ID2UID($this->conn, $mbox_name, $id);
+    $this->uid_id_map[$mbox_name][$uid] = $id;
     
     return $uid;
     }

--
Gitblit v1.9.1