thomascube
2005-11-18 4b0f65a597c8339b513bc44e16a95f3803c26369
program/include/rcube_imap.inc
@@ -433,7 +433,7 @@
    }
  // old function; replaced 2005/10/18
  // original function; replaced 2005/10/18
  // private method for listing message header
  function _list_headers($mailbox='', $page=NULL, $sort_field='date', $sort_order='DESC')
    {
@@ -464,6 +464,7 @@
      
    // sort headers by a specific col
    $a_headers = iil_SortHeaders($a_msg_headers, $sort_field, $sort_order);
    $headers_count = count($a_headers);
   // free memory
   unset($a_msg_headers);
@@ -471,6 +472,14 @@
    // write headers list to cache
    if (!$headers_cached)
      $this->update_cache($mailbox.'.msg', $a_headers);
    // update message count cache
    $a_mailbox_cache = $this->get_cache('messagecount');
    if (isset($a_mailbox_cache[$mailbox]['ALL']) && $a_mailbox_cache[$mailbox]['ALL'] != $headers_count)
      {
      $a_mailbox_cache[$mailbox]['ALL'] = (int)$headers_count;
      $this->update_cache('messagecount', $a_mailbox_cache);
      }
   if (empty($a_headers))
      return array();
@@ -478,7 +487,7 @@
    // return complete list of messages
    if (strtolower($page)=='all')
      return $a_headers;
    $start_msg = ($this->list_page-1) * $this->page_size;
    return array_slice($a_headers, $start_msg, $this->page_size);
    }
@@ -979,6 +988,12 @@
  function decode_header($input)
    {
    return $this->decode_mime_string($input);
    }
  function decode_mime_string($input)
    {
    $out = '';
    $pos = strpos($input, '=?');
@@ -993,8 +1008,8 @@
      $encstr = substr($input, $pos+2, ($end_pos-$pos-2));
      $rest = substr($input, $end_pos+2);
      $out .= $this->decode_mime_string($encstr);
      $out .= $this->decode_header($rest);
      $out .= rcube_imap::_decode_mime_string_part($encstr);
      $out .= rcube_imap::decode_mime_string($rest);
      return $out;
      }
@@ -1003,7 +1018,7 @@
    }
  function decode_mime_string($str)
  function _decode_mime_string_part($str)
    {
    $a = explode('?', $str);
    $count = count($a);
@@ -1086,10 +1101,10 @@
  function _mod_mailbox($mbox, $mode='in')
    {
    if (!empty($this->root_ns) && $this->root_ns == $mbox)
    if ((!empty($this->root_ns) && $this->root_ns == $mbox) || ($mbox == 'INBOX' && $mode == 'in'))
      return $mbox;
    if (!empty($this->root_dir) &&  $mode=='in')
    if (!empty($this->root_dir) && $mode=='in')
      $mbox = $this->root_dir.$this->delimiter.$mbox;
    else if (strlen($this->root_dir) && $mode=='out') 
      $mbox = substr($mbox, strlen($this->root_dir)+1);