This is the mail archive of the
cygwin@sourceware.cygnus.com
mailing list for the Cygwin project.
RE: B20: bash does not like CRLF on stdin
- To: "'cygwin at sourceware dot cygnus dot com'" <cygwin at sourceware dot cygnus dot com>
- Subject: RE: B20: bash does not like CRLF on stdin
- From: Anton Leherbauer <aleherbauer at takefive dot co dot at>
- Date: Fri, 5 Nov 1999 10:07:00 +0100
There is no TTY in the CYGWN variable.
It's just the fact that bash reads stdin
in binary mode, not in text mode.
If it can handle CRLF correctly, when
giving it the script as argument, then
it should also cope with CRLF on stdin.
-IMHO
Toni
> -----Original Message-----
> From: Earnie Boyd [mailto:earnie_boyd@yahoo.com]
> Sent: Thursday, November 04, 1999 6:22 PM
> To: Anton Leherbauer; 'cygwin@sourceware.cygnus.com'
> Subject: Re: B20: bash does not like CRLF on stdin
>
>
> Known FAQ:
>
> You cannot have TTY set in the CYGWIN variable when communicating with
> NON-CYGWIN binaries. You must set this to NOTTY or remove it
> from the CYGWIN
> variable.
>
> Earnie.
>
> --- Anton Leherbauer <aleherbauer@takefive.co.at> wrote:
> > Create from the command line:
> >
> > C:> echo ls > foo.sh
> > C:> bash foo.sh
> > ... lots of output ...
> > C:> bash < foo.sh
> > : No such file or directory
> >
> > The problem is that bash treats stdin as binary, thus leaving the
> > CR/LF in place. Interestingly, the following experiment works:
> >
> > C:> bash
> > bash-2.0$ bash < foo.sh
> > ... lots of output ...
> >
> > This happens with cygwin B20 and bash 2.03 and is
> > especially bad, when using bash together with clearmake,
> > because clearmake executes build scripts in the above manner.
> >
> > Jim Chapman [jim.chapman@xstreamis.com]
> > provided me with a fix to the problem:
> >
> > Edit make_cmd.c in function make_bare_word() near line 53
> (version is 2.02).
> > Make it look like
> > -------------------------------- begin ----------------------------
> > make_bare_word (string)
> > char *string;
> > {
> > WORD_DESC *temp;
> >
> > temp = (WORD_DESC *)xmalloc (sizeof (WORD_DESC));
> > if (*string)
> > {
> > /* JC. Remove any rogue carriage return char - 12/21/98. */
> > int j, slen;
> > slen = strlen(string);
> > if (string[slen-1] == 0x0d)
> > {
> > string[slen-1] = '\0';
> > }
> >
> > temp->word = savestring (string);
> > }
> > else
> > {
> > temp->word = xmalloc (1);
> > temp->word[0] = '\0';
> > }
> >
> > temp->flags = 0;
> > return (temp);
> > }
> > --------------------------------- end
> -------------------------------
> >
> > It would be great, if the fix would get into the common
> distribution.
> >
> > Thanks,
> > Toni
> > --
> > Anton Leherbauer Phone: +43 662 457 915-89
> > TakeFive Software GmbH Fax: +43 662 457 915-6
> > Jakob-Haringer-Str. 8 http://www.TakeFive.com/
> > A-5020 Salzburg, Austria
> mailto:aleherbauer@TakeFive.co.at
> >
> > The
> Source Code Engineering Company
> >
> > --
> > Want to unsubscribe from this list?
> > Send a message to cygwin-unsubscribe@sourceware.cygnus.com
> >
> >
>
> __________________________________________________
> Do You Yahoo!?
> Bid and sell for free at http://auctions.yahoo.com
>
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com