Re: sed -i



On Fri, Mar 30, 2007 at 08:30:54PM +0300, Diomidis Spinellis wrote:
Yar Tikhiy wrote:
May I take a bit more of your time?

I've started playing with the code and noticed another gray area.
Namely a `c' command won't print the text if having 2 addresses
with the 2nd address beyond the actual end of file. For example:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BEGIN
$ jot 9 |
sed '6,15c\
text
' test
1
2
3
4
5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END

Ditto with RE's, if the 2nd RE doesn't match any line:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BEGIN
$ jot 9 | sed '/6/,/15/c\
text
' test
1
2
3
4
5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END

If we've started to delete the pattern space, we should print the
text in place of it because `c' is for `change'. BSD and GNU seds
have this bug, but Solaris sed doesn't have it. Do you think we
should fix it, too?

Thanks!


Yes, it sounds like a bug to me.

Thanks! I hope I'll make a fix for both issues soon,
it's in the works already. The issues appear related
in the code.

Note that a couple of weeks ago I
added the regression tests I originally wrote in 1992 to the FreeBSD
regression test suite. Given that you are writing test cases it would
be very nice to follow the format used in
src/tools/regression/usr.bin/sed/regress.t, so that we can add them to
the test suite.

Thank you for pointing me out at the format!
Sorry, I haven't looked at it yet, but I've noticed the tests going
into the tree and remembered that I should pay attention to writing
new regression tests and running the existing tests if I change
sed. Of course, I'll use the standard format.

--
Yar
_______________________________________________
freebsd-hackers@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@xxxxxxxxxxx"