Text commands behave differently under xterm...

Pat pat@pat.net
Mon Aug 5 14:36:00 GMT 2002


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/



More information about the Cygwin mailing list