This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: echo "$(echo '\r')" oddity


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]