From 38068e69b454693b06df1d4846bb76546b005c2e Mon Sep 17 00:00:00 2001 From: ebullient Date: Sun, 15 Jun 2003 00:40:58 +0000 Subject: [PATCH] Corrected display (on Courier at least) of mailboxes with INBOX prefix. INBOX was being added to the tree twice (was already the root), and then because it was root, the link (with proper nesting) wasn't being displayed. Also corrected setting 'noselect' for INBOX (now tree root) - was being errantly set as 'flag' which was causing errors about not havign noselect set... Also removed the places where it was checking whether or not noselect was set for a mailbox - given the structure, noselect should always be set - and we should get an error if it isn't (for boxlist formed from LSUB). git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@5042 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- functions/imap_mailbox.php | 34 ++++++++++++---------------------- src/left_main.php | 11 +++++------ 2 files changed, 17 insertions(+), 28 deletions(-) diff --git a/functions/imap_mailbox.php b/functions/imap_mailbox.php index a968dc19..6da2548a 100755 --- a/functions/imap_mailbox.php +++ b/functions/imap_mailbox.php @@ -736,13 +736,6 @@ function sqimap_mailbox_tree($imap_stream) { $lsub_ary[$i] = $regs[1] . '"' . addslashes(trim($lsub_ary[$i])) . '"' . $regs[2]; } - /* - if (preg_match("/^\*\s+LSUB\s+\((.*)\)\s+\"(.*)\"\s+\"?(.+(?=\")|.+).*$/",$lsub_ary[$i],$regs)) { - $flag = $regs[1]; - $mbx = trim($regs[3]); - $sorted_lsub_ary[] = array ('mbx' => $mbx, 'flag' => $flag); - } - */ $mbx = find_mailbox_name($lsub_ary[$i]); $noselect = check_is_noselect($lsub_ary[$i]); if (substr($mbx, -1) == $delimiter) { @@ -778,28 +771,18 @@ function sqimap_mailbox_tree($imap_stream) { $mbx = substr($mbx, 0, strlen($mbx) - 1); } if ($mbx == 'INBOX') { - $sorted_lsub_ary[] = array ('mbx' => $mbx, 'flag' => ''); + $sorted_lsub_ary[] = array ('mbx' => $mbx, 'noselect' => '0'); sqimap_subscribe($imap_stream, 'INBOX'); $cnt++; } - - /* - if (preg_match("/^\*\s+LIST\s+\((.*)\)\s+\"(.*)\"\s+\"?(.+(?=\")|.+).*$/",$inbox_ary[0],$regs)) { - $flag = $regs[1]; - $mbx = trim($regs[3]); - if (substr($mbx, -1) == $delimiter) { - $mbx = substr($mbx, 0, strlen($mbx) - 1); - } - $sorted_lsub_ary[] = array ('mbx' => $mbx, 'flag' => $flag); - } - */ } + for ($i = 0 ; $i < $cnt; $i++) { $mbx = $sorted_lsub_ary[$i]['mbx']; if (($unseen_notify == 2 && $mbx == 'INBOX') || ($unseen_notify == 3) || ($move_to_trash && ($mbx == $trash_folder))) { - if(isset($sorted_lsub_ary[$i]['noselect']) && $sorted_lsub_ary[$i]['noselect']) { + if( $sorted_lsub_ary[$i]['noselect'] ) { $sorted_lsub_ary[$i]['unseen'] = 0; } else { $sorted_lsub_ary[$i]['unseen'] = @@ -855,6 +838,11 @@ function sqimap_fill_mailbox_tree($mbx_ary, $mbxs=false) { $mailbox = $mbx_ary[$i]['mbx']; switch ($mailbox) { case 'INBOX': + // $mailboxes IS the INBOX, change $mbx to refer to $mailboxes + // for unread count, attribute setting, etc. + unset($mbx); + $mbx =& $mailboxes; + $mbx->is_inbox = true; $mbx->is_special = true; break; @@ -888,10 +876,12 @@ function sqimap_fill_mailbox_tree($mbx_ary, $mbxs=false) { $mbx->mailboxname_sub = $mbx_ary[$i]['mbx']; } $mbx->mailboxname_full = $mbx_ary[$i]['mbx']; - $mailboxes->addMbx($mbx, $delimiter, $start, $list_special_folders_first); + + // Don't add INBOX to itself + if ( $mailbox != 'INBOX' ) + $mailboxes->addMbx($mbx, $delimiter, $start, $list_special_folders_first); } } - return $mailboxes; } diff --git a/src/left_main.php b/src/left_main.php index 042abd0f..aaa90f1c 100644 --- a/src/left_main.php +++ b/src/left_main.php @@ -341,7 +341,6 @@ function listBoxes ($boxes, $j=0 ) { $pre.= $leader . '   '; } - /* If there are unseen message, bold the line. */ if (($move_to_trash) && ($mailbox == $trash_folder)) { @@ -398,10 +397,10 @@ function listBoxes ($boxes, $j=0 ) { $fontend = ""; } $end .= ''; - if (!$boxes->is_root) { - echo "" . $pre .$font. $boxes->mailboxname_sub .$fontend . $end. '
' . "\n"; - $j++; - } + + echo "" . $pre .$font. $boxes->mailboxname_sub .$fontend . $end. '
' . "\n"; + $j++; + if (!$collapse || $boxes->is_root) { for ($i = 0; $i mbxs); $i++) { listBoxes($boxes->mbxs[$i],$j); @@ -587,7 +586,7 @@ if (isset($left_refresh) && ($left_refresh != '') && **/ $advanced_tree = false; /* set this to true if you want to see a nicer mailboxtree */ -$oldway = false; /* default SM behaviour */ +$oldway = false; /* default SM behaviour */ if ($advanced_tree) { $xtra .= <<