diff options
author | alecpl <alec@alec.pl> | 2011-04-11 12:24:00 +0000 |
---|---|---|
committer | alecpl <alec@alec.pl> | 2011-04-11 12:24:00 +0000 |
commit | d3105370870a8c51aaeb6a18f561311202da3356 (patch) | |
tree | 9b0d50549f35a44d7eb438bd7ad3dfa9ca72d263 /program/include/rcube_imap.php | |
parent | 382b8b1351e1a4598f04ab184cec803b96d7e4b7 (diff) |
- Apply fixes from trunk
Diffstat (limited to 'program/include/rcube_imap.php')
-rw-r--r-- | program/include/rcube_imap.php | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php index adca4e3d4..e2ab550d5 100644 --- a/program/include/rcube_imap.php +++ b/program/include/rcube_imap.php @@ -2426,9 +2426,11 @@ class rcube_imap * @param rcube_message_part $o_part Part object created by get_structure() * @param mixed $print True to print part, ressource to write part contents in * @param resource $fp File pointer to save the message part + * @param boolean $skip_charset_conv Disables charset conversion + * * @return string Message/part body if not printed */ - function &get_message_part($uid, $part=1, $o_part=NULL, $print=NULL, $fp=NULL) + function &get_message_part($uid, $part=1, $o_part=NULL, $print=NULL, $fp=NULL, $skip_charset_conv=false) { // get part encoding if not provided if (!is_object($o_part)) { @@ -2458,10 +2460,13 @@ class rcube_imap return true; } - // convert charset (if text or message part) and part's charset is specified - if ($body && $o_part->charset - && preg_match('/^(text|message)$/', $o_part->ctype_primary) + // convert charset (if text or message part) + if ($body && !$skip_charset_conv && + preg_match('/^(text|message)$/', $o_part->ctype_primary) ) { + if (!$o_part->charset || strtoupper($o_part->charset) == 'US-ASCII') { + $o_part->charset = $this->default_charset; + } $body = rcube_charset_convert($body, $o_part->charset); } |