Fix vcard folding with uncode characters (#1487868)

release-0.6
thomascube 13 years ago
parent 1633bcafca
commit bf80b5a237

@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
- Fix vcard folding with uncode characters (#1487868)
- Keep all submitted data if contact form validation fails (#1487865)
- Handle uncode strings in rcube_addressbook::normalize_string() (#1487866)
- Fix bug where template name without plugin prefix was used in render_page hook

@ -465,7 +465,26 @@ class rcube_vcard
private static function rfc2425_fold_callback($matches)
{
return ":\n ".rtrim(chunk_split($matches[1], 72, "\n "));
// use mb string function if available
if (function_exists('mb_ereg_replace')) {
mb_internal_encoding(RCMAIL_CHARSET);
return ":\n " . mb_ereg_replace('(.{70})', "\\1\n ", $matches[1]);
}
// chunk_split string and avoid lines breaking multibyte characters
$c = 66;
$out = ":\n " . substr($matches[1], 0, $c);
for ($n = $c; $c < strlen($matches[1]); $c++) {
// break if length > 70 or mutlibyte character starts after position 66
if ($n > 70 || ($n > 66 && ord($matches[1][$c]) >> 6 == 3)) {
$out .= "\n ";
$n = 0;
}
$out .= $matches[1][$c];
$n++;
}
return $out;
}
private static function rfc2425_fold($val)

Loading…
Cancel
Save