thomascube
2009-05-01 69f18a09aec6e352ff021cd9c5db806f341b7e48
program/include/rcube_imap.php
@@ -1124,15 +1124,8 @@
      // set message charset from message headers
      if ($headers->charset)
        $this->struct_charset = $headers->charset;
      // ... or from first part headers
      else if (is_array($structure[2]) && $structure[2][0] == 'charset')
        $this->struct_charset = $structure[2][1];
      else if (is_array($structure[0][2]) && $structure[0][2][0] == 'charset')
        $this->struct_charset = $structure[0][2][1];
      else if (is_array($structure[0][0][2]) && $structure[0][0][2][0] == 'charset')
        $this->struct_charset = $structure[0][0][2][1];
      else
        $this->struct_charset = null;
        $this->struct_charset = $this->_structure_charset($structure);
      $struct = &$this->_structure_part($structure);
      $struct->headers = get_object_vars($headers);
@@ -1390,8 +1383,25 @@
      $part->filename = rcube_charset_convert(urldecode($filename_encoded), $filename_charset);
      }
    }
  /**
   * Get charset name from message structure (first part)
   *
   * @access private
   * @param  array  Message structure
   * @return string Charset name
   */
  function _structure_charset($structure)
    {
      while (is_array($structure)) {
   if (is_array($structure[2]) && $structure[2][0] == 'charset')
     return $structure[2][1];
   $structure = $structure[0];
   }
    }
  /**
   * Fetch message body of a specific message from the server
   *