Timo Sirainen wrote:
On Tue, 2003-09-16 at 00:21, Mark Crispin wrote:
OK, I understand now. And without some registry of names, there's no good way to create foo.1. without creating foo.1, and you'd have to have a placeholder if there is no foo.1.2 (or other child). That may be hard to do.
I think you meant if there is foo.1.2 but no foo.1 :)
Here's one possible way.
If you have mailbox metadata (which is likely if you're going to implement CONDSTORE, ANNOTATE, etc.), perhaps there could be a bit to say "this mailbox is \NoSelect" in the metadata and then keep a deleted mailbox around (just delete and expunge all messages, and set the \NoSelect bit). If the last child is deleted, then remove the now-childless parent if the \NoSelect bit is set.
Yes, perhaps some day when I have fast indexes for mailbox lists. Currently I don't, and I don't yet support condstore or annotations. Extra stat()s (or worse, opening and reading files) for LIST isn't really nice for performance.
Looks like Cyrus just creates a normal selectable mailbox with "CREATE mailbox.". I guess there haven't been much complains about that, so I'll do that as well.
I don't believe that is correct. You can create foo.1.2 without foo or foo.1 In this case both foo and foo.1 will show up as \Noselect. The presence of a directory in Cyrus' mailstore doesn't not means that its an actual mailbox.
-- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp
