diff options
Diffstat (limited to 'lib/blame.tcl')
-rw-r--r-- | lib/blame.tcl | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/blame.tcl b/lib/blame.tcl index 33e8489d06..33d5204f32 100644 --- a/lib/blame.tcl +++ b/lib/blame.tcl @@ -518,8 +518,10 @@ method _read_blame {fd} { set first_lno $lno while { - ![catch {set ncmit $line_commit([expr {$first_lno - 1}])}] + ![catch {set ncmit $line_commit([expr {$first_lno - 1}])}] + && ![catch {set nfile $line_file([expr {$first_lno - 1}])}] && $ncmit eq $cmit + && $nfile eq $file } { incr first_lno -1 } @@ -572,8 +574,12 @@ method _read_blame {fd} { incr blame_lines } - while {![catch {set ncmit $line_commit($lno)}] - && $ncmit eq $cmit} { + while { + ![catch {set ncmit $line_commit($lno)}] + && ![catch {set nfile $line_file($lno)}] + && $ncmit eq $cmit + && $nfile eq $file + } { $w_cgrp delete $lno.0 "$lno.0 lineend" if {$lno == $first_lno} { |