Mail Archives: cygwin/2002/08/05/17:31:47
Hi,
I've been tearing out my hair trying to figure out why text line endings
are behaving differently under xterm and the plain NT shell..
First the obvious:
echo | od -c
shows that under an xterm I get \r\n, but under the regular NT shell
I get simply \n. It's not even dependant on the terminal type... It's
just magic.
So I tried to compensate by removing the extraneous CRs... but I find
that a) sed starts inserting more returns and 2) tr breaks when it's used
inside an eval. It's hard to come up with a test case because I can't
construct the string in a guaranteed way... Here's a simple test that requires
you put some NL term lines in a file for it:
# File 'data' contains any NL terminated multiline data
# e.g.
#
# foo
# bar
# gee
#
#
# Now, why are these not the same?
#
cat file | sed '/foo/d' | tr -d \\015 | tr '\n' ';' | od -c
output=`cat file | sed '/foo/d' | tr -d \\015 | tr '\n' ';'`
echo $output | od -c
You'll see that the first line works as expected, removing the CRs... but in
the second line they are back! It's as if using the evaluation defeated the
tr somehow.
Again - all of that only happens when I'm running an xterm... the plain shell
works fine.
I was so happy I was almost in tears to see the xterms working under cygwin ;)
But now I'm really frustrated...
Thanks,
Pat Niemeyer
Author of Learning Java, O'Reilly & Associates and the BeanShell Java
scripting language.
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -