On Sun, Jul 07, 2019 at 10:12:13PM +0300, [email protected] wrote:
> ropers writes:
> > > matthew: "ed reacts differently depending whether or not it's included".
> > > can you explain how?
>
> If I recall correctly, if the trailing delimiter is _not_ included then ed
> prints the result of the substitution. Possibly only if interactive.
>
> > W/r/t Matthew's concerns, I also note that the
> > > (.,.)s/re/replacement/
> > section does mention this in its second paragraph:
> > >> If one or two of the last delimiters is omitted, then the last line
> > >> affected is printed as though the print suffix p were specified.
> > I'm not quite sure what is meant by omission of *two* of the last
> > delimiters there, but this does at least seem relevant to what we're
> > discussing here.
>
> Yes that sounds about right. Looks like some part of this behaviour is in
> documented already.
>
> The pedantic part of me likes getting this pointless thing right but the
> pedantic part of me also wants to make sure it's actually right before
> changing something that evidently works already and isn't bothering anybody.
> I managed to learn ed with the manpage as it is.
>
> It sounds like there might be a bit of confusion wrt. what does/doesn't
> happen vs. what's documented. Can the various interactions under discussion
> be actually clarified and enumerated to be sure we're not changing a minor
> mistake for a new mistake? I can do this tomorrow if nobody else jumps in but
> I'd get it wrong if I tried it now.
>
> Matthew
>
this is getting silly - we're mixing talking about how /re/ and ?re?
work as addresses and as regular expressions in other places. dropping
the trailing [/?] does not apply to regular expressions everywhere.
even if i have this wrong (to be fair, not that unlikely), we should
just concentrate on one thing at a time.
regarding how dropping two delimiters works in an 's' command, although
i'm not sure really of the reason, you can do:
1,$s/re
which effectively drops /replacement/
so here's my diff. i think we should keep it short. if there are
other cases where things can dropped, i'd rather look at them
separately.
the question for me is: posix mandates this in address ranges. our
ed behaves this way. is there a reason not to document this?
jmc
Index: ed.1
===================================================================
RCS file: /cvs/src/bin/ed/ed.1,v
retrieving revision 1.70
diff -u -r1.70 ed.1
--- ed.1 26 Apr 2018 12:18:54 -0000 1.70
+++ ed.1 7 Jul 2019 19:56:11 -0000
@@ -267,6 +267,7 @@
.Ar re .
The search wraps to the beginning of the buffer and continues down to the
current line, if necessary.
+The second slash can be omitted if it ends a line.
.Qq //
repeats the last search.
.It Pf ? Ar re ?
@@ -274,6 +275,7 @@
.Ar re .
The search wraps to the end of the buffer and continues up to the
current line, if necessary.
+The second question mark can be omitted if it ends a line.
.Qq ??
repeats the last search.
.It \&' Ns Ar lc