This is the mail archive of the
mailing list for the Cygwin project.
RE: Cygwin 1.3.2-1 Problems with CR/LF in Perl
- To: <cygwin at cygwin dot com>
- Subject: RE: Cygwin 1.3.2-1 Problems with CR/LF in Perl
- From: "Gerrit P. Haase" <cygwin at cygwin dot com>
- Date: Wed, 22 Aug 2001 19:41:10 +0200
- Organization: convey Information Systems GmbH
- Reply-to: cygwin at cygwin dot com
> Troy Noble schrieb am 2001-08-22 10:48:
>So binmode(F1); or binmode(F2); didn't fix the behavior,
>even on textmode mount?
Yes, that's the workaround, but you will still have to fix
every unixscript which should handle files on textmounts.
The test script looks like that then:
# have to use chomp; chop; print F2 $_ . "\n"; to get it to work
>Just curious. I know it's not a real fix, but is a
>potential work-around. I suppose I could go try it
It works with my latest build and so should do the TRIAL release
from last year.
>The reason I mention it is that perldoc perlfunc says:
$ perldoc -f binmode
> Arranges for the file to be read or written in
>``binary'' mode in operating systems that distinguish
>between binary and text files. Files that are not in
>binary mode have CR LF sequences translated to LF on
>input and LF translated to CR LF on output. Binmode
>has no effect under many sytems, but in MS-DOS and
>similarly archaic systems, it may be imperative--otherwise
>your MS-DOS-damaged C library may mangle your file. The
>key distinction between systems that need binmode()
>and those that don't is their text file formats.
>Systems like Unix, MacOS, and Plan9 that delimit lines
>with a single character, and that encode that character
>in C as "\n", do not need binmode(). The rest may need
>it. If FILEHANDLE is an expression, the value is taken
>as the name of the filehandle.
>If the system does care about it, using it when you
>shouldn't is just as perilous as failing to use it
>when you should. Fortunately for most of us,
>you can't go wrong using binmode() on systems
>that don't care about it, though.
>From: Gerrit P. Haase [mailto:email@example.com]
>Sent: Wednesday, August 22, 2001 10:29 AM
>Subject: Re: Cygwin 1.3.2-1 Problems with CR/LF in Perl
>>Charles Wilson schrieb am 2001-08-22 11:33:
>>Go to the cygwin-apps mailing list archives and look at the last few
>>days. Hopefully there is a new perl coming soon that addresses your
>>problems; it should be available as a test version in the next few days.
>> Once it is, PLEASE test it, Gavin. None of "us" use text mounts...
>No, unfortunately not, there are no changes to that issue.
>I just tested the little example below, if used on a textmount,
>there are \r's added to every line, so after the script
>runs one time, a textfile is converted from \n to \n\r and everytime
>it runs, one more \r is added.
>It seems at this state, perl does the right job only on binmode mounts.
>>Walker, Gavin (CMIS, ANU - Acton) wrote:
>>>I've been trying to write a perl script to edit a text file. The cut
>>>down version of it is a little further down. It's pretty simple, read a
>>>file in and dump it out. My problem is that successive runs creates a
>>>string of CR on each line. Every time I run it another CR is added. To get
>>>rid of them I have to
>>>use chomp, then chop and append my own \n. Perl appears to be reading the
>>>CR/LF characters separately and then out as CR/CR/LF. This is supposed to
>>>work on unix as well so I can't go chopping unnecessarily. Running the same
>>>program under DOS (probably using windows' perl) doesn't cause any problems.
>>>Perl version is 5.6.1 for cygwin. On installation I told cygwin to use Dos
>>>text format (cvs handles the dos/unix interchange).
>>> # have to use chomp; chop; print F2 $_ . "\n"; to get it to work
>>> print F2;
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html