rem: return 1;
add: return t < 0;
context: tail_bytes (const char *pretty_filename, int fd, off_t n_bytes){  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)    {      if (S_ISREG (stats.st_mode))	{	  xlseek (fd, n_bytes, SEEK_CUR, pretty_filename);	}      else	{	  int t;	  if ((t = start_bytes (pretty_filename, fd, n_bytes)) < 0)	    return 0;	  if (t)	    return 1;	}      dump_remainder (pretty_filename, fd, COPY_TO_EOF);    }  else    {      if (S_ISREG (stats.st_mode))	{	  off_t current_pos, end_pos;	  off_t bytes_remaining;	  if ((current_pos = lseek (fd, (off_t) 0, SEEK_CUR)) != -1	      && (end_pos = lseek (fd, (off_t) 0, SEEK_END)) != -1)	    {	      off_t diff;	      /* Be careful here.  The current position may actually be		 beyond the end of the file.  */	      bytes_remaining = (diff = end_pos - current_pos) < 0 ? 0 : diff;	    }	  else	    {	      error (0, errno, "%s", pretty_filename);	      return 1;	    }	  if (bytes_remaining <= n_bytes)	    {	      /* From the current position to end of file, there are no		 more bytes than have been requested.  So reposition the		 file pointer to the incoming current position and print		 everything after that.  */	      xlseek (fd, current_pos, SEEK_SET, pretty_filename);	    }	  else	    {	      /* There are more bytes remaining than were requested.		 Back up.  */	      xlseek (fd, -n_bytes, SEEK_END, pretty_filename);	    }	  dump_remainder (pretty_filename, fd, n_bytes);	}      else	return pipe_bytes (pretty_filename, fd, n_bytes);    }  return 0;}