On Thu, 20 Feb 2003, Lee Daniel Crocker wrote: > As the standard says, we can't do a normal directory tree
Does it say why? Most "standards" we use have been RFCs, where we can ask such questions. > we > have to emulate it. So, taking their suggestion of using ":", Again, why? Is the ":" enforced by any of the applications, or is it just a suggestion? > the mapping of IMAP folders to directories can look like this > (assuming the top-level maildir is "."): > > INBOX --> . > Foo --> ./.Foo > Bar --> ./.Bar > Foo.Bar --> ./.Foo:Bar > Foo.Bar.Baz --> ./.Foo:Bar:Baz > INBOX.Foo --> ./.:Foo > INBOX.Foo.Bar --> ./.:Foo:Bar Why aren't the latter two ./.INBOX:Foo and ./.INBOX:Foo:Bar? > So, we get top-level folders and subfolders of them and of > INBOX, we're compliant with Maildir++, the IMAP path > separator can be whatever we we want, and we don't have any > migration issues. Well, I do, because I have nested directories of maildirs. But I can flatten those if I have to - or patch the source to do things my way. > The only thing we've potentially lost is > the ability to use ":" in folder names. I can live with that. Can all your users for all time? And do they need to? The best folder heirarchy delimiter to use would seem to be something that the user will recognise as a heirarchy delimiter. '/' works for me. > Building the list becomes relatively simple: all folders are > in the same directory, so no recursive traversal is necessary. > Just load up the list, sort, and list. As you list, if you > encounter ".Foo.Bar", and had not listed ".Foo" (which would > have sorted earlier if it were present), you know at that > point that you have to list "Foo (\NoSelect)". Still no > recursion needed. Recursion isn't *that* difficult. -- Charlie Brady

