made folder listing not dependent on $folder_list
[squirrelmail.git] / functions / imap_general.php
index 9e3a514b9bbcdd951dfdf91abb447a01d594b4a3..07fca8914032f733d06370061e1b1e1882b3f224 100755 (executable)
       global $color;
 
       $read = fgets ($imap_stream, 1024);
+//             echo "<small><tt><font color=cc0000>$read</font></tt></small><br>";
       $counter = 0;
       while ((substr($read, 0, strlen("$pre OK")) != "$pre OK") &&
              (substr($read, 0, strlen("$pre BAD")) != "$pre BAD") &&
              (substr($read, 0, strlen("$pre NO")) != "$pre NO")) {
          $data[$counter] = $read;
          $read = fgets ($imap_stream, 1024);
+//                     echo "<small><tt><font color=cc0000>$read</font></tt></small><br>";
          $counter++;
       }       
       if (substr($read, 0, strlen("$pre OK")) == "$pre OK") {
     **  Returns the delimeter between mailboxes:  INBOX/Test, or INBOX.Test... 
     ******************************************************************************/
    function sqimap_get_delimiter ($imap_stream) {
-      fputs ($imap_stream, ". LSUB \"\" *\r\n");
+      fputs ($imap_stream, ". LIST \"INBOX\" \"\"\r\n");
       $read = sqimap_read_data($imap_stream, ".", true, $a, $b);
       $quote_position = strpos ($read[0], "\"");
       $delim = substr ($read[0], $quote_position+1, 1);
    /******************************************************************************
     **  Returns the number of unseen messages in this folder 
     ******************************************************************************/
-   function sqimap_unseen_messages ($imap_stream, &$num_unseen) {
-      fputs ($imap_stream, "a001 SEARCH UNSEEN NOT DELETED\r\n");
+   function sqimap_unseen_messages ($imap_stream, &$num_unseen, $mailbox) {
+      //fputs ($imap_stream, "a001 SEARCH UNSEEN NOT DELETED\r\n");
+      fputs ($imap_stream, "a001 STATUS \"$mailbox\" (UNSEEN)\r\n");
       $read_ary = sqimap_read_data ($imap_stream, "a001", true, $result, $message);
       $unseen = false;
       
-      if (strlen($read_ary[0]) > 10) {
-         $unseen = true;
-         $ary = explode (" ", $read_ary[0]);
-         $num_unseen = count($ary) - 2;
-      } else {
-         $unseen = false;
-         $num_unseen = 0;
-      }
-
-      return $unseen;
+               $read_ary[0] = trim($read_ary[0]);
+               return substr($read_ary[0], strrpos($read_ary[0], " ")+1, (strlen($read_ary[0]) - strrpos($read_ary[0], " ") - 2)); 
    }