Eskil

Check-in [703198ac34]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Optimizations with foreach
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 703198ac34866fe38975762777e181f9d47928fd
User & Date: spjutp 1998-08-14 07:17:52.000
Context
1998-08-18
12:30
Release 1.2 check-in: 36950bd9cd user: spjutp tags: trunk
1998-08-14
07:17
Optimizations with foreach check-in: 703198ac34 user: spjutp tags: trunk
1998-08-12
09:22
Added map. Improved yscroll. check-in: 893dd218dc user: spjutp tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/eskil.tcl.
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 ""