On 2017-06-08 02:50, Soegtrop, Michael wrote: >> No, the documented behavior is that CR-LF is converted to LF only >> for text- mounted files; but pipelines are default binary-mounted. >> If you want to strip CR from a pipeline, then make it explicit. >>> var=$( prog | sed .) >> Rewrite that to var=$( prog | tr -d '\r' | sed .)
For compatibility var=$( prog | sed -b -e 's/\r$//' ...) > I have two problems with this: > > 1.) I build many (~ 50) unix libs and tools MinGW cross on cygwin > from sources and this breaks many of the configure and other scripts. > Feeding back the fixes to the individual lib/tool maintainers will > take quite some time and also results in lengthy discussion why they > should care about crappy DOS artefacts at all. A compatibility option > via environment variable would have been nice. If your makefiles configured SED you could use: export SED='sed -b -e '\''s/\r$$//'\''' and that is probably the best approach: change sed to SED in makefiles, and configure SED=sed if not set. Alternatives: alias sed='sed -b -e '\''s/\r$//'\''' sed(){ /bin/sed -b -e 's/\r$//' "$@"; } sed -i 's|\<sed\>|& -b e '\''s/\r$//'\''|g' ... to patch files - double the "$" to patch makefiles, or build and use a Mingw(-compatible) sed that converts \r\n to \n on input and \n to \r\n on output? -- Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple