delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2001/01/29/20:46:50

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
X-Apparently-From: <earnie?boyd AT yahoo DOT com>
Message-ID: <3A761CE0.231FBF34@yahoo.com>
Date: Mon, 29 Jan 2001 20:46:08 -0500
From: Earnie Boyd <earnie_boyd AT yahoo DOT com>
Reply-To: Earnie Boyd <cygwin AT cygwin DOT com>
X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.171 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: Josh Schulte <jschulte AT equilibrium DOT com>
CC: Earnie Boyd <cygwin AT cygwin DOT com>
Subject: Re: Bug In Mount? (Bug in read()?)
References: <67677D360C1FD411BB4000B0D02080418031DC AT eqexchange DOT equildom DOT equilibrium DOT com>

Josh Schulte wrote:

> Correct me if I am wrong. \r\n are at the end of every line in a dos
> text file. mounting stuff in binmode causes calls to the system call
> read() to return the line as if there was only a \n at the end. mounting
> stuff in textmode causes calls to the system call read() to return the
> line as if there was only a \n at the end.

If a file has DOS (\r\n) line endings and the fd is in binary mode the data
will end with \r when read.  If the fd is in text mode the data will not
end with \r, the \r will have been removed and the count of characters read
will be decremented by one.

>
> I am getting \r\n regardless of what mode I have the directories mounted
> as when I read from perl, as demonstrated by the script below. I have
> recreated the problem on two computers now. Can anyone else recreate
> this problem? Is it a bug in cygwin?

It's not a bug in Cygwin.  I've already posted that I tried your example
with the expected results.  I suggest that the contents of your file
contains DOS style line endings and the fd for the read is in binary mode.

>
> There is only one perl on my system. (Earnie: The /usr/local/bin/perl is
> a link I create for backward compatability in some of my other scripts.)
> I did a search of the entire system just to double check. So that is not
> the problem.

Ok, this shouldn't be a problem then.


>
> Thanks for any help,
> Josh

Earnie.

>
> > PERL SCRIPT
> > -----------
> >
> > #!/usr/local/bin/perl
> >
> > @what = split(/\n/, `cat contents`);
> >
> > foreach $line (@what)
> > {
> >         print "***>$line<-\n";
> > }
> >
> > CONTENTS OF FILE
> > ----------------
> >
> > line one
> > line two
> > line three
> >
> MY RESULTS:
> -----------
> <-*>line one
> <-*>line two
> <-*>line three
>
> -----Original Message-----
> From: Earnie Boyd [mailto:earnie_boyd AT yahoo DOT com]
> Sent: Thursday, January 25, 2001 2:13 PM
> To: Josh Schulte
> Cc: cygwin AT cygwin DOT com
> Subject: Re: Bug In Mount?, Was [Odd/New Perl Behavior]
>
> Could be that you have \r\n in your contents file.  Could be that you've
> more than one version of perl installed.  Note, the current perl is
> located at /usr/bin/perl not /usr/local/bin/perl.
>
> Cheers,
> Earnie.
>
> --
> Want to unsubscribe from this list?
> Check out: http://cygwin.com/ml/#unsubscribe-simple


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019