Teach git-gui to use --primer. Also teach it to check diff's exit code instead of relying on piped output, which could be altered as a consequence of primer options. Signed-off-by: Keith Cascio <keith@xxxxxxxxxxx> --- lib/diff.tcl | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/diff.tcl b/lib/diff.tcl index bbbf15c..0e1e4a3 100644 --- a/lib/diff.tcl +++ b/lib/diff.tcl @@ -276,6 +276,8 @@ proc start_show_diff {cont_info {add_opts {}}} { } lappend cmd -p + lappend cmd --exit-code + lappend cmd --primer lappend cmd --no-color if {$repo_config(gui.diffcontext) >= 1} { lappend cmd "-U$repo_config(gui.diffcontext)" @@ -310,6 +312,7 @@ proc read_diff {fd cont_info} { global ui_diff diff_active global is_3way_diff is_conflict_diff current_diff_header global current_diff_queue + global errorCode $ui_diff conf -state normal while {[gets $fd line] >= 0} { @@ -397,7 +400,9 @@ proc read_diff {fd cont_info} { $ui_diff conf -state disabled if {[eof $fd]} { - close $fd + fconfigure $fd -blocking 1 + catch { close $fd } err + set diff_exit_status $errorCode if {$current_diff_queue ne {}} { advance_diff_queue $cont_info @@ -413,7 +418,7 @@ proc read_diff {fd cont_info} { } ui_ready - if {[$ui_diff index end] eq {2.0}} { + if {$diff_exit_status eq "NONE"} { handle_empty_diff } set callback [lindex $cont_info 1] -- 1.6.1 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html