Handle combined UID-folder identifiers in rcube_imap class

pull/193/head
Thomas Bruederli 12 years ago
parent 2c33c7e38b
commit ff3eb83492

@ -1656,6 +1656,7 @@ class rcube_imap extends rcube_storage
public function refresh_search()
{
if (!empty($this->search_string)) {
// FIXME: make this work with saved multi-folder searches
$this->search('', $this->search_string, $this->search_charset, $this->search_sort_field);
}
@ -1678,6 +1679,11 @@ class rcube_imap extends rcube_storage
$folder = $this->folder;
}
// decode combined UID-folder identifier
if (preg_match('/^\d+-[^,]+$/', $uid)) {
list($uid, $folder) = explode('-', $uid);
}
// get cached headers
if (!$force && $uid && ($mcache = $this->get_mcache_engine())) {
$headers = $mcache->get_message($folder, $uid);
@ -1709,6 +1715,11 @@ class rcube_imap extends rcube_storage
$folder = $this->folder;
}
// decode combined UID-folder identifier
if (preg_match('/^\d+-[^,]+$/', $uid)) {
list($uid, $folder) = explode('-', $uid);
}
// Check internal cache
if (!empty($this->icache['message'])) {
if (($headers = $this->icache['message']) && $headers->uid == $uid) {

Loading…
Cancel
Save