alecpl
2011-09-18 609d3923d7dc674263ddea990387dbf5488fabc6
program/include/rcube_imap.php
@@ -426,7 +426,7 @@
    function set_search_set($str=null, $msgs=null, $charset=null, $sort_field=null, $threads=false, $sorted=false)
    {
        if (is_array($str) && $msgs == null)
            list($str, $msgs, $charset, $sort_field, $threads) = $str;
            list($str, $msgs, $charset, $sort_field, $threads, $sorted) = $str;
        if ($msgs === false)
            $msgs = array();
        else if ($msgs != null && !is_array($msgs))
@@ -813,7 +813,7 @@
            $mailbox = $this->mailbox;
        }
        return $this->_list_headers($mailbox, $page, $sort_field, $sort_order, false, $slice);
        return $this->_list_headers($mailbox, $page, $sort_field, $sort_order, $slice);
    }
@@ -1086,7 +1086,7 @@
            if (!empty($parents)) {
                $headers[$idx]->parent_uid = end($parents);
                if (!$header->seen)
                if (empty($header->flags['SEEN']))
                    $headers[$parents[0]]->unread_children++;
            }
            array_push($parents, $header->uid);
@@ -1999,12 +1999,11 @@
        }
        $struct = &$this->_structure_part($structure, 0, '', $headers);
        $struct->headers = get_object_vars($headers);
        // don't trust given content-type
        if (empty($struct->parts) && !empty($struct->headers['ctype'])) {
        if (empty($struct->parts) && !empty($headers->ctype)) {
            $struct->mime_id = '1';
            $struct->mimetype = strtolower($struct->headers['ctype']);
            $struct->mimetype = strtolower($headers->ctype);
            list($struct->ctype_primary, $struct->ctype_secondary) = explode('/', $struct->mimetype);
        }
@@ -2386,6 +2385,9 @@
        if ($fp || $print) {
            return true;
        }
        // Remove NULL characters (#1486189)
        $body = str_replace("\x00", '', $body);
        // convert charset (if text or message part)
        if ($body && !$skip_charset_conv &&
@@ -3419,6 +3421,8 @@
        if ($this->conn->selected != $mailbox) {
            if ($this->conn->select($mailbox))
                $this->mailbox = $mailbox;
            else
                return null;
        }
        $data = $this->conn->data;
@@ -3498,7 +3502,8 @@
        }
        if (!empty($options['rights'])) {
            $options['norename'] = !in_array('x', $options['rights']);
            $options['norename'] = !in_array('x', $options['rights']) && !in_array('d', $options['rights']);
            if (!$options['noselect']) {
                $options['noselect'] = !in_array('r', $options['rights']);
            }
@@ -3514,6 +3519,19 @@
    /**
     * Synchronizes messages cache.
     *
     * @param string $mailbox Folder name
     */
    public function mailbox_sync($mailbox)
    {
        if ($mcache = $this->get_mcache_engine()) {
            $mcache->synchronize($mailbox);
        }
    }
    /**
     * Get message header names for rcube_imap_generic::fetchHeader(s)
     *
     * @return string Space-separated list of header names