Latest changes as cvs freeze
[squirrelmail.git] / functions / imap_mailbox.php
index c221dbd91653792d04c543455a4601f5e03865bf..746a438bb5029098cc0d2a4bb9b1104a3411da3e 100755 (executable)
  * $Id$
  */
 
-/*
-    Defines Special Mail Boxes
-*/
-
-function isSpecialMailbox( $box ) {
+function isBoxBelow( $box2, $box1 ) {
 
-    global $trash_folder, $sent_folder, $draft_folder,
-           $move_to_trash, $move_to_sent, $save_as_draft,
-           $delimiter, $folder_prefix, $imap_server_type;
+    global $delimiter, $folder_prefix, $imap_server_type;
 
     if ( $imap_server_type == 'uw' ) {
-        $boxs = $box;
-        $i = strpos( $sent_folder, $delimiter, strlen( $folder_prefix ) );
+        $boxs = $box2;
+        $i = strpos( $box1, $delimiter, strlen( $folder_prefix ) );
         if ( $i === FALSE ) {
-            $i = strlen( $box );
+            $i = strlen( $box2 );
         }
     } else {
-        $boxs = $box . $delimiter;
+        $boxs = $box2 . $delimiter;
         // Skip next second delimiter
-        $i = strpos( $sent_folder, $delimiter );
-        $i = strpos( $sent_folder, $delimiter, $i + 1  );
+        $i = strpos( $box1, $delimiter );
+        $i = strpos( $box1, $delimiter, $i + 1  );
         if ( $i === FALSE ) {
-            $i = strlen( $box );
+            $i = strlen( $box2 );
         } else {
             $i++;
         }
     }
 
+    return( substr( $box1, 0, $i ) == substr( $boxs, 0, $i ) );
+
+}
+
+/*
+    Defines Special Mail Boxes
+*/
+function isSpecialMailbox( $box ) {
+
+    global $trash_folder, $sent_folder, $draft_folder,
+           $move_to_trash, $move_to_sent, $save_as_draft,
+           $delimiter, $folder_prefix, $imap_server_type;
+
     $ret = ( (strtolower($box) == 'inbox') ||
-             ( substr( $trash_folder, 0, $i ) == substr( $boxs, 0, $i ) &&
-              $move_to_trash) ||
-             ( substr( $sent_folder, 0, $i ) == substr( $boxs, 0, $i ) &&
-              $move_to_sent) ||
-             ($box == $draft_folder &&
-              $save_as_draft) );
+             ( $move_to_trash && isBoxBelow( $box, $trash_folder ) ) ||
+             ( $move_to_sent && isBoxBelow( $box, $sent_folder )) ||
+             ($save_as_draft && $box == $draft_folder ) );
 
     return( $ret );