*
* This implements all functions that manipulate mailboxes
*
- * @copyright © 1999-2006 The SquirrelMail Project Team
+ * @copyright 1999-2010 The SquirrelMail Project Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
* @package squirrelmail
*/
for ($i = 0, $iCnt=count($ary); $i < $iCnt; $i++) {
if (isset($ary[$i + 1]) && substr($ary[$i], -3) == "}\r\n") {
- if (ereg("^(\\* [A-Z]+.*)\\{[0-9]+\\}([ \n\r\t]*)$",
- $ary[$i], $regs)) {
+ if (preg_match('/^(\* [A-Z]+.*)\{[0-9]+\}([ \n\r\t]*)$/', $ary[$i], $regs)) {
$ary[$i] = $regs[1] . '"' . addslashes(trim($ary[$i+1])) . '"' . $regs[2];
array_splice($ary, $i+1, 2);
}
($include_subs && isBoxBelow($box, $draft_folder)) );
}
+/**
+ * Is the given folder "sent-like" in nature?
+ *
+ * The most obvious use of this is to know what folders you usually
+ * want to show the To field instead of the From field on the mailbox list
+ *
+ * This function returns TRUE if the given folder is the sent
+ * folder (or any of its subfolders) or if it is the draft
+ * folder (or any of its subfolders)
+ *
+ * @param string $mailbox
+ *
+ * @return boolean See explanation above
+ *
+ */
+function handleAsSent($mailbox) {
+ global $handleAsSent_result;
+
+ /* First check if this is the sent or draft folder. */
+ $handleAsSent_result = isSentMailbox($mailbox) || isDraftMailbox($mailbox);
+
+ /* Then check the result of the handleAsSent hook. */
+ do_hook('check_handleAsSent_result', $mailbox);
+
+ /* And return the result. */
+ return $handleAsSent_result;
+}
+
/**
* Expunges a mailbox
*
* @since 1.0 or older
*/
function sqimap_mailbox_select ($imap_stream, $mailbox) {
- // FIX ME: WHAAAA DO NOT USE "None" for something that does not exist. Use false or NULL instead
- if ($mailbox == 'None') {
+ if (empty($mailbox)) {
return;
}
// subscribe again
sqimap_subscribe ($imap_stream, $mailbox);
} else {
- do_hook('rename_or_delete_folder', $temp=array(&$mailbox, 'delete', ''));
+ $temp = array(&$mailbox, 'delete', '');
+ do_hook('rename_or_delete_folder', $temp);
removePref($data_dir, $username, "thread_$mailbox");
removePref($data_dir, $username, "collapse_folder_$mailbox");
}
sqimap_subscribe($imap_stream, $new_name.$postfix);
setPref($data_dir, $username, 'thread_'.$new_name.$postfix, $oldpref_thread);
setPref($data_dir, $username, 'collapse_folder_'.$new_name.$postfix, $oldpref_collapse);
- do_hook('rename_or_delete_folder', $temp=array(&$old_name, 'rename', &$new_name));
+ $temp = array(&$old_name, 'rename', &$new_name);
+ do_hook('rename_or_delete_folder', $temp);
$l = strlen( $old_name ) + 1;
$p = 'unformatted';
}
setPref($data_dir, $username, 'thread_'.$new_sub, $oldpref_thread);
setPref($data_dir, $username, 'collapse_folder_'.$new_sub, $oldpref_collapse);
- do_hook('rename_or_delete_folder', $temp=array(&$box[$p], 'rename', &$new_sub));
+ $temp = array(&$box[$p], 'rename', &$new_sub);
+ do_hook('rename_or_delete_folder', $temp);
}
}
}
$boxesall[$g]['id'] = $g;
$boxesall[$g]['flags'] = array();
- if (isset($line[$g])) {
- ereg("\(([^)]*)\)",$line[$g],$regs);
+ if (isset($line[$g]) && preg_match('/\(([^)]*)\)/',$line[$g],$regs) ) {
/**
* Since 1.5.1 flags are stored with RFC3501 naming
* and also the old way for backwards compatibility
if ( $use_long_format ) {
$shorten_box_names = 0;
} else {
- $shorten_box_names = getPref($data_dir, $username, 'mailbox_select_style', SMPREF_OFF);
+ $shorten_box_names = getPref($data_dir, $username, 'mailbox_select_style', SMPREF_MAILBOX_SELECT_INDENTED);
}
if ($boxes == 0) {
} else {
switch ($shorten_box_names)
{
- case 2: /* delimited, style = 2 */
+ 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
$box2 = str_replace('&nbsp;&nbsp;', '. ', htmlspecialchars($boxes_part['formatted']));
}
break;
- case 1: /* indent, style = 1 */
+ 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");