[Python-Dev] Next version of PEP278 - universal newline support - available
Jack Jansen
Jack.Jansen@oratrix.com
Thu, 14 Mar 2002 23:26:55 +0100
On donderdag, maart 14, 2002, at 08:54 , Just van Rossum wrote:
> Am I the only one who wants universal newlines *without* a new
> mode character?
> Ideally I'd like *existing* code that works with text files to
> accept any line
> ending.
No, I definitely like that too. But there's two problems.
First off, I've written the PEP with the idea of keeping it as
compatible as possible. Hence also my initial choice (reverted
since then) of making universal newlines a compile time option.
Second, and more importantly, universal newlines on output would
be a major undertaking. Input code in the Python core uses only
fgets() and fread(), and for each of the fgets or fread calls
you either have the PyFileObject handy or you can deduce (from
code inspection) that the call will always be used on a textfile
or always on a binary file. Output code not only uses fwrite()
and fputs() but also fprintf() and all its brothers and sisters.
Output code occurs literally all over the place (object print
methods, for instance). In many of those places all you have is
a FILE *. And if the file is open in binary mode (as it needs to
be for universal newline input or output) you need to intercept
all output (otherwise bare \n characters would appear on Mac or
Windows).
--
- Jack Jansen <Jack.Jansen@oratrix.com>
http://www.cwi.nl/~jack -
- If I can't dance I don't want to be part of your revolution --
Emma Goldman -