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