Re: [PATCH] fixup! mergetool: add automerge configuration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux