GNU bug report logs -
#11631
Head command does not position file pointer correctly for negative line count
Previous Next
Full log
Message #37 received at 11631 <at> debbugs.gnu.org (full text, mbox):
1. The comment in code - "Don't bother testing for failure for such a
small amount. Any failure will be detected upon close." may be
re-looked too, since we are now lseeking after it.
What if we change plain fwrite to:
if (fwrite (buffer, 1, n + 1, stdout) < (n + 1))
error (EXIT_FAILURE, errno, _("write error"));
2. Maybe using lseek with SEEK_CUR in place of SEEK_SET would reflect
logic better.
With Thanks for quick responses,
Anoop
On Wed, Jun 6, 2012 at 2:08 AM, GNU bug Tracking System
<help-debbugs <at> gnu.org> wrote:
>
> Your bug report
>
> #11631: Head command does not position file pointer correctly for negative line count
>
> 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 11631 <at> debbugs.gnu.org.
>
> --
> 11631: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11631
> GNU Bug Tracking System
> Contact help-debbugs <at> gnu.org with problems
>
>
> ---------- Forwarded message ----------
> From: Jim Meyering <jim <at> meyering.net>
> To: Pádraig Brady <P <at> draigBrady.com>
> Cc: 11631-done <at> debbugs.gnu.org
> Date: Tue, 05 Jun 2012 22:35:13 +0200
> Subject: Re: bug#11631: Head command does not position file pointer correctly for negative line count
> Jim Meyering wrote:
> > Thanks, and thanks for the review. Pushed.
>
> And with this message, I've closed the issue.
>
>
>
> ---------- Forwarded message ----------
> From: Anoop Sharma <sendtoanoop <at> gmail.com>
> To: bug-coreutils <at> gnu.org
> Cc:
> Date: Tue, 5 Jun 2012 15:07:19 +0530
> Subject: Head command does not position file pointer correctly for negative line count
> Head command does not position file pointer correctly for negative line count. Here is a demonstration of the problem.
>
> Step 1 - Create a file with 10 lines in it.
> $ yes "ABC" | head -c 40 >ip.txt
> $
>
> Step 2 - If head behaves correctly, then 2 lines should get printed after "------------" but nothing gets printed!
> $ (head -n -2; echo "------------------------"; cat) <ip.txt
> ABC
> ABC
> ABC
> ABC
> ABC
> ABC
> ABC
> ABC
> ------------------------
> $
>
> Step 3 - Another try fails. If head behaves correctly, then 8 lines should get printed after "------------" but nothing gets printed!
> $ (head -n -8; echo "------------------------"; cat) <ip.txt
> ABC
> ABC
> ------------------------
> $
>
>
>
> /*****************************************************************************************************************************/
> Possible cause of the defect -> Following snippet is copied from head.c (Function - elide_tail_lines_seekable ). Perhaps, there should be a lseek after fwrite there...:
>
> /* Output the initial portion of the buffer
> in which we found the desired newline byte.
> Don't bother testing for failure for such a small amount.
> Any failure will be detected upon close. */
> fwrite (buffer, 1, n + 1, stdout);
> /*****************************************************************************************************************************/
>
>
This bug report was last modified 13 years and 46 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.