Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <42779927.FF17EA38@dessent.net> Date: Tue, 03 May 2005 08:30:47 -0700 From: Brian Dessent MIME-Version: 1.0 To: "'cygwin AT cygwin DOT com'" Subject: Re: echo "$(echo '\r')" oddity References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Reply-To: cygwin AT cygwin DOT com Jan Just Keijser wrote: > I have just run into a Cygwin vs Linux oddity that I cannot explain. I've > managed to trace the problem back to a very simple statement: > echo "$(echo -e '\r')" | od -x > on my W2K Cygwin install (Cygwin1.dll 2005/04/01), this produces > 0000000 000a > 0000001 > On Linux, this command produces: > # echo "$(echo -e '\r')" | od -x > 0000000 0a0d > 0000002 > (which is what I'd expect). > Also, the Cygwin command > echo -e '\r' | od -x > also returns > 0000000 0a0d > 0000002 It appears that bash's handling of `` and $() is hardwired to do \r\n -> \n translation. I am not sure but that may be one of those patches that was added to bash that makes more things work than it breaks. ... *checks* ... Yes indeed: subst.c, function read_comsub() (which implements command substitution) #ifdef __CYGWIN__ setmode (fd, O_TEXT); /* we don't want CR/LF, we want Unix-style */ #endif Brian -- 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/