ietf-822
[Top] [All Lists]

Re: RFC 2231 and CFWS

2003-01-25 08:56:13

Charles Lindsey wrote:

However, on reading the syntax in RFC 2231, I now find a few further
oddities.

1. Broken backwards compatibility

Under RFC 2046, I could write

        x-foo'bar = baz

But that is not allowed now.

OTOH, I can still write

        charset = x-foo'bar

but not

        charset* = ''x-foo'bar

Of course you can't; the asterisk means encoding is used, so that has to be:
    charset* = ''x-foo%27bar

That is clearly specified in section 4.1 note (5).

But I thought the IETF "didn't do" backwards incompatibility (Cue howls of
protest from Bruce Lilley) :-( .
If you intend to use my name, please at least extend me the common courtesy
of not misspelling it.  Perhaps, you meant somebody else....

You might also save yourself some public humiliation by reading and thinking
about the topic; clearly an *extended* parameter (that is what the asterisk
indicates) is an extension. Charles, based on this and a similar postting to the usefor list, you clearly do not undersand backward compatibility -- the first
part (the line after OTOH) is precisely an example of working backwards
compatibility.

Regarding the change to the MIME definition of a regular parameter attribute
name, please note:
1.  2231 is a MIME extension RFC which updates 2045's (another MIME RFC)
definition. I.e. the auhors knew what they were doing -- quite a different situation from an attempt to produce an incompatible redefinition of something
   defined in an RFC managed by another area.
2. 2231 was the result of discussions with MIME users; the compatibility issues
   were well understood.
3. attribute-char is shared by the parameter attribute and the extended value. At first glance it might appear that there's no reason to exclude ' and/or % from an attribute name, but bear in mind the fact that an attribute name may appear
   in a different parameter's value.

2. IANA registered charsets

Under RFC 2046, it was allowed to register "foo'bar" as a charset (it was
just required to be a token). Presumably, this is not allowed now, but
where is it actually written down what may be registered as a charset?
AFAICS, that IANA registry was created by RFC 2046.
See RFC 2278. A single quote is still valid in a charset name, and it is possible to uambiguously parse an extended parameter containing a charset name with one or more single quotes. So it's not an issue (except, of course, insofar as implementors
need to take care to parse correctly).


<Prev in Thread] Current Thread [Next in Thread>