зеркало из https://github.com/microsoft/git.git
gitk: Fix a couple of bugs
insertrow and removerow were trying to adjust rowidlist, rowisopt and rowfinal even if the row where we're inserting/deleting stuff hasn't been laid out yet, which resulted in Tcl errors. This fixes that. Also we weren't deleting the link$linknum tag in appendwithlinks, which resulted in SHA1 IDs in the body of a commit message sometimes getting shown in blue with underlining when they shouldn't. Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
Родитель
687c8765ec
Коммит
c73adce219
33
gitk
33
gitk
|
@ -4027,17 +4027,21 @@ proc insertrow {row newcmit} {
|
|||
incr commitidx($curview)
|
||||
set ordertok($curview,$newcmit) $ordertok($curview,$p)
|
||||
|
||||
set idlist [lindex $rowidlist $row]
|
||||
if {[llength $kids] == 1} {
|
||||
set col [lsearch -exact $idlist $p]
|
||||
lset idlist $col $newcmit
|
||||
} else {
|
||||
set col [llength $idlist]
|
||||
lappend idlist $newcmit
|
||||
if {$row < [llength $rowidlist]} {
|
||||
set idlist [lindex $rowidlist $row]
|
||||
if {$idlist ne {}} {
|
||||
if {[llength $kids] == 1} {
|
||||
set col [lsearch -exact $idlist $p]
|
||||
lset idlist $col $newcmit
|
||||
} else {
|
||||
set col [llength $idlist]
|
||||
lappend idlist $newcmit
|
||||
}
|
||||
}
|
||||
set rowidlist [linsert $rowidlist $row $idlist]
|
||||
set rowisopt [linsert $rowisopt $row 0]
|
||||
set rowfinal [linsert $rowfinal $row [lindex $rowfinal $row]]
|
||||
}
|
||||
set rowidlist [linsert $rowidlist $row $idlist]
|
||||
set rowisopt [linsert $rowisopt $row 0]
|
||||
set rowfinal [linsert $rowfinal $row [lindex $rowfinal $row]]
|
||||
|
||||
incr numcommits
|
||||
|
||||
|
@ -4077,9 +4081,11 @@ proc removerow {row} {
|
|||
}
|
||||
incr commitidx($curview) -1
|
||||
|
||||
set rowidlist [lreplace $rowidlist $row $row]
|
||||
set rowisopt [lreplace $rowisopt $row $row]
|
||||
set rowfinal [lreplace $rowfinal $row $row]
|
||||
if {$row < [llength $rowidlist]} {
|
||||
set rowidlist [lreplace $rowidlist $row $row]
|
||||
set rowisopt [lreplace $rowisopt $row $row]
|
||||
set rowfinal [lreplace $rowfinal $row $row]
|
||||
}
|
||||
|
||||
incr numcommits -1
|
||||
|
||||
|
@ -4443,6 +4449,7 @@ proc appendwithlinks {text tags} {
|
|||
set e [lindex $l 1]
|
||||
set linkid [string range $text $s $e]
|
||||
incr e
|
||||
$ctext tag delete link$linknum
|
||||
$ctext tag add link$linknum "$start + $s c" "$start + $e c"
|
||||
setlink $linkid link$linknum
|
||||
incr linknum
|
||||
|
|
Загрузка…
Ссылка в новой задаче