summaryrefslogtreecommitdiff
path: root/program/lib/Roundcube/rcube_mime.php
diff options
context:
space:
mode:
Diffstat (limited to 'program/lib/Roundcube/rcube_mime.php')
-rw-r--r--program/lib/Roundcube/rcube_mime.php66
1 files changed, 27 insertions, 39 deletions
diff --git a/program/lib/Roundcube/rcube_mime.php b/program/lib/Roundcube/rcube_mime.php
index f66cf1437..3f2fcc330 100644
--- a/program/lib/Roundcube/rcube_mime.php
+++ b/program/lib/Roundcube/rcube_mime.php
@@ -3,8 +3,8 @@
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2005-2012, The Roundcube Dev Team |
- | Copyright (C) 2011-2012, Kolab Systems AG |
+ | Copyright (C) 2005-2014, The Roundcube Dev Team |
+ | Copyright (C) 2011-2014, Kolab Systems AG |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -39,7 +39,6 @@ class rcube_mime
self::$default_charset = $default_charset;
}
-
/**
* Returns message/object character set name
*
@@ -58,7 +57,6 @@ class rcube_mime
return RCUBE_CHARSET;
}
-
/**
* Parse the given raw message source and return a structure
* of rcube_message_part objects.
@@ -75,7 +73,6 @@ class rcube_mime
return self::structure_part($struct);
}
-
/**
* Recursive method to convert a Mail_mimeDecode part into a rcube_message_part object
*
@@ -88,28 +85,30 @@ class rcube_mime
private static function structure_part($part, $count=0, $parent='')
{
$struct = new rcube_message_part;
- $struct->mime_id = $part->mime_id ? $part->mime_id : (empty($parent) ? (string)$count : "$parent.$count");
- $struct->headers = $part->headers;
- $struct->ctype_primary = $part->ctype_primary;
- $struct->ctype_secondary = $part->ctype_secondary;
- $struct->mimetype = $part->ctype_primary . '/' . $part->ctype_secondary;
+ $struct->mime_id = $part->mime_id ?: (empty($parent) ? (string)$count : "$parent.$count");
+ $struct->headers = $part->headers;
+ $struct->mimetype = $part->ctype_primary . '/' . $part->ctype_secondary;
+ $struct->ctype_primary = $part->ctype_primary;
+ $struct->ctype_secondary = $part->ctype_secondary;
$struct->ctype_parameters = $part->ctype_parameters;
- if ($part->headers['content-transfer-encoding'])
+ if ($part->headers['content-transfer-encoding']) {
$struct->encoding = $part->headers['content-transfer-encoding'];
- if ($part->ctype_parameters['charset'])
+ }
+
+ if ($part->ctype_parameters['charset']) {
$struct->charset = $part->ctype_parameters['charset'];
+ }
- $part_charset = $struct->charset ? $struct->charset : self::get_charset();
+ $part_charset = $struct->charset ?: self::get_charset();
// determine filename
if (($filename = $part->d_parameters['filename']) || ($filename = $part->ctype_parameters['name'])) {
$struct->filename = rcube_mime::decode_mime_string($filename, $part_charset);
}
- // copy part body and convert it to UTF-8 if necessary
- $struct->body = $part->ctype_primary == 'text' || !$part->ctype_parameters['charset'] ? rcube_charset::convert($part->body, $part_charset) : $part->body;
- $struct->size = strlen($part->body);
+ $struct->body = $part->body;
+ $struct->size = strlen($part->body);
$struct->disposition = $part->disposition;
foreach ((array)$part->parts as $child_part) {
@@ -119,7 +118,6 @@ class rcube_mime
return $struct;
}
-
/**
* Split an address list into a structured array list
*
@@ -169,7 +167,6 @@ class rcube_mime
return $out;
}
-
/**
* Decode a message header value
*
@@ -185,7 +182,6 @@ class rcube_mime
return $str;
}
-
/**
* Decode a mime-encoded string to internal charset
*
@@ -282,12 +278,12 @@ class rcube_mime
return rcube_charset::convert($input, $default_charset);
}
-
/**
* Decode a mime part
*
* @param string $input Input string
* @param string $encoding Part encoding
+ *
* @return string Decoded string
*/
public static function decode($input, $encoding = '7bit')
@@ -308,10 +304,8 @@ class rcube_mime
}
}
-
/**
* Split RFC822 header string into an associative array
- * @access private
*/
public static function parse_headers($headers)
{
@@ -332,7 +326,6 @@ class rcube_mime
return $a_headers;
}
-
/**
* @access private
*/
@@ -402,7 +395,6 @@ class rcube_mime
return $result;
}
-
/**
* Explodes header (e.g. address-list) string into array of strings
* using specified separator characters with proper handling
@@ -477,7 +469,6 @@ class rcube_mime
return $result;
}
-
/**
* Interpret a format=flowed message body according to RFC 2646
*
@@ -488,10 +479,10 @@ class rcube_mime
*/
public static function unfold_flowed($text, $mark = null)
{
- $text = preg_split('/\r?\n/', $text);
- $last = -1;
+ $text = preg_split('/\r?\n/', $text);
+ $last = -1;
$q_level = 0;
- $marks = array();
+ $marks = array();
foreach ($text as $idx => $line) {
if (preg_match('/^(>+)/', $line, $m)) {
@@ -558,12 +549,11 @@ class rcube_mime
return implode("\r\n", $text);
}
-
/**
* Wrap the given text to comply with RFC 2646
*
- * @param string $text Text to wrap
- * @param int $length Length
+ * @param string $text Text to wrap
+ * @param int $length Length
* @param string $charset Character encoding of $text
*
* @return string Wrapped text
@@ -596,7 +586,6 @@ class rcube_mime
return implode("\r\n", $text);
}
-
/**
* Improved wordwrap function with multibyte support.
* The code is based on Zend_Text_MultiByte::wordWrap().
@@ -716,7 +705,6 @@ class rcube_mime
return implode($break, $result);
}
-
/**
* A method to guess the mime_type of an attachment.
*
@@ -735,8 +723,8 @@ class rcube_mime
{
static $mime_ext = array();
- $mime_type = null;
- $config = rcube::get_instance()->config;
+ $mime_type = null;
+ $config = rcube::get_instance()->config;
$mime_magic = $config->get('mime_magic');
if (!$skip_suffix && empty($mime_ext)) {
@@ -790,12 +778,13 @@ class rcube_mime
return $mime_type;
}
-
/**
* Get mimetype => file extension mapping
*
- * @param string Mime-Type to get extensions for
- * @return array List of extensions matching the given mimetype or a hash array with ext -> mimetype mappings if $mimetype is not given
+ * @param string Mime-Type to get extensions for
+ *
+ * @return array List of extensions matching the given mimetype or a hash array
+ * with ext -> mimetype mappings if $mimetype is not given
*/
public static function get_mime_extensions($mimetype = null)
{
@@ -888,7 +877,6 @@ class rcube_mime
return $mimetype ? $mime_types[$mimetype] : $mime_extensions;
}
-
/**
* Detect image type of the given binary data by checking magic numbers.
*