alecpl
2009-02-13 050410f56097bfb29bb8e5d99e792cc3a9165a55
program/include/rcube_imap.php
@@ -2958,13 +2958,13 @@
  function _parse_address_list($str, $decode=true)
    {
    // remove any newlines and carriage returns before
    $a = $this->_explode_quoted_string('[,;]', preg_replace( "/[\r\n]/", " ", $str));
    $a = rcube_explode_quoted_string('[,;]', preg_replace( "/[\r\n]/", " ", $str));
    $result = array();
    foreach ($a as $key => $val)
      {
      $val = preg_replace("/([\"\w])</", "$1 <", $val);
      $sub_a = $this->_explode_quoted_string(' ', $decode ? $this->decode_header($val) : $val);
      $sub_a = rcube_explode_quoted_string(' ', $decode ? $this->decode_header($val) : $val);
      $result[$key]['name'] = '';
      foreach ($sub_a as $k => $v)
@@ -2982,29 +2982,6 @@
        $result[$key]['address'] = $result[$key]['name'];
      }
    
    return $result;
    }
  /**
   * @access private
   */
  function _explode_quoted_string($delimiter, $string)
    {
    $result = array();
    $strlen = strlen($string);
    for ($q=$p=$i=0; $i < $strlen; $i++)
    {
      if ($string{$i} == "\"" && $string{$i-1} != "\\")
        $q = $q ? false : true;
      else if (!$q && preg_match("/$delimiter/", $string{$i}))
      {
        $result[] = substr($string, $p, $i - $p);
        $p = $i + 1;
      }
    }
    $result[] = substr($string, $p);
    return $result;
    }