Re: [PATCH] git-gui: fix commit message comment line removal with older Tcl versions

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

 



On Sun, Feb 28, 2021 at 6:12 PM Eric Sunshine <sunshine@xxxxxxxxxxxxxx> wrote:
> git-gui was recently enhanced to remove comment lines from the commit
> message similar to the way git-commit does so (see `core.commentchar`
> and `git-stripspace`). Unfortunately, that change employs features which
> are unavailable in older versions of Tcl, such as 8.5.9 which is shipped
> with macOS (10.13), with the result that the commit operation errors
> out.
>
> There are two problems. First, to add a new informational message to the
> main window, it invokes string method `cat` which does not exist in
> older Tcl. Fix this by using `append` instead.
>
> Second, when passing the commit message through git-stripspace, it
> closes the "write" side of the bidirectional pipe after sending the
> commit message to git-stripspace in order to avoid deadlock before
> reading back the result, however the ability to close only one end of a
> pipe is not present in older Tcl. Fix this by employing a temporary file
> to received the output of git-stripspace.

s/received/receive/

(I noticed this immediately after sending the patch, of course.)

> Signed-off-by: Eric Sunshine <sunshine@xxxxxxxxxxxxxx>
> ---
> diff --git a/lib/commit.tcl b/lib/commit.tcl
> @@ -142,16 +142,18 @@ proc setup_commit_encoding {msg_wt {quiet 0}} {
>  proc strip_msg {msg} {
> -       set cmd [concat [list | ] [_git_cmd stripspace] --strip-comments]
> +       set strip_p [gitdir GITGUI_EDITMSG_STRIP]
> +       set cmd [concat [list | ] [_git_cmd stripspace] --strip-comments [list >$strip_p]]
>         _trace_exec $cmd
> -       set fd [open $cmd r+]
> +       set fd [open $cmd w]
>         fconfigure $fd -translation binary -encoding utf-8
> -
>         puts -nonewline $fd $msg
> -       close $fd w
> -       set result [read $fd]
>         close $fd
>
> +       set fd [open $strip_p r]

I had meant to insert:

    fconfigure $fd -translation binary -encoding utf-8

here but forgot. Would you like me to resend the patch or can you
tweak it locally?

> +       set result [read $fd]
> +       close $fd
> +       file delete $strip_p
>         return $result
>  }



[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