- Fixed vcard folding: use one space, use mb_regex_encoding() (#1487868)

release-0.6
alecpl 13 years ago
parent ae1db2239e
commit 5c4c06665c

@ -74,9 +74,10 @@ ini_set('error_reporting', E_ALL&~E_NOTICE);
@set_time_limit(120);
// set internal encoding for mbstring extension
if(extension_loaded('mbstring'))
if (extension_loaded('mbstring')) {
mb_internal_encoding(RCMAIL_CHARSET);
@mb_regex_encoding(RCMAIL_CHARSET);
}
/**
* Use PHP5 autoload for dynamic class loading

@ -467,16 +467,16 @@ class rcube_vcard
{
// use mb string function if available
if (function_exists('mb_ereg_replace')) {
return ":\n " . mb_ereg_replace('(.{70})', "\\1\n ", $matches[1]);
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);
$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 ";
$out .= "\n ";
$n = 0;
}
$out .= $matches[1][$c];

Loading…
Cancel
Save