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