]> git.ipfire.org Git - thirdparty/git.git/commitdiff
git-gui: remove Tcl 8.4 workaround on 2>@1 redirection
authorMark Levedahl <mlevedahl@gmail.com>
Wed, 20 Sep 2023 21:56:14 +0000 (17:56 -0400)
committerTaylor Blau <me@ttaylorr.com>
Fri, 23 May 2025 21:04:23 +0000 (17:04 -0400)
Since b792230 ("git-gui: Show a progress meter for checking out files",
2007-07-08), git-gui includes a workaround for Tcl that does not support
using 2>@1 to redirect stderr to stdout. Tcl added such support in
8.4.7, released in 2004, and this is fully supported in all 8.5
releases.

As git-gui has a hard-coded requirement for Tcl >= 8.5, the workaround
is no longer needed. Delete it.

Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
git-gui.sh

index 3e5907a4609b1510aef71ab54f56a82eeb36e071..ca1362aa19f3b5cba0a912d6e0b07717c9dec8a6 100755 (executable)
@@ -584,24 +584,9 @@ proc git {args} {
 proc _open_stdout_stderr {cmd} {
        _trace_exec $cmd
        if {[catch {
-                       set fd [open [concat [list | ] $cmd] r]
-               } err]} {
-               if {   [lindex $cmd end] eq {2>@1}
-                   && $err eq {can not find channel named "1"}
-                       } {
-                       # Older versions of Tcl 8.4 don't have this 2>@1 IO
-                       # redirect operator.  Fallback to |& cat for those.
-                       # The command was not actually started, so its safe
-                       # to try to start it a second time.
-                       #
-                       set fd [open [concat \
-                               [list | ] \
-                               [lrange $cmd 0 end-1] \
-                               [list |& cat] \
-                               ] r]
-               } else {
-                       error $err
-               }
+               set fd [open [concat [list | ] $cmd] r]
+       } err]} {
+               error $err
        }
        fconfigure $fd -eofchar {}
        return $fd