global $boxesnew;
+/**
+ * If $haystack is a full mailbox name, and $needle is the mailbox
+ * separator character, returns the second last part of the full
+ * mailbox name (i.e. the mailbox's parent mailbox)
+ */
+function readMailboxParent($haystack, $needle) {
+
+ if ($needle == '') {
+ $ret = '';
+ } else {
+ $parts = explode($needle, $haystack);
+ $elem = array_pop($parts);
+ while ($elem == '' && count($parts)) {
+ $elem = array_pop($parts);
+ }
+ $ret = join($needle, $parts);
+ }
+ return( $ret );
+}
+
+
function isBoxBelow( $box2, $box1 ) {
global $delimiter, $folder_prefix, $imap_server_type;
* See comment on sqimap_mailbox_parse() for info about the returned array.
*/
function sqimap_mailbox_list($imap_stream) {
- global $boxesnew, $default_folder_prefix, $optional_delimiter;
+ global $boxesnew, $default_folder_prefix;
if ( !isset( $boxesnew ) ) {
$boxesnew[] = $box;
$used[$k] = true;
}
- $spec_sub = $box['formatted'];
- $spec_sub = str_replace(" ", "", $box['formatted']);
- if (!$used[$k] && preg_match("/^$default_folder_prefix(Sent|Drafts|Trash).{1}$spec_sub$/", $box['unformatted']) ) {
+ $spec_sub = str_replace(' ', '', $box['formatted']);
+
+ /* In case of problems with preg
+ here is a ereg version
+ if (!$used[$k] && ereg("^$default_folder_prefix(Sent|Drafts|Trash).{1}$spec_sub$", $box['unformatted']) ) { */
+
+ if (!$used[$k] && preg_match("?^$default_folder_prefix(Sent|Drafts|Trash).{1}$spec_sub$?", $box['unformatted']) ) {
$boxesnew[] = $box;
$used[$k] = true;
}