add: if (fdesc == STDIN_FILENO) advance_input_offset (nread);
context: skip (int fdesc, char const *file, uintmax_t records, size_t blocksize,      char *buf){  off_t offset = records * blocksize;  /* Try lseek and if an error indicates it was an inappropriate operation --     or if the the file offset is not representable as an off_t --     fall back on using read.  */  if ((uintmax_t) offset / blocksize != records      || skip_via_lseek (file, fdesc, offset, SEEK_CUR) < 0)    {      while (records--)	{	  size_t nread = safe_read (fdesc, buf, blocksize);	  if (nread == SAFE_READ_ERROR)	    {	      error (0, errno, _("reading %s"), quote (file));	      quit (1);	    }	  /* POSIX doesn't say what to do when dd detects it has been	     asked to skip past EOF, so I assume it's non-fatal.	     FIXME: maybe give a warning.  */	  if (nread == 0)	    break;	}    }}