> but the behaviour of msvcrt wrt crlf is _definitely_ not right, as it > stands, and as a result it completely screws any possibility for > running python.exe under wine. completely. you can't have files that > you write to, that are different from when they are read back.
ok .... this turns out to be a _really_ interesting edge-case :) l...@gonzalez:~/src/python2.5-2.5.2$ ./python.exe Python 2.5.2 (r252:60911, Jan 16 2009, 22:06:34) [gcc-mingw32] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> f = open("tst", "w") >>> f.write("hell\n") >>> f.write("back\n") >>> f.close() >>> [80]+ Stopped ./python.exe l...@gonzalez:~/src/python2.5-2.5.2$ more tst hell back l...@gonzalez:~/src/python2.5-2.5.2$ % ./python.exe f = open("tst", "r") >>> x = f.readline(5) >>> x 'hell\r' <------- wrongggggg >>> f.seek(0) >>> f.readline() 'hell\n' <-------- ah _ha_. if you don't specify the length to be read.... >>> f.seek(0) >>> f.readline(4) 'hell' >>> f.readline() '\n' >>> will raise this as a bug, now that there's a known test case for it.