*
* This implements all functions that manipulate mailboxes
*
- * @copyright 1999-2017 The SquirrelMail Project Team
+ * @copyright 1999-2020 The SquirrelMail Project Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
* @package squirrelmail
* 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)
+ * (on failure (and when $handle_errors is false), empty array)
* @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;
}
}
$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)) {
}
}
}
- if (!isset($result['PERMANENTFLAGS'])) {
+ if (!empty($result) && !isset($result['PERMANENTFLAGS'])) {
$result['PERMANENTFLAGS'] = $result['FLAGS'];
}
if (preg_match('/^\[(.+)\]/',$message, $regs)) {
$lowerbox = strtolower(sm_encode_html_special_chars($value));
$sel = false;
if ($show_selected != 0) {
- reset($show_selected);
- while (!$sel && (list($x, $val) = each($show_selected))) {
+ foreach ($show_selected as $val) {
if (strtolower($value) == strtolower(sm_encode_html_special_chars($val))) {
$sel = true;
+ break;
}
}
}