delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/06/25/16:31:15

X-Spam-Check-By: sourceware.org
Message-ID: <449EF283.80500@gmail.com>
Date: Sun, 25 Jun 2006 21:30:59 +0100
User-Agent: Mozilla Thunderbird 1.0.7 (X11/20050923)
MIME-Version: 1.0
To: David Mastronarde <mast AT colorado DOT edu>
CC: cygwin AT cygwin DOT com
Subject: Re: sed 4.1.5 adds extra CR with input file path in Windows format
References: <Pine DOT LNX DOT 4 DOT 64 DOT 0606241421040 DOT 4607 AT druid DOT hvem DOT colorado DOT edu>
In-Reply-To: <Pine.LNX.4.64.0606241421040.4607@druid.hvem.colorado.edu>
From: Dave <kilroyd AT googlemail DOT com>
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

David Mastronarde wrote:
> After upgrading sed from 4.1.4 to 4.1.5, I found that line endings were
> being converted from CRLF to CRCRLF when the input file was specified
> with a windows file path:
> 
> % sed -e 's/g5a/setname/g' < 'c:\cygwin\home\mast/sedtestin' > ! sedtestout
> 
> Converting the path to cygwin format eliminated the problem.
> 

> C:\cygwin                          /                         system  textmode
> C:\cygwin/bin                      /usr/bin                  system  textmode
> C:\cygwin/lib                      /usr/lib                  system  textmode
> C:\cygwin\usr\X11R6\lib\X11\fonts  /usr/X11R6/lib/X11/fonts  system  binmode
> .                                  /cygdrive                 system  textmode,cygdrive

Have a read of http://cygwin.com/cygwin-ug-net/using-textbinary.html

Stepping through it:
% sed -e 's/g5a/setname/g' < 'c:\cygwin\home\mast/sedtestin' > ! sedtestout

rule b. sedtestin input will be read in binary mode. i.e it reads \r\n

redirection of input is done in binmode from rule c.
ditto output redirection.

writing of the file is done in textmode due to your mounts (rule a). 
Hence \r\n coming out of sed becomes \r\r\n.

Try specifying the output file in MSDOS format, '.\sedtestout'.


Dave.

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


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