[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

A hypothetical extension




Let's define a hypothetical extension to LIST-EXTENDED:


It has a return option RECENT, which returns the recent count of a mailbox.

It also has a "base" selection option RECENT, which restricts the selection to mailboxes which have a non-zero recent message count. Being a base option, it means that this may be used with RECURSIVEMATCH. We'll make it imply the RECENT return option, as is traditional.

Now... What I'd like to do with this extension is show my GUI tree control of mailboxes which are subscribed, with little expander buttons for those that have subscribed children, and also highlight those mailboxes which have recent messages - or subscribed children which have recent messages.

In other words, assuming:

A01 LIST (SUBSCRIBED) "" "*" RETURN (RECENT)
* LIST (\Subscribed \UnMarked) "/" Foo
* LIST (\Subscribed \Marked) "/" Foo/Bar/Baz ((RECENT "24"))
* LIST (\Subscribed \Marked) "/" Zab ((RECENT "42"))
* LIST (\Subscribed \UnMarked) "/" Boring
A01 OK

Then I want to show Foo, Zab, and Boring. Foo and Zab will both be highlighted, Boring will not be. Zab will have a recent count displayed next to it.

In order to do this, I need to:

B01 LIST (SUBSCRIBED RECURSIVEMATCH) "" "%"
B02 LIST (SUBSCRIBED RECENT RECURSIVEMATCH) "" "%"

B01 here gets the mailbox listing and the tree "expander" information. B02 gets the highlighting information. The server has to recusrively search twice.

What I'd really like to do, though, is the imaginary syntax:

C01 LIST (SUBSCRIBED RECURSIVEMATCH (SUBSCRIBED) RECURSIVEMATCH (SUBSCRIBED RECENT)) "" "%" RETURN (RECENT)

In other words, "Tell me all the subscribed mailboxes at the top level, and also include CHILDINFO blocks for SUBSCRIBED and SUBSCRIBED+RECENT".

I can think of more use-cases for this than for multiple mailbox patterns, incidentally.

From the server's perspective, it now has to perform the recursive mailbox search only once through, rather than twice, which seems more efficient.

Is this worth considering at this late stage?

Dave.
--
          You see things; and you say "Why?"
  But I dream things that never were; and I say "Why not?"
   - George Bernard Shaw