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/