+ $mbox_options = '';
+ if ( $use_long_format ) {
+ $shorten_box_names = 0;
+ } else {
+ $shorten_box_names = getPref($data_dir, $username, 'mailbox_select_style', SMPREF_MAILBOX_SELECT_INDENTED);
+ }
+
+ if ($boxes == 0) {
+ $boxes = sqimap_mailbox_list($imap_stream);
+ }
+
+ $a = array();
+ foreach ($boxes as $boxes_part) {
+ if ($flag == NULL || (is_array($boxes_part['flags'])
+ && !in_array($flag, $boxes_part['flags']))) {
+ $box = $boxes_part['unformatted'];
+
+ if ($folder_skip != 0 && in_array($box, $folder_skip) ) {
+ continue;
+ }
+ $lowerbox = strtolower($box);
+ // mailboxes are casesensitive => inbox.sent != inbox.Sent
+ // nevermind, to many dependencies this should be fixed!
+
+ if (strtolower($box) == 'inbox') { // inbox is special and not casesensitive
+ $box2 = _("INBOX");
+ } else {
+ switch ($shorten_box_names)
+ {
+ case SMPREF_MAILBOX_SELECT_DELIMITED:
+ if ($translate_special_folders && $boxes_part['unformatted-dm']==$sent_folder) {
+ /*
+ * calculate pad level from number of delimiters. do it inside if control in order
+ * to reduce number of calculations. Other folders don't need it.
+ */
+ $pad = str_pad('',7 * (count(explode($delimiter,$boxes_part['unformatted-dm']))-1),'. ');
+ // i18n: Name of Sent folder
+ $box2 = $pad . _("Sent");
+ } elseif ($translate_special_folders && $boxes_part['unformatted-dm']==$trash_folder) {
+ $pad = str_pad('',7 * (count(explode($delimiter,$boxes_part['unformatted-dm']))-1),'. ');
+ // i18n: Name of Trash folder
+ $box2 = $pad . _("Trash");
+ } elseif ($translate_special_folders && $boxes_part['unformatted-dm']==$draft_folder) {
+ $pad = str_pad('',7 * (count(explode($delimiter,$boxes_part['unformatted-dm']))-1),'. ');
+ // i18n: Name of Drafts folder
+ $box2 = $pad . _("Drafts");
+ } else {
+ $box2 = str_replace('  ', '. ', htmlspecialchars($boxes_part['formatted']));
+ }
+ break;
+ case SMPREF_MAILBOX_SELECT_INDENTED:
+ if ($translate_special_folders && $boxes_part['unformatted-dm']==$sent_folder) {
+ $pad = str_pad('',12 * (count(explode($delimiter,$boxes_part['unformatted-dm']))-1),' ');
+ $box2 = $pad . _("Sent");
+ } elseif ($translate_special_folders && $boxes_part['unformatted-dm']==$trash_folder) {
+ $pad = str_pad('',12 * (count(explode($delimiter,$boxes_part['unformatted-dm']))-1),' ');
+ $box2 = $pad . _("Trash");
+ } elseif ($translate_special_folders && $boxes_part['unformatted-dm']==$draft_folder) {
+ $pad = str_pad('',12 * (count(explode($delimiter,$boxes_part['unformatted-dm']))-1),' ');
+ $box2 = $pad . _("Drafts");
+ } else {
+ $box2 = str_replace('  ', ' ', htmlspecialchars($boxes_part['formatted']));
+ }
+ break;
+ default: /* default, long names, style = 0 */
+ $box2 = str_replace(' ', ' ', htmlspecialchars(imap_utf7_decode_local($boxes_part['unformatted-disp'])));
+ break;
+ }
+ }
+
+ $a[htmlspecialchars($box)] = $box2;