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]

Re: Text commands behave differently under xterm...

Hi Pat
--- Pat <> wrote:
> 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. 

I guess I need a little clarification, but are you running these
commands inside bash running inside cmd.exe or just plain cmd.exe?

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

Yes, I'm afraid cygwin does take a little getting used to, however it
really works well once you get passed the quirks required to operate
under Windows.  For compatibility reasons, mixed-mode [text/binary]
capabilities have been added to cygwin.  I suspect, but am not
positive, that you are probably experiencing the side effects of a
text-mode mount.  Would you mind posting the output of the mount
command to the list?  That would help in trying to figure out your

On my system, under X or under console bash, binmode produces the
expected "\n" from your small testcase.  That is my reasoning for my
initial hypothesis.

> Thanks,
> Pat Niemeyer
> Author of Learning Java, O'Reilly & Associates and the BeanShell
As a side note, I just wanted to compliment you on doing such an
outstanding job on Learning Java 1st Ed.  I don't know about anyone
else, but I look forward to picking up the brand new 2nd Ed soon.  My
O'reilly bookshelf wouldn't be complete without it ;-).


Do You Yahoo!?
HotJobs - Search Thousands of New Jobs

Unsubscribe info:
Bug reporting:

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