*
* This implements all functions that manipulate mailboxes
*
- * @copyright 1999-2011 The SquirrelMail Project Team
+ * @copyright 1999-2016 The SquirrelMail Project Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
* @package squirrelmail
*/
if (strstr($mailbox, '../') || substr($mailbox, 0, 1) == '/') {
global $oTemplate;
- error_box(sprintf(_("Invalid mailbox name: %s"),htmlspecialchars($mailbox)));
+ error_box(sprintf(_("Invalid mailbox name: %s"),sm_encode_html_special_chars($mailbox)));
sqimap_logout($imap_stream);
$oTemplate->display('footer.tpl');
die();
global $folder_prefix, $delimiter;
/* Process each folder line */
- for ($g = 0, $cnt = count($line); $g < $cnt; ++$g) {
+ ksort($line); // get physical ordering same as alphabetical sort we did before now (might be a better place for this)
+ foreach ($line as $g => $l)
+ // was this but array not guaranteed to be contiguous: for ($g = 0, $cnt = count($line); $g < $cnt; ++$g)
+ {
/* Store the raw IMAP reply */
if (isset($line[$g])) {
$boxesall[$g]['raw'] = $line[$g];
// i18n: Name of Drafts folder
$box2 = $pad . _("Drafts");
} else {
- $box2 = str_replace('&nbsp;&nbsp;', '. ', htmlspecialchars($boxes_part['formatted']));
+ $box2 = str_replace('&nbsp;&nbsp;', '. ', sm_encode_html_special_chars($boxes_part['formatted']));
}
break;
case SMPREF_MAILBOX_SELECT_INDENTED:
$pad = str_pad('',12 * (count(explode($delimiter,$boxes_part['unformatted-dm']))-1),' ');
$box2 = $pad . _("Drafts");
} else {
- $box2 = str_replace('&nbsp;&nbsp;', ' ', htmlspecialchars($boxes_part['formatted']));
+ $box2 = str_replace('&nbsp;&nbsp;', ' ', sm_encode_html_special_chars($boxes_part['formatted']));
}
break;
default: /* default, long names, style = 0 */
- $box2 = str_replace(' ', ' ', htmlspecialchars(imap_utf7_decode_local($boxes_part['unformatted-disp'])));
+ $box2 = str_replace(' ', ' ', sm_encode_html_special_chars(imap_utf7_decode_local($boxes_part['unformatted-disp'])));
break;
}
}
- $a[htmlspecialchars($box)] = $box2;
+ $a[sm_encode_html_special_chars($box)] = $box2;
}
}
$str = '';
foreach ($boxes as $value=>$option) {
- $lowerbox = strtolower(htmlspecialchars($value));
+ $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))) {
- if (strtolower($value) == strtolower(htmlspecialchars($val))) {
+ if (strtolower($value) == strtolower(sm_encode_html_special_chars($val))) {
$sel = true;
}
}
$cnt = count($boxesall);
$used = array_pad($used,$cnt,false);
$has_inbox = false;
- for($k = 0; $k < $cnt; ++$k) {
+ foreach ($boxesall as $k => $b)
+ // was this but array not guaranteed to be contiguous: for($k = 0; $k < $cnt; ++$k)
+ {
if (strtoupper($boxesall[$k]['unformatted']) == 'INBOX') {
$boxesnew[] = $boxesall[$k];
$used[$k] = true;
/* List special folders and their subfolders, if requested. */
if ($list_special_folders_first) {
- for($k = 0; $k < $cnt; ++$k) {
+ foreach ($boxesall as $k => $b)
+ // was this but array not guaranteed to be contiguous: for($k = 0; $k < $cnt; ++$k)
+ {
if (!$used[$k] && isSpecialMailbox($boxesall[$k]['unformatted'])) {
$boxesnew[] = $boxesall[$k];
$used[$k] = true;
}
/* Find INBOX's children */
- for($k = 0; $k < $cnt; ++$k) {
+ foreach ($boxesall as $k => $b)
+ // was this but array not guaranteed to be contiguous: for($k = 0; $k < $cnt; ++$k)
+ {
$isboxbelow=isBoxBelow(strtoupper($boxesall[$k]['unformatted']),'INBOX');
if (strtoupper($boxesall[$k]['unformatted']) == 'INBOX') {
$is_inbox=1;
}
/* Rest of the folders */
- for($k = 0; $k < $cnt; $k++) {
+ foreach ($boxesall as $k => $b)
+ // was this but array not guaranteed to be contiguous: for($k = 0; $k < $cnt; ++$k)
+ {
if (!$used[$k]) {
$boxesnew[] = $boxesall[$k];
}