On Sun, Nov 26, 2017 at 07:47:01PM +0000, kshe wrote: > Hi, > > I noticed a certain number of inaccuracies within the manual page for > sed. The diff below corrects to most obvious ones, although further > improvements are certainly possible. > > Additionally, the script given in the EXAMPLES section being already > quite unnecessarily contrived (as it does in twelve commands what could > be done in merely two), I took the opportunity to make it slightly > simpler and easier to read. >
morning. this diff is too much for review (at least for me anyway). could you parcel it up into some logical parts and resend? i'll make some comments inline: > Index: sed.1 > =================================================================== > RCS file: /cvs/src/usr.bin/sed/sed.1,v > retrieving revision 1.50 > diff -u -p -r1.50 sed.1 > --- sed.1 19 Jul 2017 21:28:19 -0000 1.50 > +++ sed.1 17 Nov 2017 02:50:36 -0000 > @@ -57,10 +57,9 @@ utility reads the specified files, or th > are specified, modifying the input as specified by a list of commands. > The input is then written to the standard output. > .Pp > -A single command may be specified as the first argument to > -.Nm sed . > -Multiple commands may be specified > -separated by newlines or semicolons, > +Commands are separated by newlines or semicolons and may be specified > +either as the first argument to > +.Nm ok, all the what can and what cannot go on newline stuff would make one diff. > or by using the > .Fl e > or > @@ -95,7 +94,6 @@ to the list of commands. > Append the editing commands found in the file > .Ar command_file > to the list of commands. > -The editing commands should each be listed on a separate line. > .It Fl i Ns Op Ar extension > Edit files in place, saving backups with the specified > .Ar extension . > @@ -199,7 +197,7 @@ has the following two additions to BREs: > In a context address, any character other than a backslash > .Pq Ql \e > or newline character may be used to delimit the regular expression. > -The opening delimiter should be preceded by a backslash > +The opening delimiter must be preceded by a backslash what's there is fine, honestly. modal verbs are suble; text which continually instructs "thou must" is not. > unless it is a slash. > Putting a backslash character before the delimiting character > causes the character to be treated literally. > @@ -255,7 +253,7 @@ as well as the > flag to the > .Ic s > function, > -take an optional > +take a fluff could be another diff. this seems correct. > .Ar file > parameter, > which should be separated from the function or flag by whitespace. > @@ -264,23 +262,22 @@ Files are created > before any input processing begins. > .Pp > The > -.Ic b , > -.Ic r , > -.Ic s , > -.Ic t , > -.Ic w , > -.Ic y , > +.Ar label > +argument to the > +.Ic \&: , > +.Ic b > and > -.Ic \&: > -functions all accept additional arguments. > -The synopses below indicate which arguments have to be separated from > +.Ic t > +commands may be terminated by either a newline or a semicolon, > +although the former should be prefered if portability is desired. > +.Pp > +For functions that accept additional arguments, > +the synopses below indicate which have to be separated from > the function letters by whitespace characters. > .Pp > Functions can be combined to form a > -.Em function list , > -a list of > -.Nm > -functions each followed by a newline, as follows: > +.Em function list > +as follows: > .Bd -literal -offset indent > { function > function > @@ -297,11 +294,11 @@ in which case they are applied only to l > .Em not > selected by the addresses. > .Bl -tag -width Ds > -.It [2addr] Ar function-list > +.It [2addr] Ns Ar function-list it's not possible without a space? > Execute > .Ar function-list > only when the pattern space is selected. > -.It Xo [1 addr] Ic a Ns \e > +.It Xo [1addr] Ns Ic a Ns \e > .br > .Ar text > .Xc > @@ -317,7 +314,7 @@ Branch to the > function with the specified > .Ar label . > If the label is not specified, branch to the end of the script. > -.It Xo [2addr] Ic c Ns \e > +.It Xo [2addr] Ns Ic c Ns \e > .br > .Ar text > .Xc > @@ -342,7 +339,7 @@ pattern space. > .It [2addr] Ns Ic H > Append a newline character followed by the contents of the pattern space > to the hold space. > -.It Xo [1addr] Ic i Ns \e > +.It Xo [1addr] Ns Ic i Ns \e > .br > .Ar text > .Xc > @@ -413,8 +410,8 @@ in the pattern space. > Any character other than backslash or newline can be used instead of > a slash to delimit the regular expression and the replacement. > Within the regular expression and the replacement, > -the regular expression delimiter itself can be used as > -a literal character if it is preceded by a backslash. > +the delimiter itself can be used as a literal character > +if it is preceded by a backslash. > .Pp > An ampersand > .Pq Ql & > @@ -486,10 +483,14 @@ Within > .Ar string1 > and > .Ar string2 , > -a backslash followed by any character other than a newline is that literal > -character, and a backslash followed by an > +a backslash followed by another backslash > +is replaced by a single backslash, > +a backslash followed by an > .Sq n > -is replaced by a newline character. > +is replaced by a newline character, > +and a backslash followed by the delimiting character > +is replaced by a that character, > +causing it to be treated literally. > .It [0addr] Ns Ic \&: Ns Ar label > This function does nothing; it bears a > .Ar label > @@ -522,7 +523,7 @@ output from the > function is formatted to the given width in columns. > Otherwise, > .Nm > -defaults to the terminal with, or 80 columns if the output is not a terminal. > +defaults to the terminal width, or 80 columns if the output is not a > terminal. heh. mark as "fluff" > .El > .Sh EXIT STATUS > .Ex -std sed > @@ -538,20 +539,15 @@ $ sed -n ' > /./ { > p > d > - } > +} > # Write a single empty line, then look for more empty lines. > -/^$/ p > -# Get the next line, discard the held <newline> (empty line), > -# and look for more empty lines. > +p > :Empty > -/^$/ { > - N > - s/.// > - b Empty > - } > +n > +/^$/b Empty > # Write the non-empty line before going back to search > # for the first in a set of empty lines. > - p > +p > \&' > .Ed maybe the example was trying to show a clear, step by step, example. sure you can squeeze it, but i don;t think that's the point. having said this, i'm no sed expert. if anyone else wants to comment on this diff, please do. > .Sh SEE ALSO > @@ -569,12 +565,6 @@ specification. > The flags > .Op Fl aEiru > are extensions to that specification. > -.Pp > -The use of newlines to separate multiple commands on the command line > -is non-portable; > -the use of newlines to separate multiple commands within a command file > -.Pq Fl f Ar command_file > -is portable. > .Sh HISTORY > A > .Nm > @@ -583,8 +573,6 @@ command appeared in > .Sh CAVEATS > The use of semicolons to separate multiple commands > is not permitted for the following commands: > -.Ic a , b , c , > -.Ic i , r , t , > -.Ic w , \&: , > +.Ic a , c , i , r , w > and > .Ic # . > > Regards, > > kshe > jmc