Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Added context options to "only diff" mode. Adjusted tutorial font. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
cc25a3001baf3965420dc5f2ee14f23f |
User & Date: | peter 2004-05-18 18:30:13.000 |
Context
2004-05-18
| ||
19:17 | Added some formatting. Added a piece about changed file name in dirdiff. check-in: 741fc3c162 user: peter tags: trunk | |
18:30 | Added context options to "only diff" mode. Adjusted tutorial font. check-in: cc25a3001b user: peter tags: trunk | |
2004-05-03
| ||
17:35 | Moved large block warning to insertMatchingBlocks. Flag with a "!". check-in: ce427b3c7b 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.2+ 2004-05-18" 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] |
︙ | ︙ | |||
442 443 444 445 446 447 448 | } # Compare two lines and rate how much they resemble each other. # This has never worked well. Some day I'll sit down, think this through, # and come up with a better algorithm. proc compareLines2 {line1 line2} { compareLines $line1 $line2 res1 res2 1 | | | 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 | } # Compare two lines and rate how much they resemble each other. # This has never worked well. Some day I'll sit down, think this through, # and come up with a better algorithm. proc compareLines2 {line1 line2} { compareLines $line1 $line2 res1 res2 1 if {0 && $::util(diffutil)} { compareLinesX $line1 $line2 xres1 xres2 1 if {$res1 != $xres1 || $res2 != $xres2} { tk_messageBox -title "Rate Mismatch!" \ -message ":$res1:\n:$res2:\n:$xres1:\n:$xres2:" } } # Collect identical pieces and different pieces |
︙ | ︙ | |||
739 740 741 742 743 744 745 | $::diff($top,wLine$n) insert end [myFormL $line] $tag } proc emptyLine {top n {highlight 1}} { if {$highlight} { $::diff($top,wLine$n) insert end "\n" hl$::HighLightCount } else { | | | 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 | $::diff($top,wLine$n) insert end [myFormL $line] $tag } proc emptyLine {top n {highlight 1}} { if {$highlight} { $::diff($top,wLine$n) insert end "\n" hl$::HighLightCount } else { $::diff($top,wLine$n) insert end "*****\n" } $::diff($top,wDiff$n) insert end "\n" } # Insert one line in each text widget. # Mark them as changed, and optionally parse them. proc insertMatchingLines {top line1 line2} { |
︙ | ︙ | |||
763 764 765 766 767 768 769 | return } set ::diff(filterflag) 0 } if {$Pref(parse) != 0} { compareLines $line1 $line2 res1 res2 | | | 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 | return } set ::diff(filterflag) 0 } if {$Pref(parse) != 0} { compareLines $line1 $line2 res1 res2 if {0 && $::util(diffutil)} { compareLinesX $line1 $line2 xres1 xres2 if {$res1 != $xres1 || $res2 != $xres2} { tk_messageBox -title Mismatch! \ -message ":$res1:\n:$res2:\n:$xres1:\n:$xres2:" } } set dotag 0 |
︙ | ︙ | |||
882 883 884 885 886 887 888 | proc doText {top ch1 ch2 n1 n2 line1 line2} { global doingLine1 doingLine2 Pref if {$n1 == 0 && $n2 == 0} { # All blocks have been processed. Continue until end of file. # If "only diffs" is on, just display a couple of context lines. set limit -1 | | | 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 | proc doText {top ch1 ch2 n1 n2 line1 line2} { global doingLine1 doingLine2 Pref if {$n1 == 0 && $n2 == 0} { # All blocks have been processed. Continue until end of file. # If "only diffs" is on, just display a couple of context lines. set limit -1 if {$Pref(context) > 0} { set limit $Pref(context) } # Consider any total limit on displayed lines. if {$::diff($top,limitlines)} { set limit [expr {$::diff($top,limitlines) - $::diff($top,mapMax)}] if {$limit < 0} { set limit 0 |
︙ | ︙ | |||
918 919 920 921 922 923 924 | if {$n1 == 0} {set tag2 new2} else {set tag2 change} if {$n2 == 0} {set tag1 new1} else {set tag1 change} # Display all equal lines before next diff # If only diff is on, only skip a section if the blank # line replaces at least 3 lines. set limit -1 | | | | 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 | if {$n1 == 0} {set tag2 new2} else {set tag2 change} if {$n2 == 0} {set tag1 new1} else {set tag1 change} # Display all equal lines before next diff # If only diff is on, only skip a section if the blank # line replaces at least 3 lines. set limit -1 if {$Pref(context) > 0 && \ ($line1 - $doingLine1 > (2 * $Pref(context) + 2))} { set limit $Pref(context) } set t 0 while {$doingLine1 < $line1} { gets $ch1 apa gets $ch2 bepa if {$limit < 0 || ($t < $limit) || \ ($line1 - $doingLine1) <= $limit} { insertLine $top 1 $doingLine1 $apa insertLine $top 2 $doingLine2 $bepa incr ::diff($top,mapMax) } elseif {$t == $limit} { emptyLine $top 1 0 emptyLine $top 2 0 |
︙ | ︙ | |||
1533 1534 1535 1536 1537 1538 1539 | clearTmp $::diff($top,rightFile) $::diff($top,leftFile) set ::diff($top,leftFile) $::diff($top,leftLabel) set ::diff($top,rightFile) $::diff($top,rightLabel) } } } | < < < < < < < < < < < < < < < < < < < < < < | 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 | clearTmp $::diff($top,rightFile) $::diff($top,leftFile) set ::diff($top,leftFile) $::diff($top,leftLabel) set ::diff($top,rightFile) $::diff($top,rightLabel) } } } # Main diff function. proc doDiff {top} { global diff Pref global doingLine1 doingLine2 if {$diff($top,mode) eq "" && ($diff($top,leftOK) == 0 || $diff($top,rightOK) == 0)} { disableRedo $top |
︙ | ︙ | |||
1621 1622 1623 1624 1625 1626 1627 | lappend result $i } } # In conflict mode we can use the diff information collected when # parsing the conflict file. This makes sure the blocks in the conflict # file become change-blocks during merge. | | | 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 | lappend result $i } } # In conflict mode we can use the diff information collected when # parsing the conflict file. This makes sure the blocks in the conflict # file become change-blocks during merge. if {$diff($top,mode) eq "conflictPure"} { # FIXA if DiffUtil set result $diff($top,conflictDiff) } if {[llength $result] == 0} { if {$differr == 1} { $::diff($top,wDiff1) insert end $diffres normalCursor $top |
︙ | ︙ | |||
2294 2295 2296 2297 2298 2299 2300 | ##################################### # Printing stuff ##################################### # Format a line number for printing proc formatLineno {lineno gray} { | > | > > > > | 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 | ##################################### # Printing stuff ##################################### # Format a line number for printing proc formatLineno {lineno gray} { if {[string is integer -strict $lineno]} { set res [format "%3d: " $lineno] } else { set res [format "%-5s" $lineno] set gray 0.9 } if {[string length $res] > 5} { set res [string range $res end-5 end-1] } if {$gray eq "1.0"} { return $res } else { return "\0bggray\{$gray\}$res\0bggray\{1.0\}" |
︙ | ︙ | |||
3195 3196 3197 3198 3199 3200 3201 | menubutton $top.mo -text "Options" -underline 0 -menu $top.mo.m menu $top.mo.m $top.mo.m add cascade -label "Font" -underline 0 -menu $top.mo.mf $top.mo.m add cascade -label "Ignore" -underline 0 -menu $top.mo.mi $top.mo.m add cascade -label "Parse" -underline 0 -menu $top.mo.mp $top.mo.m add command -label "Colours..." -underline 0 -command makePrefWin | | | 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 | menubutton $top.mo -text "Options" -underline 0 -menu $top.mo.m menu $top.mo.m $top.mo.m add cascade -label "Font" -underline 0 -menu $top.mo.mf $top.mo.m add cascade -label "Ignore" -underline 0 -menu $top.mo.mi $top.mo.m add cascade -label "Parse" -underline 0 -menu $top.mo.mp $top.mo.m add command -label "Colours..." -underline 0 -command makePrefWin $top.mo.m add cascade -label "Context" -underline 1 -menu $top.mo.mc if {$tcl_platform(platform) eq "windows"} { $top.mo.m add checkbutton -label "Force crlf translation" \ -variable Pref(crlf) } $top.mo.m add separator $top.mo.m add command -label "Save default" \ -command [list saveOptions $top] |
︙ | ︙ | |||
3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 | $top.mo.mp add radiobutton -label "Words" \ -variable Pref(lineparsewords) -value "1" $top.mo.mp add separator $top.mo.mp add checkbutton -label "Use 2nd stage" \ -variable Pref(extralineparse) $top.mo.mp add checkbutton -label "Mark last" -variable Pref(marklast) menubutton $top.ms -text "Search" -underline 0 -menu $top.ms.m menu $top.ms.m if {[info procs textSearch::searchMenu] != ""} { textSearch::searchMenu $top.ms.m } else { $top.ms.m add command -label "Text search not available" \ -state disabled | > > > > > > > > > > > > > | 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 | $top.mo.mp add radiobutton -label "Words" \ -variable Pref(lineparsewords) -value "1" $top.mo.mp add separator $top.mo.mp add checkbutton -label "Use 2nd stage" \ -variable Pref(extralineparse) $top.mo.mp add checkbutton -label "Mark last" -variable Pref(marklast) menu $top.mo.mc $top.mo.mc add radiobutton -label "Show all lines" \ -variable ::Pref(context) -value 0 $top.mo.mc add separator $top.mo.mc add radiobutton -label "Context 2 lines" \ -variable ::Pref(context) -value 2 $top.mo.mc add radiobutton -label "Context 5 lines" \ -variable ::Pref(context) -value 5 $top.mo.mc add radiobutton -label "Context 10 lines" \ -variable ::Pref(context) -value 10 $top.mo.mc add radiobutton -label "Context 20 lines" \ -variable ::Pref(context) -value 20 menubutton $top.ms -text "Search" -underline 0 -menu $top.ms.m menu $top.ms.m if {[info procs textSearch::searchMenu] != ""} { textSearch::searchMenu $top.ms.m } else { $top.ms.m add command -label "Text search not available" \ -state disabled |
︙ | ︙ | |||
3400 3401 3402 3403 3404 3405 3406 | menu $top.md.m if {$tcl_platform(platform) eq "windows"} { $top.md.m add checkbutton -label "Console" -variable consolestate \ -onvalue show -offvalue hide \ -command {console $consolestate} $top.md.m add separator } | < < < < < < < < < | 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 | menu $top.md.m if {$tcl_platform(platform) eq "windows"} { $top.md.m add checkbutton -label "Console" -variable consolestate \ -onvalue show -offvalue hide \ -command {console $consolestate} $top.md.m add separator } $top.md.m add checkbutton -label "Wrap" -variable wrapstate \ -onvalue char -offvalue none -command \ "$top.ft1.tt configure -wrap \$wrapstate ;\ $top.ft2.tt configure -wrap \$wrapstate" $top.md.m add command -label "Date Filter" \ -command {set ::diff(filter) {^Date}} $top.md.m add separator |
︙ | ︙ | |||
4577 4578 4579 4580 4581 4582 4583 | set ::dirdiff(leftDir) [file join [pwd] dir1] set ::dirdiff(rightDir) [file join [pwd] dir2] makeDirDiffWin doCompare set w [helpWin .ht "Eskil Tutorial"] | | < > > > > > > > > | 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 | set ::dirdiff(leftDir) [file join [pwd] dir1] set ::dirdiff(rightDir) [file join [pwd] dir2] makeDirDiffWin doCompare set w [helpWin .ht "Eskil Tutorial"] text $w.t -width 82 -height 35 -wrap word -yscrollcommand "$w.sb set" scrollbar $w.sb -orient vert -command "$w.t yview" pack $w.sb -side right -fill y pack $w.t -side left -expand 1 -fill both catch {font delete tutFont} catch {font delete tutFontB} #eval font create tutFont [font actual [$w.t cget -font]] font create tutFont -family Helvetica -size -14 eval font create tutFontB [font configure tutFont] -weight bold $w.t configure -font tutFont # Move border properties to frame set bw [$w.t cget -borderwidth] set relief [$w.t cget -relief] $w configure -relief $relief -borderwidth $bw $w.t configure -borderwidth 0 # Set up tags $w.t tag configure ul -underline 1 $w.t tag configure b -font tutFontB insertTaggedText $w.t $doc $w.t configure -state disabled } proc printUsage {} { puts {Usage: eskil.tcl [options] [file1] [file2] |
︙ | ︙ | |||
4972 4973 4974 4975 4976 4977 4978 | set Pref(extralineparse) 1 set Pref(colorchange) red set Pref(colornew1) darkgreen set Pref(colornew2) blue set Pref(bgchange) #ffe0e0 set Pref(bgnew1) #a0ffa0 set Pref(bgnew2) #e0e0ff | < | | > > > > > > > > > | 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 | set Pref(extralineparse) 1 set Pref(colorchange) red set Pref(colornew1) darkgreen set Pref(colornew2) blue set Pref(bgchange) #ffe0e0 set Pref(bgnew1) #a0ffa0 set Pref(bgnew2) #e0e0ff set Pref(context) 0 set Pref(crlf) 0 set Pref(marklast) 1 set Pref(linewidth) 80 set Pref(lines) 60 set Pref(editor) "" # Directory diff options set Pref(comparelevel) 1 set Pref(recursive) 0 set Pref(dir,onlydiffs) 0 set Pref(nodir) 0 set Pref(autocompare) 1 # Backward compatibilty option set Pref(onlydiffs) -1 set ::diff(filter) "" if {![info exists ::eskil_testsuite] && [file exists "~/.eskilrc"]} { safeLoad "~/.eskilrc" Pref } if {$Pref(editor) ne ""} { set ::util(editor) $Pref(editor) } # If the user's file has this old option, translate it to the new if {$Pref(onlydiffs) == 0} { set Pref(context) 0 } unset Pref(onlydiffs) } proc defaultGuiOptions {} { catch {package require griffin} option add *Menu.tearOff 0 if {[tk windowingsystem] eq "x11"} { |
︙ | ︙ |