-/******************************************************************************
- ** Returns sorted mailbox lists in several different ways.
- ** See comment on sqimap_mailbox_parse() for info about the returned array.
- ******************************************************************************/
-function sqimap_mailbox_list ($imap_stream) {
-
- global $data_dir, $username, $list_special_folders_first,
- $folder_prefix, $trash_folder, $sent_folder, $draft_folder,
- $move_to_trash, $move_to_sent, $save_as_draft,
- $delimiter;
-
- $inbox_in_list = $inbox_subscribed = FALSE;
-
- require_once('../src/load_prefs.php');
- require_once('../functions/array.php');
-
- /** LSUB array **/
- $lsub_ary = sqimap_run_command ($imap_stream, "LSUB \"$folder_prefix\" \"*\"",
- TRUE, $response, $message);
-
- /* Section about removing the last element was removed */
- /* We don't return "* OK" anymore from sqimap_read_data */
-
- $sorted_lsub_ary = array();
- for ($i=0;$i < count($lsub_ary); $i++) {
- /* Workaround for EIMS */
- /* Doesn't work if the mailbox name is multiple lines */
- if (isset($lsub_ary[$i + 1]) &&
- ereg("^(\\* [A-Z]+.*)\\{[0-9]+\\}([ \n\r\t]*)$",
- $lsub_ary[$i], $regs)) {
- $i ++;
- $lsub_ary[$i] = $regs[1] . '"' . addslashes(trim($lsub_ary[$i])) .
- '"' . $regs[2];
- }
- $temp_mailbox_name = find_mailbox_name($lsub_ary[$i]);
- $sorted_lsub_ary[] = $temp_mailbox_name;
- if (strtoupper($temp_mailbox_name) == 'INBOX') {
- $inbox_subscribed = TRUE;
- }
- }
- $new_ary = array();
- for ($i=0; $i < count($sorted_lsub_ary); $i++) {
- if (!in_array($sorted_lsub_ary[$i], $new_ary)) {
- $new_ary[] = $sorted_lsub_ary[$i];
+/*
+ * Returns sorted mailbox lists in several different ways.
+ * See comment on sqimap_mailbox_parse() for info about the returned array.
+ */
+function sqimap_mailbox_list($imap_stream) {
+ global $boxesnew, $default_folder_prefix;
+
+ if ( !isset( $boxesnew ) ) {
+
+ global $data_dir, $username, $list_special_folders_first,
+ $folder_prefix, $trash_folder, $sent_folder, $draft_folder,
+ $move_to_trash, $move_to_sent, $save_as_draft,
+ $delimiter;
+
+ $inbox_in_list = false;
+ $inbox_subscribed = false;
+
+ require_once('../src/load_prefs.php');
+ require_once('../functions/array.php');
+
+ /* LSUB array */
+ $lsub_ary = sqimap_run_command ($imap_stream, "LSUB \"$folder_prefix\" \"*%\"",
+ true, $response, $message);
+
+ /*
+ * Section about removing the last element was removed
+ * We don't return "* OK" anymore from sqimap_read_data
+ */
+
+ $sorted_lsub_ary = array();
+ for ($i=0;$i < count($lsub_ary); $i++) {
+ /*
+ * Workaround for EIMS
+ * Doesn't work if the mailbox name is multiple lines
+ */
+ if (isset($lsub_ary[$i + 1]) &&
+ ereg("^(\\* [A-Z]+.*)\\{[0-9]+\\}([ \n\r\t]*)$",
+ $lsub_ary[$i], $regs)) {
+ $i ++;
+ $lsub_ary[$i] = $regs[1] . '"' . addslashes(trim($lsub_ary[$i])) . '"' . $regs[2];
+ }
+ $temp_mailbox_name = find_mailbox_name($lsub_ary[$i]);
+ $sorted_lsub_ary[] = $temp_mailbox_name;
+ if (strtoupper($temp_mailbox_name) == 'INBOX') {
+ $inbox_subscribed = true;
+ }