Lawrence Greenfield <leg+(_at_)andrew(_dot_)cmu(_dot_)edu> writes:
if A { keep; }
if B { discard; }
It is obvious what I've to do if either A or B is true, and if neither A =
nor B is true, but what do I do when A AND B are true?
The CMU implementation (included with Cyrus IMAP 1.6 and later)
generates a run-time error and performs the equivalent of a "keep".
Later versions (included with Cyrus IMAP 2.0) will send an error
message via the instant messaging interface.
That's a violation of the spec. Discard + keep is not an error, it's a
keep.
All other "absurd" or strange situations are handled this way. (ie,
"reject" with any other action, etc.)
Tim