Fixing #550595, start_msg needs to be readjusted if all messages on the
[squirrelmail.git] / functions / mailbox_display.php
index 5458024c0e42052311a3e7009f7bde8c2a6287e4..6e6692f993c0208d78d2bcb66dc4d1db5a5c8146 100644 (file)
@@ -231,6 +231,17 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs,
     $auto_expunge, $thread_sort_messages, $allow_server_sort,
     $data_dir, $username, $server_sort_order;
 
+   /* if $start_msg is lower than $num_msgs, we probably deleted all messages
+    * in the last page. We need to re-adjust the start_msg
+    */
+
+   if($start_msg > $num_msgs) {
+       $start_msg -= $show_num;
+       if($start_msg < 1) {
+         $start_msg = 1;
+       }
+   }
+
   /* This code and the next if() block check for
    * server-side sorting methods. The $id array is
    * formatted and $sort is set to 6 to disable 
@@ -242,7 +253,7 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs,
       echo '<b><small><center><font color=red>Thread sorting is not'.
              ' supported by your IMAP server.<br>Please report this'.
              'to the system administrator.</center></small></b>';
-     $thread_sort_messages == 0; 
+     $thread_sort_messages = 0; 
     $id = array();
   }
   else {
@@ -257,7 +268,7 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs,
       }
   }
 
-  if ($allow_server_sort == 'true' && $thread_sort_messages != 1) {
+  if ($allow_server_sort == TRUE && $thread_sort_messages != 1) {
     $server_sort_order = $sort;
     $id = sqimap_get_sort_order($imapConnection, $server_sort_order);
   if ($id == 'no') {
@@ -265,7 +276,7 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs,
        'is not supported by your IMAP server.<br>Please report this'.
        ' to the system administrator.</center></small></b>';
     $sort = $server_sort_order;
-         $allow_server_sort = false;
+         $allow_server_sort = FALSE;
          $id = array();
        }
        else {
@@ -292,7 +303,7 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs,
       if ($sort < 6 ) {
        $id = range(1, $num_msgs);
       } 
-      elseif ($thread_sort_messages != 1 && $allow_server_sort != 'true' && $sort == 6) {
+      elseif ($thread_sort_messages != 1 && $allow_server_sort != TRUE && $sort == 6) {
        /* if it's not sorted */
        if ($start_msg + ($show_num - 1) < $num_msgs){
          $end_msg = $start_msg + ($show_num - 1);
@@ -456,7 +467,7 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs,
       }
     }          
     session_register('msort');
-  } elseif ($thread_sort_messages == 1 || $allow_server_sort == 'true') {
+  } elseif ($thread_sort_messages == 1 || $allow_server_sort == TRUE) {
     $msort = $msgs;
     session_unregister('msgs');
     session_register('msort');
@@ -673,7 +684,7 @@ function mail_message_listing_beginning ($imapConnection, $moveURL,
     . "   </TR>\n";
 
   /* draws thread sorting links */
-  if ($allow_thread_sort == 'true') {
+  if ($allow_thread_sort == TRUE) {
     if ($thread_sort_messages == 1 ) {
       $set_thread = 2;
       $thread_name = 'Unthread View';
@@ -705,7 +716,7 @@ function mail_message_listing_beginning ($imapConnection, $moveURL,
    * instead. but here we reset sort for a bit
    * since its easy
    */
-  if ($allow_server_sort == 'true') {
+  if ($allow_server_sort == TRUE) {
     $sort = $server_sort_order;
   }
   /* Print the headers. */
@@ -721,21 +732,21 @@ function mail_message_listing_beginning ($imapConnection, $moveURL,
       } else {
        echo '   <TD WIDTH="25%"><B>' . _("From") . '</B>';
       }
-      if ($allow_thread_sort != 'true' || $thread_sort_messages != 1) {
+      if ($allow_thread_sort != TRUE || $thread_sort_messages != 1) {
        ShowSortButton($sort, $mailbox, 2, 3);
       }
       echo "</TD>\n";
       break;
     case 3: /* date */
       echo '   <TD NOWRAP WIDTH="5%"><B>' . _("Date") . '</B>';
-      if ($allow_thread_sort != 'true' || $thread_sort_messages != 1) {
+      if ($allow_thread_sort != TRUE || $thread_sort_messages != 1) {
        ShowSortButton($sort, $mailbox, 0, 1);
       }
       echo "</TD>\n";
       break;
     case 4: /* subject */
       echo '   <TD><B>' . _("Subject") . '</B> ';
-      if ($allow_thread_sort != 'true' || $thread_sort_messages != 1) {
+      if ($allow_thread_sort != TRUE || $thread_sort_messages != 1) {
        ShowSortButton($sort, $mailbox, 4, 5);
       }
       echo "</TD>\n";
@@ -748,7 +759,7 @@ function mail_message_listing_beginning ($imapConnection, $moveURL,
   /* if using server-sorting,
    * send sort back to 6
    */
-  if ($allow_server_sort == 'true') {
+  if ($allow_server_sort == TRUE) {
     $sort = 6;
   }
   echo "</TR>\n";