Rationalizing sed -i/-I (in-place editing) argument handling

Steffen Nurpmeso steffen at sdaoden.eu
Mon Mar 8 21:19:57 UTC 2021


Ian Lepore wrote in
 <8e9983a4243d158789029ec8b16837b35ca4451a.camel at freebsd.org>:
 |On Mon, 2021-03-08 at 15:13 -0500, Ed Maste wrote:
 |> A relatively minor but longstanding incompatibility between FreeBSD
 |> and many other systems is the way sed handles backup files for
 |> in-place editing -- sed's -I and -i options. GNU sed and other BSDs
 |> accept an optional argument: -I.bak will save a backup file with a
 |> .bak extension, and -I with no argument will not create a backup
 |> file.
 |> FreeBSD currently accepts either -I.bak or -I .bak to save a backup
 |> with the given extension, and -I "" (an empty argument) to specify no
 |> backup.
 |> 
 |> I've been tripped up by this in the past and I know many others have.
 |> Most recently tobik@  filed PR 254091 for this. Now, I think a single
 ...
 |> change to make -i/-I to be compatible with other sed implementations
 |> in one step is too much of a POLA violation, but I think it can
 |> reasonably be done in stages:
 |> 
 |> 1. Update the man page to indicate that -i/-I should not have a space
 |> between the flag and the extension. This is compatible with current
 |> FreeBSD sed, other BSDs sed, GNU sed, and my proposed changes below.
 |> No backup is still a special case and remains as -I "".
 ...
 |As someone who has to take care of common software that runs on
 |everything from freebsd 8 through -current, I HATE the very idea of
 |this.  If we keep whittling away at the backwards compatibility freebsd
 |is so famous for, I'll have abosolutely zero arguments left for why
 |$work shouldn't just switch to the much more popular and better-
 |supported linux.
 |
 |I also hate the idea of requiring no space between -I and its related
 |value.  That seems like a huge POLA violation compared to how virtually
 |every other command's options and arguments work.

I hate it too.  But just wanted to note that sccs used this (and
still does, even standardized) decades ago already (and i always
did it wrong).

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)


More information about the freebsd-hackers mailing list