Eskil

Diff
Login

Differences From Artifact [c49914e1c9]:

To Artifact [a8781cde29]:


152
153
154
155
156
157
158
159
160
161
162





163
164
165
166
167
168
169
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

    set len1 [llength $res1]
    for {set t 0; set sum1 0} {$t < $len1} {incr t 2} {
        incr sum1 [string length [lindex $res1 $t]]
    } 
    #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
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
        for {set i 0} {$i < $size2} {incr i} {
            set x [comparelines2 $line [lindex $block2 $i]]
        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 ""