* Header rearranged
[squirrelmail.git] / functions / imap_general.php
index f4acc08c642574d3d080d5462df50262224a10d8..09543e740060c0d6c190f6a1920cdf08d6e753bc 100755 (executable)
@@ -11,8 +11,8 @@
       return;
    define ('imap_general_php', true);
 
-   global $imap_general_debug;
-   $imap_general_debug = false;
+global $imap_general_debug;
+$imap_general_debug = false;
 
    /******************************************************************************
     **  Sets an unique session id in order to avoid simultanous sessions crash.
     ******************************************************************************/
 
    function sqimap_read_data_list ($imap_stream, $pre, $handle_errors,
-                                  &$response, &$message) {
-      global $color, $squirrelmail_language, $imap_general_debug;
+                                   &$response, &$message) {
+      global $color, $squirrelmail_language;
+global $imap_general_debug;
 
-      $read = "";
+      $read = '';
       $resultlist = array();
       
       $more_msgs = true;
             $size = $regs[1];
          } else if (ereg("^\\* [0-9]+ FETCH", $read, $regs)) {
             // Sizeless response, probably single-line
-            // For debugging purposes
-            if ($imap_general_debug) {
-               echo "<small><tt><font color=\"#CC0000\">$read</font></tt></small><br>\n";
-               flush();
-            }
+// For debugging purposes
+if ($imap_general_debug) {
+    echo "<small><tt><font color=\"#CC0000\">$read</font></tt></small><br>\n";
+    flush();
+}
             $size = 0;
             $data[] = $read;
             $read = fgets($imap_stream, 9096);
             while (strpos($read, "\n") === false) {
                $read .= fgets($imap_stream, 9096);
             }
-            // For debugging purposes
-            if ($imap_general_debug) {
-               echo "<small><tt><font color=\"#CC0000\">$read</font></tt></small><br>\n";
-               flush();
-            }
+// For debugging purposes
+if ($imap_general_debug) {
+    echo "<small><tt><font color=\"#CC0000\">$read</font></tt></small><br>\n";
+    flush();
+}
             // If we know the size, no need to look at the end parameters
             if ($size > 0) {
                if ($total_size == $size) {
@@ -83,9 +84,9 @@
                } else {
                   $data[] = $read;
                   $read = fgets($imap_stream, 9096);
-                 while (strpos($read, "\n") === false) {
-                    $read .= fgets($imap_stream, 9096);
-                 }
+                  while (strpos($read, "\n") === false) {
+                      $read .= fgets($imap_stream, 9096);
+                  }
                }
                $total_size += strlen($read);
             } else {
       $response = $regs[1];
       $message = trim($regs[2]);
       
-      if ($imap_general_debug) echo '--<br>';
+if ($imap_general_debug) echo '--<br>';
 
       if ($handle_errors == false)
           return $resultlist;
    }
 
    function sqimap_read_data ($imap_stream, $pre, $handle_errors, &$response, &$message) {
-       $res = sqimap_read_data_list($imap_stream, $pre, $handle_errors, $response, $message);
-       return $res[0];
+        $res = sqimap_read_data_list($imap_stream, $pre, $handle_errors, $response, $message);
+        return $res[0];
    }
-   
+
    /******************************************************************************
     **  Logs the user into the imap server.  If $hide is set, no error messages
     **  will be displayed.  This function returns the imap connection handle.
       $imap_stream = fsockopen ($imap_server_address, $imap_port,
          $error_number, $error_string, 15);
       $server_info = fgets ($imap_stream, 1024);
-      
+
       // Decrypt the password
       $password = OneTimePadDecrypt($password, $onetimepad);
 
          exit;
       }
 
-      fputs ($imap_stream, sqimap_session_id() . ' LOGIN "' . quoteIMAP($username) . 
+      fputs ($imap_stream, sqimap_session_id() . ' LOGIN "' . quoteIMAP($username) .
          '" "' . quoteIMAP($password) . "\"\r\n");
       $read = sqimap_read_data ($imap_stream, sqimap_session_id(), false, $response, $message);
 
                    printf (_("Unknown error: %s") . "<br>\n", $message);
                echo '<br>';
                echo _("Read data:") . "<br>\n";
-              if (is_array($read))
-              {
-                   foreach ($read as $line)
-                   {
-                       echo htmlspecialchars($line) . "<br>\n";
-                  }
+               if (is_array($read))
+               {
+                       foreach ($read as $line)
+                       {
+                           echo htmlspecialchars($line) . "<br>\n";
+                        }
                }
                exit;
             } else {
 
                // $squirrelmail_language is set by a cookie when
                // the user selects language and logs out
-               
+
                set_up_language($squirrelmail_language, true);
-               
+
                ?>
                   <html>
                      <body bgcolor="ffffff">
    }
 
    function sqimap_capability($imap_stream, $capability) {
-       global $sqimap_capabilities;
-       global $imap_general_debug;
-
-       if (!is_array($sqimap_capabilities)) {
-               fputs ($imap_stream, sqimap_session_id() . " CAPABILITY\r\n");
-               $read = sqimap_read_data($imap_stream, sqimap_session_id(), true, $a, $b);
-
-               $c = explode(' ', $read[0]);
-               for ($i=2; $i < count($c); $i++) {
-                       $cap_list = explode('=', $c[$i]);
-                       if (isset($cap_list[1]))
-                           $sqimap_capabilities[$cap_list[0]] = $cap_list[1];
-                       else
-                           $sqimap_capabilities[$cap_list[0]] = TRUE;
-               }
-       }
-       if (! isset($sqimap_capabilities[$capability]))
-          return false;
-       return $sqimap_capabilities[$capability];
-}
+        global $sqimap_capabilities;
+global $imap_general_debug;
+
+        if (!is_array($sqimap_capabilities)) {
+            fputs ($imap_stream, sqimap_session_id() . " CAPABILITY\r\n");
+            $read = sqimap_read_data($imap_stream, sqimap_session_id(), true, $a, $b);
+
+            $c = explode(' ', $read[0]);
+            for ($i=2; $i < count($c); $i++) {
+                $cap_list = explode('=', $c[$i]);
+                if (isset($cap_list[1]))
+                    $sqimap_capabilities[$cap_list[0]] = $cap_list[1];
+                else
+                    $sqimap_capabilities[$cap_list[0]] = TRUE;
+            }
+        }
+        if (! isset($sqimap_capabilities[$capability]))
+        return false;
+        return $sqimap_capabilities[$capability];
+    }
 
    /******************************************************************************
     **  Returns the delimeter between mailboxes:  INBOX/Test, or INBOX.Test... 
     ******************************************************************************/
    function sqimap_get_delimiter ($imap_stream = false) {
-      global $imap_general_debug;
+global $imap_general_debug;
       global $sqimap_delimiter;
       global $optional_delimiter;
 
 
       /* Do some caching here */
       if (!$sqimap_delimiter) {
-               if (sqimap_capability($imap_stream, "NAMESPACE")) {
-                       /* According to something that I can't find, this is supposed to work on all systems
-                          OS: This won't work in Courier IMAP.
-                          OS:  According to rfc2342 response from NAMESPACE command is:
-                          OS:  * NAMESPACE (PERSONAL NAMESPACES) (OTHER_USERS NAMESPACE) (SHARED NAMESPACES)
-                          OS:  We want to lookup all personal NAMESPACES...
-                       */
-                       fputs ($imap_stream, sqimap_session_id() . " NAMESPACE\r\n");
-                       $read = sqimap_read_data($imap_stream, sqimap_session_id(), true, $a, $b);
-                       if (eregi('\\* NAMESPACE +(\\( *\\(.+\\) *\\)|NIL) +(\\( *\\(.+\\) *\\)|NIL) +(\\( *\\(.+\\) *\\)|NIL)', $read[0], $data)) {
-                               if (eregi('^\\( *\\((.*)\\) *\\)', $data[1], $data2))
-                                       $pn = $data2[1];
-                               $pna = explode(')(', $pn);
-                               while (list($k, $v) = each($pna))
-                               {
+        if (sqimap_capability($imap_stream, "NAMESPACE")) {
+            /* According to something that I can't find, this is supposed to work on all systems
+            OS: This won't work in Courier IMAP.
+            OS:  According to rfc2342 response from NAMESPACE command is:
+            OS:  * NAMESPACE (PERSONAL NAMESPACES) (OTHER_USERS NAMESPACE) (SHARED NAMESPACES)
+            OS:  We want to lookup all personal NAMESPACES...
+            */
+            fputs ($imap_stream, sqimap_session_id() . " NAMESPACE\r\n");
+            $read = sqimap_read_data($imap_stream, sqimap_session_id(), true, $a, $b);
+            if (eregi('\\* NAMESPACE +(\\( *\\(.+\\) *\\)|NIL) +(\\( *\\(.+\\) *\\)|NIL) +(\\( *\\(.+\\) *\\)|NIL)', $read[0], $data)) {
+                if (eregi('^\\( *\\((.*)\\) *\\)', $data[1], $data2))
+                    $pn = $data2[1];
+                $pna = explode(')(', $pn);
+                while (list($k, $v) = each($pna))
+                {
                     $lst = explode('"', $v);
                     if (isset($lst[3])) {
                         $pn[$lst[1]] = $lst[3];
                     } else {
                         $pn[$lst[1]] = '';
                     }
-                               }
-                       }
-                       $sqimap_delimiter = $pn[0];
-               } else {
-                       fputs ($imap_stream, ". LIST \"INBOX\" \"\"\r\n");
-                       $read = sqimap_read_data($imap_stream, '.', true, $a, $b);
-                       $quote_position = strpos ($read[0], '"');
-                       $sqimap_delimiter = substr ($read[0], $quote_position+1, 1);
-               }
-       }
-       return $sqimap_delimiter;
+                }
+            }
+            $sqimap_delimiter = $pn[0];
+        } else {
+            fputs ($imap_stream, ". LIST \"INBOX\" \"\"\r\n");
+            $read = sqimap_read_data($imap_stream, '.', true, $a, $b);
+            $quote_position = strpos ($read[0], '"');
+            $sqimap_delimiter = substr ($read[0], $quote_position+1, 1);
+        }
+    }
+    return $sqimap_delimiter;
    }
 
 
       $read_ary = sqimap_read_data ($imap_stream, sqimap_session_id(), true, $result, $message);
       for ($i = 0; $i < count($read_ary); $i++) {
          if (ereg("[^ ]+ +([^ ]+) +EXISTS", $read_ary[$i], $regs)) {
-           return $regs[1];
+            return $regs[1];
          }
       }
       return "BUG!  Couldn't get number of messages in $mailbox!";