** $Id$
**/
+ if (defined ('imap_mailbox_php'))
+ return;
+ define ('imap_mailbox_php', true);
+
/******************************************************************************
** Expunges a mailbox
******************************************************************************/
** Checks whether or not the specified mailbox exists
******************************************************************************/
function sqimap_mailbox_exists ($imap_stream, $mailbox) {
+ if (! isset($mailbox))
+ return false;
fputs ($imap_stream, "a001 LIST \"\" \"$mailbox\"\r\n");
$mbx = sqimap_read_data($imap_stream, "a001", true, $response, $message);
- if (isset($mailbox) && isset($mbx[0])) {
- return !!(ereg ("$mailbox", $mbx[0])); // To force into true/false
- }
+ return isset($mbx[0]);
}
/******************************************************************************
// a parent.
$boxesbyname[$mailbox] = $g;
$parentfolder = readMailboxParent($mailbox, $dm);
- if((eregi("^inbox".quotemeta($dm), $mailbox)) ||
- (ereg("^".$folder_prefix, $mailbox)) ||
- ( isset($boxesbyname[$parentfolder]) && (strlen($parentfolder) > 0) ) ) {
+ if((strtolower(substr($mailbox, 0, 5)) == "inbox") ||
+ (substr($mailbox, 0, strlen($folder_prefix)) == $folder_prefix) ||
+ (isset($boxesbyname[$parentfolder]) && (strlen($parentfolder) > 0) ) ) {
$indent = $dm_count - (countCharInString($folder_prefix, $dm));
- if ($indent)
+ if ($indent > 0)
$boxes[$g]["formatted"] = str_repeat(" ", $indent);
else
$boxes[$g]["formatted"] = '';
$boxes[$g]["formatted"] = $mailbox;
}
- $boxes[$g]["unformatted-dm"] = $mailbox;
+ $boxes[$g]['unformatted-dm'] = $mailbox;
if (substr($mailbox, -1) == $dm)
$mailbox = substr($mailbox, 0, strlen($mailbox) - 1);
- $boxes[$g]["unformatted"] = $mailbox;
- $boxes[$g]["unformatted-disp"] = ereg_replace("^" . $folder_prefix, "", $mailbox);
- $boxes[$g]["id"] = $g;
+ $boxes[$g]['unformatted'] = $mailbox;
+ if (substr($mailbox,0,strlen($folder_prefix))==$folder_prefix)
+ $mailbox = substr($mailbox, strlen($folder_prefix));
+ $boxes[$g]['unformatted-disp'] = $mailbox;
+ $boxes[$g]['id'] = $g;
if (isset($line[$g]))
- ereg("\(([^)]*)\)",$line[$g],$regs);
- $flags = trim(strtolower(str_replace("\\", "",$regs[1])));
+ ereg("\(([^)]*)\)",$line[$g],$regs);
+ $flags = trim(strtolower(str_replace('\\', '',$regs[1])));
if ($flags) {
- $boxes[$g]["flags"] = explode(" ", $flags);
- }
+ $boxes[$g]['flags'] = explode(' ', $flags);
+ } else
+ $boxes[$g]['flags'] = array();
}
return $boxes;
** See comment on sqimap_mailbox_parse() for info about the returned array.
******************************************************************************/
function sqimap_mailbox_list ($imap_stream) {
- global $load_prefs_php, $prefs_php, $config_php;
global $data_dir, $username, $list_special_folders_first;
global $trash_folder, $sent_folder;
- global $move_to_trash, $move_to_sent;
+ global $move_to_trash, $move_to_sent, $folder_prefix;
$inbox_in_list = false;
$inbox_subscribed = false;
- if (!isset($load_prefs_php)) include "../src/load_prefs.php";
- else global $folder_prefix;
- if (!function_exists ("ary_sort")) include "../functions/array.php";
+ include "../src/load_prefs.php";
+ include "../functions/array.php";
$dm = sqimap_get_delimiter ($imap_stream);
/** LSUB array **/
$inbox_subscribed = false;
- fputs ($imap_stream, "a001 LSUB \"\" \"*\"\r\n");
+ fputs ($imap_stream, "a001 LSUB \"\" \"*%\"\r\n");
$lsub_ary = sqimap_read_data ($imap_stream, "a001", true, $response, $message);
/** OS: we don't want to parse last element of array, 'cause it is OK command, so we unset it **/
if (isset($read[0]))
$sorted_list_ary[$i] = $read[0];
else
- $sorget_list_ary[$i] = "";
+ $sorted_list_ary[$i] = "";
if (isset($sorted_list_ary[$i]) && find_mailbox_name($sorted_list_ary[$i]) == "INBOX")
$inbox_in_list = true;
}
// Then list special folders and their subfolders
for ($i = 0 ; $i < count($boxes) ; $i++) {
if ($move_to_trash &&
- eregi("^" . quotemeta($trash_folder) . "(" .
- quotemeta($dm) . ".*)?$", $boxes[$i]["unformatted"])) {
+ eregi('^' . quotemeta($trash_folder) . '(' .
+ quotemeta($dm) . '.*)?$', $boxes[$i]["unformatted"])) {
$boxesnew[] = $boxes[$i];
$used[$i] = true;
}
elseif ($move_to_sent &&
- eregi("^" . quotemeta($sent_folder) . "(" .
- quotemeta($dm) . ".*)?$", $boxes[$i]["unformatted"])) {
+ eregi('^' . quotemeta($sent_folder) . '(' .
+ quotemeta($dm) . '.*)?$', $boxes[$i]["unformatted"])) {
$boxesnew[] = $boxes[$i];
$used[$i] = true;
}
// Put INBOX.* folders ahead of the rest
for ($i = 0; $i < count($boxes); $i++) {
- if (eregi("^inbox\.", $boxes[$i]["unformatted"]) &&
+ if (eregi('^inbox\\.', $boxes[$i]["unformatted"]) &&
(!isset($used[$i]) || $used[$i] == false)) {
$boxesnew[] = $boxes[$i];
$used[$i] = true;
// a parent.
$boxesbyname[$mailbox] = $g;
$parentfolder = readMailboxParent($mailbox, $dm);
- if((eregi("^inbox".quotemeta($dm), $mailbox)) ||
- (ereg("^".$folder_prefix, $mailbox)) ||
+ if((eregi('^inbox'.quotemeta($dm), $mailbox)) ||
+ (ereg('^'.$folder_prefix, $mailbox)) ||
( isset($boxesbyname[$parentfolder]) && (strlen($parentfolder) > 0) ) ) {
if ($dm_count)
$boxes[$g]["formatted"] = str_repeat(" ", $dm_count);
if (substr($mailbox, -1) == $dm)
$mailbox = substr($mailbox, 0, strlen($mailbox) - 1);
$boxes[$g]["unformatted"] = $mailbox;
- $boxes[$g]["unformatted-disp"] = ereg_replace("^" . $folder_prefix, "", $mailbox);
+ $boxes[$g]["unformatted-disp"] = ereg_replace('^' . $folder_prefix, '', $mailbox);
$boxes[$g]["id"] = $g;
/** Now lets get the flags for this mailbox **/
$flags = substr($read_mlbx[0], strpos($read_mlbx[0], "(")+1);
$flags = substr($flags, 0, strpos($flags, ")"));
- $flags = str_replace("\\", "", $flags);
+ $flags = str_replace('\\', '', $flags);
$flags = trim(strtolower($flags));
if ($flags) {
- $boxes[$g]["flags"] = explode(" ", $flags);
+ $boxes[$g]['flags'] = explode(" ", $flags);
+ }
+ else
+ {
+ $boxes[$g]['flags'] = array();
}
}
$g++;