aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xgit-gui.sh8
-rw-r--r--lib/commit.tcl4
-rw-r--r--lib/merge.tcl2
3 files changed, 9 insertions, 5 deletions
diff --git a/git-gui.sh b/git-gui.sh
index bbdbd35d26..75d7b9b9fc 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -621,7 +621,11 @@ proc _lappend_nice {cmd_var} {
}
proc git {args} {
- set fd [git_read $args]
+ git_redir $args {}
+}
+
+proc git_redir {cmd redir} {
+ set fd [git_read $cmd $redir]
fconfigure $fd -translation binary -encoding utf-8
set result [string trimright [read $fd] "\n"]
close $fd
@@ -1423,7 +1427,7 @@ proc PARENT {} {
return $p
}
if {$empty_tree eq {}} {
- set empty_tree [git mktree << {}]
+ set empty_tree [git_redir [list mktree] [list << {}]]
}
return $empty_tree
}
diff --git a/lib/commit.tcl b/lib/commit.tcl
index b27e37d385..bb6056d0ad 100644
--- a/lib/commit.tcl
+++ b/lib/commit.tcl
@@ -388,8 +388,8 @@ A rescan will be automatically started now.
foreach p [concat $PARENT $MERGE_HEAD] {
lappend cmd -p $p
}
- lappend cmd <$msg_p
- if {[catch {set cmt_id [eval git $cmd]} err]} {
+ set msgtxt [list <$msg_p]
+ if {[catch {set cmt_id [git_redir $cmd $msgtxt]} err]} {
catch {file delete $msg_p}
error_popup [strcat [mc "commit-tree failed:"] "\n\n$err"]
ui_status [mc "Commit failed."]
diff --git a/lib/merge.tcl b/lib/merge.tcl
index 55b4fc5ed3..44c3f93584 100644
--- a/lib/merge.tcl
+++ b/lib/merge.tcl
@@ -118,7 +118,7 @@ method _start {} {
set cmd [list git]
lappend cmd merge
lappend cmd --strategy=recursive
- lappend cmd [git fmt-merge-msg <[gitdir FETCH_HEAD]]
+ lappend cmd [git_redir [list fmt-merge-msg] [list <[gitdir FETCH_HEAD]]]
lappend cmd HEAD
lappend cmd $name
}