At 10:08 PM 2/9/95, John Gardiner Myers wrote:
We had a perfectly good grammar worked out on the list around the 25th of
October. Can't we just stick with that?
I looked back at that discussion. Perhaps I'm missing part of it. The
last large chunk I find is this (there are a couple of minor changes made
after, but nothing very substantive):
Date: Tue, 25 Oct 1994 12:19:53 -0700 (PDT)
From: Ned Freed <NED(_at_)innosoft(_dot_)com>
Subject: Re: multipart clarifications/nits
To: John Gardiner Myers <jgm+(_at_)cmu(_dot_)edu>
Cc: ietf-822(_at_)dimacs(_dot_)rutgers(_dot_)edu
...
I've toyed with the idea of making the first boundary special. The best I've
been able to come up with is:
dash-boundary := "--" boundary
; boundary taken from Content-Type
; field. There must be no LWSP
; between these elements.
multipart-body := preamble dash-boundary CRLF
body-part *encapsulation
close-delimiter epilogue
; No LWSP around dash-boundary.
encapsulation := delimiter body-part
delimiter := CRLF dash-boundary CRLF
; No LWSP around dash-boundary.
close-delimiter := CRLF dash-boundary "--" CRLF
; Again, LWSP around
; dash-boundary or "--".
[I don't know what "Again, LWSP..." means. The others all say "No LWSP".
Typo? SD]
preamble := discard-text
epilogue := discard-text
discard-text := *text *(*text CRLF)
; To be ignored upon receipt.
body-part := <"message" as defined in RFC 822, with all
header fields optional, and with the
specified delimiter and close-delimiter
not occurring anywhere in the message body,
either on a line by itself or as a substring
anywhere. Note that the semantics of a part
differ from the semantics of a message, as
described in the text.>
...
If a
delimiter is allowed to have an arbitrary amount of whitespace between
the boundary and the CRLF, then a parser must have an arbitrary amount
of lookahead in order to determine whether a line is a delimiter or
not.
It isn't allowed to have this. I hope this is clearer now.
...
And that's the final statement I have on boundaries--that delimiters are
NOT allowed to have an arbitrary amount of whitespace between the boundary
and the CRLF. Therefore, from my reading of Ned's note, modulo the one
confusing statement about LWSP, the lookahead problem John refers to does
not exist, because boundaries are not allowed to have trailing whitespace.
Did I miss a later message that reversed this? Perhaps a private exchange,
or on another list, or just lost in the ether? Ned, did you ever make any
sort of revised draft available? I checked internet-drafts at ISI, and
could find nothing relevant under draft-freed* or draft-borenstein*.
--
Steve Dorner, Qualcomm Incorporated. "Oog make mission statement."