From 93af155f6434bf5b057cf1018ba76c6b2a9ab0e9 Mon Sep 17 00:00:00 2001 From: alecpl Date: Mon, 20 Jul 2009 11:09:02 +0000 Subject: - Fix import of vCard entries with params (#1485453) --- CHANGELOG | 1 + program/include/rcube_vcard.php | 11 +++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 5f8a0c0af..559a4b56c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG RoundCube Webmail =========================== +- Fix import of vCard entries with params (#1485453) - Fix HTML messages output with empty block elements (#1485974) - Added hook when killing a session - Added hook to write_log function (#1485971) diff --git a/program/include/rcube_vcard.php b/program/include/rcube_vcard.php index c9ff49fcd..7dbbb3f71 100644 --- a/program/include/rcube_vcard.php +++ b/program/include/rcube_vcard.php @@ -264,13 +264,13 @@ class rcube_vcard } if (!preg_match('/^(BEGIN|END)$/i', $line[1]) && preg_match_all('/([^\\;]+);?/', $line[1], $regs2)) { - $entry = array(''); + $entry = array(); $field = strtoupper($regs2[1][0]); foreach($regs2[1] as $attrid => $attr) { if ((list($key, $value) = explode('=', $attr)) && $value) { if ($key == 'ENCODING') { - # add next line(s) to value string if QP line end detected + // add next line(s) to value string if QP line end detected while ($value == 'QUOTED-PRINTABLE' && preg_match('/=$/', $lines[$i])) $line[2] .= "\n" . $lines[++$i]; @@ -280,17 +280,16 @@ class rcube_vcard $entry[strtolower($key)] = array_merge((array)$entry[strtolower($key)], (array)self::vcard_unquote($value, ',')); } else if ($attrid > 0) { - $entry[$key] = true; # true means attr without =value + $entry[$key] = true; // true means attr without =value } } - $entry[0] = self::vcard_unquote($line[2]); + $entry = array_merge($entry, (array)self::vcard_unquote($line[2])); $data[$field][] = count($entry) > 1 ? $entry : $entry[0]; } } unset($data['VERSION']); - return $data; } @@ -360,7 +359,7 @@ class rcube_vcard if (is_int($attrname)) $value[] = $attrvalues; elseif ($attrvalues === true) - $attr .= ";$attrname"; # true means just tag, not tag=value, as in PHOTO;BASE64:... + $attr .= ";$attrname"; // true means just tag, not tag=value, as in PHOTO;BASE64:... else { foreach((array)$attrvalues as $attrvalue) $attr .= ";$attrname=" . self::vcard_quote($attrvalue, ','); -- cgit v1.2.3