summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbhijit Menon-Sen <ams@toroid.org>2008-06-25 16:06:50 +0530
committerShawn O. Pearce <spearce@spearce.org>2008-06-25 16:55:10 -0400
commitf531e463f0471ce41c51e19074a118482f36910f (patch)
tree76fa7cc863535fc6500778ff4134a5799d74140f
parentcead78edef6a2f1339f699cd7d656b6834707b94 (diff)
downloadgit-f531e463f0471ce41c51e19074a118482f36910f.tar.gz
git-gui: Don't select the wrong file if the last listed file is staged.
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 <ams@toroid.org> Tested-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
-rwxr-xr-xgit-gui.sh6
1 files changed, 4 insertions, 2 deletions
diff --git a/git-gui.sh b/git-gui.sh
index 980dc0b373..1bbae15a50 100755
--- a/git-gui.sh
+++ b/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 {}} {