Eskil

Check-in [4ed588b9ab]
Login

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

Overview
Comment:Make sure plugins are applied in the right order.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 4ed588b9ab7664d217741f98873c05791826f65ecc9fca1c87c28a7347c25475
User & Date: peter 2017-12-16 01:00:17.863
Context
2017-12-16
01:11
Make sure Dir Diff can pick one out of many plugins. Dir Diff no longer shortcuts for files with same size&mtime. check-in: 689940e052 user: peter tags: trunk
01:00
Make sure plugins are applied in the right order. check-in: 4ed588b9ab user: peter tags: trunk
2017-12-13
23:55
Use same font in commit window as in diff window. check-in: 07e979f446 user: peter tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/eskil.tcl.
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
    set i [lsearch -exact $::eskil(argv) "-sep"]
    if {$i >= 0} {
        incr i
        lset ::eskil(argv) $i $::eskil($top,separatorview)
    } else {
        lappend ::eskil(argv) -sep $::eskil($top,separatorview)
    }
    # Prepare plugin
    if {$::eskil($top,plugin,1) ne "" && \
                [dict get $::eskil($top,pluginpinfo,1) file]} {
        preparePlugin $top
        set ::eskil($top,cleanup) "plugin $::eskil($top,cleanup)"
    }
}

# Clean up after a diff
proc cleanupFiles {top} {
    foreach keyword $::eskil($top,cleanup) {







|
<
<
|







1325
1326
1327
1328
1329
1330
1331
1332


1333
1334
1335
1336
1337
1338
1339
1340
    set i [lsearch -exact $::eskil(argv) "-sep"]
    if {$i >= 0} {
        incr i
        lset ::eskil(argv) $i $::eskil($top,separatorview)
    } else {
        lappend ::eskil(argv) -sep $::eskil($top,separatorview)
    }
    # Prepare plugin, if any


    if {[preparePlugin $top]} {
        set ::eskil($top,cleanup) "plugin $::eskil($top,cleanup)"
    }
}

# Clean up after a diff
proc cleanupFiles {top} {
    foreach keyword $::eskil($top,cleanup) {
Changes to src/plugin.tcl.
198
199
200
201
202
203
204





205
206
207
208
209
210
211
212
213
214
215
216
    foreach {plugin info} $plugins {
        set descr [dict get $info descr]
        puts "Plugin [format %-*s $w \"$plugin\"] : $descr"
    }
}

proc preparePlugin {top} {





    disallowEdit $top
    set in1 $::eskil($top,leftFile)
    set in2 $::eskil($top,rightFile)

    foreach item [array names ::eskil $top,pluginname,*] {
        set n [lindex [split $item ","] end]

        set allow [dict get $::eskil($top,pluginpinfo,$n) allow]
        # Pass ::argv to plugin
        set pArgv $::eskil(argv)
        if {[info exists ::eskil($top,pluginargv,$n)]} {
            lappend pArgv {*}$::eskil($top,pluginargv,$n)







>
>
>
>
>




|







198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
    foreach {plugin info} $plugins {
        set descr [dict get $info descr]
        puts "Plugin [format %-*s $w \"$plugin\"] : $descr"
    }
}

proc preparePlugin {top} {
    if {$::eskil($top,plugin,1) eq "" || \
                ![dict get $::eskil($top,pluginpinfo,1) file]} {
        return 0
    }

    disallowEdit $top
    set in1 $::eskil($top,leftFile)
    set in2 $::eskil($top,rightFile)

    foreach item [lsort -dictionary [array names ::eskil $top,pluginname,*]] {
        set n [lindex [split $item ","] end]

        set allow [dict get $::eskil($top,pluginpinfo,$n) allow]
        # Pass ::argv to plugin
        set pArgv $::eskil(argv)
        if {[info exists ::eskil($top,pluginargv,$n)]} {
            lappend pArgv {*}$::eskil($top,pluginargv,$n)
295
296
297
298
299
300
301

302
303
304
305
306
307
308
        } else {
            set ::eskil($top,rightFileDiff) $out2
        }
        # For next plugin, if any
        set in1 $out1
        set in2 $out2
    }

}

proc cleanupPlugin {top} {
    if {[info exists ::eskil($top,leftFileBak)]} {
        set ::eskil($top,leftFile) $::eskil($top,leftFileBak)
    }
    if {[info exists ::eskil($top,rightFileBak)]} {







>







300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
        } else {
            set ::eskil($top,rightFileDiff) $out2
        }
        # For next plugin, if any
        set in1 $out1
        set in2 $out2
    }
    return 1
}

proc cleanupPlugin {top} {
    if {[info exists ::eskil($top,leftFileBak)]} {
        set ::eskil($top,leftFile) $::eskil($top,leftFileBak)
    }
    if {[info exists ::eskil($top,rightFileBak)]} {