Pádraig Brady <[email protected]> wrote: ... > I changed message as shown below. > But in further testing before commiting I noticed an inconsistency > with my fix for this case, specifically when dealing with blocksizes > 1. > > For seekable files I count a partial block as an unread record, > thus printing the diagnostic. This is not the case for pipes though > as demonstrated here:
Good catch. > $ truncate -s3 pb.size > > $ dd iflag=fullblock bs=2 skip=2 if=pb.size > ./dd: `pb.size': skip offset was past end of input file: Invalid argument > > $ cat pb.size | ./dd iflag=fullblock bs=2 skip=2 > > $ cat pb.size | ./dd iflag=fullblock bs=1 skip=4 > ./dd: `standard input': skip offset was past end of input file: Invalid > argument > > So should the first dd command not print the message, > or should the second dd command print the message? Whatever you prefer, as long as it's consistent. > I leaning towards changing skip() for seekable files > to return the number of _full_ records unskipped > to keep it the same as for pipes. > Then printing the warning for all cases where > the input offset != skip*bs ? But remember that the initial offset for a seekable file need not be zero. I.e., this should now evoke a warning: printf 1234 > k && (dd bs=1 skip=2 count=0 && dd bs=1 skip=3) < k _______________________________________________ Bug-coreutils mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-coreutils
