[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ***SPAM-3*** Re: FWS problem



Charles Lindsey wrote:
 
> I think somebody reported that there was software out there
> that barfed on "name: TAB body CRLF"

Okay, Henry already convinced me that s-o-1036 has a mandatory
SP in the text, not reflected in the syntax.

  [erroneous FWS] 
>> Let's fix it at least for our headers, replace [FWS] by *WSP
>> before and after any header content of "our" headers.

> No, we can't even do that. Consider the Approved header, for
> example:
>|         approved = "Approved:" SP mailbox-list CRLF

> You cannot reformulate that in your Approved: 1*WSP body CRLF
> style because <mailbox-list> is defined in RFC 2822, where it
> is already defined to start with '[CFWS]'.

If you're free to replace [CFWS} by [FWS] because we don't want
comments, then you're also free to replace [CFWS] by *WSP where
both 2822 and we don't want a CRLF.  RfC 2822 didn't bother to
get the sytax right, they only mentioned it in the text:

| 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.

CFWS minus C is FWS, and FWS minus CRLF is 1*WSP, or a case of
obs-FWS.  We don't allow obs-FWS, because that would be again a
line of folded header content without non-whitespace.

In other words, we want *WSP instead of [CFWS] before and after
the header content.  I don't see a problem with this approach.
It reflects 2822, minus obs-FWS, and minus the C in CFWS, these
restrictions are already a MUST in your draft.

> We can't do anything about that without rewriting RFC 2822
> syntax, and our Chair has forbidden that

IIRC Alexej only said that whatever we do, the result must be
a valid message/rfc822 as defined in 2822.  But not all valid
message/rfc822 are also valid news articles.  If we have some
restrictions, and that's the case, then it's perfectly okay to
have a proper syntax reflecting these restrictions.

For those who don't get the idea by looking at the ABNF there
is still the text with explicit MUSTs:  The header content of
all header lines MUST contain a non-witespace (=> obs-FWS RIP).

Back to your example:

| mailbox-list = (mailbox *("," mailbox))

BTW, please add the sytax again, as it was in old drafts, you
probably don't want the obs-mbox-list in RfC 2822.

| mailbox      = name-addr / addr-spec
| name-addr    = [display-name] angle-addr
| display-name = phrase
| phrase       = 1*word

Dito no obs-phrase here, please.

| word         = atom / quoted-string
| atom         = [CFWS] 1*atext [CFWS]

Okay, I see the general problem, to get it right you'd have to
move all [CFWS] from the bottom of the 2822 syntax to the top,
and then replace all [CFWS] before and after anything else by
*WSP, keeping only [CFWS] between something that's not empty.

That should be possible, but manually without a tool the result
would be probably worse than any dubious [CFWS] in 2822... :-(

> even draft-13 took the syntax of mailbox-list from RFC 2822
> without question

No obs-stuff in draft 7, where did you lose this improvement ?

Maybe it's impossible to fix the [CFWS] before and after the
mailbox-list, but there are still many explicit [FWS] in your
draft which can be fixed without touching 2822 terms. e.g. in
newsgroup-list, path-list, and poster-text.

                           Bye, Frank