- Fix some base64 encoded attachments handling (#1485725)

release-0.6
alecpl 16 years ago
parent 874717b7f1
commit 5801afdf3e

@ -5,6 +5,7 @@ CHANGELOG RoundCube Webmail
----------
- Fix pressing select all/unread multiple times (#1485723)
- Fix selecting all unread does not honor new messages (#1485724)
- Fix some base64 encoded attachments handling (#1485725)
2009/02/05 (alec)
----------

@ -2508,7 +2508,8 @@ function iil_C_HandlePartBody(&$conn, $mailbox, $id, $part='', $mode=1, $file=NU
$len = $to - $from;
$sizeStr = substr($line, $from, $len);
$bytes = (int)$sizeStr;
$prev = '';
while ($bytes > 0) {
$line = iil_ReadLine($fp, 1024);
$len = strlen($line);
@ -2518,14 +2519,27 @@ function iil_C_HandlePartBody(&$conn, $mailbox, $id, $part='', $mode=1, $file=NU
}
$bytes -= strlen($line);
$line = rtrim($line, "\t\r\n\0\x0B");
if ($mode == 1) {
if ($file)
fwrite($file, rtrim($line, "\t\r\n\0\x0B") . "\n");
fwrite($file, $line . "\n");
else
$result .= rtrim($line, "\t\r\n\0\x0B") . "\n";
$result .= $line . "\n";
} else if ($mode == 2) {
echo rtrim($line, "\t\r\n\0\x0B") . "\n";
echo $line . "\n";
} else if ($mode == 3) {
// create chunks with proper length for base64 decoding
$line = $prev.$line;
$length = strlen($line);
if ($length % 4) {
$length = floor($length / 4) * 4;
$prev = substr($line, $length);
$line = substr($line, 0, $length);
}
else
$prev = '';
if ($file)
fwrite($file, base64_decode($line));
else

Loading…
Cancel
Save