To address Pete's nits, I've done the following. While I was at it, I saw
something else that needed a clarification: a message sequence number of * in
an empty mailbox is an error, but a UID-only client might do * in an empty
mailbox if it doesn't look at EXISTS and thus * needs a definition for that
case.
Change:
Also, since the contents of a range are independent of
the order of the range endpoints, note that a UID set
range of 559:* always includes the UID of the last
message in the mailbox, even if 559 is higher than any
assigned UID value. Thus, a UID range of 559:* always
indicates at least one message, unless the mailbox is
empty.
to:
Also note that a UID set range of 559:* always includes
the UID of the last message in the mailbox, even if 559
is higher than any assigned UID value. This is because
the contents of a range are independent of the order of
the range endpoints. Thus, any UID range with * as one
of the endpoints indicates at least one message (the
message with the highest numbered UID), unless the
mailbox is empty.
Change:
; * is the largest number in use. For message
; sequence numbers, it is the number of messages
; in the mailbox. For unique identifiers, it is
; the unique identifier of the last message in
; the mailbox.
to:
; * represents the largest number in use. In
; the case of message sequence numbers, it is
; the number of messages in a non-empty mailbox
; (it is an error to use message sequence numbers
; in an empty mailbox). In the case of unique
; identifiers, it is the unique identifier of the
; last message in the mailbox or, if the mailbox
; is empty, the UIDNEXT value.