On Fri, 20 Jun 2003, Rob Siemborski wrote:
> Its also pretty badly defined (the only requirement is that it is returned
> for 'interesting' mailboxes, but 'interesting' is never defined in a
> solid way, only a suggestion is given).
This is because, many years ago, CMU didn't want to be nailed down on a
more precise definition. It's you folks who came up with that wording.
However, the intended purpose was always clear.
> Any client that requires its use, however, is broken.
What do you mean by "requires its use"? Are you claiming that a client
which can use these flags for useful purposes is broken?
> Actually, now that I notice it, \Unmarked is not the inverse of \Marked.
Well, of course. There is a third state: the server can not say either
way.
In the case of a flat-file mail store, it's the result of the classical
shell test for "you have new mail" of a stat() system call and the
comparison of atime vs. mtime. If read is later than write, it's
\Unmarked; if write is later than read, it's \Marked; if they're the same,
then neither.
This type of test, while imperfect, is also quite useful; it is always
faster than doing the more thorough test with STATUS or SELECT/EXAMINE,
and in some mail stores it is substantially faster.
\Unmarked is the most useful status. It indicates to the client that it
can definitely skip consideration of a mailbox.
> So (to use Larry's example from a while back), if my server defines
> 'interesting' to mean "This folder has a message that contains the word
> 'penguins'.", then \Marked and \Unmarked have distinct and
> unrelated meanings.
That "penguins" example is nonsensical and insulting. It obfuscates the
discussion and makes matters difficult for everyone.
A more intelligent response from you (or for that matter anyone) on the
question would be:
A server should make a best effort to give an indication
via the \Marked and \Unmarked flags if some change happened
to the mailbox since the last time a client had it selected.
\Marked indicates the server's belief that something has
happened; \Unmarked indicates the server's certainty that
something has not happened.
If the server can not decide, it should return neither flag
rather than make a false guess.
A way of deciding \Marked vs. \Unmarked would be if the last
write is later than the last read.
-- Mark --
http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.