This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: echo "$(echo '\r')" oddity
- From: Brian Dessent <brian at dessent dot net>
- To: "'cygwin at cygwin dot com'" <cygwin at cygwin dot com>
- Date: Tue, 03 May 2005 08:30:47 -0700
- Subject: Re: echo "$(echo '\r')" oddity
- References: <D1D50F9C5151D2119FF000104BB3F9B708E1B754@NL-ROT-MAIL02>
- 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/