On 2021-01-09 at 21:49:22, David Aguilar wrote: > The use of "\r\?" in sed is not portable to macOS and possibly > other unix flavors. > > Replace "\r" with a substituted variable that contains "\r". > Replace "\?" with "\{0,1\}". Ah, yes, this is true. The statement about "\r" is also true for Linux with POSIXLY_CORRECT, IIRC. > Signed-off-by: David Aguilar <davvid@xxxxxxxxx> > --- > This is based on top of fc/mergetool-automerge and can be squashed in > (with the addition of my sign-off) if desired. > > Let me know if you'd prefer a separate patch. I figured we'd want > a squash to preserve bisectability. > > git-mergetool.sh | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) > > diff --git a/git-mergetool.sh b/git-mergetool.sh > index a44afd3822..12c3e83aa7 100755 > --- a/git-mergetool.sh > +++ b/git-mergetool.sh > @@ -243,9 +243,16 @@ auto_merge () { > git merge-file --diff3 --marker-size=7 -q -p "$LOCAL" "$BASE" "$REMOTE" >"$DIFF3" > if test -s "$DIFF3" > then > - sed -e '/^<<<<<<< /,/^||||||| /d' -e '/^=======\r\?$/,/^>>>>>>> /d' "$DIFF3" >"$BASE" > - sed -e '/^||||||| /,/^>>>>>>> /d' -e '/^<<<<<<< /d' "$DIFF3" >"$LOCAL" > - sed -e '/^<<<<<<< /,/^=======\r\?$/d' -e '/^>>>>>>> /d' "$DIFF3" >"$REMOTE" > + cr=$(printf '\x0d') Unfortunately, printf is not specified by POSIX to take hex escapes, so this, too is nonportable. We are unfortunately allowed to use only octal escapes (yuck). However, we can write this: cr=$(printf '\r') or cr=$(printf '\015') I think the former is clearer, since that's what we were writing before. -- brian m. carlson (he/him or they/them) Houston, Texas, US
Attachment:
signature.asc
Description: PGP signature