rem: return 1; dump_remainder (pretty_filename, fd, COPY_TO_EOF);
add: return t < 0; *read_pos += dump_remainder (pretty_filename, fd, COPY_TO_EOF);
context: tail_lines (const char *pretty_filename, int fd, long int n_lines){  struct stat stats;  /* We need binary input, since `tail' relies on `lseek' and byte counts,     while binary output will preserve the style (Unix/DOS) of text file.  */  SET_BINARY2 (fd, STDOUT_FILENO);  if (fstat (fd, &stats))    {      error (0, errno, "%s", pretty_filename);      return 1;    }  if (from_start)    {      int t;      if ((t = start_lines (pretty_filename, fd, n_lines)) < 0)	return 0;      if (t)	return 1;      dump_remainder (pretty_filename, fd, COPY_TO_EOF);    }  else    {      off_t length;      off_t start_pos;      /* Use file_lines only if FD refers to a regular file for	 which lseek (... SEEK_END) works.  */      if (S_ISREG (stats.st_mode)	  && (start_pos = lseek (fd, (off_t) 0, SEEK_CUR)) != -1	  && start_pos < (length = lseek (fd, (off_t) 0, SEEK_END)))	{	  if (length != 0 && file_lines (pretty_filename, fd, n_lines,					 start_pos, length))	    return 1;	}      else	return pipe_lines (pretty_filename, fd, n_lines);    }  return 0;}