This is the mail archive of the 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]

Text commands behave differently under xterm...


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...

Pat Niemeyer
Author of Learning Java, O'Reilly & Associates and the BeanShell Java
scripting language.

Unsubscribe info:
Bug reporting:

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