- if {$parent >= 0} {
- set code [string index $c_line $parent]
- if {$code eq "-" || ($removed_idx < 0 && $code ne "+")} {
- incr dline
- }
- } else {
- if {$removed_idx < 0} {
- incr dline
+ for {set i $line} {[incr i -1] > $s_lno} {} {
+ set chunk [$ctext get $i.0 "$i.1 + $max_parent chars"]
+ # Determine if the line is removed
+ set removed_idx [string first "-" $chunk]
+ if {$parent >= 0} {
+ set code [string index $chunk $parent]
+ if {$code eq "-" || ($removed_idx < 0 && $code ne "+")} {
+ incr dline
+ }
+ } else {
+ if {$removed_idx < 0} {
+ incr dline
+ }