Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
gitk: Fix bugs in setting rowfinal
author
Paul Mackerras
<paulus@samba.org>
Fri, 14 Sep 2007 23:04:11 +0000
(09:04 +1000)
committer
Paul Mackerras
<paulus@samba.org>
Fri, 14 Sep 2007 23:12:26 +0000
(09:12 +1000)
We weren't updating the rowfinal list in insertrow and removerow, so
it was getting out of sync with rowidlist, which resulted in Tcl errors.
This also optimizes the setting of rowfinal in layoutrows a bit.
Signed-off-by: Paul Mackerras <paulus@samba.org>
gitk
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
f5f3c2e
)
diff --git
a/gitk
b/gitk
index a042efe260bd62ac0f8d36e4d35dbe870ab7a2d5..fd6bbab3ed53907bc69d194ba081e1d90ba53964 100755
(executable)
--- a/
gitk
+++ b/
gitk
@@
-3008,20
+3008,21
@@
proc layoutrows {row endrow} {
set idlist {}
if {$row > 0} {
set idlist {}
if {$row > 0} {
- foreach id [lindex $rowidlist [expr {$row - 1}]] {
+ set rm1 [expr {$row - 1}]
+ foreach id [lindex $rowidlist $rm1] {
if {$id ne {}} {
lappend idlist $id
}
}
if {$id ne {}} {
lappend idlist $id
}
}
+ set final [lindex $rowfinal $rm1]
}
for {} {$row < $endrow} {incr row} {
set rm1 [expr {$row - 1}]
}
for {} {$row < $endrow} {incr row} {
set rm1 [expr {$row - 1}]
- if {$rm1 < 0 ||
[lindex $rowidlist $rm1]
eq {}} {
+ if {$rm1 < 0 ||
$idlist
eq {}} {
set idlist [make_idlist $row]
set final 1
} else {
set id [lindex $displayorder $rm1]
set idlist [make_idlist $row]
set final 1
} else {
set id [lindex $displayorder $rm1]
- set final [lindex $rowfinal $rm1]
set col [lsearch -exact $idlist $id]
set idlist [lreplace $idlist $col $col]
foreach p [lindex $parentlist $rm1] {
set col [lsearch -exact $idlist $id]
set idlist [lreplace $idlist $col $col]
foreach p [lindex $parentlist $rm1] {
@@
-3090,9
+3091,9
@@
proc layoutrows {row endrow} {
} elseif {$row < $l} {
if {![rowsequal $idlist [lindex $rowidlist $row]]} {
lset rowidlist $row $idlist
} elseif {$row < $l} {
if {![rowsequal $idlist [lindex $rowidlist $row]]} {
lset rowidlist $row $idlist
- lset rowfinal $row $final
changedrow $row
}
changedrow $row
}
+ lset rowfinal $row $final
} else {
set pad [ntimes [expr {$row - $l}] {}]
set rowidlist [concat $rowidlist $pad]
} else {
set pad [ntimes [expr {$row - $l}] {}]
set rowidlist [concat $rowidlist $pad]
@@
-4055,7
+4056,7
@@
proc show_status {msg} {
# on that row and below will move down one row.
proc insertrow {row newcmit} {
global displayorder parentlist commitlisted children
# on that row and below will move down one row.
proc insertrow {row newcmit} {
global displayorder parentlist commitlisted children
- global commitrow curview rowidlist rowisopt numcommits
+ global commitrow curview rowidlist rowisopt
rowfinal
numcommits
global numcommits
global selectedline commitidx ordertok
global numcommits
global selectedline commitidx ordertok
@@
-4089,6
+4090,7
@@
proc insertrow {row newcmit} {
}
set rowidlist [linsert $rowidlist $row $idlist]
set rowisopt [linsert $rowisopt $row 0]
}
set rowidlist [linsert $rowidlist $row $idlist]
set rowisopt [linsert $rowisopt $row 0]
+ set rowfinal [linsert $rowfinal $row [lindex $rowfinal $row]]
incr numcommits
incr numcommits
@@
-4101,7
+4103,7
@@
proc insertrow {row newcmit} {
# Remove a commit that was inserted with insertrow on row $row.
proc removerow {row} {
global displayorder parentlist commitlisted children
# Remove a commit that was inserted with insertrow on row $row.
proc removerow {row} {
global displayorder parentlist commitlisted children
- global commitrow curview rowidlist rowisopt numcommits
+ global commitrow curview rowidlist rowisopt
rowfinal
numcommits
global numcommits
global linesegends selectedline commitidx
global numcommits
global linesegends selectedline commitidx
@@
-4130,6
+4132,7
@@
proc removerow {row} {
set rowidlist [lreplace $rowidlist $row $row]
set rowisopt [lreplace $rowisopt $row $row]
set rowidlist [lreplace $rowidlist $row $row]
set rowisopt [lreplace $rowisopt $row $row]
+ set rowfinal [lreplace $rowfinal $row $row]
incr numcommits -1
incr numcommits -1