Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Added map at dirdiff scrollbar. Redesigned font selector a bit using newer widgets. Added menu entry to step down in either side in dirdiff. Added Help menu in dirdiff window. Provide some info to help DiffUtil to locate diff executable. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
b217995849e0640f354c2c4fbfb37fa5 |
User & Date: | peter 2004-05-24 11:36:57.000 |
Context
2004-05-24
| ||
14:46 | Removed compareLines and use DiffUtil::diffStrings instead. Removed option "second stage" and let it be on always. Centralised map handling in a few functions. check-in: 3ea2fde2ec user: peter tags: trunk | |
11:36 | Added map at dirdiff scrollbar. Redesigned font selector a bit using newer widgets. Added menu entry to step down in either side in dirdiff. Added Help menu in dirdiff window. Provide some info to help DiffUtil to locate diff executable. check-in: b217995849 user: peter tags: trunk | |
2004-05-23
| ||
13:16 | Changed separate diff to use -range option to DiffUtil::diffFiles. Moved widget related global data to ::widgets. check-in: 8b189f3385 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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | # 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-24" 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] set tmplink [file normalize [file join $thisDir $tmplink]] set thisDir [file dirname $tmplink] } unset tmplink set ::util(cvsExists) [expr {![string equal [auto_execok cvs] ""]}] set ::util(diffexe) diff # Diff functionality is in the DiffUtil package. package require DiffUtil # Help DiffUtil to find a diff executable, if needed catch {DiffUtil::LocateDiffExe $thisScript} # Figure out a place to store temporary files. locateTmp ::diff(tmpdir) if {$tcl_platform(platform) eq "windows"} { # Locate CVS if it is in c:/bin if {!$::util(cvsExists) && [file exists "c:/bin/cvs.exe"]} { |
︙ | ︙ | |||
935 936 937 938 939 940 941 | # blocks of equal size. for {set t 0} {$t < $n1} {incr t} { gets $ch1 textline1 gets $ch2 textline2 insertMatchingLines $top $textline1 $textline2 } if {$::diff(filter) != "" && $::diff(filterflag)} { | | | 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 | # blocks of equal size. for {set t 0} {$t < $n1} {incr t} { gets $ch1 textline1 gets $ch2 textline2 insertMatchingLines $top $textline1 $textline2 } if {$::diff(filter) != "" && $::diff(filterflag)} { # Do nothing } else { lappend ::diff($top,changes) [list $::diff($top,mapMax) $n1 \ change $line1 $n1 $line2 $n2] } incr ::diff($top,mapMax) $n1 } else { if {$n1 != 0 && $n2 != 0 && $Pref(parse) >= 2 && \ |
︙ | ︙ | |||
3114 3115 3116 3117 3118 3119 3120 | -variable Pref(crlf) } $top.mo.m add separator $top.mo.m add command -label "Save default" \ -command [list saveOptions $top] menu $top.mo.mf | | | 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 | -variable Pref(crlf) } $top.mo.m add separator $top.mo.m add command -label "Save default" \ -command [list saveOptions $top] menu $top.mo.mf $top.mo.mf add command -label "Select..." -command makeFontWin -underline 0 $top.mo.mf add radiobutton -label 6 -variable Pref(fontsize) -value 6 \ -command chFont $top.mo.mf add radiobutton -label 7 -variable Pref(fontsize) -value 7 \ -command chFont $top.mo.mf add radiobutton -label 8 -variable Pref(fontsize) -value 8 \ -command chFont $top.mo.mf add radiobutton -label 9 -variable Pref(fontsize) -value 9 \ |
︙ | ︙ | |||
3482 3483 3484 3485 3486 3487 3488 | } # Font dialog proc makeFontWin {} { global Pref TmpPref FontCache destroy .fo | | | | | > | < | < < | > | | | | | 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 | } # Font dialog proc makeFontWin {} { global Pref TmpPref FontCache destroy .fo toplevel .fo -padx 3 -pady 3 wm title .fo "Select Font" label .fo.ltmp -text "Searching for fonts..." pack .fo.ltmp -padx {10 50} -pady {10 50} update catch {font delete tmpfont} font create tmpfont array set TmpPref [array get Pref] labelframe .fo.lf -text "Family" -padx 3 -pady 3 set lb [Scroll y listbox .fo.lf.lb -width 15 -height 10 \ -exportselection no -selectmode single] bind $lb <<ListboxSelect>> [list exampleFont $lb] pack .fo.lf.lb -fill both -expand 1 labelframe .fo.ls -text "Size" -padx 3 -pady 3 spinbox .fo.ls.sp -from 1 -to 30 -increment 1 -width 3 -state readonly \ -textvariable TmpPref(fontsize) -command [list exampleFont $lb] pack .fo.ls.sp -fill both -expand 1 label .fo.le -text "Example" -anchor w -font tmpfont -width 1 button .fo.bo -text "Ok" -padx 10 -command "applyFont $lb ; destroy .fo" button .fo.ba -text "Apply" -padx 10 -command "applyFont $lb" button .fo.bc -text "Close" -padx 10 -command "destroy .fo" if {![info exists FontCache]} { set fam [lsort -dictionary [font families]] font create testfont foreach f $fam { if {![string equal $f ""]} { font configure testfont -family $f |
︙ | ︙ | |||
3533 3534 3535 3536 3537 3538 3539 | $lb selection set end $lb see end } } destroy .fo.ltmp | | < | | | | | | 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 | $lb selection set end $lb see end } } destroy .fo.ltmp grid .fo.lf .fo.ls -sticky news -padx 3 -pady 3 grid x .fo.le -sticky nwe -padx 3 -pady 3 grid x .fo.bo -sticky we -padx 3 -pady 3 grid x .fo.ba -sticky we -padx 3 -pady 3 grid x .fo.bc -sticky we -padx 3 -pady 3 grid .fo.lf -sticky news -rowspan 5 grid columnconfigure .fo 0 -weight 1 grid rowconfigure .fo 1 -weight 1 exampleFont $lb } ##################################### |
︙ | ︙ | |||
3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 | incr info 4 } if {[file isdirectory $df2]} { append f2 / incr info 8 } if {$df1 eq ""} { set tag2 new2 } elseif {!$diff} { set tag2 "" } else { if {$info & 8} { set tag2 changed } else { set tag2 change } } if {$df2 eq ""} { set tag1 new1 } elseif {!$diff} { set tag1 "" } else { if {$info & 4} { set tag1 changed } else { set tag1 change } } if {$df2 eq ""} { $dirdiff(wRight) insert end \n } else { if {[catch {set size [file size $df2]}]} { set size -1 set mtime 0 | > > > > > > > > > | 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 | incr info 4 } if {[file isdirectory $df2]} { append f2 / incr info 8 } set maptag [expr {$diff ? "change" : ""}] if {$df1 eq ""} { set tag2 new2 set maptag new2 } elseif {!$diff} { set tag2 "" } else { if {$info & 8} { set tag2 changed } else { set tag2 change } } if {$df2 eq ""} { set tag1 new1 set maptag new1 } elseif {!$diff} { set tag1 "" } else { if {$info & 4} { set tag1 changed } else { set tag1 change } } set top .dirdiff if {$maptag ne ""} { lappend ::diff($top,changes) [list $::diff($top,mapMax) 1 $maptag \ 0 0 0 0] } incr ::diff($top,mapMax) if {$df2 eq ""} { $dirdiff(wRight) insert end \n } else { if {[catch {set size [file size $df2]}]} { set size -1 set mtime 0 |
︙ | ︙ | |||
3943 3944 3945 3946 3947 3948 3949 | set dirdiff(rightFiles) {} set dirdiff(infoFiles) {} set dirdiff(leftMark) "" set dirdiff(rightMark) "" $dirdiff(wLeft) delete 1.0 end $dirdiff(wRight) delete 1.0 end | > | > > > > | 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 | set dirdiff(rightFiles) {} set dirdiff(infoFiles) {} set dirdiff(leftMark) "" set dirdiff(rightMark) "" $dirdiff(wLeft) delete 1.0 end $dirdiff(wRight) delete 1.0 end set top .dirdiff busyCursor $top set ::diff($top,changes) {} set ::diff($top,mapMax) 0 drawMap $top -1 update idletasks compareDirs $dirdiff(leftDir) $dirdiff(rightDir) normalCursor .dirdiff drawMap $top -1 } # Pick a directory for compare proc browseDir {dirVar entryW} { global Pref upvar "#0" $dirVar dir |
︙ | ︙ | |||
4009 4010 4011 4012 4013 4014 4015 | menu $m if {($i & 12) == 12} { # Both are dirs $m add command -label "Compare Directories" -command " [list set dirdiff(leftDir) $lf] [list set dirdiff(rightDir) $rf] [list if \$Pref(autocompare) "after idle doCompare"] " | > | > | > | | 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 | menu $m if {($i & 12) == 12} { # Both are dirs $m add command -label "Compare Directories" -command " [list set dirdiff(leftDir) $lf] [list set dirdiff(rightDir) $rf] [list if \$Pref(autocompare) "after idle doCompare"] " } if {$i & 4 && $w eq $dirdiff(wLeft)} { # Left is dir $m add command -label "Step down left directory" -command " [list set dirdiff(leftDir) $lf] [list if \$Pref(autocompare) "after idle doCompare"] " } if {$i & 8 && $w eq $dirdiff(wRight)} { # Right is dir $m add command -label "Step down right directory" -command " [list set dirdiff(rightDir) $rf] [list if \$Pref(autocompare) "after idle doCompare"] " } if {($i & 12) == 0 && ($i & 3) == 0} { # Neither is dir, Both exists $m add command -label "Compare Files" -command [list \ newDiff $lf $rf] } if {$w eq $dirdiff(wLeft) && ($i & 13) == 0} { $m add command -label "Copy File" \ -command [list copyFile $row right] $m add command -label "Edit File" \ |
︙ | ︙ | |||
4189 4190 4191 4192 4193 4194 4195 | if {![catch {package require registry}]} { $top.mt.m add separator $top.mt.m add command -label "Setup Registry" -underline 6 \ -command makeRegistryWin } } | > > > > > > > | | 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 | if {![catch {package require registry}]} { $top.mt.m add separator $top.mt.m add command -label "Setup Registry" -underline 6 \ -command makeRegistryWin } } menubutton $top.mh -text "Help" -underline 0 -menu $top.mh.m menu $top.mh.m #$top.mh.m add command -label "Help" -command makeHelpWin -underline 0 $top.mh.m add command -label "Tutorial" -command makeTutorialWin \ -underline 0 $top.mh.m add command -label "About" -command makeAboutWin -underline 0 pack $top.mf $top.mo $top.mt $top.mh -in $top.fm -side left -anchor n if {$::debug} { menubutton $top.md -text "Debug" -menu $top.md.m -underline 0 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} |
︙ | ︙ | |||
4244 4245 4246 4247 4248 4249 4250 | -xscrollcommand "$top.sbx1 set" -takefocus 0 scrollbar $top.sby -orient vertical scrollbar $top.sbx1 -orient horizontal -command "$top.t1 xview" text $top.t2 -height 40 -width 60 -wrap none -font myfont \ -xscrollcommand "$top.sbx2 set" -takefocus 0 scrollbar $top.sbx2 -orient horizontal -command "$top.t2 xview" commonYScroll $top.sby $top.t1 $top.t2 | | > > > > > > > | 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 | -xscrollcommand "$top.sbx1 set" -takefocus 0 scrollbar $top.sby -orient vertical scrollbar $top.sbx1 -orient horizontal -command "$top.t1 xview" text $top.t2 -height 40 -width 60 -wrap none -font myfont \ -xscrollcommand "$top.sbx2 set" -takefocus 0 scrollbar $top.sbx2 -orient horizontal -command "$top.t2 xview" commonYScroll $top.sby $top.t1 $top.t2 canvas $top.c -width 6 -bd 0 -selectborderwidth 0 -highlightthickness 0 image create photo map$top $top.c create image 0 0 -anchor nw -image map$top bind $top.c <Destroy> [list image delete map$top] bind $top.c <Configure> [list drawMap $top %h] bind $top.t1 <Double-Button-1> "after idle selectFile $top.t1 %x %y" bind $top.t2 <Double-Button-1> "after idle selectFile $top.t2 %x %y" bind $top.t1 <Button-3> "rightClick $top.t1 %x %y %X %Y" bind $top.t2 <Button-3> "rightClick $top.t2 %x %y %X %Y" set dirdiff(wLeft) $top.t1 set dirdiff(wRight) $top.t2 set dirdiff(wY) $top.sby # Interact better with diff by setting these set ::widgets($top,wDiff1) $top.t1 set ::widgets($top,wDiff2) $top.t2 applyColor grid $top.fm - - - - -sticky we grid $top.fe1 x x $top.fe2 -sticky we grid $top.t1 $top.c $top.sby $top.t2 -sticky news grid $top.sbx1 x x $top.sbx2 -sticky we grid $top.c -pady [expr {[$top.sby cget -width] + 2}] grid rowconfigure $top 2 -weight 1 grid columnconfigure $top {0 3} -weight 1 } ##################################### |
︙ | ︙ |