At 2002-08-20 03:43:21, [EMAIL PROTECTED] wrote:
>
> > The latest draft (draft-crispin-imapv-17.txt) updates the grammar thus:
> >
> > flag-list = "(" [flag *(SP flag)] ")"
>
> Thus the empty value MUST be supported.
That's not the "empty value" that was being discussed in the excerpt
from the book. There is no question that "()" MUST be supported. The
problem was here:
> > store-att-flags = (["+" / "-"] "FLAGS" [".SILENT"]) SP
> > (flag-list / (flag *(SP flag)))
RFC 2060 defined this as:
flag_list ::= "(" #flag ")"
store_att_flags ::= (["+" / "-"] "FLAGS" [".SILENT"]) SPACE
(flag_list / #flag)
Which permits both "()" (via flag_list) and "" (via #flag). The latter
is disallowed by the grammar in draft-crispin-imapv-17.txt. (In fact,
the draft mentions changing #flag to 1#flag in the "Changes from RFC
2060" section.)
- ams