Add compatibility with Dovecot's bigint UIDs
[squirrelmail.git] / functions / imap_messages.php
index e7df007bbc75981942b0c0d738db1aa713044e55..8a89940a0c9dfeb1381d57461611b21079ee162a 100755 (executable)
@@ -47,7 +47,6 @@ function sqimap_msgs_list_move($imap_stream, $id, $mailbox, $handle_errors = tru
     if ($source_mailbox!==false && $source_mailbox==$mailbox) {
         return false;
     }
-    $msgs_id = sqimap_message_list_squisher($id);
     if (sqimap_msgs_list_copy ($imap_stream, $id, $mailbox, $handle_errors)) {
         return sqimap_toggle_flag($imap_stream, $id, '\\Deleted', true, true);
     } else {
@@ -66,8 +65,7 @@ function sqimap_msgs_list_move($imap_stream, $id, $mailbox, $handle_errors = tru
  * @since 1.4.0
  */
 function sqimap_msgs_list_delete($imap_stream, $mailbox, $id, $bypass_trash=false) {
-    // FIX ME, remove globals by introducing an associative array with properties
-    // as 4th argument as replacement for the bypass_trash var
+    // FIXME: Remove globals by introducing an associative array with properties as 4th argument as replacement for the $bypass_trash variable.
     global $move_to_trash, $trash_folder;
     if (($move_to_trash == true) && ($bypass_trash != true) &&
         (sqimap_mailbox_exists($imap_stream, $trash_folder) &&  ($mailbox != $trash_folder)) ) {
@@ -165,8 +163,8 @@ function sqimap_get_sort_order($imap_stream, $sSortField, $reverse, $search='ALL
             $sSortField = 'REVERSE '.$sSortField;
         }
         $query = "SORT ($sSortField) ".strtoupper($default_charset)." $search";
-        // FIX ME sqimap_run_command should return the parsed data accessible by $aDATA['SORT']
-        // use sqimap_run_command_list in case of unsollicited responses. If we don't we could loose the SORT response
+        // FIXME: sqimap_run_command() should return the parsed data accessible by $aDATA['SORT']
+        // use sqimap_run_command_list() in case of unsolicited responses. If we don't we could loose the SORT response.
         $aData = sqimap_run_command_list ($imap_stream, $query, false, $response, $message, TRUE);
         /* fallback to default charset */
         if ($response == 'NO') {
@@ -716,7 +714,7 @@ function parseFetch(&$aResponse,$aMessageList = array()) {
                                         if  (is_numeric($sPrio)) {
                                             $iPrio = (int) $sPrio;
                                         } elseif ( $sPrio == 'non-urgent' || $sPrio == 'low' ) {
-                                            $iPrio = 3;
+                                            $iPrio = 5;
                                         } elseif ( $sPrio == 'urgent' || $sPrio == 'high' ) {
                                             $iPrio = 1;
                                         } else {
@@ -897,7 +895,10 @@ function sqimap_parse_address($read, &$i) {
  */
 function sqimap_get_message($imap_stream, $id, $mailbox, $hide=0) {
     // typecast to int to prohibit 1:* msgs sets
-    $id = (int) $id;
+    // Update: $id should always be sanitized into a BIGINT so this
+    // is being removed; leaving this code here in case something goes
+    // wrong, however
+    //$id = (int) $id;
     $flags = array();
     $read = sqimap_run_command($imap_stream, "FETCH $id (FLAGS BODYSTRUCTURE)", true, $response, $message, TRUE);
     if ($read) {
@@ -954,11 +955,10 @@ function sqimap_get_message($imap_stream, $id, $mailbox, $hide=0) {
  *
  */
 function parse_message_entities(&$msg, $id, $imap_stream) {
-    global $uid_support;
     if (!empty($msg->entities)) foreach ($msg->entities as $i => $entity) {
-        if (is_object($entity) && get_class($entity) == 'Message') {
+        if (is_object($entity) && strtolower(get_class($entity)) == 'message') {
             if (!empty($entity->rfc822_header)) {
-                $read = sqimap_run_command($imap_stream, "FETCH $id BODY[". $entity->entity_id .".HEADER]", true, $response, $message, $uid_support);
+                $read = sqimap_run_command($imap_stream, "FETCH $id BODY[". $entity->entity_id .".HEADER]", true, $response, $message, TRUE);
                 $rfc822_header = new Rfc822Header();
                 $rfc822_header->parseHeader($read);
                 $msg->entities[$i]->rfc822_header = $rfc822_header;