+ /* Do some caching here */
+ if (!$sqimap_delimiter) {
+ if (sqimap_capability($imap_stream, "NAMESPACE")) {
+ /* According to something that I can't find, this is supposed to work on all systems
+ OS: This won't work in Courier IMAP.
+ OS: According to rfc2342 response from NAMESPACE command is:
+ OS: * NAMESPACE (PERSONAL NAMESPACES) (OTHER_USERS NAMESPACE) (SHARED NAMESPACES)
+ OS: We want to lookup all personal NAMESPACES...
+ */
+ fputs ($imap_stream, "a001 NAMESPACE\r\n");
+ $read = sqimap_read_data($imap_stream, "a001", true, $a, $b);
+ if (eregi('\* NAMESPACE +(\( *\(.+\) *\)|NIL) +(\( *\(.+\) *\)|NIL) +(\( *\(.+\) *\)|NIL)', $read[0], $data)) {
+ if (eregi('^\( *\((.*)\) *\)', $data[1], $data2))
+ $pn = $data2[1];
+ $pna = explode(')(', $pn);
+ while (list($k, $v) = each($pna))
+ {
+ list($_, $n, $_, $d) = explode('"', $v);
+ $pn[$n] = $d;
+ }
+/* OS: We don't need this code right now, it is for other_users and shared folders
+ if (eregi('^\( *\((.*)\) *\)', $data[2], $data2))
+ $on = $data2[1];
+ if (eregi('^\( *\((.*)\) *\)', $data[3], $data2))
+ $sn = $data2[1];
+ unset($data);
+ $ona = explode(')(', $on);
+ while (list($k, $v) = each($ona))
+ {
+ list($_, $n, $_, $d) = explode('"', $v);
+ $on[$n] = $d;
+ }
+ $sna = explode(')(', $sn);
+ while (list($k, $v) = each($sna))
+ {
+ list($_, $n, $_, $d) = explode('"', $v);
+ $sn[$n] = $d;
+ }
+*/
+ }
+ $sqimap_delimiter = $pn[0];
+ } else {
+ fputs ($imap_stream, ". LIST \"INBOX\" \"\"\r\n");
+ $read = sqimap_read_data($imap_stream, ".", true, $a, $b);
+ $quote_position = strpos ($read[0], "\"");
+ $sqimap_delimiter = substr ($read[0], $quote_position+1, 1);
+ }
+ }
+ return $sqimap_delimiter;
+}