X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=functions%2Fmailbox_display.php;h=1aac21f47c5291fb0e09c9260d16706906aac9c7;hp=a31c1445547a6ff9343c3bc48876217ef08dfbcd;hb=c4faef335b2362c81b8ebf026d4066c12d70536c;hpb=c04f123aa647441885460e97fc4f002f7d9cd566 diff --git a/functions/mailbox_display.php b/functions/mailbox_display.php index a31c1445..1aac21f4 100644 --- a/functions/mailbox_display.php +++ b/functions/mailbox_display.php @@ -6,7 +6,7 @@ * This contains functions that display mailbox information, such as the * table row that has sender, date, subject, etc... * - * @copyright 1999-2011 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 @@ -21,13 +21,22 @@ * @param string $mailbox mailbox to select and retrieve message headers from * @param array $aConfig array with system config settings and incoming vars * @param array $aProps mailbox specific properties + * @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 $aMailbox mailbox array with all relevant information + * (if $handle_errors is false and there was an + * error, the array will be empty) * * @since 1.5.1 * @author Marc Groot Koerkamp */ -function sqm_api_mailbox_select($imapConnection,$account,$mailbox,$aConfig,$aProps) { +function sqm_api_mailbox_select($imapConnection,$account,$mailbox,$aConfig,$aProps,$handle_errors=true) { /** * NB: retrieve this from the session before accessing this function @@ -48,7 +57,9 @@ function sqm_api_mailbox_select($imapConnection,$account,$mailbox,$aConfig,$aPro $iSetIndx = $aConfig['setindex']; - $aMbxResponse = sqimap_mailbox_select($imapConnection, $mailbox); + $aMbxResponse = sqimap_mailbox_select($imapConnection, $mailbox, $handle_errors); + if (empty($aMbxResponse)) + return $aMbxResponse; if ($mailbox_cache) { if (isset($mailbox_cache[$account.'_'.$mailbox])) { @@ -554,11 +565,11 @@ function prepareMessageList(&$aMailbox, $aProps) { $sMailbox = (isset($aAddr[SQM_ADDR_MAILBOX])) ? $aAddr[SQM_ADDR_MAILBOX] : ''; $sHost = (isset($aAddr[SQM_ADDR_HOST])) ? $aAddr[SQM_ADDR_HOST] : ''; if ($sPersonal) { - $title .= htmlspecialchars($sMailbox.'@'.$sHost).', '; + $title .= sm_encode_html_special_chars($sMailbox.'@'.$sHost).', '; } else { // if $value gets truncated we need to add the addresses with no // personal name as well - $title_maybe .= htmlspecialchars($sMailbox.'@'.$sHost).', '; + $title_maybe .= sm_encode_html_special_chars($sMailbox.'@'.$sHost).', '; } } if ($title) { @@ -593,7 +604,9 @@ function prepareMessageList(&$aMailbox, $aProps) { if (isset($aColumnDesc[$k]['truncate']) && $aColumnDesc[$k]['truncate']) { $sTmp = sm_truncate_string($value, $aColumnDesc[$k]['truncate']-$iIndent, '...', TRUE); // drop any double spaces since these will be displayed in the title - $title = ($sTmp != $value) ? preg_replace('/\s{2,}/', ' ', $value) : ''; + // Nah, it's nice to always have a roll-over + //$title = ($sTmp != $value) ? preg_replace('/\s{2,}/', ' ', $value) : ''; + $title = preg_replace('/\s{2,}/', ' ', $value); $value = $sTmp; } /* generate the link to the message */ @@ -618,7 +631,9 @@ function prepareMessageList(&$aMailbox, $aProps) { break; case SQM_COL_DATE: case SQM_COL_INT_DATE: - $value = getDateString(getTimeStamp(explode(' ',trim($value)))); + $value = getTimeStamp(explode(' ',trim($value))); + $title = getDateString($value, TRUE); + $value = getDateString($value); break; case SQM_COL_FLAGS: $aFlagColumn = array('seen' => false, @@ -1297,7 +1312,7 @@ function handleMessageListForm($imapConnection, &$aMailbox, $sButton='', // don't do anything to any messages until we have done security check // FIXME: not sure this code really belongs here, but there's nowhere else to put it with this architecture sqgetGlobalVar('smtoken', $submitted_token, SQ_FORM, ''); - sm_validate_security_token($submitted_token, 3600, TRUE); + sm_validate_security_token($submitted_token, -1, TRUE); // make sure message UIDs are sanitized (BIGINT) foreach ($aUid as $i => $uid)