[Top] [All Lists]

CFWS: beaten, down, kicked to death, and still being flogged (Was Re: Malformed header - what would you do?)

2005-07-22 12:05:05

On Fri July 22 2005 09:48, Charles Lindsey wrote:

The relevant sentence of 3.2.3 is:

   However, where CFWS occurs in this standard, it MUST NOT be inserted
   in such a way that any line of a folded header field is made up
   entirely of WSP characters and nothing else.

Observe very carefully what that does NOT say. It does NOT say "where CFWS
occurs in some header field" (which might well be taken to include the
particular case "where FWS occurs in some header field", because
productions of FWS are evidently a subset of productions of CFWS.

What it DOES say is "where CFWS occurs IN THIS STANDARD" (emphasis added).
"This standard" is evidently the document RFC 2822. So we must ask "Does
CFWS occur in the ABNF of <unstructured>", to which the answer is
evidently "No" (if you take 'CFWS' to mean the four characters C F W S in
that order).

Even if you take 'CFWS' to mean "the productions of the ABNF rule 'CFWS'",
the answer is still "No", because the ABNF of <unstuctured> includes only
some of the productions of 'CFWS' - the subsetting is the wrong way round
for the other interpretation in this case.
Now of course we all know perfectly well that was not the intention, as
Appendix B makes clear.

It is an accepted rule of logic that if one starts with a proposition and
by following sound reasoning finds a contradiction, the proposition must be
false.  That is a rule which is fundamental to a significant number of
mathematical proofs, and more than three decades ago was routinely taught
to students. <insert lament about the decline in educational rigor here>

If the proposition "CFWS means those literal characters in the document"
leads to a contradiction ("we all know perfectly well that was not the
intent"), then clearly the proposition is false.  Ditto for "the
productions of the ABNF rule 'CFWS'".

Both propositions are also rather obviously false as it is clearly neither
the literal characters nor an ABNF production which are being inserted in a

The proposition "CFWS means comments, line folding, and/or whitespace" does
not lead to such a contradiction.  That proposition is also consistent with
the above and other usage in 2822, e.g. sect. 4.4 "CFWS were allowed
between..." (that would be a mismatch in number with "were" if "CFWS"
referred to a single literal string or an ABNF production).  Such usage is
referred to as an "abbreviation" and is not uncommon in technical writing;
repeating "comments, line folding, and/or whitespace" at every occurrence
would be as tedious as spelling out Transmission Control Protocol instead of
using the well-known abbreviation TCP.

Granted, the text could be worded better, and when there's a draft successor
we can all pick that sentence to death.