Web lists-archives.com

Re: grep < fifo fails




On Oct  8 10:03, Eric Blake wrote:
> On 10/8/18 3:24 AM, Houder wrote:
> > grep fails on Cygwin because lseek() on Cygwin fails to recognize
> > that it is applied to a FIFO. As result of that, it returns EINVAL
> > in errno, where it should return ESPIPE.
> > 
> > Receiving the wrong value in errno forces reset() (in src/grep.c)
> > to return false, upon which grep fails.
> > 
> > Before v2.27 of grep, a call to S_ISREG(st->st_mode) in reset()
> > prevented the call of lseek() and made reset() return true.
> > 
> > The call to S_ISREG() has been removed in v2.27 of grep.
> > 
> > The solution would be either to correct Cygwin's executive or to
> 
> s/executive/dll/
> 
> > insert a Cygwin-specific kludge in grep (in reset() ).
> 
> I see no reason to do a one-off kludge to my build of grep (since that does
> not scale - every other app that also makes decisions based on errno values
> would have to make the same kludge), compared to just fixing cygwin1.dll for
> everyone.
> 
> But thanks for isolating the problem!

I pushed a patch.  Thanks for tracking this down, Henri!


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: signature.asc
Description: PGP signature