From 0b2ce91f25aed4c174c437e679155d30bd0387bf Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Fri, 05 Jun 2009 12:13:24 -0400 Subject: [PATCH] - Reviewed/fixed skip_deleted/read_when_deleted/flag_for_deletion options handling in UI --- program/include/rcube_imap.php | 91 +++++---------------------------------------- 1 files changed, 10 insertions(+), 81 deletions(-) diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php index 2a9a32c..7b24d23 100644 --- a/program/include/rcube_imap.php +++ b/program/include/rcube_imap.php @@ -303,7 +303,7 @@ if (is_array($str) && $msgs == null) list($str, $msgs, $charset, $sort_field) = $str; if ($msgs != null && !is_array($msgs)) - $msgs = split(',', $msgs); + $msgs = explode(',', $msgs); $this->search_string = $str; $this->search_set = $msgs; @@ -1156,7 +1156,7 @@ { $struct = new rcube_message_part; $struct->mime_id = empty($parent) ? (string)$count : "$parent.$count"; - + // multipart if (is_array($part[0])) { @@ -1178,18 +1178,19 @@ // fetch message headers if message/rfc822 or named part (could contain Content-Location header) if (strtolower($part[$i][0]) == 'message' || (in_array('name', (array)$part[$i][2]) && (empty($part[$i][3]) || $part[$i][3]=='NIL'))) { - $part_headers[] = $struct->mime_id ? $struct->mime_id.'.'.$i+1 : $i+1; + $part_headers[] = $struct->mime_id ? $struct->mime_id.'.'.($i+1) : $i+1; } - + // pre-fetch headers of all parts (in one command for better performance) if ($part_headers) $part_headers = iil_C_FetchMIMEHeaders($this->conn, $this->mailbox, $this->_msg_id, $part_headers); $struct->parts = array(); for ($i=0, $count=0; $i<count($part); $i++) - if (is_array($part[$i]) && count($part[$i]) > 3) + if (is_array($part[$i]) && count($part[$i]) > 3) { $struct->parts[] = $this->_structure_part($part[$i], ++$count, $struct->mime_id, - $part_headers[$struct->mime_id ? $struck->mime_id.'.'.$i+1 : $i+1]); + $part_headers[$struct->mime_id ? $struct->mime_id.'.'.($i+1) : $i+1]); + } return $struct; } @@ -1626,13 +1627,9 @@ // send expunge command in order to have the moved message // really deleted from the source mailbox if ($moved) { - // but only when flag_for_deletion is set to false - if (!rcmail::get_instance()->config->get('flag_for_deletion', false)) - { - $this->_expunge($from_mbox, FALSE, $a_uids); - $this->_clear_messagecount($from_mbox); - $this->_clear_messagecount($to_mbox); - } + $this->_expunge($from_mbox, FALSE, $a_uids); + $this->_clear_messagecount($from_mbox); + $this->_clear_messagecount($to_mbox); } // moving failed else if (rcmail::get_instance()->config->get('delete_always', false)) { @@ -3075,71 +3072,3 @@ return $posa - $posb; } } - - -/** - * Add quoted-printable encoding to a given string - * - * @param string String to encode - * @param int Add new line after this number of characters - * @param boolean True if spaces should be converted into =20 - * @return string Encoded string - */ -function quoted_printable_encode($input, $line_max=76, $space_conv=false) - { - $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'); - $lines = preg_split("/(?:\r\n|\r|\n)/", $input); - $eol = "\r\n"; - $escape = "="; - $output = ""; - - while( list(, $line) = each($lines)) - { - //$line = rtrim($line); // remove trailing white space -> no =20\r\n necessary - $linlen = strlen($line); - $newline = ""; - for($i = 0; $i < $linlen; $i++) - { - $c = substr( $line, $i, 1 ); - $dec = ord( $c ); - if ( ( $i == 0 ) && ( $dec == 46 ) ) // convert first point in the line into =2E - { - $c = "=2E"; - } - if ( $dec == 32 ) - { - if ( $i == ( $linlen - 1 ) ) // convert space at eol only - { - $c = "=20"; - } - else if ( $space_conv ) - { - $c = "=20"; - } - } - else if ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) // always encode "\t", which is *not* required - { - $h2 = floor($dec/16); - $h1 = floor($dec%16); - $c = $escape.$hex["$h2"].$hex["$h1"]; - } - - if ( (strlen($newline) + strlen($c)) >= $line_max ) // CRLF is not counted - { - $output .= $newline.$escape.$eol; // soft line break; " =\r\n" is okay - $newline = ""; - // check if newline first character will be point or not - if ( $dec == 46 ) - { - $c = "=2E"; - } - } - $newline .= $c; - } // end of for - $output .= $newline.$eol; - } // end of while - - return trim($output); - } - - -- Gitblit v1.9.1