From 42000a5d64ef92d3b85c71381654f3f8f6cb9cfd Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Fri, 04 Aug 2006 09:56:08 -0400 Subject: [PATCH] Added correct charset support for message searching --- program/include/rcube_imap.inc | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc index be89bd6..7f74eb7 100644 --- a/program/include/rcube_imap.inc +++ b/program/include/rcube_imap.inc @@ -827,13 +827,19 @@ * @return array search results as list of message ids * @access public */ - function search($mbox_name='', $criteria='ALL', $str=NULL) + function search($mbox_name='', $criteria='ALL', $str=NULL, $charset=NULL) { $mailbox = $mbox_name ? $this->_mod_mailbox($mbox_name) : $this->mailbox; if ($str && $criteria) { - $criteria = 'CHARSET UTF-8 '.$criteria.' "'.UTF7EncodeString($str).'"'; - return $this->_search_index($mailbox, $criteria); + $search = (!empty($charset) ? "CHARSET $charset " : '') . sprintf("%s {%d}\r\n%s", $criteria, strlen($str), $str); + $results = $this->_search_index($mailbox, $search); + + // try search without charset (probably not supported by server) + if (empty($results)) + $results = $this->_search_index($mailbox, "$criteria $str"); + + return $results; } else return $this->_search_index($mailbox, $criteria); -- Gitblit v1.9.1