B20: bash does not like CRLF on stdin
Earnie Boyd
earnie_boyd@yahoo.com
Tue Nov 30 23:39:00 GMT 1999
Ok. Sorry. To open redirection input and output in text mode SET
CYGWIN=nobinmode before starting bash.
Earnie.
--- Anton Leherbauer <aleherbauer@takefive.co.at> wrote:
> 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
>
>
__________________________________________________
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
More information about the Cygwin
mailing list