Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fixed CVS on windows. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
a94ed66d1e170a16e0679f6339f02897 |
User & Date: | spjutp 2002-04-12 10:48:22.000 |
Context
2002-04-12
| ||
10:51 | Added edit file on context menu. check-in: b1509ddd59 user: spjutp tags: trunk | |
10:48 | Fixed CVS on windows. check-in: a94ed66d1e user: spjutp tags: trunk | |
2002-04-09
| ||
15:52 | Added no directory option. Exclude CVS from recursion. check-in: 97b879f13e user: spjutp tags: trunk | |
Changes
Changes to src/eskil.tcl.
︙ | ︙ | |||
50 51 52 53 54 55 56 | #----------------------------------------------- # $Revision$ #----------------------------------------------- # the next line restarts using wish \ exec wish "$0" "$@" set debug 1 | | > > > > > > > > > > | > > < | < < < < < | > > > > > | | < | | | < | | | 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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | #----------------------------------------------- # $Revision$ #----------------------------------------------- # the next line restarts using wish \ exec wish "$0" "$@" set debug 1 set diffver "Version 1.9.4b 2002-04-12" set tmpcnt 0 set tmpfiles {} set thisscript [file join [pwd] [info script]] set thisdir [file dirname $thisscript] set ::diff(cvsExists) [expr {![string equal [auto_execok cvs] ""]}] set ::diff(diffexe) diff if {[info exists env(TEMP)]} { set ::diff(tmpdir) $env(TEMP) } elseif {[info exists env(TMP)]} { set ::diff(tmpdir) $env(TMP) } else { if {$tcl_platform(platform) == "windows"} { set ::diff(tmpdir) c:/ } else { set ::diff(tmpdir) . } } # Support for FreeWrap. if {[info exists ::freewrap::contents]} { set debug 0 set thisdir [pwd] set thisscript "" # If diff.exe is wrapped, copy it so we can use it. if {[info exists ::freewrap::pkgInfo(diff.exe)]} { set ::diff(diffexe) [file join $diff(tmpdir) diff.exe] ::freewrap::pkgfilecopy diff.exe $::diff(diffexe) force } } if {$tcl_platform(platform) == "windows"} { cd $thisdir catch {package require dde} if {!$::diff(cvsExists) && [file exists "c:/bin/cvs.exe"]} { set env(PATH) "$env(PATH);c:\\bin" auto_reset set ::diff(cvsExists) [expr {![string equal [auto_execok cvs] ""]}] } } proc cleanupAndExit {} { if {$::diff(diffexe) != "diff"} { file delete $::diff(diffexe) } cleartmp exit } # Format a line number proc myforml {lineNo} { if {![string is integer -strict $lineNo]} {return "$lineNo\n"} return [format "%3d: \n" $lineNo] } proc maxabs {a b} { return [expr {abs($a) > abs($b) ? $a : $b}] } proc tmpfile {} { incr ::tmpcnt set name [file join $::diff(tmpdir) "tmpd[pid]a$::tmpcnt"] lappend ::tmpfiles $name return $name } proc cleartmp {} { foreach f $::tmpfiles { file delete $f } set ::tmpfiles {} } # 2nd stage line parsing # Recursively look for common substrings in strings s1 and s2 ##syntax compareMidString x x n n x? proc compareMidString {s1 s2 res1Name res2Name {test 0}} { global Pref |
︙ | ︙ | |||
1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 | if {$state != "none"} { displayOnePatch $leftLines $rightLines $leftLine $rightLine } close $ch } # Prepare for RCS/CVS diff. Checkout copies of the versions needed. proc prepareRCS {} { global diff Pref set revs {} set opts {} | > > > > > > > > > > > > > > > > > > > > > | 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 | if {$state != "none"} { displayOnePatch $leftLines $rightLines $leftLine $rightLine } close $ch } # Get a CVS revision proc execCvsUpdate {filename outfile args} { set old "" set dir [file dirname $filename] if {$dir != "."} { set old [pwd] set outfile [file join [pwd] $outfile] cd $dir set filename [file tail $filename] } set cmd $args set cmd [linsert $args 0 exec cvs -z3 update -p] lappend cmd [file nativename $filename] > $outfile catch {eval $cmd} if {$old != ""} { cd $old } } # Prepare for RCS/CVS diff. Checkout copies of the versions needed. proc prepareRCS {} { global diff Pref set revs {} set opts {} |
︙ | ︙ | |||
1181 1182 1183 1184 1185 1186 1187 | # Compare local file with latest version. set diff(leftFile) [tmpfile] set diff(rightLabel) $diff(RCSFile) set diff(rightFile) $diff(RCSFile) if {$diff(mode) == "CVS"} { set diff(leftLabel) "$diff(RCSFile) (CVS)" | < | < | < | < | | 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 | # Compare local file with latest version. set diff(leftFile) [tmpfile] set diff(rightLabel) $diff(RCSFile) set diff(rightFile) $diff(RCSFile) if {$diff(mode) == "CVS"} { set diff(leftLabel) "$diff(RCSFile) (CVS)" execCvsUpdate $diff(RCSFile) $diff(leftFile) } else { set diff(leftLabel) "$diff(RCSFile) (RCS)" catch {exec co -p [file nativename $diff(RCSFile)] > $diff(leftFile)} } } 1 { # Compare local file with specified version. set r [lindex $revs 0] set diff(leftFile) [tmpfile] set diff(rightLabel) $diff(RCSFile) set diff(rightFile) $diff(RCSFile) if {$diff(mode) == "CVS"} { set diff(leftLabel) "$diff(RCSFile) (CVS $r)" execCvsUpdate $diff(RCSFile) $diff(leftFile) -r $r } else { set diff(leftLabel) "$diff(RCSFile) (RCS $r)" catch {exec co -p$r [file nativename $diff(RCSFile)] > $diff(leftFile)} } } default { # Compare the two specified versions. set r1 [lindex $revs 0] set r2 [lindex $revs 1] set diff(leftFile) [tmpfile] set diff(rightFile) [tmpfile] if {$diff(mode) == "CVS"} { set diff(leftLabel) "$diff(RCSFile) (CVS $r1)" set diff(rightLabel) "$diff(RCSFile) (CVS $r2)" execCvsUpdate $diff(RCSFile) $diff(leftFile) -r $r1 execCvsUpdate $diff(RCSFile) $diff(rightFile) -r $r2 } else { set diff(leftLabel) "$diff(RCSFile) (RCS $r1)" set diff(rightLabel) "$diff(RCSFile) (RCS $r2)" catch {exec co -p$r1 [file nativename $diff(RCSFile)] > $diff(leftFile)} catch {exec co -p$r2 [file nativename $diff(RCSFile)] > $diff(rightFile)} } } |
︙ | ︙ | |||
1287 1288 1289 1290 1291 1292 1293 | } elseif {$diff(mode) == "RCS" || $diff(mode) == "CVS"} { prepareRCS } elseif {[string match "conflict*" $diff(mode)]} { prepareConflict } # Run diff and parse the result. | | | 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 | } elseif {$diff(mode) == "RCS" || $diff(mode) == "CVS"} { prepareRCS } elseif {[string match "conflict*" $diff(mode)]} { prepareConflict } # Run diff and parse the result. set differr [catch {eval exec \$::diff(diffexe) $Pref(dopt) $Pref(ignore) \ \$diff(leftFile) \$diff(rightFile)} diffres] set apa [split $diffres "\n"] set result {} foreach i $apa { if {[string match {[0-9]*} $i]} { lappend result $i |
︙ | ︙ | |||
2271 2272 2273 2274 2275 2276 2277 | } if {$i < 66} {puts -nonewline $ch "\f"} } close $ch if {$::tcl_platform(platform) == "windows" &&\ | | | 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 | } if {$i < 66} {puts -nonewline $ch "\f"} } close $ch if {$::tcl_platform(platform) == "windows" &&\ ![info exists ::env(ENSCRIPT_LIBRARY)]} { set ::env(ENSCRIPT_LIBRARY) [pwd] } set enscriptCmd [list enscript -2jcre] if {![regexp {^(.*)( \(.*?\))$} $::diff(leftLabel) -> lfile lrest]} { set lfile $::diff(leftLabel) set lrest "" } |
︙ | ︙ | |||
2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 | .mf.m add command -label "Open Both (forget)" -command {openBoth 1} .mf.m add command -label "Open Left File" -command openLeft .mf.m add command -label "Open Right File" -command openRight .mf.m add command -label "Open Conflict File" -command openConflict .mf.m add command -label "Open Patch File" -command openPatch if {$tcl_platform(platform) == "unix"} { .mf.m add command -label "RCSDiff" -underline 0 -command openRCS .mf.m add command -label "CVSDiff" -underline 0 -command openCVS } .mf.m add separator .mf.m add command -label "Print" -underline 0 -command doPrint .mf.m add separator .mf.m add command -label "Quit" -command cleanupAndExit | > > | 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 | .mf.m add command -label "Open Both (forget)" -command {openBoth 1} .mf.m add command -label "Open Left File" -command openLeft .mf.m add command -label "Open Right File" -command openRight .mf.m add command -label "Open Conflict File" -command openConflict .mf.m add command -label "Open Patch File" -command openPatch if {$tcl_platform(platform) == "unix"} { .mf.m add command -label "RCSDiff" -underline 0 -command openRCS } if {$::diff(cvsExists)} { .mf.m add command -label "CVSDiff" -underline 0 -command openCVS } .mf.m add separator .mf.m add command -label "Print" -underline 0 -command doPrint .mf.m add separator .mf.m add command -label "Quit" -command cleanupAndExit |
︙ | ︙ | |||
3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 | if {$autobrowse && (!$diff(leftOK) || !$diff(rightOK))} { if {!$diff(leftOK) && !$diff(rightOK)} { openBoth 0 } elseif {!$diff(leftOK)} { openLeft } elseif {!$diff(rightOK)} { openRight } } } proc saveOptions {} { global Pref | > > > > > > > > > > > > > > > > > > > | 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 | if {$autobrowse && (!$diff(leftOK) || !$diff(rightOK))} { if {!$diff(leftOK) && !$diff(rightOK)} { openBoth 0 } elseif {!$diff(leftOK)} { openLeft } elseif {!$diff(rightOK)} { openRight } # If we cancel the second file and detect CVS, ask about it. if {$diff(leftOK) && !$diff(rightOK) && \ [llength [glob -nocomplain [file join $fulldir CVS]]]} { if {[tk_messageBox -title Diff -icon question \ -message "Do CVS diff?" -type yesno] == "yes"} { set fulldir $diff(leftDir) set fullname $diff(leftFile) set diff(leftOK) 0 set diff(mode) "CVS" set diff(rightDir) $fulldir set diff(RCSFile) $fullname set diff(rightLabel) $fullname set diff(rightFile) $fullname set diff(rightOK) 1 set diff(leftLabel) "CVS" after idle doDiff } } } } proc saveOptions {} { global Pref |
︙ | ︙ |