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.