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