First, if we invalidate the layout for all rows (i.e. from row 0 on),
we were calling undolayout with an empty string as the argument.
Second, the comparison in make_disporder that tests if we need to
call update_arcrows was the wrong way around.
Signed-off-by: Paul Mackerras <paulus@samba.org>
while {$a != 0 && [lindex $varcrow($v) $a] eq {}} {
set a [lindex $vupptr($v) $a]
}
- undolayout [lindex $varcrow($v) $a]
+ set r [expr {$a == 0? 0: [lindex $varcrow($v) $a]}]
+ undolayout $r
}
}
set la $varcmod($curview)
set lrow [lindex $varcrow($curview) $la]
if {$la == 0 || $lrow eq {} || \
- $end < $lrow + [llength $varccommits($curview,$la)]} {
+ $end > $lrow + [llength $varccommits($curview,$la)]} {
update_arcrows $curview
}
set ai [bsearch $vrownum($curview) $start]