Allow callers of sqimap_mailbox_select() to determine if errors should be handled...
authorpdontthink <pdontthink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Sat, 18 Nov 2017 21:29:11 +0000 (21:29 +0000)
committerpdontthink <pdontthink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Sat, 18 Nov 2017 21:29:11 +0000 (21:29 +0000)
git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@14727 7612ce4b-ef26-0410-bec9-ea0150e637f0

functions/imap_mailbox.php

index 0a93ae0..c520d93 100755 (executable)
@@ -410,10 +410,17 @@ function sqimap_mailbox_exists ($imap_stream, $mailbox, $mailboxlist=null) {
  * Before 1.3.0 used more arguments and returned data depended on those arguments.
  * @param stream $imap_stream imap connection resource
  * @param string $mailbox mailbox name
  * Before 1.3.0 used more arguments and returned data depended on those arguments.
  * @param stream $imap_stream imap connection resource
  * @param string $mailbox mailbox name
+ * @param boolean $handle_errors When TRUE, IMAP errors
+ *                               are handled herein, causing
+ *                               an error to be displayed on
+ *                               screen and execution to stop
+ *                               and when FALSE, error status
+ *                               is returned to the caller
+ *                               (OPTIONAL; default is TRUE)
  * @return array results of select command (on success - permanentflags, flags and rights)
  * @since 1.0 or older
  */
  * @return array results of select command (on success - permanentflags, flags and rights)
  * @since 1.0 or older
  */
-function sqimap_mailbox_select ($imap_stream, $mailbox) {
+function sqimap_mailbox_select ($imap_stream, $mailbox, $handle_errors=true) {
     if (empty($mailbox)) {
         return;
     }
     if (empty($mailbox)) {
         return;
     }
@@ -439,7 +446,7 @@ function sqimap_mailbox_select ($imap_stream, $mailbox) {
     }
 
     $read = sqimap_run_command($imap_stream, 'SELECT ' . sqimap_encode_mailbox_name($mailbox),
     }
 
     $read = sqimap_run_command($imap_stream, 'SELECT ' . sqimap_encode_mailbox_name($mailbox),
-                               true, $response, $message);
+                               $handle_errors, $response, $message);
     $result = array();
     for ($i = 0, $cnt = count($read); $i < $cnt; $i++) {
         if (preg_match('/^\*\s+OK\s\[(\w+)\s(\w+)\]/',$read[$i], $regs)) {
     $result = array();
     for ($i = 0, $cnt = count($read); $i < $cnt; $i++) {
         if (preg_match('/^\*\s+OK\s\[(\w+)\s(\w+)\]/',$read[$i], $regs)) {