Fixed a problem with sqimap_unseen_messages where some versions of UW
authorindiri69 <indiri69@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 8 Mar 2002 21:07:49 +0000 (21:07 +0000)
committerindiri69 <indiri69@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 8 Mar 2002 21:07:49 +0000 (21:07 +0000)
Imap will send 2 lines of response on a STATUS mailbox (UNSEEN) when
the last EXAMINE was on the same mailbox.  This kept the INBOX from
displaying the number of unread messages.  This seems like valid behaviour
to me, but UW IMAP doesn't like it depending on how it's been compiled.

git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@2551 7612ce4b-ef26-0410-bec9-ea0150e637f0

functions/imap_general.php

index 7c17736baa36a7b49232d291b895f1ece8b0f13b..d8bad0152fe63ba8ca36a465a435ca4b1e7a12cd 100755 (executable)
@@ -429,7 +429,13 @@ function sqimap_find_displayable_name ($string) {
 function sqimap_unseen_messages ($imap_stream, $mailbox) {
     //fputs ($imap_stream, sqimap_session_id() . " SEARCH UNSEEN NOT DELETED\r\n");
     $read_ary = sqimap_run_command ($imap_stream, "STATUS \"$mailbox\" (UNSEEN)", true, $result, $message);
-    ereg("UNSEEN ([0-9]+)", $read_ary[0], $regs);
+    $i = 0;
+    while (isset($read_ary[$i])) {
+        if (ereg("UNSEEN ([0-9]+)", $read_ary[$i], $regs)) {
+            break;
+        }
+        $i++;
+    }
     return $regs[1];
 }