Re: dd(1) wording and style
Hi Jan, Jan Stary wrote on Sat, Feb 15, 2020 at 10:51:28AM +0100: > On Feb 14 17:37:27, schwa...@usta.de wrote: >> Jason McIntyre wrote on Fri, Feb 14, 2020 at 07:28:59AM +: >>> On Thu, Feb 13, 2020 at 11:25:07PM +0100, Jan Stary wrote: -.It Cm seek= Ns Ar n +.It Cm seek Ns = Ns Ar n Seek .Ar n blocks from the beginning of the output before copying. -On non-tape devices, an -.Xr lseek 2 -operation is used. -Otherwise, existing blocks are read and the data discarded. -If the user does not have read permission for the tape, it is positioned -using the tape +On a tape device, existing blocks are read and the data discarded; +if the user does not have read permission for the tape, +it is positioned using the tape .Xr ioctl 2 function calls. +On all other devices devices, an +.Xr lseek 2 +operation is used. If the seek operation is past the end of file, space from the current end of file to the specified offset is filled with blocks of NUL bytes. >>> i think this change is ok. however i think non-tape is clearer than "on >>> all other devices". it's not a biggie, but i think the current stress on >>> non-tape devices is probably intentional. >> The patch is misleading. The sentence "If the seek operation is >> past the end of file..." only applies to tape devices, so it must >> not follow a sentence about lseek(2). > Why does it only apply to tape devices? > dd if=/dev/zero of=file bs=1 seek=10 count=1 > will seek 10 bytes into the output (filling it with zeros) > and then write the 1 byte from input, as intended. > -rw-r--r-- 1 hans wheel 11 Feb 15 10:50 file You are right, lseek(2) also behaves that way, as documented: The lseek() function allows the file offset to be set beyond the end of the existing end-of-file of the file. If data is later written at this point, subsequent reads of the data in the gap return bytes of zeros (until data is actually written into the gap). However, the reordering is still unfortunate because it would no longer be clear that filling the gap also applies to tape devices. That's what the dd(1) manual needs to explain because that's what dd(1) actually implements. Documenting lseek(2) in the dd(1) manual page, on the other hand, isn't really needed. I'm not convinced that the current text for seek= needs further changes. Yours, Ingo
Re: dd(1) wording and style
Hi, On Feb 14 17:37:27, schwa...@usta.de wrote: > Hi, > > Jason McIntyre wrote on Fri, Feb 14, 2020 at 07:28:59AM +: > > On Thu, Feb 13, 2020 at 11:25:07PM +0100, Jan Stary wrote: > > >> -.It Cm seek= Ns Ar n > >> +.It Cm seek Ns = Ns Ar n > >> Seek > >> .Ar n > >> blocks from the beginning of the output before copying. > >> -On non-tape devices, an > >> -.Xr lseek 2 > >> -operation is used. > >> -Otherwise, existing blocks are read and the data discarded. > >> -If the user does not have read permission for the tape, it is positioned > >> -using the tape > >> +On a tape device, existing blocks are read and the data discarded; > >> +if the user does not have read permission for the tape, > >> +it is positioned using the tape > >> .Xr ioctl 2 > >> function calls. > >> +On all other devices devices, an > >> +.Xr lseek 2 > >> +operation is used. > >> If the seek operation is past the end of file, space from the current > >> end of file to the specified offset is filled with blocks of NUL bytes. > > > i think this change is ok. however i think non-tape is clearer than "on > > all other devices". it's not a biggie, but i think the current stress on > > non-tape devices is probably intentional. > > The patch is misleading. The sentence "If the seek operation is > past the end of file..." only applies to tape devices, so it must > not follow a sentence about lseek(2). Why does it only apply to tape devices? dd if=/dev/zero of=file bs=1 seek=10 count=1 will seek 10 bytes into the output (filling it with zeros) and then write the 1 byte from input, as intended. -rw-r--r-- 1 hans wheel 11 Feb 15 10:50 file Jan
Re: dd(1) wording and style
On Fri, Feb 14, 2020 at 05:37:27PM +0100, Ingo Schwarze wrote: > Hi, > > Jason McIntyre wrote on Fri, Feb 14, 2020 at 07:28:59AM +: > > On Thu, Feb 13, 2020 at 11:25:07PM +0100, Jan Stary wrote: > > >> -.It Cm seek= Ns Ar n > >> +.It Cm seek Ns = Ns Ar n > >> Seek > >> .Ar n > >> blocks from the beginning of the output before copying. > >> -On non-tape devices, an > >> -.Xr lseek 2 > >> -operation is used. > >> -Otherwise, existing blocks are read and the data discarded. > >> -If the user does not have read permission for the tape, it is positioned > >> -using the tape > >> +On a tape device, existing blocks are read and the data discarded; > >> +if the user does not have read permission for the tape, > >> +it is positioned using the tape > >> .Xr ioctl 2 > >> function calls. > >> +On all other devices devices, an > >> +.Xr lseek 2 > >> +operation is used. > >> If the seek operation is past the end of file, space from the current > >> end of file to the specified offset is filled with blocks of NUL bytes. > > > i think this change is ok. however i think non-tape is clearer than "on > > all other devices". it's not a biggie, but i think the current stress on > > non-tape devices is probably intentional. > > The patch is misleading. The sentence "If the seek operation is > past the end of file..." only applies to tape devices, so it must > not follow a sentence about lseek(2). > > I'm not convinced the text needs to be changed. > > The existing order makes sense because the non-tape case can be > handled quickly, and then all the remaining complicated explanations > apply to tapes only. > > Or what would you want to change, and why? > i understand. so i agree with your assessment (i failed to read further into the text!) > > >> @@ -135,14 +137,10 @@ Otherwise, input data is read and discar > >> For pipes, the correct number of bytes is read. > >> For all other devices, the correct number of blocks is read without > >> distinguishing between a partial or complete block being read. > >> -.It Xo > >> -.Sm off > >> -.Cm status= Ar value > >> -.Sm on > >> -.Xc > >> -Where > >> +.It Cm status Ns = Ns Ar value > >> +where > > > you're correct that "Where" doesn;t really start a sentence, but this is > > sentence start position. using a small letter is also incorrect. > > > > in all honesty i would leave this, because it is not easy to rewrite in > > a way that sounds natural. but maybe > > > > The > > .Ar value > > parameter is one of the symbols from the following list: > > That would look ugly by causing the line to wrap, but what about > the patch below? > line wrap? anyway, i'm ok with your diff, but in all honesty, i'd just get over the fact that it isn;t quite lovely, and just start .Ar value is... but i'm fine with your approach too. jmc > Yours, > Ingo > > > Index: dd.1 > === > RCS file: /cvs/src/bin/dd/dd.1,v > retrieving revision 1.36 > diff -u -r1.36 dd.1 > --- dd.1 14 Feb 2020 15:55:57 - 1.36 > +++ dd.1 14 Feb 2020 16:33:23 - > @@ -136,9 +136,9 @@ > For all other devices, the correct number of blocks is read without > distinguishing between a partial or complete block being read. > .It Cm status Ns = Ns Ar value > -Where > +The > .Ar value > -is one of the symbols from the following list. > +is one of the symbols from the following list: > .Bl -tag -width unblock > .It Cm noxfer > Do not print the transfer statistics as the last line of status output. > @@ -147,9 +147,9 @@ > Error messages are shown; informational messages are not. > .El > .It Cm conv Ns = Ns Ar value Ns Op , Ns Ar value ... > -Where > +Each > .Ar value > -is one of the symbols from the following list. > +is one of the symbols from the following list: > .Bl -tag -width unblock > .It Cm ascii > The same as the >
Re: dd(1) wording and style
Hi, Jason McIntyre wrote on Fri, Feb 14, 2020 at 07:28:59AM +: > On Thu, Feb 13, 2020 at 11:25:07PM +0100, Jan Stary wrote: >> -.It Cm seek= Ns Ar n >> +.It Cm seek Ns = Ns Ar n >> Seek >> .Ar n >> blocks from the beginning of the output before copying. >> -On non-tape devices, an >> -.Xr lseek 2 >> -operation is used. >> -Otherwise, existing blocks are read and the data discarded. >> -If the user does not have read permission for the tape, it is positioned >> -using the tape >> +On a tape device, existing blocks are read and the data discarded; >> +if the user does not have read permission for the tape, >> +it is positioned using the tape >> .Xr ioctl 2 >> function calls. >> +On all other devices devices, an >> +.Xr lseek 2 >> +operation is used. >> If the seek operation is past the end of file, space from the current >> end of file to the specified offset is filled with blocks of NUL bytes. > i think this change is ok. however i think non-tape is clearer than "on > all other devices". it's not a biggie, but i think the current stress on > non-tape devices is probably intentional. The patch is misleading. The sentence "If the seek operation is past the end of file..." only applies to tape devices, so it must not follow a sentence about lseek(2). I'm not convinced the text needs to be changed. The existing order makes sense because the non-tape case can be handled quickly, and then all the remaining complicated explanations apply to tapes only. Or what would you want to change, and why? >> @@ -135,14 +137,10 @@ Otherwise, input data is read and discar >> For pipes, the correct number of bytes is read. >> For all other devices, the correct number of blocks is read without >> distinguishing between a partial or complete block being read. >> -.It Xo >> -.Sm off >> -.Cm status= Ar value >> -.Sm on >> -.Xc >> -Where >> +.It Cm status Ns = Ns Ar value >> +where > you're correct that "Where" doesn;t really start a sentence, but this is > sentence start position. using a small letter is also incorrect. > > in all honesty i would leave this, because it is not easy to rewrite in > a way that sounds natural. but maybe > > The > .Ar value > parameter is one of the symbols from the following list: That would look ugly by causing the line to wrap, but what about the patch below? Yours, Ingo Index: dd.1 === RCS file: /cvs/src/bin/dd/dd.1,v retrieving revision 1.36 diff -u -r1.36 dd.1 --- dd.114 Feb 2020 15:55:57 - 1.36 +++ dd.114 Feb 2020 16:33:23 - @@ -136,9 +136,9 @@ For all other devices, the correct number of blocks is read without distinguishing between a partial or complete block being read. .It Cm status Ns = Ns Ar value -Where +The .Ar value -is one of the symbols from the following list. +is one of the symbols from the following list: .Bl -tag -width unblock .It Cm noxfer Do not print the transfer statistics as the last line of status output. @@ -147,9 +147,9 @@ Error messages are shown; informational messages are not. .El .It Cm conv Ns = Ns Ar value Ns Op , Ns Ar value ... -Where +Each .Ar value -is one of the symbols from the following list. +is one of the symbols from the following list: .Bl -tag -width unblock .It Cm ascii The same as the
Re: dd(1) wording and style
Hi, Jason McIntyre wrote on Fri, Feb 14, 2020 at 07:28:59AM +: > On Thu, Feb 13, 2020 at 11:25:07PM +0100, Jan Stary wrote: >> * Fix a factual error in the description of bs: it does not >> supersede ibs/obs, dd will error out when both are specified. > i don;t want to comment on this change In fact, that's a bug in the code. POSIX requires: bs=expr Set both input and output block sizes to expr bytes, superseding ibs= and obs=. (see https://pubs.opengroup.org/onlinepubs/9699919799/utilities/dd.html ) Yours, Ingo
Re: dd(1) wording and style
On Thu, Feb 13, 2020 at 11:25:07PM +0100, Jan Stary wrote: > This diff changes the dd(1) manpage in the following ways: > morning. > * Replace "It Cm if= Ns Ar file" with "It Cm if Ns = Ns Ar file" > and similarly for others. The operand is "if", not "if="; > the "Ns = Ns" might be a slightly excessive markup, > but common: grep -Fr 'Ns = Ns' /usr/share/man | wc -l > and is symmetric around the = > yes, it is common. and preferred, i think. > * Fix a factual error in the description of bs: it does not > supersede ibs/obs, dd will error out when both are specified. > i don;t want to comment on this change i'll make some comments inline though: > * "On non-tape devices ... Otherwise ..." is a convoluted way > to say "tape"; describe tape first and remove the double negative. > > * Say "It Cm status Ns = Ns Ar value" instead of > > .It Xo > .Sm off > .Cm status= Ar value > .Sm on > .Xc > > * "Where every value" is not a beginning of a sentence. > > * Tweak the wording of osync: regular-sized output block > is enforced in every case, drop the "if not a multiple". > > Jan > > > Index: dd.1 > === > RCS file: /cvs/src/bin/dd/dd.1,v > retrieving revision 1.35 > diff -u -p -r1.35 dd.1 > --- dd.1 16 Feb 2019 17:01:24 - 1.35 > +++ dd.1 13 Feb 2020 21:45:56 - > @@ -57,11 +57,11 @@ and truncated input records to the stand > .Pp > The following operands are available: > .Bl -tag -width of=file > -.It Cm if= Ns Ar file > +.It Cm if Ns = Ns Ar file > Read input from > .Ar file > instead of the standard input. > -.It Cm of= Ns Ar file > +.It Cm of Ns = Ns Ar file > Write output to > .Ar file > instead of the standard output. > @@ -72,22 +72,24 @@ If an initial portion of the output file > .Cm seek > operand), > the output file is truncated at that point. > -.It Cm ibs= Ns Ar n > +.It Cm ibs Ns = Ns Ar n > Set the input block size to > .Ar n > bytes instead of the default 512. > -.It Cm obs= Ns Ar n > +.It Cm obs Ns = Ns Ar n > Set the output block size to > .Ar n > bytes instead of the default 512. > -.It Cm bs= Ns Ar n > +.It Cm bs Ns = Ns Ar n > Set both the input and output block size to > .Ar n > -bytes, superseding the > +bytes. > +It is an error to specify both > +.Cm bs > +and either of > .Cm ibs > -and > -.Cm obs > -operands. > +or > +.Cm obs . > If no conversion values other than > .Cm noerror , > .Cm notrunc , > @@ -95,36 +97,36 @@ or > .Cm sync > are specified, then each input block is copied to the output as a > single block without any aggregation of short blocks. > -.It Cm cbs= Ns Ar n > +.It Cm cbs Ns = Ns Ar n > Set the conversion record size to > .Ar n > bytes. > The conversion record size is required by the record oriented conversion > values. > -.It Cm count= Ns Ar n > +.It Cm count Ns = Ns Ar n > Copy only > .Ar n > input blocks. > -.It Cm files= Ns Ar n > +.It Cm files Ns = Ns Ar n > Copy > .Ar n > input files before terminating. > This operand is only applicable when the input device is a tape. > -.It Cm seek= Ns Ar n > +.It Cm seek Ns = Ns Ar n > Seek > .Ar n > blocks from the beginning of the output before copying. > -On non-tape devices, an > -.Xr lseek 2 > -operation is used. > -Otherwise, existing blocks are read and the data discarded. > -If the user does not have read permission for the tape, it is positioned > -using the tape > +On a tape device, existing blocks are read and the data discarded; > +if the user does not have read permission for the tape, > +it is positioned using the tape > .Xr ioctl 2 > function calls. > +On all other devices devices, an > +.Xr lseek 2 > +operation is used. i think this change is ok. however i think non-tape is clearer than "on all other devices". it's not a biggie, but i think the current stress on non-tape devices is probably intentional. > If the seek operation is past the end of file, space from the current > end of file to the specified offset is filled with blocks of NUL bytes. > -.It Cm skip= Ns Ar n > +.It Cm skip Ns = Ns Ar n > Skip > .Ar n > blocks from the beginning of the input before copying. > @@ -135,14 +137,10 @@ Otherwise, input data is read and discar > For pipes, the correct number of bytes is read. > For all other devices, the correct number of blocks is read without > distinguishing between a partial or complete block being read. > -.It Xo > -.Sm off > -.Cm status= Ar value > -.Sm on > -.Xc > -Where > +.It Cm status Ns = Ns Ar value > +where you're correct that "Where" doesn;t really start a sentence, but this is sentence start position. using a small letter is also incorrect. in all honesty i would leave this, because it is not easy to rewrite in a way that sounds natural. but maybe The .Ar value parameter is one of the symbols from the following list: > .Ar value > -is one of the symbols from the followin
Re: dd(1) wording and style
On Feb 13 23:25:07, h...@stare.cz wrote: > This diff changes the dd(1) manpage in the following ways: > > * Replace "It Cm if= Ns Ar file" with "It Cm if Ns = Ns Ar file" > and similarly for others. The operand is "if", not "if="; > the "Ns = Ns" might be a slightly excessive markup, > but common: grep -Fr 'Ns = Ns' /usr/share/man | wc -l > and is symmetric around the = > > * Fix a factual error in the description of bs: it does not > supersede ibs/obs, dd will error out when both are specified. > > * "On non-tape devices ... Otherwise ..." is a convoluted way > to say "tape"; describe tape first and remove the double negative. > > * Say "It Cm status Ns = Ns Ar value" instead of > > .It Xo > .Sm off > .Cm status= Ar value > .Sm on > .Xc > > * "Where every value" is not a beginning of a sentence. > > * Tweak the wording of osync: regular-sized output block > is enforced in every case, drop the "if not a multiple". > > Jan > > > Index: dd.1 > === > RCS file: /cvs/src/bin/dd/dd.1,v > retrieving revision 1.35 > diff -u -p -r1.35 dd.1 > --- dd.1 16 Feb 2019 17:01:24 - 1.35 > +++ dd.1 13 Feb 2020 21:45:56 - > @@ -57,11 +57,11 @@ and truncated input records to the stand > .Pp > The following operands are available: > .Bl -tag -width of=file > -.It Cm if= Ns Ar file > +.It Cm if Ns = Ns Ar file > Read input from > .Ar file > instead of the standard input. > -.It Cm of= Ns Ar file > +.It Cm of Ns = Ns Ar file > Write output to > .Ar file > instead of the standard output. > @@ -72,22 +72,24 @@ If an initial portion of the output file > .Cm seek > operand), > the output file is truncated at that point. > -.It Cm ibs= Ns Ar n > +.It Cm ibs Ns = Ns Ar n > Set the input block size to > .Ar n > bytes instead of the default 512. > -.It Cm obs= Ns Ar n > +.It Cm obs Ns = Ns Ar n > Set the output block size to > .Ar n > bytes instead of the default 512. > -.It Cm bs= Ns Ar n > +.It Cm bs Ns = Ns Ar n > Set both the input and output block size to > .Ar n > -bytes, superseding the > +bytes. > +It is an error to specify both > +.Cm bs > +and either of > .Cm ibs > -and > -.Cm obs > -operands. > +or > +.Cm obs . > If no conversion values other than > .Cm noerror , > .Cm notrunc , > @@ -95,36 +97,36 @@ or > .Cm sync > are specified, then each input block is copied to the output as a > single block without any aggregation of short blocks. > -.It Cm cbs= Ns Ar n > +.It Cm cbs Ns = Ns Ar n > Set the conversion record size to > .Ar n > bytes. > The conversion record size is required by the record oriented conversion > values. > -.It Cm count= Ns Ar n > +.It Cm count Ns = Ns Ar n > Copy only > .Ar n > input blocks. > -.It Cm files= Ns Ar n > +.It Cm files Ns = Ns Ar n > Copy > .Ar n > input files before terminating. > This operand is only applicable when the input device is a tape. > -.It Cm seek= Ns Ar n > +.It Cm seek Ns = Ns Ar n > Seek > .Ar n > blocks from the beginning of the output before copying. > -On non-tape devices, an > -.Xr lseek 2 > -operation is used. > -Otherwise, existing blocks are read and the data discarded. > -If the user does not have read permission for the tape, it is positioned > -using the tape > +On a tape device, existing blocks are read and the data discarded; > +if the user does not have read permission for the tape, > +it is positioned using the tape > .Xr ioctl 2 > function calls. > +On all other devices devices, an devices devices sorry > +.Xr lseek 2 > +operation is used. > If the seek operation is past the end of file, space from the current > end of file to the specified offset is filled with blocks of NUL bytes. > -.It Cm skip= Ns Ar n > +.It Cm skip Ns = Ns Ar n > Skip > .Ar n > blocks from the beginning of the input before copying. > @@ -135,14 +137,10 @@ Otherwise, input data is read and discar > For pipes, the correct number of bytes is read. > For all other devices, the correct number of blocks is read without > distinguishing between a partial or complete block being read. > -.It Xo > -.Sm off > -.Cm status= Ar value > -.Sm on > -.Xc > -Where > +.It Cm status Ns = Ns Ar value > +where > .Ar value > -is one of the symbols from the following list. > +is one of following. > .Bl -tag -width unblock > .It Cm noxfer > Do not print the transfer statistics as the last line of status output. > @@ -150,15 +148,10 @@ Do not print the transfer statistics as > Do not print the status output. > Error messages are shown; informational messages are not. > .El > -.It Xo > -.Sm off > -.Cm conv= Ar value Oo , > -.Sm on > -.Ar value ... Oc > -.Xc > -Where > +.It Cm conv Ns = Ns Ar value Ns Op , Ns Ar value , Ns ... > +where every > .Ar value > -is one of the symbols from the following list. > +is one of the following. > .Bl -tag -width unblock > .It Cm ascii > The same as the > @@ -235,13 +228,11 @@
dd(1) wording and style
This diff changes the dd(1) manpage in the following ways: * Replace "It Cm if= Ns Ar file" with "It Cm if Ns = Ns Ar file" and similarly for others. The operand is "if", not "if="; the "Ns = Ns" might be a slightly excessive markup, but common: grep -Fr 'Ns = Ns' /usr/share/man | wc -l and is symmetric around the = * Fix a factual error in the description of bs: it does not supersede ibs/obs, dd will error out when both are specified. * "On non-tape devices ... Otherwise ..." is a convoluted way to say "tape"; describe tape first and remove the double negative. * Say "It Cm status Ns = Ns Ar value" instead of .It Xo .Sm off .Cm status= Ar value .Sm on .Xc * "Where every value" is not a beginning of a sentence. * Tweak the wording of osync: regular-sized output block is enforced in every case, drop the "if not a multiple". Jan Index: dd.1 === RCS file: /cvs/src/bin/dd/dd.1,v retrieving revision 1.35 diff -u -p -r1.35 dd.1 --- dd.116 Feb 2019 17:01:24 - 1.35 +++ dd.113 Feb 2020 21:45:56 - @@ -57,11 +57,11 @@ and truncated input records to the stand .Pp The following operands are available: .Bl -tag -width of=file -.It Cm if= Ns Ar file +.It Cm if Ns = Ns Ar file Read input from .Ar file instead of the standard input. -.It Cm of= Ns Ar file +.It Cm of Ns = Ns Ar file Write output to .Ar file instead of the standard output. @@ -72,22 +72,24 @@ If an initial portion of the output file .Cm seek operand), the output file is truncated at that point. -.It Cm ibs= Ns Ar n +.It Cm ibs Ns = Ns Ar n Set the input block size to .Ar n bytes instead of the default 512. -.It Cm obs= Ns Ar n +.It Cm obs Ns = Ns Ar n Set the output block size to .Ar n bytes instead of the default 512. -.It Cm bs= Ns Ar n +.It Cm bs Ns = Ns Ar n Set both the input and output block size to .Ar n -bytes, superseding the +bytes. +It is an error to specify both +.Cm bs +and either of .Cm ibs -and -.Cm obs -operands. +or +.Cm obs . If no conversion values other than .Cm noerror , .Cm notrunc , @@ -95,36 +97,36 @@ or .Cm sync are specified, then each input block is copied to the output as a single block without any aggregation of short blocks. -.It Cm cbs= Ns Ar n +.It Cm cbs Ns = Ns Ar n Set the conversion record size to .Ar n bytes. The conversion record size is required by the record oriented conversion values. -.It Cm count= Ns Ar n +.It Cm count Ns = Ns Ar n Copy only .Ar n input blocks. -.It Cm files= Ns Ar n +.It Cm files Ns = Ns Ar n Copy .Ar n input files before terminating. This operand is only applicable when the input device is a tape. -.It Cm seek= Ns Ar n +.It Cm seek Ns = Ns Ar n Seek .Ar n blocks from the beginning of the output before copying. -On non-tape devices, an -.Xr lseek 2 -operation is used. -Otherwise, existing blocks are read and the data discarded. -If the user does not have read permission for the tape, it is positioned -using the tape +On a tape device, existing blocks are read and the data discarded; +if the user does not have read permission for the tape, +it is positioned using the tape .Xr ioctl 2 function calls. +On all other devices devices, an +.Xr lseek 2 +operation is used. If the seek operation is past the end of file, space from the current end of file to the specified offset is filled with blocks of NUL bytes. -.It Cm skip= Ns Ar n +.It Cm skip Ns = Ns Ar n Skip .Ar n blocks from the beginning of the input before copying. @@ -135,14 +137,10 @@ Otherwise, input data is read and discar For pipes, the correct number of bytes is read. For all other devices, the correct number of blocks is read without distinguishing between a partial or complete block being read. -.It Xo -.Sm off -.Cm status= Ar value -.Sm on -.Xc -Where +.It Cm status Ns = Ns Ar value +where .Ar value -is one of the symbols from the following list. +is one of following. .Bl -tag -width unblock .It Cm noxfer Do not print the transfer statistics as the last line of status output. @@ -150,15 +148,10 @@ Do not print the transfer statistics as Do not print the status output. Error messages are shown; informational messages are not. .El -.It Xo -.Sm off -.Cm conv= Ar value Oo , -.Sm on -.Ar value ... Oc -.Xc -Where +.It Cm conv Ns = Ns Ar value Ns Op , Ns Ar value , Ns ... +where every .Ar value -is one of the symbols from the following list. +is one of the following. .Bl -tag -width unblock .It Cm ascii The same as the @@ -235,13 +228,11 @@ The value is not supported for tapes. .It Cm osync Pad the final output block to the full output block size. -If the input file is not a multiple of the output block size -after conversion, this conversion forces the final output block -to be the same size as preceding blocks for use on devices that require +This forces the final output block to be the same size +as preceding block