MBOX-Line: From mrc at CAC.Washington.EDU  Wed Jun 27 09:35:50 2007
To: imap-protocol@u.washington.edu
From: Mark Crispin <mrc@CAC.Washington.EDU>
Date: Fri Jun  8 12:34:40 2018
Subject: [Imap-protocol] More evil hierarchy delimiters
In-Reply-To: <1182954665.3768.348.camel@hurina>
References: <1182954665.3768.348.camel@hurina>
Message-ID: <alpine.OSX.0.99.0706270931420.6426@pangtzu.panda.com>

On Wed, 27 Jun 2007, Timo Sirainen wrote:
> The RFC says:
>       All children of a top-level hierarchy node MUST use
>       the same separator character.  A NIL hierarchy delimiter means
>       that no hierarchy exists; the name is a "flat" name.
> After first reading I thought that you couldn't mix NIL with another
> delimiter, but I guess because the first sentence says "character", not
> "delimiter" it is allowed (plus UW-IMAP does it). Maybe the next RFC
> could clear that up.

No.  Your confusion here is that INBOX is in a class by itself.  It is not 
part of the default namespace.  That's why the RFC goes on to say that 
INBOX is included in the LIST results if it matches the pattern; that too 
is a special rule since otherwise INBOX would not be listed.

Both of your examples are not possible:

> 1 LIST "" %
> * LIST (\NoInferiors) NIL INBOX
> * LIST (\NoSelect \HasChildren) "/" childboxes
> * LIST (\NoInferiors) NIL foo
>
> 1 LIST "" %
> * LIST (\NoInferiors) NIL INBOX
> * LIST (\NoSelect \HasChildren) "/" childboxes
> * LIST (\NoInferiors) NIL "foo/bar"

because the second and third items have conflicting hierarchy semantics. 
The first example (INBOX) does not conflict since INBOX is not part of the 
default namespace.

-- Mark --

http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.

