Anonymous committed f531e46

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 <>
Tested-by: Johannes Sixt <>
Signed-off-by: Shawn O. Pearce <>

  • Participants
  • Parent commits cead78e

Comments (0)

Files changed (1)

 		} 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 {}} {