- From: Roy T. Fielding <fielding@avron.ICS.UCI.EDU>
- Date: Thu, 01 Dec 1994 20:21:10 -0800
- To: Ari Luotonen <luotonen@neon.mcom.com>
- Cc: cshotton@oac.hsc.uth.tmc.edu, mvanheyn@cs.indiana.edu, http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
>> Chuck Shotton writes:
>>
>> > IMHO, it should state that CR, LF, and CRLF should all be interpreted
>> > equally as EOL when used as line ends. This avoids any problems with
>> > machine dependent EOL symbols, and fairly represents the current practice.
>> > (It also avoids forcing clients and especially servers to do line-by-line
>> > translations of EOL for all outgoing response information, which is a BIG
>> > performance hit.)
>>
>> Sounds reasonable to me.
>
> I object.
>
> So far, CRLF and LF have been understood as linebreaks. In other
> words, LF is a linebreak, with possibly a preceding CR. This is fine,
> even when used intermixed.
>
> If we change this in the proposed fashion, you will have ambiguity if
> these are inconsistently used; imagine a situation when you have a
> file that begins with LF:
>
> ...CRLF
> Blaa: foobarCR
> CR
> LF
>
> This won't be ambiguous if you force the use of CRs and LFs to be
> consistent, but I think it's better to allow LFs and CRLFs intermixed,
> rather than allow CRs, LFs and CRLFs, but only one of them at a time.
>
> -- Cheers, Ari --
We are only talking about the object-body here -- the spec already
requires that headers be CRLF terminated (with LF-only tolerated).
The suggestion up above is for clients to look for line breaks in the
object-body (i.e. when displaying text/plain) according to a perl regular
expression like:
if ( /\r?\n?/ ) { print "\n"; }
(i.e. match CRLF, CR, or LF (but not LFCR) and treat it as a newline).
In other words
if ((c = getc(IN)) == LF)
putc('\n');
elsif (c = CR)
{
if ((c2 = getc(IN)) == LF)
putc('\n');
else
{
putc('\n');
putc(c2);
}
}
else output(c);
(well, okay, so I've ignored EOF, but you get the drift).
......Roy Fielding ICS Grad Student, University of California, Irvine USA
<fielding@ics.uci.edu>
<URL:http://www.ics.uci.edu/dir/grad/Software/fielding>
Received on Thursday, 1 December 1994 20:32:48 UTC