Hello, On Mon, Apr 17, 2006 at 12:02:38AM +0100, Keith Marshall wrote: > Perhaps that was an unnecessarily harsh criticism, sorry.
no problem. I'm afraid my answer was also a bit harsh: > > Second, let me remind me that we are currently in a freeze; [...] > > I wasn't suggesting that you should immediadely rush to change anything; You are right, of course. Freeze doesn't imply that we shall not say ``thank you'' if you tell us about potential problems. So: Thanks for taking care to report this. >http://www.opengroup.org/onlinepubs/009695399/utilities/sed.html > > > > | Command verbs other than {, a, b, c, i, r, t, w, :, and # can be > > | followed by a semicolon, optional <blank>s, and another command verb. > > | However, when the s command verb is used with the w flag, following > > | it with another command in this manner produces undefined results. > > Ah, I overlooked that, sorry. [...] Well, actually, it uses the term `command verb', not `command', so it is not clear whether the subsequent commands can contain addresses. So it is not so clear whether /@datadir@/p;/@docdir@/p;/@infodir@/p... is safe. But I'd blame the overall poor wording of the sed description. (The terms `command', `command verb', and `function' don't seem to be defined properly nor do thay seem to be used consistently.) > > (BTW, note that > > sed '/datarootdir/{p > > }' > > is correct according to POSIX, ... > > Are you sure about that? After all `{' and `p' are documented as two > distinct commands, and since `{' cannot be followed by semicolon and > another command, they should surely need a newline to separate them. No, the fact that the { command verb cannot be followed by semicolon means that the closing } cannot be followed by semicolon. The command is described as [2addr] {function function ... } which implies that the first `function' can start immediately after the {. To prevent a myth: the above example, though unusual, is probably portable. (Thanks to Paul for correcting me.) Have a nice day, Stepan