alecpl
2011-09-19 e7e79470e425c75495a846435b43350f0b793bb7
program/include/rcube_imap.php
@@ -176,12 +176,13 @@
        $attempt = 0;
        do {
            $data = rcmail::get_instance()->plugins->exec_hook('imap_connect',
                array('host' => $host, 'user' => $user, 'attempt' => ++$attempt));
                array_merge($this->options, array('host' => $host, 'user' => $user,
                    'attempt' => ++$attempt)));
            if (!empty($data['pass']))
                $pass = $data['pass'];
            $this->conn->connect($data['host'], $data['user'], $pass, $this->options);
            $this->conn->connect($data['host'], $data['user'], $pass, $data);
        } while(!$this->conn->connected() && $data['retry']);
        $this->host = $data['host'];
@@ -813,7 +814,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 +1087,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);
@@ -2386,6 +2387,9 @@
            return true;
        }
        // Remove NULL characters (#1486189)
        $body = str_replace("\x00", '', $body);
        // convert charset (if text or message part)
        if ($body && !$skip_charset_conv &&
            preg_match('/^(text|message)$/', $o_part->ctype_primary)
@@ -3418,6 +3422,8 @@
        if ($this->conn->selected != $mailbox) {
            if ($this->conn->select($mailbox))
                $this->mailbox = $mailbox;
            else
                return null;
        }
        $data = $this->conn->data;
@@ -3497,7 +3503,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']);
            }
@@ -3513,6 +3520,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