/** */ protected function _getSeqUidLookup(Horde_Imap_Client_Ids $ids, $reverse = false) { $ob = array('lookup' => array(), 'uids' => $this->getIdsOb()); if (!empty($this->_temp['mailbox']['lookup']) && count($ids) && ($ids->sequence || $reverse)) { $need = $this->getIdsOb(null, $ids->sequence); $t = $this->_temp['mailbox']['lookup']; foreach ($ids as $val) { if ($ids->sequence) { if (isset($t[$val])) { $ob['lookup'][$val] = $t[$val]; $ob['uids']->add($t[$val]); } else { $need->add($val); } } else { if (($key = array_search($val, $t)) !== false) { $ob['lookup'][$key] = $val; $ob['uids']->add($val); } else { $need->add($val); } } } if (!count($need)) { return $ob; } $ids = $need; } $res = parent::_getSeqUidLookup($ids, $reverse); if (!empty($res['lookup'])) { $ob['lookup'] = $ob['lookup'] + $res['lookup']; } if (isset($res['uids'])) { $ob['uids']->add($res['uids']); } return $ob; }