X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fimap_search.php;h=fbc9baeb551345657dbc1f549faa7eeff5750bbe;hb=e5f1d1ee9a85d2a271135d05f6d1300996e48aa8;hp=4190597ffca77b500273a3a7bb96ab5939fb211f;hpb=15e6162eacc97158393bc75aed3afeb7b19c24a6;p=squirrelmail.git
diff --git a/functions/imap_search.php b/functions/imap_search.php
index 4190597f..fbc9baeb 100644
--- a/functions/imap_search.php
+++ b/functions/imap_search.php
@@ -17,29 +17,49 @@ require_once('../functions/array.php');
require_once('../functions/mailbox_display.php');
require_once('../functions/mime.php');
-function sqimap_search($imapConnection,$search_where,$search_what,$mailbox,$color) {
+function sqimap_search($imapConnection,$search_where,$search_what,$mailbox,$color, $search_position = '', $search_all, $count_all) {
global $msgs, $message_highlight_list, $squirrelmail_language, $languages, $index_order;
+ global $pos;
+
+ $pos = $search_position;
$urlMailbox = urlencode($mailbox);
- $isid = sqimap_session_id();
/* Construct the Search QuERY */
- $ss = $isid;
+
+# account for multiple search terms
+
+ $multi_search = array ();
+ $search_what = ereg_replace("[ ]{2,}", ' ', $search_what);
+ $multi_search = split (' ', $search_what);
+ if (count($multi_search)==1) {
+ $search_string = $search_where . ' ' . '"' . $multi_search[0] . '"';
+ }
+ else {
+ $search_string = '';
+ $count = count($multi_search);
+ for ($x=0;$x<$count;$x++) {
+ $search_string = $search_string . ' ' . $search_where . " " . '"' . $multi_search[$x] . '" ';
+ }
+ }
+ $search_string = trim($search_string);
+
+# now use $search_string in the imap search
+
if (isset($languages[$squirrelmail_language]['CHARSET']) &&
$languages[$squirrelmail_language]['CHARSET']) {
- $ss .= " SEARCH CHARSET ".$languages[$squirrelmail_language]['CHARSET']." ALL $search_where \"$search_what\"\r\n";
+ $ss = "SEARCH CHARSET ".$languages[$squirrelmail_language]['CHARSET']." ALL $search_string";
} else {
- $ss .= " SEARCH ALL $search_where \"$search_what\"\r\n";
+ $ss .= "SEARCH ALL $search_string\"";
}
- fputs($imapConnection,$ss);
/* Read Data Back From IMAP */
- $readin = sqimap_read_data ($imapConnection, $isid, false, $result, $message);
+ $readin = sqimap_run_command ($imapConnection, $ss, true, $result, $message);
if (isset($languages[$squirrelmail_language]['CHARSET']) && strtolower($result) == 'no') {
- $ss = $isid . " SEARCH CHARSET \"US-ASCII\" ALL $search_where \"$search_what\"\r\n";
- fputs ($imapConnection, $ss);
- $readin = sqimap_read_data ($imapConnection, $isid, true, $result, $message);
+ // $ss = "SEARCH CHARSET \"US-ASCII\" ALL $search_where \"$search_what\"";
+ $ss = "SEARCH CHARSET \"US-ASCII\" ALL $search_string";
+ $readin = sqimap_run_command ($imapConnection, $ss, true, $result, $message);
}
unset($messagelist); $msgs=""; $c = 0;
@@ -59,9 +79,18 @@ function sqimap_search($imapConnection,$search_where,$search_what,$mailbox,$colo
/* If nothing is found * SEARCH should be the first error else echo errors */
if (isset($errors) && strstr($errors,"* SEARCH")) {
+ if ($search_all != "all") {
echo '