This is the mail archive of the cygwin@sourceware.cygnus.com 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]

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


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