X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fimap_messages.php;h=859702b59e41cf7c30f337a658bac9de5167b3c9;hb=c0d04f9753371080831e9e79f41d7b4756df83ab;hp=fd592a2bfde6cbabd0a1bd325d8a76ae44716f3a;hpb=1855c790ba0efbc5b666651d56c668538447a3b4;p=squirrelmail.git diff --git a/functions/imap_messages.php b/functions/imap_messages.php index fd592a2b..859702b5 100755 --- a/functions/imap_messages.php +++ b/functions/imap_messages.php @@ -90,7 +90,7 @@ function get_reference_header ($imap_stream, $message) { $responses = sqimap_read_data_list($imap_stream, $sid, true, $responses, $message); if (!eregi("^\\* ([0-9]+) FETCH", $responses[0][0], $regs)) { $responses = array (); - } + } return $responses; } @@ -105,8 +105,8 @@ function sqimap_get_sort_order ($imap_stream, $sort, $mbxresponse) { $internal_date_sort, $server_sort_array, $sent_folder, $mailbox, $uid_support; - if (session_is_registered('server_sort_array')) { - session_unregister('server_sort_array'); + if (sqsession_is_registered('server_sort_array')) { + sqsession_unregister('server_sort_array'); } $sid = sqimap_session_id($uid_support); @@ -118,10 +118,14 @@ function sqimap_get_sort_order ($imap_stream, $sort, $mbxresponse) { if ($sort == 6) { if ($uid_support) { - $uidnext = $mbxresponse['UIDNEXT']-1; + if (isset($mbxresponse['UIDNEXT']) && $mbxresponse['UIDNEXT']) { + $uidnext = $mbxresponse['UIDNEXT']-1; + } else { + $uidnext = '*'; + } $uid_query = "$sid SEARCH UID 1:$uidnext\r\n"; fputs($imap_stream, $uid_query); - $uids = sqimap_read_data($imap_stream, $sid, true ,&$response, $message); + $uids = sqimap_read_data($imap_stream, $sid, true ,$response, $message); if (isset($uids[0])) { if (preg_match("/^\* SEARCH (.+)$/", $uids[0], $regs)) { $server_sort_array = preg_split("/ /", trim($regs[1])); @@ -134,7 +138,7 @@ function sqimap_get_sort_order ($imap_stream, $sort, $mbxresponse) { $qty = $mbxresponse['EXISTS']; $server_sort_array = range(1, $qty); } - session_register('server_sort_array'); + sqsession_register($server_sort_array, 'server_sort_array'); return $server_sort_array; } @@ -155,7 +159,7 @@ function sqimap_get_sort_order ($imap_stream, $sort, $mbxresponse) { if (!empty($sort_on[$sort])) { $sort_query = "$sid SORT ($sort_on[$sort]) ".strtoupper($default_charset)." ALL\r\n"; fputs($imap_stream, $sort_query); - $sort_test = sqimap_read_data($imap_stream, $sid, true ,&$response, $message); + $sort_test = sqimap_read_data($imap_stream, $sid, true ,$response, $message); } if (isset($sort_test[0])) { if (preg_match("/^\* SORT (.+)$/", $sort_test[0], $regs)) { @@ -168,7 +172,7 @@ function sqimap_get_sort_order ($imap_stream, $sort, $mbxresponse) { if (!preg_match("/OK/", $response)) { $server_sort_array = 'no'; } - session_register('server_sort_array'); + sqsession_register($server_sort_array, 'server_sort_array'); return $server_sort_array; } @@ -176,8 +180,8 @@ function sqimap_get_sort_order ($imap_stream, $sort, $mbxresponse) { function sqimap_get_php_sort_order ($imap_stream, $mbxresponse) { global $uid_support; - if (session_is_registered('php_sort_array')) { - session_unregister('php_sort_array'); + if (sqsession_is_registered('php_sort_array')) { + sqsession_unregister('php_sort_array'); } $sid = sqimap_session_id($uid_support); @@ -191,7 +195,7 @@ function sqimap_get_php_sort_order ($imap_stream, $mbxresponse) { } $uid_query = "$sid SEARCH UID 1:$uidnext\r\n"; fputs($imap_stream, $uid_query); - $uids = sqimap_read_data($imap_stream, $sid, true ,&$response, $message); + $uids = sqimap_read_data($imap_stream, $sid, true ,$response, $message); if (isset($uids[0])) { if (preg_match("/^\* SEARCH (.+)$/", $uids[0], $regs)) { $php_sort_array = preg_split("/ /", trim($regs[1])); @@ -204,7 +208,7 @@ function sqimap_get_php_sort_order ($imap_stream, $mbxresponse) { $qty = $mbxresponse['EXISTS']; $php_sort_array = range(1, $qty); } - session_register('php_sort_array'); + sqsession_register($php_sort_array, 'php_sort_array'); return $php_sort_array; } @@ -315,11 +319,11 @@ function get_parent_level ($imap_stream) { function get_thread_sort ($imap_stream) { global $thread_new, $sort_by_ref, $default_charset, $server_sort_array, $uid_support; - if (session_is_registered('thread_new')) { - session_unregister('thread_new'); + if (sqsession_is_registered('thread_new')) { + sqsession_unregister('thread_new'); } - if (session_is_registered('server_sort_array')) { - session_unregister('server_sort_array'); + if (sqsession_is_registered('server_sort_array')) { + sqsession_unregister('server_sort_array'); } $sid = sqimap_session_id($uid_support); $thread_temp = array (); @@ -373,14 +377,14 @@ function get_thread_sort ($imap_stream) { } } } - session_register('thread_new'); + sqsession_register($thread_new, 'thread_new'); $thread_new = array_reverse($thread_new); $thread_list = implode(" ", $thread_new); $thread_list = str_replace("(", " ", $thread_list); $thread_list = str_replace(")", " ", $thread_list); $thread_list = preg_split("/\s/", $thread_list, -1, PREG_SPLIT_NO_EMPTY); $server_sort_array = $thread_list; - session_register('server_sort_array'); + sqsession_register($server_sort_array, 'server_sort_array'); return $thread_list; } @@ -492,9 +496,9 @@ function sqimap_get_small_header_list ($imap_stream, $msg_list) { foreach ($read as $read_part) { //unfold multi-line headers - while ($prevline && strspn($read_part, "\t ") > 0) { - $read_part = substr($prevline, 0, -2) . ' ' . ltrim($read_part); - } + if ($prevline && strpos($read_part, "\t ") === true) { + $read_part = substr($prevline, 0, -2) . preg_replace('/(\t\s+)/',' ',$read_part); + } $prevline = $read_part; if ($read_part{0} == '*') { if ($internaldate) { @@ -701,7 +705,7 @@ function sqimap_get_message ($imap_stream, $id, $mailbox) { $bodystructure = implode('',$read); $msg = mime_structure($bodystructure,$flags); $read = sqimap_run_command ($imap_stream, "FETCH $id BODY[HEADER]", true, $response, $message, $uid_support); - $rfc822_header = new rfc822_header(); + $rfc822_header = new Rfc822Header(); $rfc822_header->parseHeader($read); $msg->rfc822_header = $rfc822_header; return $msg;