svn commit: r249811 - head/bin/dd

Konstantin Belousov kib at FreeBSD.org
Tue Apr 23 16:08:25 UTC 2013


Author: kib
Date: Tue Apr 23 16:08:24 2013
New Revision: 249811
URL: http://svnweb.freebsd.org/changeset/base/249811

Log:
  Literally follow POSIX:
  If the bs= expr operand is specified and no conversions other than sync,
  noerror, or notrunc are requested, the data returned from each input
  block shall be written as a separate output block.
  
  In particular, when both bs=size and conv=sparce were specified, the
  resulted file was fully filled, instead of sparce.
  
  PR:	standards/177742
  Submitted by:	Matthew Rezny <mrezny at hexaneinc.com>
  MFC after:	2 weeks

Modified:
  head/bin/dd/dd.c

Modified: head/bin/dd/dd.c
==============================================================================
--- head/bin/dd/dd.c	Tue Apr 23 14:36:44 2013	(r249810)
+++ head/bin/dd/dd.c	Tue Apr 23 16:08:24 2013	(r249811)
@@ -358,7 +358,7 @@ dd_in(void)
 		 * than noerror, notrunc or sync are specified, the block
 		 * is output without buffering as it is read.
 		 */
-		if (ddflags & C_BS) {
+		if ((ddflags & ~(C_NOERROR | C_NOTRUNC | C_SYNC)) == C_BS) {
 			out.dbcnt = in.dbcnt;
 			dd_out(1);
 			in.dbcnt = 0;


More information about the svn-src-head mailing list