152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
}
}
#Count how many characters are common between the lines
proc comparelines2 {line1 line2} {
comparelines $line1 $line2 res1 res2
set len1 [llength $res1]
for {set t 0; set sum1 0} {$t < $len1} {incr t 2} {
incr sum1 [string length [lindex $res1 $t]]
}
return $sum1
}
#Decide how to display change blocks
proc compareblocks {block1 block2} {
set size1 [llength $block1]
|
|
|
>
|
|
|
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
}
}
#Count how many characters are common between the lines
proc comparelines2 {line1 line2} {
comparelines $line1 $line2 res1 res2
#Add lengths of every other element of res1
set sum1 0
foreach {same dummy} $res1 {
incr sum1 [string length $same]
}
return $sum1
}
#Decide how to display change blocks
proc compareblocks {block1 block2} {
set size1 [llength $block1]
|
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
|
set asym a
}
set result {}
foreach line $block1 {
set bestscore 0
set bestline 0
for {set i 0} {$i < $size2} {incr i} {
set x [comparelines2 $line [lindex $block2 $i]]
if {$x > $bestscore} {
set bestscore $x
set bestline $i
}
}
lappend result $bestline
}
#Check that $result is in order
if {$size1 > 1} {
set bad ""
|
|
>
|
>
|
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
|
set asym a
}
set result {}
foreach line $block1 {
set bestscore 0
set bestline 0
set i 0
foreach line2 $block2 {
set x [comparelines2 $line $line2]
if {$x > $bestscore} {
set bestscore $x
set bestline $i
}
incr i
}
lappend result $bestline
}
#Check that $result is in order
if {$size1 > 1} {
set bad ""
|