alecpl
2011-08-03 359e19a19dd45d64d14c7b29461f0fbe4f8a50bd
- Fix EOL character in vCard exports (#1487873)


3 files modified
13 ■■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
program/include/rcube_vcard.php 7 ●●●●● patch | view | raw | blame | history
program/steps/addressbook/export.inc 5 ●●●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
- Fix EOL character in vCard exports (#1487873)
- Added optional "multithreading" autocomplete feature
- Plugin API: Added 'config_get' hook
- Fixed new_user_identity plugin to work with updated rcube_ldap class (#1487994)
program/include/rcube_vcard.php
@@ -33,7 +33,7 @@
    'FN' => array(),
    'N' => array(array('','','','','')),
  );
  static private $fieldmap = array(
  private static $fieldmap = array(
    'phone'    => 'TEL',
    'birthday' => 'BDAY',
    'website'  => 'URL',
@@ -65,6 +65,7 @@
  public $notes;
  public $email = array();
  public static $eol = "\r\n";
  /**
   * Constructor
@@ -640,11 +641,11 @@
        if (self::is_empty($value))
          continue;
        $vcard .= self::vcard_quote($type) . $attr . ':' . self::vcard_quote($value) . "\n";
        $vcard .= self::vcard_quote($type) . $attr . ':' . self::vcard_quote($value) . self::$eol;
      }
    }
    return "BEGIN:VCARD\nVERSION:3.0\n{$vcard}END:VCARD";
    return 'BEGIN:VCARD' . self::$eol . 'VERSION:3.0' . self::$eol . $vcard . 'END:VCARD';
  }
program/steps/addressbook/export.inc
@@ -73,7 +73,8 @@
while ($result && ($row = $result->next())) {
    // we already have a vcard record
    if ($row['vcard'] && $row['name']) {
        echo rcube_vcard::rfc2425_fold($row['vcard']) . "\n";
        $row['vcard'] = preg_replace('/\r?\n/', rcube_vcard::$eol, $row['vcard']);
        echo rcube_vcard::rfc2425_fold($row['vcard']) . rcube_vcard::$eol;
    }
    // copy values into vcard object
    else {
@@ -90,7 +91,7 @@
            }
        }
        echo $vcard->export(true) . "\n";
        echo $vcard->export(true) . rcube_vcard::$eol;
    }
}