Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Added ignore case options. Release 2.0.4. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
e7457e54e437ac773ee3cc47b1504a69 |
User & Date: | peter 2004-06-17 20:57:45.000 |
Context
2004-06-17
| ||
20:59 | Release 2.0.4 check-in: a5514ea600 user: peter tags: trunk | |
20:57 | Added ignore case options. Release 2.0.4. check-in: e7457e54e4 user: peter tags: trunk | |
16:58 | Rewrote compareBlocks a bit to handle some typical cases better. check-in: cce3ad8ef4 user: peter tags: trunk | |
Changes
Changes to src/eskil.tcl.
︙ | ︙ | |||
47 48 49 50 51 52 53 | # Add a dummy if it does not exist. proc addBalloon {args} {} } else { namespace import -force psballoon::addBalloon } set debug 0 | | | 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | # Add a dummy if it does not exist. proc addBalloon {args} {} } else { namespace import -force psballoon::addBalloon } set debug 0 set diffver "Version 2.0.4 2004-06-17" set thisScript [file join [pwd] [info script]] set thisDir [file dirname $thisScript] # Follow any link set tmplink $thisScript while {[file type $tmplink] eq "link"} { set tmplink [file readlink $tmplink] |
︙ | ︙ | |||
231 232 233 234 235 236 237 | } return $elem } # Decide how to display change blocks # This tries to match the lines that resemble each other and put them # next to each other. | | | 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 | } return $elem } # Decide how to display change blocks # This tries to match the lines that resemble each other and put them # next to each other. # As compareLines2, this would need a complete rework and a # better algorithm. proc compareBlocks {block1 block2} { set size1 [llength $block1] set size2 [llength $block2] # Swap if block1 is bigger if {$size1 > $size2} { |
︙ | ︙ | |||
285 286 287 288 289 290 291 | } #puts "Bestsum: $bestsum" # origresult holds a mapping between blocks where each row # is paired with its best match. This may not be a possible # result since it has to be in order. | < < < > > > > | 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 | } #puts "Bestsum: $bestsum" # origresult holds a mapping between blocks where each row # is paired with its best match. This may not be a possible # result since it has to be in order. #puts "Origresult: $origresult" # If the size is 1, it is automatically in order so we # don't need further processing. if {$size1 > 1} { # Start with a check if the theoretical best works, since often that # is the case. set order 1 set result $origresult for {set i 0} {$i < ($size1 - 1)} {incr i} { if {[lindex $result $i] >= [lindex $result [expr {$i + 1}]]} { set order 0 break } } #if {$order} {puts "ORDER"} } set bestresult $origresult set bestscoresum -100000 if {$size1 > 1 && $order == 0} { # Look through the obvious "subblock" alternatives for {set startj 0} {$startj < ($size2 - $size1 + 1)} {incr startj} { set sum 0 set result $emptyResult for {set i 0 ; set j $startj} {$i < $size1} {incr i ; incr j} { |
︙ | ︙ | |||
509 510 511 512 513 514 515 516 517 518 519 520 521 522 | return } set ::diff(filterflag) 0 } if {$Pref(parse) != 0} { set opts $Pref(ignore) if {$Pref(lineparsewords)} {lappend opts -words} set res [eval DiffUtil::diffStrings $opts \$line1 \$line2] set dotag 0 set n [expr {[llength $res] / 2}] $::widgets($top,wLine1) insert end [myFormL $doingLine1] "hl$::HighLightCount change" $::widgets($top,wLine2) insert end [myFormL $doingLine2] "hl$::HighLightCount change" set new1 "new1" | > | 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 | return } set ::diff(filterflag) 0 } if {$Pref(parse) != 0} { set opts $Pref(ignore) if {$Pref(nocase)} {lappend opts -nocase} if {$Pref(lineparsewords)} {lappend opts -words} set res [eval DiffUtil::diffStrings $opts \$line1 \$line2] set dotag 0 set n [expr {[llength $res] / 2}] $::widgets($top,wLine1) insert end [myFormL $doingLine1] "hl$::HighLightCount change" $::widgets($top,wLine2) insert end [myFormL $doingLine2] "hl$::HighLightCount change" set new1 "new1" |
︙ | ︙ | |||
1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 | return } else { prepareFiles $top } # Run diff and parse the result. set opts $Pref(ignore) if {[info exists ::diff($top,aligns)] && \ [llength $::diff($top,aligns)] > 0} { lappend opts -align $::diff($top,aligns) } set range {} if {[info exists ::diff($top,range)] && \ [llength $::diff($top,range)] == 4} { | > | 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 | return } else { prepareFiles $top } # Run diff and parse the result. set opts $Pref(ignore) if {$Pref(nocase)} {lappend opts -nocase} if {[info exists ::diff($top,aligns)] && \ [llength $::diff($top,aligns)] > 0} { lappend opts -align $::diff($top,aligns) } set range {} if {[info exists ::diff($top,range)] && \ [llength $::diff($top,range)] == 4} { |
︙ | ︙ | |||
1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 | } proc openConflict {top} { global Pref if {[doOpenRight $top]} { set ::diff($top,mode) "conflict" set Pref(ignore) " " set ::diff($top,conflictFile) $::diff($top,rightFile) set ::diff($top,mergeFile) "" doDiff $top } } proc openPatch {top} { global Pref if {[doOpenLeft $top]} { set ::diff($top,mode) "patch" set Pref(ignore) " " set ::diff($top,patchFile) $::diff($top,leftFile) doDiff $top } } proc openRCS {top} { if {[doOpenRight $top]} { | > > | 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 | } proc openConflict {top} { global Pref if {[doOpenRight $top]} { set ::diff($top,mode) "conflict" set Pref(ignore) " " set Pref(nocase) 0 set ::diff($top,conflictFile) $::diff($top,rightFile) set ::diff($top,mergeFile) "" doDiff $top } } proc openPatch {top} { global Pref if {[doOpenLeft $top]} { set ::diff($top,mode) "patch" set Pref(ignore) " " set Pref(nocase) 0 set ::diff($top,patchFile) $::diff($top,leftFile) doDiff $top } } proc openRCS {top} { if {[doOpenRight $top]} { |
︙ | ︙ | |||
2945 2946 2947 2948 2949 2950 2951 | -command chFont $top.mo.mf add radiobutton -label 9 -variable Pref(fontsize) -value 9 \ -command chFont $top.mo.mf add radiobutton -label 10 -variable Pref(fontsize) -value 10 \ -command chFont menu $top.mo.mi | | > > > | 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 | -command chFont $top.mo.mf add radiobutton -label 9 -variable Pref(fontsize) -value 9 \ -command chFont $top.mo.mf add radiobutton -label 10 -variable Pref(fontsize) -value 10 \ -command chFont menu $top.mo.mi $top.mo.mi add radiobutton -label "No spaces" \ -variable Pref(ignore) -value " " $top.mo.mi add radiobutton -label "Space changes (-b)" \ -variable Pref(ignore) -value "-b" $top.mo.mi add radiobutton -label "All spaces (-w)" \ -variable Pref(ignore) -value "-w" $top.mo.mi add separator $top.mo.mi add checkbutton -label "Case (-i)" \ -variable Pref(nocase) menu $top.mo.mp $top.mo.mp add radiobutton -label "Nothing" -variable Pref(parse) -value 0 $top.mo.mp add radiobutton -label "Lines" -variable Pref(parse) -value 1 $top.mo.mp add radiobutton -label "Blocks (small)" -variable Pref(parse) \ -value 2 $top.mo.mp add radiobutton -label "Blocks" -variable Pref(parse) -value 3 |
︙ | ︙ | |||
4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 | -char : The analysis of changes can be done on either -word : character or word basis. -char is the default. -noignore : Don't ignore any whitespace. -b : Ignore space changes. Default. -w : Ignore all spaces. -conflict : Treat file as a merge conflict file and enter merge mode. -o <file> : Specify merge result output file. -browse : Automatically bring up file dialog after starting. -server : Set up Eskil to be controllable from the outside. | > | 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 | -char : The analysis of changes can be done on either -word : character or word basis. -char is the default. -noignore : Don't ignore any whitespace. -b : Ignore space changes. Default. -w : Ignore all spaces. -nocase : Ignore case changes. -conflict : Treat file as a merge conflict file and enter merge mode. -o <file> : Specify merge result output file. -browse : Automatically bring up file dialog after starting. -server : Set up Eskil to be controllable from the outside. |
︙ | ︙ | |||
4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 | } elseif {$arg eq "--help" || $arg eq "-help"} { printUsage exit } elseif {$arg eq "-b"} { set Pref(ignore) "-b" } elseif {$arg eq "-noignore"} { set Pref(ignore) " " } elseif {$arg eq "-noparse"} { set Pref(parse) 0 } elseif {$arg eq "-line"} { set Pref(parse) 1 } elseif {$arg eq "-smallblock"} { set Pref(parse) 2 } elseif {$arg eq "-block"} { | > > > > | 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 | } elseif {$arg eq "--help" || $arg eq "-help"} { printUsage exit } elseif {$arg eq "-b"} { set Pref(ignore) "-b" } elseif {$arg eq "-noignore"} { set Pref(ignore) " " } elseif {$arg eq "-i"} { set Pref(nocase) 1 } elseif {$arg eq "-nocase"} { set Pref(nocase) 1 } elseif {$arg eq "-noparse"} { set Pref(parse) 0 } elseif {$arg eq "-line"} { set Pref(parse) 1 } elseif {$arg eq "-smallblock"} { set Pref(parse) 2 } elseif {$arg eq "-block"} { |
︙ | ︙ | |||
4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 | } elseif {$arg eq "-clip"} { set doclip 1 } elseif {$arg eq "-browse"} { set autobrowse 1 } elseif {$arg eq "-conflict"} { set opts(mode) "conflict" set Pref(ignore) " " } elseif {$arg eq "-print"} { set nextArg printFile } elseif {$arg eq "-server"} { if {$::tcl_platform(platform) eq "windows"} { catch { package require dde dde servername Eskil | > | 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 | } elseif {$arg eq "-clip"} { set doclip 1 } elseif {$arg eq "-browse"} { set autobrowse 1 } elseif {$arg eq "-conflict"} { set opts(mode) "conflict" set Pref(ignore) " " set Pref(nocase) 0 } elseif {$arg eq "-print"} { set nextArg printFile } elseif {$arg eq "-server"} { if {$::tcl_platform(platform) eq "windows"} { catch { package require dde dde servername Eskil |
︙ | ︙ | |||
4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 | proc getOptions {} { global Pref set Pref(fontsize) 8 set Pref(fontfamily) Courier set Pref(ignore) "-b" set Pref(parse) 2 set Pref(lineparsewords) 0 set Pref(colorchange) red set Pref(colornew1) darkgreen set Pref(colornew2) blue set Pref(bgchange) #ffe0e0 set Pref(bgnew1) #a0ffa0 | > | 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 | proc getOptions {} { global Pref set Pref(fontsize) 8 set Pref(fontfamily) Courier set Pref(ignore) "-b" set Pref(nocase) 0 set Pref(parse) 2 set Pref(lineparsewords) 0 set Pref(colorchange) red set Pref(colornew1) darkgreen set Pref(colornew2) blue set Pref(bgchange) #ffe0e0 set Pref(bgnew1) #a0ffa0 |
︙ | ︙ |