sed -i empty argument compatibility issue

Gary Aitken freebsd at dreamchaser.org
Tue Mar 9 17:11:56 UTC 2021


On 3/9/21 8:11 AM, Christian Weisgerber wrote:
> On 2021-03-05, Bob Proulx <bob at proulx.com> wrote:
> 
>> 4. Introduce a "sed" wrapper in PATH that intercepts the call to the
>> real sed, detects this problematic usage case, and then DTRT does the
>> right thing with it.
> 
> To save a lot of patching for the regression tests in the devel/got
> port, I added this shell function:
> 
> # compat wrapper
> sed()
> (
>          for i; do
>                  arg=$1
>                  shift
>                  case $arg in
>                  -i)     set - "$@" "$arg" '' ;;
>                  *)      set - "$@" "$arg" ;;
>                  esac
>          done
>          exec sed "$@"
> )
> 
> No, it doesn't handle all cases, but it is good enough in that context.
> ports/devel/got/files/patch-regress_cmdline_common.sh

In my case, the folks maintaining the package (FreeCAD) were more than happy
to fix the source of the problem to conform to POSIX and not use -i, but
rather write a temp file and mv it.  So with the next release it will "just
work".

Gary



More information about the freebsd-questions mailing list