gitk: Fix a couple of bugs
authorPaul Mackerras <paulus@samba.org>
Tue, 11 Dec 2007 09:09:53 +0000 (20:09 +1100)
committerPaul Mackerras <paulus@samba.org>
Tue, 11 Dec 2007 09:09:53 +0000 (20:09 +1100)
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>
gitk

diff --git a/gitk b/gitk
index 20e84e3b8b91f93886797ac6f8fa59b0bdd18a64..9d1dd77d6b22f157d5f50cbf468ef3d84ce3a169 100755 (executable)
--- a/gitk
+++ b/gitk
@@ -600,7 +600,8 @@ proc modify_arc {v a} {
        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
     }
 }
 
@@ -739,7 +740,7 @@ proc make_disporder {start end} {
     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]