From: Abhijit Menon-Sen Date: Wed, 25 Jun 2008 10:36:50 GMT Subject: [PATCH] git-gui: Don't select the wrong file if the last listed file is staged. Message-ID: <20080625103650.GA20492@toroid.org> In-Reply-To: <1213308730-12707-1-git-send-email-ams@toroid.org> Johannes Sixt noticed that if the last file in the list was staged, my earlier patch would display the diff for the penultimate file, but show the file _before_ that as being selected. This was due to my misunderstanding the lno argument to show_diff. This patch fixes the problem: lno is not decremented in the special case to handle the last item in the list (though we still need to use $lno-1 to find the right path for the next diff). Signed-off-by: Abhijit Menon-Sen --- git-gui/git-gui.sh | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh index 23d7dfe..fe4a4c2 100755 --- a/git-gui/git-gui.sh +++ b/git-gui/git-gui.sh @@ -1806,14 +1806,16 @@ proc toggle_or_diff {w x y} { } else { global next_diff_p next_diff_w next_diff_i + set next_diff_w $w + if {$i < $ll} { set i [expr {$i + 1}] + set next_diff_i $i } else { + set next_diff_i $i set i [expr {$i - 1}] } - set next_diff_i $i - set next_diff_w $w set next_diff_p [lindex $file_lists($w) $i] if {$next_diff_p ne {} && $current_diff_path ne {}} { -- 1.5.6