Subject: bug#17145: closed (Re: bug#17145: head fails with implicit stdin on darwin)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 02 Apr 2014 14:48:03 +0000

Your bug report

#17145: head fails with implicit stdin on darwin

which was filed against the coreutils package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
17145: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17145
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#17145: head fails with implicit stdin on darwin
From: Paul Eggert <[email-masked]>
To: Pádraig Brady <[email-masked]>
Cc: [email-masked], Denis Excoffier <[email-masked]>
Date: Wed, 02 Apr 2014 07:47:11 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Pádraig Brady wrote:
> s/if/else if/

Thanks.  Or better yet, return false if fstat fails.  I did that, plus 
the other changes you and Bernhard suggested, and installed the patch.

Subject: head fails with implicit stdin on darwin
From: Denis Excoffier <[email-masked]>
To: [email-masked]
Date: Sun, 30 Mar 2014 22:40:18 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

head -n -1 -- -
or equivalently
head -n -1
returns immediately (ie does not wait for further stdin) and prints nothing.

I use coreutils 8.22 compiled (with gcc-4.8.2) on top of darwin 13.1.0 (Mavericks).

However the following seem to work perfectly:
head -n 1
head -c -1
cat | head -n -1
head -n -1 ---presume-input-pipe
on cygwin: head -n -1

What is weird on my system is lseek() at the beginning of elide_tail_lines_file():
lseek(fd, 0, SEEK_CUR) returns a (random?) number, something like 6735, 539 etc.
lseek(fd, 0, SEEK_END) returns 0

Hope this helps,

Regards,

Denis Excoffier.