This is the mail archive of the
mailing list for the Cygwin project.
Re: problems with gawk 3.1.5-3 hanging -- more info
- From: Corinna Vinschen <corinna-cygwin at cygwin dot com>
- To: cygwin at cygwin dot com
- Date: Thu, 30 Mar 2006 22:07:57 +0200
- Subject: Re: problems with gawk 3.1.5-3 hanging -- more info
- References: <442C25D0.email@example.com> <442C3197.firstname.lastname@example.org>
- Reply-to: cygwin at cygwin dot com
On Mar 30 13:29, David Carter wrote:
> I've taken a look at the differences between -2 and -3; here's the diff:
> $ diff -r gawk-3.1.5-2 gawk-3.1.5-3
> diff -r gawk-3.1.5-2/posix/gawkmisc.c gawk-3.1.5-3/posix/gawkmisc.c
> >#include <stdio.h>
> >cygwin_premain2 (int argc, char **argv, struct per_process *myself)
> > setmode (fileno (stdin), O_TEXT);
> ...that's the only difference between the two source trees.
> Not having looked at cygwin-specific source before, I'm going to guess
> that cygwin_premain2 is a hook which is called at program execution
> time, since there is no call to cygwin_premain2 in the source code.
> I think the problem is the O_TEXT. If I change this to O_BINARY and
> recompile, everything works swimmingly. The question now is: should the
> file really be opened as O_TEXT, or as O_BINARY?
> Can anyone set me straight on this?
O_TEXT is correct because gawk is a text tool in the first place and
it should treat input lines identical, regardless if they have DOS
or UNIX lineendings.
I can't tell why it fails for you, because I can't reproduce this
locally. As for the O_BINARY mode, in theory there's a way to
accomplish that without rebuilding gawk by setting the BINMODE
gawk -v BINMODE=r [...]
Unfortunately it turns out that this doesn't work because gawk fails
to call the setmode function in this case on Cygwin. I'll upload a
patched gawk soon. If you want to apply it by yourself, try this:
--- posix/gawkmisc.c.ORIG 2006-03-30 22:06:37.429941500 +0200
+++ posix/gawkmisc.c 2006-03-30 21:58:33.918902700 +0200
@@ -207,6 +207,9 @@ int
int fd, mode;
+ setmode (fd, mode);
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Project Co-Leader cygwin AT cygwin DOT com
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html