home *** CD-ROM | disk | FTP | other *** search
/ Internet File Formats / InternetFileFormatsCD.bin / text / latex / mac / alpha.6.0.sit / Tcl / SystemCode / shell.tcl < prev    next >
MacBinary  |  1995-06-22  |  14.0 KB  |  [TEXT/ALFA]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Thu Jun 22 09:14:13 1995, modified Thu Jun 22 09:14:13 1995, creator Alpha editor, type ASCII, 13276 bytes "shell.tcl" , at 0x345c 886 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[ALFA]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 09 73 68 65 6c 6c 2e | 74 63 6c 00 00 00 00 00 |..shell.|tcl.....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 41 4c 46 | 41 01 00 00 00 00 00 00 |.TEXTALF|A.......|
|00000050| 00 00 00 00 00 33 dc 00 | 00 03 76 ac 0f 1d 25 ac |.....3..|..v...%.|
|00000060| 0f 1d 25 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..%.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 cd a3 00 00 |........|........|
|00000080| 0d 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |.#######|########|
|00000090| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000000a0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000000b0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000000c0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000000d0| 23 0d 23 20 53 68 65 6c | 6c 20 72 6f 75 74 69 6e |#.# Shel|l routin|
|000000e0| 65 73 2e 0d 23 23 23 23 | 23 23 23 23 23 23 23 23 |es..####|########|
|000000f0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000100| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000110| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000120| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000130| 23 23 23 23 0d 0d 0d 70 | 72 6f 63 20 73 65 74 53 |####...p|roc setS|
|00000140| 68 65 6c 6c 4d 6f 64 65 | 20 7b 7d 20 7b 0d 09 73 |hellMode| {} {..s|
|00000150| 65 74 54 63 6c 4d 6f 64 | 65 0d 09 63 68 61 6e 67 |etTclMod|e..chang|
|00000160| 65 4d 6f 64 65 20 22 53 | 68 65 6c 22 0d 09 69 6e |eMode "S|hel"..in|
|00000170| 73 65 72 74 4d 65 6e 75 | 20 22 54 63 6c 22 0d 7d |sertMenu| "Tcl".}|
|00000180| 0d 0d 70 72 6f 63 20 69 | 6e 69 74 53 68 65 6c 6c |..proc i|nitShell|
|00000190| 20 7b 7d 20 7b 0d 09 69 | 6e 73 65 72 74 54 65 78 | {} {..i|nsertTex|
|000001a0| 74 20 22 57 65 6c 63 6f | 6d 65 20 74 6f 20 41 6c |t "Welco|me to Al|
|000001b0| 70 68 61 27 73 20 54 63 | 6c 20 73 68 65 6c 6c 2e |pha's Tc|l shell.|
|000001c0| 22 0d 09 69 6e 73 65 72 | 74 54 65 78 74 20 2d 77 |"..inser|tText -w|
|000001d0| 20 5b 6c 69 6e 64 65 78 | 20 5b 77 69 6e 4e 61 6d | [lindex| [winNam|
|000001e0| 65 73 5d 20 30 5d 20 5b | 73 68 65 6c 6c 50 72 6f |es] 0] [|shellPro|
|000001f0| 6d 70 74 5d 0d 7d 0d 0d | 23 20 52 65 74 75 72 6e |mpt].}..|# Return|
|00000200| 20 74 68 65 20 70 72 6f | 6d 70 74 2e 20 57 65 20 | the pro|mpt. We |
|00000210| 77 61 6e 74 20 74 68 65 | 20 77 69 6e 64 6f 77 20 |want the| window |
|00000220| 6e 61 6d 65 20 62 65 63 | 61 75 73 65 20 73 6f 6d |name bec|ause som|
|00000230| 65 20 6f 66 20 74 68 65 | 20 63 6f 6d 6d 61 6e 64 |e of the| command|
|00000240| 73 0d 23 20 77 65 20 65 | 76 61 6c 75 61 74 65 20 |s.# we e|valuate |
|00000250| 28 73 75 63 68 20 61 73 | 20 27 65 64 69 74 27 29 |(such as| 'edit')|
|00000260| 20 6f 70 65 6e 20 61 20 | 6e 65 77 20 77 69 6e 64 | open a |new wind|
|00000270| 6f 77 2c 20 61 6e 64 20 | 77 65 20 77 61 6e 74 20 |ow, and |we want |
|00000280| 74 68 65 20 69 6e 73 65 | 72 74 69 6f 6e 0d 23 20 |the inse|rtion.# |
|00000290| 74 6f 20 62 65 20 64 6f | 6e 65 20 69 6e 20 74 68 |to be do|ne in th|
|000002a0| 65 20 73 68 65 6c 6c 20 | 77 69 6e 64 6f 77 2e 0d |e shell |window..|
|000002b0| 70 72 6f 63 20 73 68 65 | 6c 6c 50 72 6f 6d 70 74 |proc she|llPrompt|
|000002c0| 20 7b 7d 20 7b 0d 09 72 | 65 74 75 72 6e 20 22 5c | {} {..r|eturn "\|
|000002d0| 72 c7 5b 66 69 6c 65 20 | 74 61 69 6c 20 5b 73 74 |r.[file |tail [st|
|000002e0| 72 69 6e 67 20 74 72 69 | 6d 72 69 67 68 74 20 5b |ring tri|mright [|
|000002f0| 70 77 64 5d 20 7b 3a 7d | 5d 5d c8 20 22 0d 7d 0d |pwd] {:}|]]. ".}.|
|00000300| 0d 0d 23 20 43 61 6c 6c | 65 64 20 61 74 20 61 6c |..# Call|ed at al|
|00000310| 6c 20 63 61 72 72 69 61 | 67 65 20 72 65 74 75 72 |l carria|ge retur|
|00000320| 6e 73 2e 0d 70 72 6f 63 | 20 63 61 72 72 69 61 67 |ns..proc| carriag|
|00000330| 65 52 65 74 75 72 6e 20 | 7b 7d 20 7b 0d 09 67 6c |eReturn |{} {..gl|
|00000340| 6f 62 61 6c 20 6d 6f 64 | 65 0d 09 67 6c 6f 62 61 |obal mod|e..globa|
|00000350| 6c 20 69 6e 64 65 6e 74 | 4f 6e 43 52 0d 09 73 65 |l indent|OnCR..se|
|00000360| 74 20 69 6e 64 65 6e 74 | 53 74 72 69 6e 67 20 22 |t indent|String "|
|00000370| 22 0d 09 64 65 6c 65 74 | 65 54 65 78 74 20 5b 67 |"..delet|eText [g|
|00000380| 65 74 50 6f 73 5d 20 5b | 73 65 6c 45 6e 64 5d 0d |etPos] [|selEnd].|
|00000390| 09 69 66 20 7b 24 69 6e | 64 65 6e 74 4f 6e 43 52 |.if {$in|dentOnCR|
|000003a0| 7d 20 7b 0d 09 09 73 65 | 74 20 70 6f 73 20 5b 67 |} {...se|t pos [g|
|000003b0| 65 74 50 6f 73 5d 0d 09 | 09 73 65 74 20 74 65 78 |etPos]..|.set tex|
|000003c0| 74 20 5b 67 65 74 54 65 | 78 74 20 5b 6c 69 6e 65 |t [getTe|xt [line|
|000003d0| 53 74 61 72 74 20 24 70 | 6f 73 5d 20 24 70 6f 73 |Start $p|os] $pos|
|000003e0| 5d 0d 09 09 66 6f 72 20 | 7b 73 65 74 20 69 20 30 |]...for |{set i 0|
|000003f0| 3b 20 73 65 74 20 6c 65 | 6e 20 5b 73 74 72 69 6e |; set le|n [strin|
|00000400| 67 20 6c 65 6e 67 74 68 | 20 24 74 65 78 74 5d 7d |g length| $text]}|
|00000410| 20 7b 24 69 20 3c 3d 20 | 24 6c 65 6e 7d 20 7b 69 | {$i <= |$len} {i|
|00000420| 6e 63 72 20 69 7d 20 7b | 0d 09 09 09 73 65 74 20 |ncr i} {|....set |
|00000430| 63 20 5b 73 74 72 69 6e | 67 20 69 6e 64 65 78 20 |c [strin|g index |
|00000440| 24 74 65 78 74 20 24 69 | 5d 0d 09 09 09 69 66 20 |$text $i|]....if |
|00000450| 7b 28 24 63 20 21 3d 20 | 22 5c 74 22 29 20 26 26 |{($c != |"\t") &&|
|00000460| 20 28 24 63 20 21 3d 20 | 22 5c 20 22 29 7d 20 7b | ($c != |"\ ")} {|
|00000470| 0d 09 09 09 09 73 65 74 | 20 69 6e 64 65 6e 74 53 |.....set| indentS|
|00000480| 74 72 69 6e 67 20 5b 73 | 74 72 69 6e 67 20 72 61 |tring [s|tring ra|
|00000490| 6e 67 65 20 24 74 65 78 | 74 20 30 20 5b 65 78 70 |nge $tex|t 0 [exp|
|000004a0| 72 20 24 69 2d 31 5d 5d | 0d 09 09 09 09 62 72 65 |r $i-1]]|.....bre|
|000004b0| 61 6b 0d 09 09 09 7d 0d | 09 09 7d 0d 09 7d 0d 09 |ak....}.|..}..}..|
|000004c0| 69 6e 73 65 72 74 54 65 | 78 74 20 22 5c 72 22 20 |insertTe|xt "\r" |
|000004d0| 24 69 6e 64 65 6e 74 53 | 74 72 69 6e 67 0d 7d 0d |$indentS|tring.}.|
|000004e0| 0d 0d 70 72 6f 63 20 73 | 68 65 6c 6c 43 61 72 72 |..proc s|hellCarr|
|000004f0| 69 61 67 65 52 65 74 75 | 72 6e 20 7b 7d 20 7b 0d |iageRetu|rn {} {.|
|00000500| 09 67 6c 6f 62 61 6c 20 | 6d 6f 64 65 20 68 69 73 |.global |mode his|
|00000510| 74 6e 75 6d 0d 09 67 6c | 6f 62 61 6c 20 5f 74 65 |tnum..gl|obal _te|
|00000520| 78 74 0d 09 67 6c 6f 62 | 61 6c 20 5f 72 65 74 75 |xt..glob|al _retu|
|00000530| 72 6e 54 65 78 74 0d 09 | 73 65 74 20 70 6f 73 20 |rnText..|set pos |
|00000540| 5b 67 65 74 50 6f 73 5d | 0d 0d 09 69 66 20 7b 21 |[getPos]|...if {!|
|00000550| 5b 63 61 74 63 68 20 7b | 72 65 67 65 78 70 20 7b |[catch {|regexp {|
|00000560| b0 7d 20 5b 67 65 74 54 | 65 78 74 20 24 70 6f 73 |.} [getT|ext $pos|
|00000570| 20 5b 6e 65 78 74 4c 69 | 6e 65 53 74 61 72 74 20 | [nextLi|neStart |
|00000580| 24 70 6f 73 5d 5d 7d 20 | 72 65 73 5d 20 26 26 20 |$pos]]} |res] && |
|00000590| 24 72 65 73 7d 20 7b 0d | 09 09 67 6f 74 6f 4d 61 |$res} {.|..gotoMa|
|000005a0| 74 63 68 3b 20 72 65 74 | 75 72 6e 3b 0d 09 7d 0d |tch; ret|urn;..}.|
|000005b0| 09 73 65 74 20 69 6e 64 | 20 5b 73 74 72 69 6e 67 |.set ind| [string|
|000005c0| 20 66 69 72 73 74 20 22 | c8 22 20 5b 67 65 74 54 | first "|." [getT|
|000005d0| 65 78 74 20 5b 6c 69 6e | 65 53 74 61 72 74 20 24 |ext [lin|eStart $|
|000005e0| 70 6f 73 5d 20 24 70 6f | 73 5d 5d 0d 09 69 66 20 |pos] $po|s]]..if |
|000005f0| 7b 24 69 6e 64 20 3c 20 | 30 7d 20 7b 0d 09 09 63 |{$ind < |0} {...c|
|00000600| 61 72 72 69 61 67 65 52 | 65 74 75 72 6e 0d 09 09 |arriageR|eturn...|
|00000610| 72 65 74 75 72 6e 0d 09 | 7d 0d 09 73 65 74 20 6c |return..|}..set l|
|00000620| 53 74 61 72 74 20 5b 65 | 78 70 72 20 5b 6c 69 6e |Start [e|xpr [lin|
|00000630| 65 53 74 61 72 74 20 24 | 70 6f 73 5d 2b 24 69 6e |eStart $|pos]+$in|
|00000640| 64 2b 32 5d 0d 09 65 6e | 64 4f 66 4c 69 6e 65 0d |d+2]..en|dOfLine.|
|00000650| 09 73 65 74 20 5f 74 65 | 78 74 20 5b 67 65 74 54 |.set _te|xt [getT|
|00000660| 65 78 74 20 24 6c 53 74 | 61 72 74 20 5b 67 65 74 |ext $lSt|art [get|
|00000670| 50 6f 73 5d 5d 0d 09 73 | 65 74 20 66 69 6c 65 4e |Pos]]..s|et fileN|
|00000680| 61 6d 65 20 5b 6c 69 6e | 64 65 78 20 5b 77 69 6e |ame [lin|dex [win|
|00000690| 4e 61 6d 65 73 5d 20 30 | 5d 0d 09 69 66 20 7b 5b |Names] 0|]..if {[|
|000006a0| 67 65 74 50 6f 73 5d 20 | 21 3d 20 5b 6d 61 78 50 |getPos] |!= [maxP|
|000006b0| 6f 73 5d 7d 20 7b 0d 09 | 09 67 6f 74 6f 20 5b 6d |os]} {..|.goto [m|
|000006c0| 61 78 50 6f 73 5d 0d 09 | 09 69 6e 73 65 72 74 54 |axPos]..|.insertT|
|000006d0| 65 78 74 20 2d 77 20 24 | 66 69 6c 65 4e 61 6d 65 |ext -w $|fileName|
|000006e0| 20 24 5f 74 65 78 74 0d | 09 7d 0d 09 69 66 20 7b | $_text.|.}..if {|
|000006f0| 5b 73 74 72 69 6e 67 20 | 66 69 72 73 74 20 22 54 |[string |first "T|
|00000700| 6f 6f 6c 73 65 72 76 65 | 72 22 20 24 66 69 6c 65 |oolserve|r" $file|
|00000710| 4e 61 6d 65 5d 20 21 3d | 20 2d 31 7d 20 7b 0d 09 |Name] !=| -1} {..|
|00000720| 09 69 66 20 7b 21 5b 63 | 61 74 63 68 20 7b 64 6f |.if {![c|atch {do|
|00000730| 73 63 20 2d 6e 20 54 6f | 6f 6c 53 65 72 76 65 72 |sc -n To|olServer|
|00000740| 20 2d 73 20 24 5f 74 65 | 78 74 7d 20 5f 72 65 74 | -s $_te|xt} _ret|
|00000750| 75 72 6e 54 65 78 74 5d | 7d 20 7b 0d 09 09 09 69 |urnText]|} {....i|
|00000760| 6e 73 65 72 74 54 65 78 | 74 20 22 5c 72 22 20 24 |nsertTex|t "\r" $|
|00000770| 5f 72 65 74 75 72 6e 54 | 65 78 74 0d 09 09 7d 20 |_returnT|ext...} |
|00000780| 65 6c 73 65 20 7b 0d 09 | 09 09 69 6e 73 65 72 74 |else {..|..insert|
|00000790| 54 65 78 74 20 22 5c 72 | 22 0d 09 09 7d 0d 09 09 |Text "\r|"...}...|
|000007a0| 6d 70 77 50 72 6f 6d 70 | 74 0d 09 7d 20 65 6c 73 |mpwPromp|t..} els|
|000007b0| 65 20 7b 0d 09 09 75 70 | 6c 65 76 65 6c 20 23 30 |e {...up|level #0|
|000007c0| 20 7b 63 61 74 63 68 20 | 24 5f 74 65 78 74 20 5f | {catch |$_text _|
|000007d0| 72 65 74 75 72 6e 54 65 | 78 74 7d 0d 09 09 68 69 |returnTe|xt}...hi|
|000007e0| 73 74 6f 72 79 20 61 64 | 64 20 24 5f 74 65 78 74 |story ad|d $_text|
|000007f0| 0d 09 09 69 66 20 7b 5b | 73 74 72 69 6e 67 20 6c |...if {[|string l|
|00000800| 65 6e 67 74 68 20 24 5f | 72 65 74 75 72 6e 54 65 |ength $_|returnTe|
|00000810| 78 74 5d 7d 20 7b 0d 09 | 09 09 69 6e 73 65 72 74 |xt]} {..|..insert|
|00000820| 54 65 78 74 20 2d 77 20 | 24 66 69 6c 65 4e 61 6d |Text -w |$fileNam|
|00000830| 65 20 22 5c 72 22 20 24 | 5f 72 65 74 75 72 6e 54 |e "\r" $|_returnT|
|00000840| 65 78 74 20 5b 73 68 65 | 6c 6c 50 72 6f 6d 70 74 |ext [she|llPrompt|
|00000850| 5d 0d 09 09 7d 20 65 6c | 73 65 20 7b 0d 09 09 09 |]...} el|se {....|
|00000860| 69 6e 73 65 72 74 54 65 | 78 74 20 2d 77 20 24 66 |insertTe|xt -w $f|
|00000870| 69 6c 65 4e 61 6d 65 20 | 5b 73 68 65 6c 6c 50 72 |ileName |[shellPr|
|00000880| 6f 6d 70 74 5d 0d 09 09 | 7d 0d 09 09 73 65 74 20 |ompt]...|}...set |
|00000890| 68 69 73 74 6e 75 6d 20 | 5b 68 69 73 74 6f 72 79 |histnum |[history|
|000008a0| 20 6e 65 78 74 69 64 5d | 0d 09 7d 0d 09 75 6e 73 | nextid]|..}..uns|
|000008b0| 65 74 20 5f 74 65 78 74 | 0d 09 75 6e 73 65 74 20 |et _text|..unset |
|000008c0| 5f 72 65 74 75 72 6e 54 | 65 78 74 0d 7d 0d 62 69 |_returnT|ext.}.bi|
|000008d0| 6e 64 20 27 5c 72 27 20 | 63 61 72 72 69 61 67 65 |nd '\r' |carriage|
|000008e0| 52 65 74 75 72 6e 0d 62 | 69 6e 64 20 27 5c 72 27 |Return.b|ind '\r'|
|000008f0| 20 73 68 65 6c 6c 43 61 | 72 72 69 61 67 65 52 65 | shellCa|rriageRe|
|00000900| 74 75 72 6e 20 22 53 68 | 65 6c 22 0d 62 69 6e 64 |turn "Sh|el".bind|
|00000910| 20 27 5c 72 27 20 73 68 | 65 6c 6c 43 61 72 72 69 | '\r' sh|ellCarri|
|00000920| 61 67 65 52 65 74 75 72 | 6e 20 22 4d 50 57 22 0d |ageRetur|n "MPW".|
|00000930| 0d 0d 62 69 6e 64 20 75 | 70 20 3c 7a 3e 20 70 72 |..bind u|p <z> pr|
|00000940| 65 76 48 69 73 74 20 53 | 68 65 6c 0d 62 69 6e 64 |evHist S|hel.bind|
|00000950| 20 64 6f 77 6e 20 3c 7a | 3e 20 6e 65 78 74 48 69 | down <z|> nextHi|
|00000960| 73 74 20 53 68 65 6c 0d | 0d 70 72 6f 63 20 70 72 |st Shel.|.proc pr|
|00000970| 65 76 48 69 73 74 20 7b | 7d 20 7b 0d 09 67 6c 6f |evHist {|} {..glo|
|00000980| 62 61 6c 20 68 69 73 74 | 6e 75 6d 0d 09 0d 09 73 |bal hist|num....s|
|00000990| 65 74 20 74 65 78 74 20 | 5b 67 65 74 54 65 78 74 |et text |[getText|
|000009a0| 20 5b 6c 69 6e 65 53 74 | 61 72 74 20 5b 67 65 74 | [lineSt|art [get|
|000009b0| 50 6f 73 5d 5d 20 5b 6e | 65 78 74 4c 69 6e 65 53 |Pos]] [n|extLineS|
|000009c0| 74 61 72 74 20 5b 67 65 | 74 50 6f 73 5d 5d 5d 0d |tart [ge|tPos]]].|
|000009d0| 09 69 66 20 7b 5b 73 65 | 74 20 69 6e 64 20 5b 73 |.if {[se|t ind [s|
|000009e0| 74 72 69 6e 67 20 66 69 | 72 73 74 20 22 c8 20 22 |tring fi|rst ". "|
|000009f0| 20 24 74 65 78 74 5d 5d | 20 3e 20 30 7d 20 7b 0d | $text]]| > 0} {.|
|00000a00| 09 09 67 6f 74 6f 20 5b | 65 78 70 72 20 5b 6c 69 |..goto [|expr [li|
|00000a10| 6e 65 53 74 61 72 74 20 | 5b 67 65 74 50 6f 73 5d |neStart |[getPos]|
|00000a20| 5d 20 2b 20 24 69 6e 64 | 20 2b 20 32 5d 0d 09 7d |] + $ind| + 2]..}|
|00000a30| 20 65 6c 73 65 20 72 65 | 74 75 72 6e 0d 0d 09 69 | else re|turn...i|
|00000a40| 6e 63 72 20 68 69 73 74 | 6e 75 6d 20 2d 31 0d 09 |ncr hist|num -1..|
|00000a50| 69 66 20 7b 5b 63 61 74 | 63 68 20 7b 68 69 73 74 |if {[cat|ch {hist|
|00000a60| 6f 72 79 20 65 76 65 6e | 74 20 24 68 69 73 74 6e |ory even|t $histn|
|00000a70| 75 6d 7d 20 74 65 78 74 | 5d 7d 20 7b 0d 09 09 69 |um} text|]} {...i|
|00000a80| 6e 63 72 20 68 69 73 74 | 6e 75 6d 0d 09 09 65 6e |ncr hist|num...en|
|00000a90| 64 4f 66 4c 69 6e 65 0d | 09 09 72 65 74 75 72 6e |dOfLine.|..return|
|00000aa0| 0d 09 7d 0d 09 73 65 74 | 20 74 6f 20 5b 6e 65 78 |..}..set| to [nex|
|00000ab0| 74 4c 69 6e 65 53 74 61 | 72 74 20 5b 67 65 74 50 |tLineSta|rt [getP|
|00000ac0| 6f 73 5d 5d 0d 09 69 66 | 20 7b 5b 6c 6f 6f 6b 41 |os]]..if| {[lookA|
|00000ad0| 74 20 5b 65 78 70 72 20 | 24 74 6f 2d 31 5d 5d 20 |t [expr |$to-1]] |
|00000ae0| 3d 3d 20 22 5c 72 22 7d | 20 7b 69 6e 63 72 20 74 |== "\r"}| {incr t|
|00000af0| 6f 20 2d 31 7d 0d 09 72 | 65 70 6c 61 63 65 54 65 |o -1}..r|eplaceTe|
|00000b00| 78 74 20 5b 67 65 74 50 | 6f 73 5d 20 24 74 6f 20 |xt [getP|os] $to |
|00000b10| 24 74 65 78 74 0d 7d 0d | 0d 0d 70 72 6f 63 20 6e |$text.}.|..proc n|
|00000b20| 65 78 74 48 69 73 74 20 | 7b 7d 20 7b 0d 09 67 6c |extHist |{} {..gl|
|00000b30| 6f 62 61 6c 20 68 69 73 | 74 6e 75 6d 0d 09 0d 09 |obal his|tnum....|
|00000b40| 73 65 74 20 74 65 78 74 | 20 5b 67 65 74 54 65 78 |set text| [getTex|
|00000b50| 74 20 5b 6c 69 6e 65 53 | 74 61 72 74 20 5b 67 65 |t [lineS|tart [ge|
|00000b60| 74 50 6f 73 5d 5d 20 5b | 6e 65 78 74 4c 69 6e 65 |tPos]] [|nextLine|
|00000b70| 53 74 61 72 74 20 5b 67 | 65 74 50 6f 73 5d 5d 5d |Start [g|etPos]]]|
|00000b80| 0d 09 69 66 20 7b 5b 73 | 65 74 20 69 6e 64 20 5b |..if {[s|et ind [|
|00000b90| 73 74 72 69 6e 67 20 66 | 69 72 73 74 20 22 c8 20 |string f|irst ". |
|00000ba0| 22 20 24 74 65 78 74 5d | 5d 20 3e 20 30 7d 20 7b |" $text]|] > 0} {|
|00000bb0| 0d 09 09 67 6f 74 6f 20 | 5b 65 78 70 72 20 5b 6c |...goto |[expr [l|
|00000bc0| 69 6e 65 53 74 61 72 74 | 20 5b 67 65 74 50 6f 73 |ineStart| [getPos|
|00000bd0| 5d 5d 20 2b 20 24 69 6e | 64 20 2b 20 32 5d 0d 09 |]] + $in|d + 2]..|
|00000be0| 7d 20 65 6c 73 65 20 72 | 65 74 75 72 6e 0d 0d 09 |} else r|eturn...|
|00000bf0| 69 6e 63 72 20 68 69 73 | 74 6e 75 6d 0d 09 69 66 |incr his|tnum..if|
|00000c00| 20 7b 5b 63 61 74 63 68 | 20 7b 68 69 73 74 6f 72 | {[catch| {histor|
|00000c10| 79 20 65 76 65 6e 74 20 | 24 68 69 73 74 6e 75 6d |y event |$histnum|
|00000c20| 7d 20 74 65 78 74 5d 7d | 20 7b 0d 09 09 69 6e 63 |} text]}| {...inc|
|00000c30| 72 20 68 69 73 74 6e 75 | 6d 20 2d 31 0d 09 09 65 |r histnu|m -1...e|
|00000c40| 6e 64 4f 66 4c 69 6e 65 | 0d 09 09 72 65 74 75 72 |ndOfLine|...retur|
|00000c50| 6e 0d 09 7d 0d 09 73 65 | 74 20 74 6f 20 5b 6e 65 |n..}..se|t to [ne|
|00000c60| 78 74 4c 69 6e 65 53 74 | 61 72 74 20 5b 67 65 74 |xtLineSt|art [get|
|00000c70| 50 6f 73 5d 5d 0d 09 69 | 66 20 7b 5b 6c 6f 6f 6b |Pos]]..i|f {[look|
|00000c80| 41 74 20 5b 65 78 70 72 | 20 24 74 6f 2d 31 5d 5d |At [expr| $to-1]]|
|00000c90| 20 3d 3d 20 22 5c 72 22 | 7d 20 7b 69 6e 63 72 20 | == "\r"|} {incr |
|00000ca0| 74 6f 20 2d 31 7d 0d 09 | 72 65 70 6c 61 63 65 54 |to -1}..|replaceT|
|00000cb0| 65 78 74 20 5b 67 65 74 | 50 6f 73 5d 20 24 74 6f |ext [get|Pos] $to|
|00000cc0| 20 24 74 65 78 74 0d 7d | 0d 0d 09 0d 70 72 6f 63 | $text.}|....proc|
|00000cd0| 20 73 74 61 72 74 4d 50 | 57 20 7b 7d 20 7b 0d 09 | startMP|W {} {..|
|00000ce0| 67 6c 6f 62 61 6c 20 74 | 6f 6f 6c 73 65 72 76 65 |global t|oolserve|
|00000cf0| 72 50 61 74 68 0d 0d 09 | 69 66 20 7b 21 5b 73 74 |rPath...|if {![st|
|00000d00| 72 69 6e 67 20 6c 65 6e | 67 74 68 20 5b 63 68 65 |ring len|gth [che|
|00000d10| 63 6b 52 75 6e 6e 69 6e | 67 20 54 6f 6f 6c 53 65 |ckRunnin|g ToolSe|
|00000d20| 72 76 65 72 20 4d 50 53 | 58 20 74 6f 6f 6c 73 65 |rver MPS|X toolse|
|00000d30| 72 76 65 72 50 61 74 68 | 5d 5d 7d 20 72 65 74 75 |rverPath|]]} retu|
|00000d40| 72 6e 0d 0d 09 69 6e 73 | 65 72 74 54 65 78 74 20 |rn...ins|ertText |
|00000d50| 22 57 65 6c 63 6f 6d 65 | 20 74 6f 20 41 6c 70 68 |"Welcome| to Alph|
|00000d60| 61 27 73 20 4d 50 57 20 | 73 68 65 6c 6c 20 28 75 |a's MPW |shell (u|
|00000d70| 73 69 6e 67 20 54 6f 6f | 6c 53 65 72 76 65 72 20 |sing Too|lServer |
|00000d80| 76 69 61 20 41 70 70 6c | 65 45 76 65 6e 74 73 29 |via Appl|eEvents)|
|00000d90| 2e 22 0d 09 62 69 6e 64 | 20 27 5c 72 27 20 73 68 |."..bind| '\r' sh|
|00000da0| 65 6c 6c 43 61 72 72 69 | 61 67 65 52 65 74 75 72 |ellCarri|ageRetur|
|00000db0| 6e 20 22 4d 50 57 22 0d | 09 63 61 72 72 69 61 67 |n "MPW".|.carriag|
|00000dc0| 65 52 65 74 75 72 6e 0d | 09 6d 70 77 50 72 6f 6d |eReturn.|.mpwProm|
|00000dd0| 70 74 0d 7d 0d 70 72 6f | 63 20 6d 70 77 50 72 6f |pt.}.pro|c mpwPro|
|00000de0| 6d 70 74 20 7b 7d 20 7b | 0d 09 69 6e 73 65 72 74 |mpt {} {|..insert|
|00000df0| 54 65 78 74 20 22 c7 6d | 70 77 c8 20 22 0d 7d 0d |Text ".m|pw. ".}.|
|00000e00| 0d 70 72 6f 63 20 73 65 | 74 4d 50 57 4d 6f 64 65 |.proc se|tMPWMode|
|00000e10| 20 7b 7d 20 7b 0d 09 63 | 68 61 6e 67 65 4d 6f 64 | {} {..c|hangeMod|
|00000e20| 65 20 22 4d 50 57 22 0d | 7d 0d 0d 23 09 73 68 65 |e "MPW".|}..#.she|
|00000e30| 6c 6c 43 61 72 72 69 61 | 67 65 52 65 74 75 72 6e |llCarria|geReturn|
|00000e40| 0d 0d 0d 0d 23 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |....#===|========|
|00000e50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e60| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e70| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e90| 3d 3d 0d 23 09 53 68 65 | 6c 6c 20 41 6c 69 61 73 |==.#.She|ll Alias|
|00000ea0| 65 73 0d 23 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |es.#====|========|
|00000eb0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000ec0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000ed0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000ee0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000ef0| 3d 0d 0d 0d 70 72 6f 63 | 20 6c 20 7b 61 72 67 73 |=...proc| l {args|
|00000f00| 7d 20 7b 0d 09 65 76 61 | 6c 20 5b 63 6f 6e 63 61 |} {..eva|l [conca|
|00000f10| 74 20 22 6c 73 20 2d 43 | 46 22 20 24 61 72 67 73 |t "ls -C|F" $args|
|00000f20| 5d 7d 0d 0d 70 72 6f 63 | 20 6c 6c 20 7b 61 72 67 |]}..proc| ll {arg|
|00000f30| 73 7d 20 7b 0d 09 65 76 | 61 6c 20 5b 63 6f 6e 63 |s} {..ev|al [conc|
|00000f40| 61 74 20 22 6c 73 20 2d | 6c 22 20 24 61 72 67 73 |at "ls -|l" $args|
|00000f50| 5d 7d 0d 0d 0d 70 72 6f | 63 20 77 63 20 7b 61 72 |]}...pro|c wc {ar|
|00000f60| 67 73 7d 20 7b 0d 09 73 | 65 74 20 72 65 73 20 7b |gs} {..s|et res {|
|00000f70| 7d 0d 09 73 65 74 20 74 | 6f 74 43 68 61 72 73 20 |}..set t|otChars |
|00000f80| 30 0d 09 73 65 74 20 74 | 6f 74 4c 69 6e 65 73 20 |0..set t|otLines |
|00000f90| 30 0d 09 73 65 74 20 74 | 6f 74 57 6f 72 64 73 20 |0..set t|otWords |
|00000fa0| 30 0d 09 73 65 74 20 61 | 72 67 73 20 5b 67 6c 6f |0..set a|rgs [glo|
|00000fb0| 62 20 2d 6e 6f 63 6f 6d | 70 6c 61 69 6e 20 24 61 |b -nocom|plain $a|
|00000fc0| 72 67 73 5d 0d 09 66 6f | 72 65 61 63 68 20 66 69 |rgs]..fo|reach fi|
|00000fd0| 6c 65 20 24 61 72 67 73 | 20 7b 0d 09 09 73 65 74 |le $args| {...set|
|00000fe0| 20 69 64 20 5b 6f 70 65 | 6e 20 24 66 69 6c 65 5d | id [ope|n $file]|
|00000ff0| 0d 09 09 73 65 74 20 63 | 68 61 72 73 20 5b 73 74 |...set c|hars [st|
|00001000| 72 69 6e 67 20 6c 65 6e | 67 74 68 20 5b 73 65 74 |ring len|gth [set|
|00001010| 20 74 65 78 74 20 5b 72 | 65 61 64 20 24 69 64 5d | text [r|ead $id]|
|00001020| 5d 5d 0d 09 09 73 65 74 | 20 6c 69 6e 65 73 20 5b |]]...set| lines [|
|00001030| 6c 6c 65 6e 67 74 68 20 | 5b 73 70 6c 69 74 20 24 |llength |[split $|
|00001040| 74 65 78 74 20 22 5c 6e | 22 5d 5d 0d 09 09 73 65 |text "\n|"]]...se|
|00001050| 74 20 77 6f 72 64 73 20 | 5b 6c 6c 65 6e 67 74 68 |t words |[llength|
|00001060| 20 5b 73 70 6c 69 74 20 | 24 74 65 78 74 5d 5d 0d | [split |$text]].|
|00001070| 09 09 61 70 70 65 6e 64 | 20 72 65 73 20 5b 66 6f |..append| res [fo|
|00001080| 72 6d 61 74 20 22 5c 72 | 25 38 64 25 38 64 25 38 |rmat "\r|%8d%8d%8|
|00001090| 64 20 20 20 20 24 66 69 | 6c 65 22 20 24 6c 69 6e |d $fi|le" $lin|
|000010a0| 65 73 20 24 77 6f 72 64 | 73 20 24 63 68 61 72 73 |es $word|s $chars|
|000010b0| 5d 0d 09 09 73 65 74 20 | 74 6f 74 43 68 61 72 73 |]...set |totChars|
|000010c0| 20 5b 65 78 70 72 20 24 | 74 6f 74 43 68 61 72 73 | [expr $|totChars|
|000010d0| 2b 24 63 68 61 72 73 5d | 0d 09 09 73 65 74 20 74 |+$chars]|...set t|
|000010e0| 6f 74 57 6f 72 64 73 20 | 5b 65 78 70 72 20 24 74 |otWords |[expr $t|
|000010f0| 6f 74 57 6f 72 64 73 2b | 24 77 6f 72 64 73 5d 0d |otWords+|$words].|
|00001100| 09 09 73 65 74 20 74 6f | 74 4c 69 6e 65 73 20 5b |..set to|tLines [|
|00001110| 65 78 70 72 20 24 74 6f | 74 4c 69 6e 65 73 2b 24 |expr $to|tLines+$|
|00001120| 6c 69 6e 65 73 5d 0d 09 | 09 63 6c 6f 73 65 20 24 |lines]..|.close $|
|00001130| 69 64 0d 09 7d 0d 09 69 | 66 20 7b 5b 6c 6c 65 6e |id..}..i|f {[llen|
|00001140| 67 74 68 20 24 61 72 67 | 73 5d 20 3e 20 31 7d 20 |gth $arg|s] > 1} |
|00001150| 7b 0d 09 09 61 70 70 65 | 6e 64 20 72 65 73 20 5b |{...appe|nd res [|
|00001160| 66 6f 72 6d 61 74 20 22 | 5c 72 25 38 64 25 38 64 |format "|\r%8d%8d|
|00001170| 25 38 64 20 20 20 20 74 | 6f 74 61 6c 22 20 24 74 |%8d t|otal" $t|
|00001180| 6f 74 4c 69 6e 65 73 20 | 24 74 6f 74 57 6f 72 64 |otLines |$totWord|
|00001190| 73 20 24 74 6f 74 43 68 | 61 72 73 5d 0d 09 7d 0d |s $totCh|ars]..}.|
|000011a0| 09 72 65 74 75 72 6e 20 | 5b 73 74 72 69 6e 67 20 |.return |[string |
|000011b0| 72 61 6e 67 65 20 24 72 | 65 73 20 31 20 65 6e 64 |range $r|es 1 end|
|000011c0| 5d 0d 7d 0d 0d 23 23 23 | 23 23 23 23 23 23 23 23 |].}..###|########|
|000011d0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000011e0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000011f0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001200| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001210| 0d 23 20 20 62 65 74 74 | 65 72 2d 63 70 2d 6d 76 |.# bett|er-cp-mv|
|00001220| 2e 74 63 6c 20 20 2d 2d | 20 6d 6f 64 69 66 69 63 |.tcl --| modific|
|00001230| 61 74 69 6f 6e 20 6f 66 | 20 79 6f 75 72 20 72 6f |ation of| your ro|
|00001240| 75 74 69 6e 65 73 2c 20 | 62 79 20 4d 61 72 6b 20 |utines, |by Mark |
|00001250| 4e 61 67 61 74 61 0d 23 | 20 20 66 6f 72 20 41 6c |Nagata.#| for Al|
|00001260| 70 68 61 20 35 2e 37 32 | 2c 20 20 31 2f 30 34 2f |pha 5.72|, 1/04/|
|00001270| 39 34 0d 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |94.#####|########|
|00001280| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001290| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000012a0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000012b0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 0d 70 |########|######.p|
|000012c0| 72 6f 63 20 63 70 20 61 | 72 67 73 20 7b 0d 20 20 |roc cp a|rgs {. |
|000012d0| 20 20 69 66 20 7b 5b 73 | 65 74 20 6c 65 6e 20 5b | if {[s|et len [|
|000012e0| 6c 6c 65 6e 67 74 68 20 | 24 61 72 67 73 5d 5d 20 |llength |$args]] |
|000012f0| 3c 20 32 7d 20 7b 0d 20 | 20 20 20 20 20 20 20 65 |< 2} {. | e|
|00001300| 72 72 6f 72 20 22 75 73 | 61 67 65 3a 20 63 70 20 |rror "us|age: cp |
|00001310| 3c 66 69 6c 65 31 3e 20 | 3c 66 69 6c 65 32 3e 5c |<file1> |<file2>\|
|00001320| 72 20 20 20 20 20 20 20 | 63 70 20 3c 66 69 6c 65 |r |cp <file|
|00001330| 31 3e 20 2e 2e 2e 2e 20 | 3c 64 69 72 3e 22 0d 20 |1> .... |<dir>". |
|00001340| 20 20 20 7d 0d 20 20 20 | 20 73 65 74 20 6c 65 6e | }. | set len|
|00001350| 20 5b 65 78 70 72 20 24 | 6c 65 6e 2d 31 5d 0d 20 | [expr $|len-1]. |
|00001360| 20 20 20 73 65 74 20 64 | 69 72 20 5b 6c 69 6e 64 | set d|ir [lind|
|00001370| 65 78 20 24 61 72 67 73 | 20 24 6c 65 6e 5d 0d 20 |ex $args| $len]. |
|00001380| 20 20 20 69 66 20 7b 21 | 5b 72 65 67 65 78 70 20 | if {!|[regexp |
|00001390| 7b 3a 7d 20 24 64 69 72 | 5d 20 26 26 20 24 64 69 |{:} $dir|] && $di|
|000013a0| 72 20 21 3d 20 22 22 7d | 20 7b 0d 20 20 20 20 20 |r != ""}| {. |
|000013b0| 20 20 20 73 65 74 20 64 | 69 72 20 22 3a 24 64 69 | set d|ir ":$di|
|000013c0| 72 22 0d 20 20 20 20 7d | 0d 20 20 20 20 69 66 20 |r". }|. if |
|000013d0| 7b 5b 72 65 67 65 78 70 | 20 7b 3a 24 7d 20 24 64 |{[regexp| {:$} $d|
|000013e0| 69 72 5d 7d 20 7b 0d 20 | 20 20 20 20 20 20 20 73 |ir]} {. | s|
|000013f0| 65 74 20 64 69 72 20 5b | 73 74 72 69 6e 67 20 74 |et dir [|string t|
|00001400| 72 69 6d 72 69 67 68 74 | 20 24 64 69 72 20 7b 3a |rimright| $dir {:|
|00001410| 7d 5d 0d 20 20 20 20 7d | 0d 20 20 20 20 73 65 74 |}]. }|. set|
|00001420| 20 61 72 67 73 20 5b 6c | 72 65 70 6c 61 63 65 20 | args [l|replace |
|00001430| 24 61 72 67 73 20 24 6c | 65 6e 20 24 6c 65 6e 5d |$args $l|en $len]|
|00001440| 0d 20 20 20 20 73 65 74 | 20 66 69 6c 65 73 20 7b |. set| files {|
|00001450| 7d 0d 20 20 20 20 66 6f | 72 65 61 63 68 20 61 72 |}. fo|reach ar|
|00001460| 67 20 24 61 72 67 73 20 | 7b 0d 20 20 20 20 20 20 |g $args |{. |
|00001470| 20 20 61 70 70 65 6e 64 | 20 66 69 6c 65 73 20 22 | append| files "|
|00001480| 20 22 20 5b 67 6c 6f 62 | 20 24 61 72 67 5d 0d 20 | " [glob| $arg]. |
|00001490| 20 20 20 7d 0d 20 20 20 | 20 73 65 74 20 72 65 70 | }. | set rep|
|000014a0| 6f 72 74 20 22 22 0d 20 | 20 20 20 69 66 20 7b 5b |ort "". | if {[|
|000014b0| 6c 6c 65 6e 67 74 68 20 | 24 66 69 6c 65 73 5d 20 |llength |$files] |
|000014c0| 3d 3d 20 31 7d 20 7b 0d | 20 20 20 20 20 20 20 20 |== 1} {.| |
|000014d0| 73 65 74 20 66 20 5b 6c | 69 6e 64 65 78 20 24 66 |set f [l|index $f|
|000014e0| 69 6c 65 73 20 30 5d 0d | 20 20 20 20 20 20 20 20 |iles 0].| |
|000014f0| 69 66 20 7b 5b 66 69 6c | 65 20 65 78 69 73 74 73 |if {[fil|e exists|
|00001500| 20 24 64 69 72 5d 7d 20 | 7b 0d 20 20 20 20 20 20 | $dir]} |{. |
|00001510| 20 20 20 20 20 20 73 65 | 74 20 74 61 72 67 20 24 | se|t targ $|
|00001520| 64 69 72 3a 5b 66 69 6c | 65 20 74 61 69 6c 20 24 |dir:[fil|e tail $|
|00001530| 66 5d 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 61 |f]. | a|
|00001540| 70 70 65 6e 64 20 72 65 | 70 6f 72 74 20 24 66 5c |ppend re|port $f\|
|00001550| 20 2d 3e 5c 20 24 74 61 | 72 67 20 5c 72 20 0d 20 | ->\ $ta|rg \r . |
|00001560| 20 20 20 20 20 20 20 20 | 20 20 20 63 6f 70 79 46 | | copyF|
|00001570| 69 6c 65 20 24 66 20 24 | 74 61 72 67 0d 20 20 20 |ile $f $|targ. |
|00001580| 20 20 20 20 20 7d 20 65 | 6c 73 65 20 7b 0d 20 20 | } e|lse {. |
|00001590| 20 20 20 20 20 20 20 20 | 20 20 61 70 70 65 6e 64 | | append|
|000015a0| 20 72 65 70 6f 72 74 20 | 24 66 5c 20 2d 3e 5c 20 | report |$f\ ->\ |
|000015b0| 24 64 69 72 20 5c 72 0d | 20 20 20 20 20 20 20 20 |$dir \r.| |
|000015c0| 20 20 20 20 63 6f 70 79 | 46 69 6c 65 20 24 66 20 | copy|File $f |
|000015d0| 24 64 69 72 0d 20 20 20 | 20 20 20 20 20 7d 0d 20 |$dir. | }. |
|000015e0| 20 20 20 7d 20 65 6c 73 | 65 20 7b 0d 20 20 20 20 | } els|e {. |
|000015f0| 20 20 20 20 66 6f 72 65 | 61 63 68 20 66 20 24 66 | fore|ach f $f|
|00001600| 69 6c 65 73 20 7b 0d 20 | 20 20 20 20 20 20 20 09 |iles {. | .|
|00001610| 6d 65 73 73 61 67 65 20 | 5b 66 69 6c 65 20 74 61 |message |[file ta|
|00001620| 69 6c 20 24 66 5d 0d 20 | 20 20 20 20 20 20 20 20 |il $f]. | |
|00001630| 20 20 20 73 65 74 20 74 | 61 72 67 20 24 64 69 72 | set t|arg $dir|
|00001640| 3a 5b 66 69 6c 65 20 74 | 61 69 6c 20 24 66 5d 0d |:[file t|ail $f].|
|00001650| 20 20 20 20 20 20 20 20 | 20 20 20 20 69 66 20 7b | | if {|
|00001660| 5b 63 61 74 63 68 20 7b | 63 6f 70 79 46 69 6c 65 |[catch {|copyFile|
|00001670| 20 24 66 20 24 74 61 72 | 67 7d 20 74 68 61 74 5d | $f $tar|g} that]|
|00001680| 7d 20 7b 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |} {. | |
|00001690| 20 20 20 20 61 70 70 65 | 6e 64 20 72 65 70 6f 72 | appe|nd repor|
|000016a0| 74 20 22 45 72 72 6f 72 | 20 63 6f 70 79 69 6e 67 |t "Error| copying|
|000016b0| 20 27 24 66 27 3a 20 24 | 74 68 61 74 5c 72 22 0d | '$f': $|that\r".|
|000016c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 7d 20 65 6c | | } el|
|000016d0| 73 65 20 7b 0d 20 20 20 | 20 20 20 20 20 20 20 20 |se {. | |
|000016e0| 20 09 61 70 70 65 6e 64 | 20 72 65 70 6f 72 74 20 | .append| report |
|000016f0| 24 66 5c 20 2d 3e 5c 20 | 24 74 61 72 67 20 5c 72 |$f\ ->\ |$targ \r|
|00001700| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 7d 0d 20 |. | }. |
|00001710| 20 20 20 20 20 20 20 7d | 0d 20 20 20 20 7d 0d 20 | }|. }. |
|00001720| 20 20 20 65 63 68 6f 20 | 5b 73 74 72 69 6e 67 20 | echo |[string |
|00001730| 74 72 69 6d 72 69 67 68 | 74 20 24 72 65 70 6f 72 |trimrigh|t $repor|
|00001740| 74 5d 0d 7d 0d 0d 70 72 | 6f 63 20 6d 76 20 61 72 |t].}..pr|oc mv ar|
|00001750| 67 73 20 7b 0d 20 20 20 | 20 69 66 20 7b 5b 73 65 |gs {. | if {[se|
|00001760| 74 20 6c 65 6e 20 5b 6c | 6c 65 6e 67 74 68 20 24 |t len [l|length $|
|00001770| 61 72 67 73 5d 5d 20 3c | 20 32 7d 20 7b 0d 20 20 |args]] <| 2} {. |
|00001780| 20 20 20 20 20 20 65 72 | 72 6f 72 20 22 75 73 61 | er|ror "usa|
|00001790| 67 65 3a 20 6d 76 20 3c | 66 69 6c 65 31 3e 20 3c |ge: mv <|file1> <|
|000017a0| 66 69 6c 65 32 3e 5c 72 | 20 20 20 20 20 20 20 6d |file2>\r| m|
|000017b0| 76 20 3c 66 69 6c 65 31 | 3e 20 2e 2e 2e 2e 20 3c |v <file1|> .... <|
|000017c0| 64 69 72 3e 22 0d 20 20 | 20 20 7d 0d 20 20 20 20 |dir>". | }. |
|000017d0| 73 65 74 20 6c 65 6e 20 | 5b 65 78 70 72 20 24 6c |set len |[expr $l|
|000017e0| 65 6e 2d 31 5d 0d 20 20 | 20 20 69 66 20 7b 21 5b |en-1]. | if {![|
|000017f0| 72 65 67 65 78 70 20 7b | 2e 2a 5b 5e 3a 5d 7d 20 |regexp {|.*[^:]} |
|00001800| 5b 6c 69 6e 64 65 78 20 | 24 61 72 67 73 20 24 6c |[lindex |$args $l|
|00001810| 65 6e 5d 20 64 69 72 5d | 7d 20 7b 0d 20 20 20 20 |en] dir]|} {. |
|00001820| 20 20 20 20 73 65 74 20 | 64 69 72 20 5b 73 74 72 | set |dir [str|
|00001830| 69 6e 67 20 72 61 6e 67 | 65 20 5b 6c 69 6e 64 65 |ing rang|e [linde|
|00001840| 78 20 24 61 72 67 73 20 | 24 6c 65 6e 5d 20 31 20 |x $args |$len] 1 |
|00001850| 65 6e 64 5d 0d 20 20 20 | 20 7d 0d 20 20 20 20 69 |end]. | }. i|
|00001860| 66 20 7b 21 5b 72 65 67 | 65 78 70 20 7b 3a 7d 20 |f {![reg|exp {:} |
|00001870| 24 64 69 72 5d 20 26 26 | 20 24 64 69 72 20 21 3d |$dir] &&| $dir !=|
|00001880| 20 22 22 7d 20 7b 0d 20 | 20 20 20 20 20 20 20 73 | ""} {. | s|
|00001890| 65 74 20 64 69 72 20 5b | 63 6f 6e 63 61 74 20 3a |et dir [|concat :|
|000018a0| 24 64 69 72 5d 7d 0d 20 | 20 20 20 73 65 74 20 61 |$dir]}. | set a|
|000018b0| 72 67 73 20 5b 6c 72 65 | 70 6c 61 63 65 20 24 61 |rgs [lre|place $a|
|000018c0| 72 67 73 20 24 6c 65 6e | 20 24 6c 65 6e 5d 0d 20 |rgs $len| $len]. |
|000018d0| 20 20 20 73 65 74 20 66 | 69 6c 65 73 20 7b 7d 0d | set f|iles {}.|
|000018e0| 20 20 20 20 66 6f 72 65 | 61 63 68 20 61 72 67 20 | fore|ach arg |
|000018f0| 24 61 72 67 73 20 7b 0d | 20 20 20 20 20 20 20 20 |$args {.| |
|00001900| 61 70 70 65 6e 64 20 66 | 69 6c 65 73 20 22 20 22 |append f|iles " "|
|00001910| 20 5b 67 6c 6f 62 20 24 | 61 72 67 5d 0d 20 20 20 | [glob $|arg]. |
|00001920| 20 7d 0d 20 20 20 20 73 | 65 74 20 72 65 70 6f 72 | }. s|et repor|
|00001930| 74 20 22 22 0d 20 20 20 | 20 69 66 20 7b 5b 6c 6c |t "". | if {[ll|
|00001940| 65 6e 67 74 68 20 24 66 | 69 6c 65 73 5d 20 3d 3d |ength $f|iles] ==|
|00001950| 20 31 7d 20 7b 0d 20 20 | 20 20 20 20 20 20 73 65 | 1} {. | se|
|00001960| 74 20 66 20 5b 6c 69 6e | 64 65 78 20 24 66 69 6c |t f [lin|dex $fil|
|00001970| 65 73 20 30 5d 0d 20 20 | 20 20 20 20 20 20 69 66 |es 0]. | if|
|00001980| 20 7b 5b 66 69 6c 65 20 | 65 78 69 73 74 73 20 24 | {[file |exists $|
|00001990| 64 69 72 5d 7d 20 7b 0d | 20 20 20 20 20 20 20 20 |dir]} {.| |
|000019a0| 20 20 20 20 73 65 74 20 | 74 61 72 67 20 24 64 69 | set |targ $di|
|000019b0| 72 3a 5b 66 69 6c 65 20 | 74 61 69 6c 20 24 66 5d |r:[file |tail $f]|
|000019c0| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 61 70 70 |. | app|
|000019d0| 65 6e 64 20 72 65 70 6f | 72 74 20 24 66 5c 20 3e |end repo|rt $f\ >|
|000019e0| 2d 3e 5c 20 24 74 61 72 | 67 20 5c 72 0d 20 20 20 |->\ $tar|g \r. |
|000019f0| 20 20 20 20 20 20 20 20 | 20 6d 6f 76 65 46 69 6c | | moveFil|
|00001a00| 65 20 24 66 20 24 74 61 | 72 67 0d 20 20 20 20 20 |e $f $ta|rg. |
|00001a10| 20 20 20 7d 20 65 6c 73 | 65 20 7b 0d 20 20 20 20 | } els|e {. |
|00001a20| 20 20 20 20 20 20 20 20 | 61 70 70 65 6e 64 20 72 | |append r|
|00001a30| 65 70 6f 72 74 20 24 66 | 5c 20 3e 2d 3e 5c 20 24 |eport $f|\ >->\ $|
|00001a40| 64 69 72 20 5c 72 0d 20 | 20 20 20 20 20 20 20 20 |dir \r. | |
|00001a50| 20 20 20 6d 6f 76 65 46 | 69 6c 65 20 24 66 20 24 | moveF|ile $f $|
|00001a60| 64 69 72 0d 20 20 20 20 | 20 20 20 20 7d 0d 20 20 |dir. | }. |
|00001a70| 20 20 7d 20 65 6c 73 65 | 20 7b 0d 20 20 20 20 20 | } else| {. |
|00001a80| 20 20 20 66 6f 72 65 61 | 63 68 20 66 20 24 66 69 | forea|ch f $fi|
|00001a90| 6c 65 73 20 7b 0d 20 20 | 20 20 20 20 20 20 09 6d |les {. | .m|
|00001aa0| 65 73 73 61 67 65 20 5b | 66 69 6c 65 20 74 61 69 |essage [|file tai|
|00001ab0| 6c 20 24 66 5d 0d 20 20 | 20 20 20 20 20 20 20 20 |l $f]. | |
|00001ac0| 20 20 73 65 74 20 74 61 | 72 67 20 24 64 69 72 3a | set ta|rg $dir:|
|00001ad0| 5b 66 69 6c 65 20 74 61 | 69 6c 20 24 66 5d 0d 20 |[file ta|il $f]. |
|00001ae0| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 7b 5b | | if {[|
|00001af0| 63 61 74 63 68 20 7b 6d | 6f 76 65 46 69 6c 65 20 |catch {m|oveFile |
|00001b00| 24 66 20 24 74 61 72 67 | 7d 20 74 68 61 74 5d 7d |$f $targ|} that]}|
|00001b10| 20 7b 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | {. | |
|00001b20| 20 20 20 61 70 70 65 6e | 64 20 72 65 70 6f 72 74 | appen|d report|
|00001b30| 20 22 45 72 72 6f 72 20 | 6d 6f 76 69 6e 67 20 27 | "Error |moving '|
|00001b40| 24 66 27 3a 20 24 74 68 | 61 74 5c 72 22 0d 20 20 |$f': $th|at\r". |
|00001b50| 20 20 20 20 20 20 20 20 | 20 20 7d 20 65 6c 73 65 | | } else|
|00001b60| 20 7b 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 09 | {. | .|
|00001b70| 61 70 70 65 6e 64 20 72 | 65 70 6f 72 74 20 24 66 |append r|eport $f|
|00001b80| 5c 20 3e 2d 3e 5c 20 24 | 74 61 72 67 20 5c 72 0d |\ >->\ $|targ \r.|
|00001b90| 20 20 20 20 20 20 20 20 | 20 20 20 20 7d 0d 20 20 | | }. |
|00001ba0| 20 20 20 20 20 20 7d 0d | 20 20 20 20 7d 0d 20 20 | }.| }. |
|00001bb0| 20 20 65 63 68 6f 20 5b | 73 74 72 69 6e 67 20 74 | echo [|string t|
|00001bc0| 72 69 6d 72 69 67 68 74 | 20 24 72 65 70 6f 72 74 |rimright| $report|
|00001bd0| 5d 0d 7d 0d 0d 0d 70 72 | 6f 63 20 72 6d 20 61 72 |].}...pr|oc rm ar|
|00001be0| 67 73 20 7b 0d 09 73 65 | 74 20 66 69 6c 65 73 20 |gs {..se|t files |
|00001bf0| 7b 7d 0d 09 66 6f 72 65 | 61 63 68 20 61 72 67 20 |{}..fore|ach arg |
|00001c00| 24 61 72 67 73 20 7b 0d | 09 09 61 70 70 65 6e 64 |$args {.|..append|
|00001c10| 20 66 69 6c 65 73 20 22 | 20 22 20 5b 67 6c 6f 62 | files "| " [glob|
|00001c20| 20 24 61 72 67 5d 0d 09 | 7d 0d 09 66 6f 72 65 61 | $arg]..|}..forea|
|00001c30| 63 68 20 66 20 24 66 69 | 6c 65 73 20 7b 0d 09 09 |ch f $fi|les {...|
|00001c40| 6d 65 73 73 61 67 65 20 | 5b 66 69 6c 65 20 74 61 |message |[file ta|
|00001c50| 69 6c 20 24 66 5d 0d 09 | 09 72 65 6d 6f 76 65 46 |il $f]..|.removeF|
|00001c60| 69 6c 65 20 24 66 0d 09 | 7d 0d 7d 0d 0d 0d 0d 0d |ile $f..|}.}.....|
|00001c70| 23 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |#=======|========|
|00001c80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001c90| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001ca0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001cb0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001cc0| 3d 0d 0d 0d 70 72 6f 63 | 20 74 63 6c 46 69 6c 65 |=...proc| tclFile|
|00001cd0| 43 6f 6d 70 6c 65 74 69 | 6f 6e 20 7b 7d 20 7b 0d |Completi|on {} {.|
|00001ce0| 09 73 65 74 20 73 69 6c | 6c 79 20 22 2a 22 0d 09 |.set sil|ly "*"..|
|00001cf0| 73 65 74 20 70 6f 73 20 | 5b 67 65 74 50 6f 73 5d |set pos |[getPos]|
|00001d00| 0d 09 73 65 74 20 72 65 | 73 20 5b 73 65 61 72 63 |..set re|s [searc|
|00001d10| 68 20 2d 66 20 30 20 2d | 69 20 30 20 2d 6d 20 30 |h -f 0 -|i 0 -m 0|
|00001d20| 20 2d 72 20 31 20 2d 6e | 20 7b 5b 22 5c 7b 20 5c | -r 1 -n| {["\{ \|
|00001d30| 74 5c 72 5d 7d 20 5b 65 | 78 70 72 20 24 70 6f 73 |t\r]} [e|xpr $pos|
|00001d40| 20 2d 20 31 5d 5d 0d 09 | 69 66 20 7b 5b 73 74 72 | - 1]]..|if {[str|
|00001d50| 69 6e 67 20 6c 65 6e 67 | 74 68 20 24 72 65 73 5d |ing leng|th $res]|
|00001d60| 7d 20 7b 0d 09 09 73 65 | 74 20 66 72 6f 6d 20 5b |} {...se|t from [|
|00001d70| 6c 69 6e 64 65 78 20 24 | 72 65 73 20 31 5d 0d 09 |lindex $|res 1]..|
|00001d80| 09 69 66 20 7b 24 66 72 | 6f 6d 20 3c 20 24 70 6f |.if {$fr|om < $po|
|00001d90| 73 7d 20 7b 0d 09 09 09 | 73 65 74 20 70 64 20 5b |s} {....|set pd [|
|00001da0| 70 77 64 5d 0d 09 09 09 | 73 65 74 20 74 65 78 74 |pwd]....|set text|
|00001db0| 20 5b 67 65 74 54 65 78 | 74 20 24 66 72 6f 6d 20 | [getTex|t $from |
|00001dc0| 24 70 6f 73 5d 0d 09 09 | 09 69 66 20 7b 5b 73 74 |$pos]...|.if {[st|
|00001dd0| 72 69 6e 67 20 69 6e 64 | 65 78 20 24 74 65 78 74 |ring ind|ex $text|
|00001de0| 20 30 5d 20 3d 3d 20 22 | 3a 22 7d 20 7b 0d 09 09 | 0] == "|:"} {...|
|00001df0| 09 09 73 65 74 20 70 64 | 20 5b 73 74 72 69 6e 67 |..set pd| [string|
|00001e00| 20 74 72 69 6d 72 69 67 | 68 74 20 24 70 64 20 22 | trimrig|ht $pd "|
|00001e10| 3a 22 5d 0d 09 09 09 7d | 0d 09 09 09 69 66 20 7b |:"]....}|....if {|
|00001e20| 5b 63 61 74 63 68 20 7b | 67 6c 6f 62 20 24 70 64 |[catch {|glob $pd|
|00001e30| 24 74 65 78 74 24 73 69 | 6c 6c 79 7d 20 67 6c 6f |$text$si|lly} glo|
|00001e40| 62 62 65 64 5d 7d 20 7b | 0d 09 09 09 09 73 65 74 |bbed]} {|.....set|
|00001e50| 20 67 6c 6f 62 62 65 64 | 20 5b 67 6c 6f 62 20 24 | globbed| [glob $|
|00001e60| 74 65 78 74 24 73 69 6c | 6c 79 5d 0d 09 09 09 09 |text$sil|ly].....|
|00001e70| 73 65 74 20 70 64 20 22 | 22 0d 09 09 09 7d 0d 09 |set pd "|"....}..|
|00001e80| 09 09 69 66 20 7b 5b 6c | 6c 65 6e 67 74 68 20 24 |..if {[l|length $|
|00001e90| 67 6c 6f 62 62 65 64 5d | 20 3d 3d 20 31 7d 20 7b |globbed]| == 1} {|
|00001ea0| 0d 09 09 09 09 73 65 74 | 20 6c 65 6e 20 5b 73 74 |.....set| len [st|
|00001eb0| 72 69 6e 67 20 6c 65 6e | 67 74 68 20 24 70 64 24 |ring len|gth $pd$|
|00001ec0| 74 65 78 74 5d 0d 09 09 | 09 09 69 6e 73 65 72 74 |text]...|..insert|
|00001ed0| 54 65 78 74 20 5b 73 74 | 72 69 6e 67 20 72 61 6e |Text [st|ring ran|
|00001ee0| 67 65 20 5b 6c 69 6e 64 | 65 78 20 24 67 6c 6f 62 |ge [lind|ex $glob|
|00001ef0| 62 65 64 20 30 5d 20 24 | 6c 65 6e 20 65 6e 64 5d |bed 0] $|len end]|
|00001f00| 0d 09 09 09 7d 20 65 6c | 73 65 69 66 20 7b 5b 6c |....} el|seif {[l|
|00001f10| 6c 65 6e 67 74 68 20 24 | 67 6c 6f 62 62 65 64 5d |length $|globbed]|
|00001f20| 20 21 3d 20 30 7d 20 7b | 0d 09 09 09 09 73 65 74 | != 0} {|.....set|
|00001f30| 20 67 6c 6f 62 62 65 64 | 20 5b 6c 73 6f 72 74 20 | globbed| [lsort |
|00001f40| 24 67 6c 6f 62 62 65 64 | 5d 0d 09 09 09 09 73 65 |$globbed|].....se|
|00001f50| 74 20 6f 6e 65 20 5b 6c | 69 6e 64 65 78 20 24 67 |t one [l|index $g|
|00001f60| 6c 6f 62 62 65 64 20 30 | 5d 0d 09 09 09 09 73 65 |lobbed 0|].....se|
|00001f70| 74 20 74 77 6f 20 5b 6c | 69 6e 64 65 78 20 24 67 |t two [l|index $g|
|00001f80| 6c 6f 62 62 65 64 20 65 | 6e 64 5d 0d 09 09 09 09 |lobbed e|nd].....|
|00001f90| 0d 09 09 09 09 73 65 74 | 20 6c 65 6e 20 5b 73 74 |.....set| len [st|
|00001fa0| 72 69 6e 67 20 6c 65 6e | 67 74 68 20 24 70 64 24 |ring len|gth $pd$|
|00001fb0| 74 65 78 74 5d 0d 09 09 | 09 09 73 65 74 20 6f 6e |text]...|..set on|
|00001fc0| 65 20 5b 73 74 72 69 6e | 67 20 72 61 6e 67 65 20 |e [strin|g range |
|00001fd0| 24 6f 6e 65 20 24 6c 65 | 6e 20 65 6e 64 5d 0d 09 |$one $le|n end]..|
|00001fe0| 09 09 09 73 65 74 20 74 | 77 6f 20 5b 73 74 72 69 |...set t|wo [stri|
|00001ff0| 6e 67 20 72 61 6e 67 65 | 20 24 74 77 6f 20 24 6c |ng range| $two $l|
|00002000| 65 6e 20 65 6e 64 5d 0d | 09 09 09 09 0d 09 09 09 |en end].|........|
|00002010| 09 73 65 74 20 65 6c 65 | 6e 20 5b 73 74 72 69 6e |.set ele|n [strin|
|00002020| 67 20 6c 65 6e 67 74 68 | 20 24 6f 6e 65 5d 0d 09 |g length| $one]..|
|00002030| 09 09 09 69 66 20 7b 5b | 73 74 72 69 6e 67 20 6c |...if {[|string l|
|00002040| 65 6e 67 74 68 20 24 74 | 77 6f 5d 20 3c 20 24 65 |ength $t|wo] < $e|
|00002050| 6c 65 6e 7d 20 7b 0d 09 | 09 09 09 09 73 65 74 20 |len} {..|....set |
|00002060| 65 6c 65 6e 20 5b 73 74 | 72 69 6e 67 20 6c 65 6e |elen [st|ring len|
|00002070| 67 74 68 20 24 74 77 6f | 5d 0d 09 09 09 09 7d 0d |gth $two|].....}.|
|00002080| 09 09 09 09 73 65 74 20 | 6c 65 6e 20 30 0d 09 09 |....set |len 0...|
|00002090| 09 09 73 65 74 20 73 74 | 72 20 22 22 0d 09 09 09 |..set st|r ""....|
|000020a0| 09 77 68 69 6c 65 20 7b | 28 24 6c 65 6e 20 3c 20 |.while {|($len < |
|000020b0| 24 65 6c 65 6e 29 20 26 | 26 20 28 5b 73 74 72 69 |$elen) &|& ([stri|
|000020c0| 6e 67 20 6d 61 74 63 68 | 20 24 73 74 72 5b 73 74 |ng match| $str[st|
|000020d0| 72 69 6e 67 20 69 6e 64 | 65 78 20 24 6f 6e 65 20 |ring ind|ex $one |
|000020e0| 24 6c 65 6e 5d 24 73 69 | 6c 6c 79 20 24 74 77 6f |$len]$si|lly $two|
|000020f0| 5d 29 7d 20 7b 0d 09 09 | 09 09 09 61 70 70 65 6e |])} {...|...appen|
|00002100| 64 20 73 74 72 20 5b 73 | 74 72 69 6e 67 20 69 6e |d str [s|tring in|
|00002110| 64 65 78 20 24 6f 6e 65 | 20 24 6c 65 6e 5d 0d 09 |dex $one| $len]..|
|00002120| 09 09 09 09 69 6e 63 72 | 20 6c 65 6e 0d 09 09 09 |....incr| len....|
|00002130| 09 7d 0d 0d 09 09 09 09 | 69 66 20 7b 21 24 6c 65 |.}......|if {!$le|
|00002140| 6e 7d 20 7b 0d 09 09 09 | 09 09 73 65 74 20 65 6c |n} {....|..set el|
|00002150| 65 6e 20 5b 73 74 72 69 | 6e 67 20 6c 65 6e 67 74 |en [stri|ng lengt|
|00002160| 68 20 24 70 64 5d 0d 09 | 09 09 09 09 66 6f 72 65 |h $pd]..|....fore|
|00002170| 61 63 68 20 67 20 24 67 | 6c 6f 62 62 65 64 20 7b |ach g $g|lobbed {|
|00002180| 0d 09 09 09 09 09 09 6c | 61 70 70 65 6e 64 20 73 |.......l|append s|
|00002190| 68 6f 72 74 20 5b 73 74 | 72 69 6e 67 20 72 61 6e |hort [st|ring ran|
|000021a0| 67 65 20 24 67 20 24 65 | 6c 65 6e 20 65 6e 64 5d |ge $g $e|len end]|
|000021b0| 0d 09 09 09 09 09 7d 0d | 09 09 09 09 09 73 65 74 |......}.|.....set|
|000021c0| 20 62 6c 61 68 20 5b 67 | 65 74 54 65 78 74 20 5b | blah [g|etText [|
|000021d0| 6c 69 6e 65 53 74 61 72 | 74 20 5b 67 65 74 50 6f |lineStar|t [getPo|
|000021e0| 73 5d 5d 20 5b 67 65 74 | 50 6f 73 5d 5d 0d 09 09 |s]] [get|Pos]]...|
|000021f0| 09 09 09 69 6e 73 65 72 | 74 54 65 78 74 20 22 5c |...inser|tText "\|
|00002200| 72 22 20 24 73 68 6f 72 | 74 20 22 5c 72 22 20 24 |r" $shor|t "\r" $|
|00002210| 62 6c 61 68 0d 09 09 09 | 09 7d 20 65 6c 73 65 20 |blah....|.} else |
|00002220| 7b 0d 09 09 09 09 09 69 | 6e 73 65 72 74 54 65 78 |{......i|nsertTex|
|00002230| 74 20 24 73 74 72 0d 09 | 09 09 09 7d 0d 09 09 09 |t $str..|...}....|
|00002240| 7d 0d 09 09 7d 0d 09 7d | 0d 7d 0d 0d 0d 0d 23 3d |}...}..}|.}....#=|
|00002250| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002260| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002270| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002280| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002290| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 0d |========|=======.|
|000022a0| 23 20 54 6f 20 70 72 65 | 76 65 6e 74 20 61 6d 62 |# To pre|vent amb|
|000022b0| 69 67 75 69 74 79 2c 20 | 27 66 72 6f 6d 27 20 69 |iguity, |'from' i|
|000022c0| 73 20 61 73 73 75 6d 65 | 64 20 74 6f 20 62 65 20 |s assume|d to be |
|000022d0| 61 20 63 6f 6d 70 6c 65 | 74 65 20 70 61 74 68 6e |a comple|te pathn|
|000022e0| 61 6d 65 2c 20 65 6e 64 | 69 6e 67 0d 23 20 69 6e |ame, end|ing.# in|
|000022f0| 20 61 20 64 69 72 65 63 | 74 6f 72 79 20 6e 61 6d | a direc|tory nam|
|00002300| 65 2e 20 49 66 20 69 74 | 20 64 6f 65 73 6e 27 74 |e. If it| doesn't|
|00002310| 20 65 6e 64 20 77 2f 20 | 61 20 63 6f 6c 6f 6e 2c | end w/ |a colon,|
|00002320| 20 6f 6e 65 20 69 73 20 | 61 64 64 65 64 2e 20 27 | one is |added. '|
|00002330| 74 6f 27 20 69 73 0d 23 | 20 61 73 73 75 6d 65 64 |to' is.#| assumed|
|00002340| 20 74 6f 20 62 65 20 74 | 68 65 20 70 61 72 65 6e | to be t|he paren|
|00002350| 74 20 64 69 72 65 63 74 | 6f 72 79 20 6f 66 20 74 |t direct|ory of t|
|00002360| 68 65 20 74 6f 70 20 64 | 69 72 65 63 74 6f 72 79 |he top d|irectory|
|00002370| 20 77 65 20 61 72 65 20 | 63 72 65 61 74 69 6e 67 | we are |creating|
|00002380| 2e 0d 23 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |..#=====|========|
|00002390| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000023a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000023b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000023c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000023d0| 3d 3d 3d 0d 70 72 6f 63 | 20 63 70 64 69 72 20 7b |===.proc| cpdir {|
|000023e0| 66 72 6f 6d 20 74 6f 7d | 20 7b 0d 09 73 65 74 20 |from to}| {..set |
|000023f0| 63 77 64 20 5b 70 77 64 | 5d 0d 09 69 66 20 7b 5b |cwd [pwd|]..if {[|
|00002400| 73 74 72 69 6e 67 20 6d | 61 74 63 68 20 22 3a 2a |string m|atch ":*|
|00002410| 22 20 24 66 72 6f 6d 5d | 20 7c 7c 20 5b 73 74 72 |" $from]| || [str|
|00002420| 69 6e 67 20 6d 61 74 63 | 68 20 22 3a 2a 22 20 24 |ing matc|h ":*" $|
|00002430| 74 6f 5d 20 7c 7c 0d 09 | 09 21 5b 66 69 6c 65 20 |to] ||..|.![file |
|00002440| 65 78 69 73 74 73 20 24 | 66 72 6f 6d 5d 20 7c 7c |exists $|from] |||
|00002450| 20 21 5b 66 69 6c 65 20 | 65 78 69 73 74 73 20 24 | ![file |exists $|
|00002460| 74 6f 5d 7d 20 7b 0d 09 | 09 65 72 72 6f 72 20 22 |to]} {..|.error "|
|00002470| 27 63 70 64 69 72 27 20 | 61 72 67 73 20 6d 75 73 |'cpdir' |args mus|
|00002480| 74 20 62 65 20 63 6f 6d | 70 6c 65 74 65 20 70 61 |t be com|plete pa|
|00002490| 74 68 6e 61 6d 65 73 20 | 6f 66 20 65 78 69 73 74 |thnames |of exist|
|000024a0| 69 6e 67 20 66 6f 6c 64 | 65 72 73 2e 22 0d 09 7d |ing fold|ers."..}|
|000024b0| 0d 09 69 66 20 7b 21 5b | 73 74 72 69 6e 67 20 6d |..if {![|string m|
|000024c0| 61 74 63 68 20 22 2a 3a | 22 20 24 66 72 6f 6d 5d |atch "*:|" $from]|
|000024d0| 7d 20 7b 61 70 70 65 6e | 64 20 66 72 6f 6d 20 22 |} {appen|d from "|
|000024e0| 3a 22 7d 0d 09 69 66 20 | 7b 21 5b 73 74 72 69 6e |:"}..if |{![strin|
|000024f0| 67 20 6d 61 74 63 68 20 | 22 2a 3a 22 20 24 74 6f |g match |"*:" $to|
|00002500| 5d 7d 20 7b 61 70 70 65 | 6e 64 20 74 6f 20 22 3a |]} {appe|nd to ":|
|00002510| 22 7d 0d 09 0d 09 69 66 | 20 7b 21 5b 66 69 6c 65 |"}....if| {![file|
|00002520| 20 69 73 64 69 72 20 24 | 66 72 6f 6d 5d 20 7c 7c | isdir $|from] |||
|00002530| 20 21 5b 66 69 6c 65 20 | 69 73 64 69 72 20 24 74 | ![file |isdir $t|
|00002540| 6f 5d 7d 20 7b 0d 09 09 | 65 78 69 74 20 31 0d 09 |o]} {...|exit 1..|
|00002550| 7d 0d 09 09 0d 09 73 65 | 74 20 72 65 73 20 5b 63 |}.....se|t res [c|
|00002560| 61 74 63 68 20 7b 63 70 | 68 69 65 72 20 24 66 72 |atch {cp|hier $fr|
|00002570| 6f 6d 20 24 74 6f 7d 20 | 76 61 6c 5d 0d 09 63 64 |om $to} |val]..cd|
|00002580| 20 24 63 77 64 0d 09 69 | 66 20 7b 24 72 65 73 7d | $cwd..i|f {$res}|
|00002590| 20 7b 65 72 72 6f 72 20 | 24 76 61 6c 7d 0d 7d 0d | {error |$val}.}.|
|000025a0| 0d 70 72 6f 63 20 63 70 | 68 69 65 72 20 7b 66 72 |.proc cp|hier {fr|
|000025b0| 6f 6d 20 74 6f 7d 20 7b | 0d 09 73 65 74 20 73 61 |om to} {|..set sa|
|000025c0| 76 65 64 69 72 20 5b 70 | 77 64 5d 0d 09 69 66 20 |vedir [p|wd]..if |
|000025d0| 7b 5b 73 74 72 69 6e 67 | 20 69 6e 64 65 78 20 24 |{[string| index $|
|000025e0| 66 72 6f 6d 20 5b 65 78 | 70 72 20 5b 73 74 72 69 |from [ex|pr [stri|
|000025f0| 6e 67 20 6c 65 6e 20 24 | 66 72 6f 6d 5d 20 2d 20 |ng len $|from] - |
|00002600| 31 5d 5d 20 21 3d 20 22 | 3a 22 7d 20 7b 61 70 70 |1]] != "|:"} {app|
|00002610| 65 6e 64 20 66 72 6f 6d | 20 22 3a 22 7d 0d 09 73 |end from| ":"}..s|
|00002620| 65 74 20 64 69 72 20 5b | 66 69 6c 65 20 74 61 69 |et dir [|file tai|
|00002630| 6c 20 5b 73 74 72 69 6e | 67 20 74 72 69 6d 72 69 |l [strin|g trimri|
|00002640| 67 68 74 20 24 66 72 6f | 6d 20 22 3a 22 5d 5d 0d |ght $fro|m ":"]].|
|00002650| 09 63 64 20 24 74 6f 0d | 09 6d 6b 64 69 72 20 22 |.cd $to.|.mkdir "|
|00002660| 24 64 69 72 22 0d 09 66 | 6f 72 65 61 63 68 20 66 |$dir"..f|oreach f|
|00002670| 20 5b 67 6c 6f 62 20 22 | 24 66 72 6f 6d 2a 22 5d | [glob "|$from*"]|
|00002680| 20 7b 0d 09 09 69 66 20 | 7b 5b 66 69 6c 65 20 69 | {...if |{[file i|
|00002690| 73 64 69 72 20 24 66 5d | 7d 20 7b 0d 09 09 09 63 |sdir $f]|} {....c|
|000026a0| 70 68 69 65 72 20 22 24 | 66 3a 22 20 22 24 74 6f |phier "$|f:" "$to|
|000026b0| 24 64 69 72 3a 22 0d 09 | 09 7d 20 65 6c 73 65 20 |$dir:"..|.} else |
|000026c0| 7b 0d 09 09 09 63 70 20 | 24 66 20 24 74 6f 24 64 |{....cp |$f $to$d|
|000026d0| 69 72 3a 0d 09 09 7d 0d | 09 7d 0d 09 63 64 20 24 |ir:...}.|.}..cd $|
|000026e0| 73 61 76 65 64 69 72 0d | 7d 0d 0d 0d 70 72 6f 63 |savedir.|}...proc|
|000026f0| 20 6d 6b 64 69 72 20 7b | 64 69 72 7d 20 7b 0d 09 | mkdir {|dir} {..|
|00002700| 6f 6c 64 4d 6b 64 69 72 | 20 5b 6c 69 73 74 20 24 |oldMkdir| [list $|
|00002710| 64 69 72 5d 0d 7d 0d 0d | 70 72 6f 63 20 72 6d 64 |dir].}..|proc rmd|
|00002720| 69 72 20 7b 64 69 72 7d | 20 7b 0d 09 6f 6c 64 52 |ir {dir}| {..oldR|
|00002730| 6d 64 69 72 20 5b 6c 69 | 73 74 20 24 64 69 72 5d |mdir [li|st $dir]|
|00002740| 0d 7d 0d 0d 70 72 6f 63 | 20 73 68 65 6c 6c 42 6f |.}..proc| shellBo|
|00002750| 6c 20 7b 7d 20 7b 0d 09 | 73 65 74 20 74 65 78 74 |l {} {..|set text|
|00002760| 20 5b 67 65 74 54 65 78 | 74 20 5b 6c 69 6e 65 53 | [getTex|t [lineS|
|00002770| 74 61 72 74 20 5b 67 65 | 74 50 6f 73 5d 5d 20 5b |tart [ge|tPos]] [|
|00002780| 6e 65 78 74 4c 69 6e 65 | 53 74 61 72 74 20 5b 67 |nextLine|Start [g|
|00002790| 65 74 50 6f 73 5d 5d 5d | 0d 09 69 66 20 7b 5b 73 |etPos]]]|..if {[s|
|000027a0| 65 74 20 69 6e 64 20 5b | 73 74 72 69 6e 67 20 66 |et ind [|string f|
|000027b0| 69 72 73 74 20 22 c8 20 | 22 20 24 74 65 78 74 5d |irst ". |" $text]|
|000027c0| 5d 20 3e 20 30 7d 20 7b | 0d 09 09 67 6f 74 6f 20 |] > 0} {|...goto |
|000027d0| 5b 65 78 70 72 20 5b 6c | 69 6e 65 53 74 61 72 74 |[expr [l|ineStart|
|000027e0| 20 5b 67 65 74 50 6f 73 | 5d 5d 20 2b 20 24 69 6e | [getPos|]] + $in|
|000027f0| 64 20 2b 20 32 5d 0d 09 | 7d 20 65 6c 73 65 20 7b |d + 2]..|} else {|
|00002800| 0d 09 09 67 6f 74 6f 20 | 5b 6c 69 6e 65 53 74 61 |...goto |[lineSta|
|00002810| 72 74 20 5b 67 65 74 50 | 6f 73 5d 5d 0d 09 7d 0d |rt [getP|os]]..}.|
|00002820| 7d 0d 62 69 6e 64 20 27 | 61 27 20 3c 7a 3e 20 73 |}.bind '|a' <z> s|
|00002830| 68 65 6c 6c 42 6f 6c 20 | 53 68 65 6c 0d 0d 0d 70 |hellBol |Shel...p|
|00002840| 72 6f 63 20 64 75 6d 6d | 79 53 68 65 6c 20 7b 7d |roc dumm|yShel {}|
|00002850| 20 7b 64 75 6d 6d 79 54 | 63 6c 7d 0d 0d 23 3d 3d | {dummyT|cl}..#==|
|00002860| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002870| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002880| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002890| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000028a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 0d 0d |========|======..|
|000028b0| 70 72 6f 63 20 73 68 65 | 6c 6c 75 70 20 7b 7d 20 |proc she|llup {} |
|000028c0| 7b 0d 09 73 65 74 20 70 | 6f 73 20 5b 65 78 70 72 |{..set p|os [expr|
|000028d0| 20 5b 6c 69 6e 65 53 74 | 61 72 74 20 5b 67 65 74 | [lineSt|art [get|
|000028e0| 50 6f 73 5d 5d 20 2d 20 | 31 5d 0d 09 69 66 20 7b |Pos]] - |1]..if {|
|000028f0| 5b 63 61 74 63 68 20 7b | 72 65 67 65 78 70 20 7b |[catch {|regexp {|
|00002900| b0 7d 20 5b 67 65 74 54 | 65 78 74 20 5b 6c 69 6e |.} [getT|ext [lin|
|00002910| 65 53 74 61 72 74 20 24 | 70 6f 73 5d 20 5b 6e 65 |eStart $|pos] [ne|
|00002920| 78 74 4c 69 6e 65 53 74 | 61 72 74 20 24 70 6f 73 |xtLineSt|art $pos|
|00002930| 5d 5d 7d 20 72 65 73 5d | 20 7c 7c 20 21 24 72 65 |]]} res]| || !$re|
|00002940| 73 7d 20 7b 0d 09 09 70 | 72 65 76 69 6f 75 73 4c |s} {...p|reviousL|
|00002950| 69 6e 65 3b 20 72 65 74 | 75 72 6e 0d 09 7d 0d 09 |ine; ret|urn..}..|
|00002960| 73 65 6c 65 63 74 20 5b | 6c 69 6e 65 53 74 61 72 |select [|lineStar|
|00002970| 74 20 24 70 6f 73 5d 20 | 5b 6e 65 78 74 4c 69 6e |t $pos] |[nextLin|
|00002980| 65 53 74 61 72 74 20 24 | 70 6f 73 5d 0d 7d 0d 62 |eStart $|pos].}.b|
|00002990| 69 6e 64 20 75 70 20 73 | 68 65 6c 6c 75 70 20 53 |ind up s|hellup S|
|000029a0| 68 65 6c 0d 0d 0d 70 72 | 6f 63 20 73 68 65 6c 6c |hel...pr|oc shell|
|000029b0| 64 6f 77 6e 20 7b 7d 20 | 7b 0d 09 73 65 74 20 70 |down {} |{..set p|
|000029c0| 6f 73 20 5b 6e 65 78 74 | 4c 69 6e 65 53 74 61 72 |os [next|LineStar|
|000029d0| 74 20 5b 67 65 74 50 6f | 73 5d 5d 0d 09 69 66 20 |t [getPo|s]]..if |
|000029e0| 7b 5b 63 61 74 63 68 20 | 7b 72 65 67 65 78 70 20 |{[catch |{regexp |
|000029f0| 7b b0 7d 20 5b 67 65 74 | 54 65 78 74 20 24 70 6f |{.} [get|Text $po|
|00002a00| 73 20 5b 6e 65 78 74 4c | 69 6e 65 53 74 61 72 74 |s [nextL|ineStart|
|00002a10| 20 24 70 6f 73 5d 5d 7d | 20 72 65 73 5d 20 7c 7c | $pos]]}| res] |||
|00002a20| 20 21 24 72 65 73 7d 20 | 7b 0d 09 09 6e 65 78 74 | !$res} |{...next|
|00002a30| 4c 69 6e 65 3b 20 72 65 | 74 75 72 6e 0d 09 7d 0d |Line; re|turn..}.|
|00002a40| 09 73 65 6c 65 63 74 20 | 24 70 6f 73 20 5b 6e 65 |.select |$pos [ne|
|00002a50| 78 74 4c 69 6e 65 53 74 | 61 72 74 20 24 70 6f 73 |xtLineSt|art $pos|
|00002a60| 5d 0d 7d 0d 62 69 6e 64 | 20 64 6f 77 6e 20 73 68 |].}.bind| down sh|
|00002a70| 65 6c 6c 64 6f 77 6e 20 | 53 68 65 6c 0d 0d 09 09 |elldown |Shel....|
|00002a80| 0d 23 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.#======|========|
|00002a90| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002aa0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002ab0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002ac0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002ad0| 3d 3d 0d 70 72 6f 63 20 | 73 6f 72 74 64 74 20 7b |==.proc |sortdt {|
|00002ae0| 64 74 7d 20 7b 0d 09 73 | 63 61 6e 20 24 64 74 20 |dt} {..s|can $dt |
|00002af0| 22 25 64 2f 25 64 2f 25 | 64 20 7b 25 64 3a 25 64 |"%d/%d/%|d {%d:%d|
|00002b00| 3a 25 64 20 25 31 73 4d | 7d 22 20 6d 6f 6e 20 64 |:%d %1sM|}" mon d|
|00002b10| 61 79 20 79 65 61 20 68 | 6f 75 20 6d 69 6e 20 73 |ay yea h|ou min s|
|00002b20| 65 63 20 7a 0d 09 69 66 | 20 7b 24 7a 20 3d 3d 20 |ec z..if| {$z == |
|00002b30| 22 50 22 7d 20 7b 69 6e | 63 72 20 68 6f 75 20 31 |"P"} {in|cr hou 1|
|00002b40| 32 7d 0d 09 72 65 74 75 | 72 6e 20 5b 66 6f 72 6d |2}..retu|rn [form|
|00002b50| 61 74 20 22 25 30 32 64 | 25 30 32 64 25 30 32 64 |at "%02d|%02d%02d|
|00002b60| 25 30 32 64 25 30 32 64 | 22 20 24 79 65 61 20 24 |%02d%02d|" $yea $|
|00002b70| 6d 6f 6e 20 24 64 61 79 | 20 24 68 6f 75 20 24 6d |mon $day| $hou $m|
|00002b80| 69 6e 5d 0d 7d 0d 0d 0d | 70 72 6f 63 20 6c 74 20 |in].}...|proc lt |
|00002b90| 61 72 67 73 20 7b 0d 09 | 73 65 74 20 76 61 6c 20 |args {..|set val |
|00002ba0| 22 2a 22 0d 09 73 65 74 | 20 73 6f 72 74 20 31 0d |"*"..set| sort 1.|
|00002bb0| 09 73 63 61 6e 20 5b 6c | 69 6e 64 65 78 20 5b 6d |.scan [l|index [m|
|00002bc0| 74 69 6d 65 20 5b 6e 6f | 77 5d 5d 20 30 5d 20 22 |time [no|w]] 0] "|
|00002bd0| 25 64 2f 25 64 2f 25 64 | 22 20 6f 6e 65 20 74 77 |%d/%d/%d|" one tw|
|00002be0| 6f 20 74 68 72 65 65 0d | 09 73 65 74 20 79 65 61 |o three.|.set yea|
|00002bf0| 72 20 31 39 24 74 68 72 | 65 65 0d 09 0d 09 66 6f |r 19$thr|ee....fo|
|00002c00| 72 65 61 63 68 20 61 72 | 67 20 24 61 72 67 73 20 |reach ar|g $args |
|00002c10| 7b 0d 09 09 73 77 69 74 | 63 68 20 2d 2d 20 24 61 |{...swit|ch -- $a|
|00002c20| 72 67 20 7b 0d 09 09 09 | 22 2d 74 22 20 09 7b 73 |rg {....|"-t" .{s|
|00002c30| 65 74 20 73 6f 72 74 20 | 30 7d 0d 09 09 09 64 65 |et sort |0}....de|
|00002c40| 66 61 75 6c 74 09 7b 73 | 65 74 20 76 61 6c 20 24 |fault.{s|et val $|
|00002c50| 61 72 67 7d 0d 09 09 7d | 0d 09 7d 0d 09 73 65 74 |arg}...}|..}..set|
|00002c60| 20 6d 6f 64 20 22 22 0d | 09 66 6f 72 65 61 63 68 | mod "".|.foreach|
|00002c70| 20 66 20 5b 65 76 61 6c | 20 67 6c 6f 62 20 24 76 | f [eval| glob $v|
|00002c80| 61 6c 5d 20 7b 0d 09 09 | 69 66 20 7b 5b 63 61 74 |al] {...|if {[cat|
|00002c90| 63 68 20 7b 67 65 74 46 | 69 6c 65 49 6e 66 6f 20 |ch {getF|ileInfo |
|00002ca0| 24 66 20 69 6e 66 6f 7d | 5d 7d 20 7b 0d 09 09 09 |$f info}|]} {....|
|00002cb0| 69 66 20 7b 24 73 6f 72 | 74 7d 20 7b 73 65 74 20 |if {$sor|t} {set |
|00002cc0| 6d 6f 64 20 22 30 30 30 | 30 30 30 30 30 30 30 20 |mod "000|0000000 |
|00002cd0| 22 7d 0d 09 09 09 6c 61 | 70 70 65 6e 64 20 74 65 |"}....la|ppend te|
|00002ce0| 78 74 20 5b 66 6f 72 6d | 61 74 20 22 25 73 25 73 |xt [form|at "%s%s|
|00002cf0| 20 25 38 64 25 38 64 20 | 25 36 73 20 25 35 73 20 | %8d%8d |%6s %5s |
|00002d00| 25 34 73 20 25 73 20 25 | 73 5c 6e 22 20 24 6d 6f |%4s %s %|s\n" $mo|
|00002d10| 64 20 22 44 22 20 22 30 | 22 20 22 30 22 20 22 22 |d "D" "0|" "0" ""|
|00002d20| 20 22 22 20 22 22 20 22 | 44 49 52 20 22 20 5b 66 | "" "" "|DIR " [f|
|00002d30| 69 6c 65 20 74 61 69 6c | 20 24 66 5d 5d 0d 09 09 |ile tail| $f]]...|
|00002d40| 09 63 6f 6e 74 69 6e 75 | 65 0d 09 09 7d 0d 09 09 |.continu|e...}...|
|00002d50| 69 66 20 7b 24 73 6f 72 | 74 7d 20 7b 73 65 74 20 |if {$sor|t} {set |
|00002d60| 6d 6f 64 20 22 5b 73 6f | 72 74 64 74 20 5b 6d 74 |mod "[so|rtdt [mt|
|00002d70| 69 6d 65 20 24 69 6e 66 | 6f 28 6d 6f 64 69 66 69 |ime $inf|o(modifi|
|00002d80| 65 64 29 20 73 5d 5d 20 | 22 7d 0d 09 09 73 65 74 |ed) s]] |"}...set|
|00002d90| 20 6d 20 5b 6d 74 69 6d | 65 20 24 69 6e 66 6f 28 | m [mtim|e $info(|
|00002da0| 6d 6f 64 69 66 69 65 64 | 29 20 61 5d 0d 09 09 73 |modified|) a]...s|
|00002db0| 65 74 20 7a 65 72 20 5b | 6c 69 6e 64 65 78 20 24 |et zer [|lindex $|
|00002dc0| 6d 20 30 5d 0d 09 09 73 | 65 74 20 64 61 74 20 5b |m 0]...s|et dat [|
|00002dd0| 66 6f 72 6d 61 74 20 22 | 25 73 20 25 32 73 22 20 |format "|%s %2s" |
|00002de0| 5b 6c 69 6e 64 65 78 20 | 24 7a 65 72 20 31 5d 20 |[lindex |$zer 1] |
|00002df0| 5b 73 74 72 69 6e 67 20 | 74 72 69 6d 72 69 67 68 |[string |trimrigh|
|00002e00| 74 20 5b 6c 69 6e 64 65 | 78 20 24 7a 65 72 20 32 |t [linde|x $zer 2|
|00002e10| 5d 20 7b 2c 7d 5d 5d 0d | 09 09 69 66 20 7b 5b 6c |] {,}]].|..if {[l|
|00002e20| 69 6e 64 65 78 20 24 7a | 65 72 20 33 5d 20 3d 3d |index $z|er 3] ==|
|00002e30| 20 24 79 65 61 72 7d 20 | 7b 0d 09 09 09 69 66 20 | $year} |{....if |
|00002e40| 7b 5b 73 63 61 6e 20 5b | 6c 69 6e 64 65 78 20 24 |{[scan [|lindex $|
|00002e50| 6d 20 31 5d 20 22 25 64 | 3a 25 64 3a 25 64 20 25 |m 1] "%d|:%d:%d %|
|00002e60| 73 22 20 6f 6e 65 20 74 | 77 6f 20 74 68 72 65 65 |s" one t|wo three|
|00002e70| 20 61 6d 5d 20 21 3d 20 | 34 7d 20 7b 0d 09 09 09 | am] != |4} {....|
|00002e80| 09 65 72 72 6f 72 20 22 | 44 69 64 6e 27 74 20 67 |.error "|Didn't g|
|00002e90| 65 74 20 66 6f 75 72 20 | 66 72 6f 6d 20 73 63 61 |et four |from sca|
|00002ea0| 6e 22 0d 09 09 09 7d 0d | 09 09 09 69 66 20 7b 5b |n"....}.|...if {[|
|00002eb0| 73 74 72 69 6e 67 20 6c | 65 6e 67 74 68 20 24 74 |string l|ength $t|
|00002ec0| 77 6f 5d 20 3d 3d 20 31 | 7d 20 7b 73 65 74 20 74 |wo] == 1|} {set t|
|00002ed0| 77 6f 20 22 30 24 74 77 | 6f 22 7d 0d 09 09 09 73 |wo "0$tw|o"}....s|
|00002ee0| 65 74 20 74 6d 20 5b 65 | 78 70 72 20 7b 24 61 6d |et tm [e|xpr {$am|
|00002ef0| 20 3d 3d 20 22 41 4d 22 | 7d 20 3f 20 24 6f 6e 65 | == "AM"|} ? $one|
|00002f00| 20 3a 20 5b 65 78 70 72 | 20 24 6f 6e 65 20 2b 20 | : [expr| $one + |
|00002f10| 31 32 5d 5d 3a 24 74 77 | 6f 0d 09 09 7d 20 65 6c |12]]:$tw|o...} el|
|00002f20| 73 65 20 7b 0d 09 09 09 | 73 65 74 20 74 6d 20 22 |se {....|set tm "|
|00002f30| 20 5b 6c 69 6e 64 65 78 | 20 24 7a 65 72 20 33 5d | [lindex| $zer 3]|
|00002f40| 22 0d 09 09 7d 0d 09 09 | 6c 61 70 70 65 6e 64 20 |"...}...|lappend |
|00002f50| 74 65 78 74 20 5b 66 6f | 72 6d 61 74 20 22 25 73 |text [fo|rmat "%s|
|00002f60| 46 20 25 38 64 25 38 64 | 20 25 73 20 25 35 73 20 |F %8d%8d| %s %5s |
|00002f70| 25 73 20 25 73 20 25 73 | 5c 6e 22 20 24 6d 6f 64 |%s %s %s|\n" $mod|
|00002f80| 20 24 69 6e 66 6f 28 64 | 61 74 61 6c 65 6e 29 20 | $info(d|atalen) |
|00002f90| 24 69 6e 66 6f 28 72 65 | 73 6f 75 72 63 65 6c 65 |$info(re|sourcele|
|00002fa0| 6e 29 20 24 64 61 74 20 | 24 74 6d 20 24 69 6e 66 |n) $dat |$tm $inf|
|00002fb0| 6f 28 63 72 65 61 74 6f | 72 29 20 24 69 6e 66 6f |o(creato|r) $info|
|00002fc0| 28 74 79 70 65 29 20 5b | 66 69 6c 65 20 74 61 69 |(type) [|file tai|
|00002fd0| 6c 20 24 66 5d 5d 0d 09 | 7d 0d 09 69 66 20 7b 24 |l $f]]..|}..if {$|
|00002fe0| 73 6f 72 74 7d 20 7b 0d | 09 09 66 6f 72 65 61 63 |sort} {.|..foreac|
|00002ff0| 68 20 6c 6e 20 5b 6c 73 | 6f 72 74 20 2d 64 65 20 |h ln [ls|ort -de |
|00003000| 24 74 65 78 74 5d 20 7b | 0d 09 09 09 61 70 70 65 |$text] {|....appe|
|00003010| 6e 64 20 74 78 74 20 5b | 73 74 72 69 6e 67 20 72 |nd txt [|string r|
|00003020| 61 6e 67 65 20 24 6c 6e | 20 31 31 20 65 6e 64 5d |ange $ln| 11 end]|
|00003030| 0d 09 09 7d 0d 09 09 72 | 65 74 75 72 6e 20 5b 73 |...}...r|eturn [s|
|00003040| 74 72 69 6e 67 20 74 72 | 69 6d 72 69 67 68 74 20 |tring tr|imright |
|00003050| 24 74 78 74 5d 0d 09 7d | 20 65 6c 73 65 20 7b 0d |$txt]..}| else {.|
|00003060| 09 09 72 65 74 75 72 6e | 20 5b 73 74 72 69 6e 67 |..return| [string|
|00003070| 20 74 72 69 6d 72 69 67 | 68 74 20 5b 6a 6f 69 6e | trimrig|ht [join|
|00003080| 20 24 74 65 78 74 20 7b | 7d 5d 5d 0d 09 7d 0d 7d | $text {|}]]..}.}|
|00003090| 0d 0d 23 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |..#=====|========|
|000030a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000030b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000030c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000030d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000030e0| 3d 3d 3d 0d 70 72 6f 63 | 20 70 73 20 7b 7d 20 7b |===.proc| ps {} {|
|000030f0| 0d 09 66 6f 72 65 61 63 | 68 20 70 20 5b 70 72 6f |..foreac|h p [pro|
|00003100| 63 65 73 73 65 73 5d 20 | 7b 0d 09 09 61 70 70 65 |cesses] |{...appe|
|00003110| 6e 64 20 74 65 78 74 20 | 5b 66 6f 72 6d 61 74 20 |nd text |[format |
|00003120| 22 25 2d 32 35 73 20 25 | 34 73 20 25 31 30 64 20 |"%-25s %|4s %10d |
|00003130| 25 31 30 64 5c 72 22 20 | 5b 6c 69 6e 64 65 78 20 |%10d\r" |[lindex |
|00003140| 24 70 20 30 5d 20 5b 6c | 69 6e 64 65 78 20 24 70 |$p 0] [l|index $p|
|00003150| 20 31 5d 20 5b 6c 69 6e | 64 65 78 20 24 70 20 32 | 1] [lin|dex $p 2|
|00003160| 5d 20 5b 6c 69 6e 64 65 | 78 20 24 70 20 33 5d 5d |] [linde|x $p 3]]|
|00003170| 0d 09 7d 0d 09 72 65 74 | 75 72 6e 20 5b 73 74 72 |..}..ret|urn [str|
|00003180| 69 6e 67 20 74 72 69 6d | 72 69 67 68 74 20 24 74 |ing trim|right $t|
|00003190| 65 78 74 5d 0d 7d 0d 0d | 0d 23 3d 3d 3d 3d 3d 3d |ext].}..|.#======|
|000031a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000031b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000031c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000031d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000031e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0d 23 20 52 65 63 |========|==.# Rec|
|000031f0| 75 72 73 69 76 65 6c 79 | 20 6d 61 6b 65 20 63 72 |ursively| make cr|
|00003200| 65 61 74 6f 72 20 6f 66 | 20 61 6c 6c 20 74 65 78 |eator of| all tex|
|00003210| 74 20 66 69 6c 65 73 20 | 27 41 4c 46 41 27 2e 20 |t files |'ALFA'. |
|00003220| 4f 70 74 69 6f 6e 61 6c | 6c 79 20 74 61 6b 65 73 |Optional|ly takes|
|00003230| 20 61 20 73 74 61 72 74 | 69 6e 67 0d 23 20 64 69 | a start|ing.# di|
|00003240| 72 20 61 72 67 75 6d 65 | 6e 74 2c 20 6f 74 68 65 |r argume|nt, othe|
|00003250| 72 77 69 73 65 20 73 74 | 61 72 74 73 20 69 6e 20 |rwise st|arts in |
|00003260| 63 75 72 72 65 6e 74 20 | 64 69 72 65 63 74 6f 72 |current |director|
|00003270| 79 2e 20 41 75 74 6f 2d | 44 6f 75 62 6c 65 64 20 |y. Auto-|Doubled |
|00003280| 61 72 65 20 6e 6f 20 0d | 23 20 6c 6f 6e 67 65 72 |are no .|# longer|
|00003290| 20 72 65 63 6f 67 6e 69 | 7a 65 64 20 62 79 20 61 | recogni|zed by a|
|000032a0| 75 74 6f 2d 64 6f 75 62 | 6c 65 72 21 20 57 68 79 |uto-doub|ler! Why|
|000032b0| 3f 20 53 6f 6d 65 20 73 | 6f 72 74 20 6f 66 20 63 |? Some s|ort of c|
|000032c0| 6f 6e 66 6c 69 63 74 20 | 77 2f 20 27 50 42 53 65 |onflict |w/ 'PBSe|
|000032d0| 74 46 49 6e 66 6f 27 2e | 0d 70 72 6f 63 20 63 72 |tFInfo'.|.proc cr|
|000032e0| 65 61 74 6f 72 20 7b 7b | 64 69 72 20 22 3a 22 7d |eator {{|dir ":"}|
|000032f0| 7d 20 20 7b 0d 09 69 66 | 20 7b 21 5b 63 61 74 63 |} {..if| {![catc|
|00003300| 68 20 7b 67 6c 6f 62 20 | 2d 74 20 54 45 58 54 20 |h {glob |-t TEXT |
|00003310| 24 64 69 72 2a 7d 20 66 | 69 6c 65 73 5d 7d 20 7b |$dir*} f|iles]} {|
|00003320| 0d 09 09 66 6f 72 65 61 | 63 68 20 66 20 24 66 69 |...forea|ch f $fi|
|00003330| 6c 65 73 20 7b 0d 09 09 | 09 6d 65 73 73 61 67 65 |les {...|.message|
|00003340| 20 24 66 0d 09 09 09 73 | 65 74 46 69 6c 65 49 6e | $f....s|etFileIn|
|00003350| 66 6f 20 24 66 20 63 72 | 65 61 74 6f 72 20 41 4c |fo $f cr|eator AL|
|00003360| 46 41 0d 09 09 7d 0d 09 | 7d 0d 0d 09 69 66 20 7b |FA...}..|}...if {|
|00003370| 21 5b 63 61 74 63 68 20 | 7b 67 6c 6f 62 20 24 64 |![catch |{glob $d|
|00003380| 69 72 2a 7d 20 64 69 72 | 73 5d 7d 20 7b 0d 09 09 |ir*} dir|s]} {...|
|00003390| 66 6f 72 65 61 63 68 20 | 64 20 24 64 69 72 73 20 |foreach |d $dirs |
|000033a0| 7b 0d 09 09 09 69 66 20 | 7b 5b 66 69 6c 65 20 69 |{....if |{[file i|
|000033b0| 73 64 69 72 20 24 64 5d | 7d 20 7b 63 72 65 61 74 |sdir $d]|} {creat|
|000033c0| 6f 72 20 24 64 3a 7d 0d | 09 09 7d 0d 09 7d 0d 7d |or $d:}.|..}..}.}|
|000033d0| 0d 0d 0d 0d 23 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |....#===|========|
|000033e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000033f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003400| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003410| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003420| 3d 3d 3d 3d 0d 0d 70 72 | 6f 63 20 53 68 65 6c 44 |====..pr|oc ShelD|
|00003430| 62 6c 43 6c 69 63 6b 20 | 7b 66 72 6f 6d 20 74 6f |blClick |{from to|
|00003440| 7d 20 7b 20 54 63 6c 44 | 62 6c 43 6c 69 63 6b 20 |} { TclD|blClick |
|00003450| 24 66 72 6f 6d 20 24 74 | 6f 20 7d 0d 00 00 00 00 |$from $t|o }.....|
|00003460| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003470| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003480| 00 00 01 00 00 00 03 34 | 00 00 02 34 00 00 00 42 |.......4|...4...B|
|00003490| 02 1c 02 1e 82 2e 82 2e | 82 2e 82 2e 82 2e 82 2e |........|........|
|000034a0| 82 2e 82 2e 82 2e 82 2e | 82 2e 82 2e 82 2e 02 2e |........|........|
|000034b0| 09 73 68 65 6c 6c 2e 74 | 63 6c 02 00 02 00 54 45 |.shell.t|cl....TE|
|000034c0| 58 54 41 4c 46 41 01 00 | 00 68 00 80 00 00 00 01 |XTALFA..|.h......|
|000034d0| 02 00 54 45 58 54 41 4c | 46 41 01 00 00 68 00 80 |..TEXTAL|FA...h..|
|000034e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000034f0| 00 00 aa 10 7b 86 00 00 | 33 dc 00 00 03 76 83 2c |....{...|3....v.,|
|00003500| 03 2c 03 38 83 40 03 40 | 03 58 83 5e 03 5e 83 7e |.,.8.@.@|.X.^.^.~|
|00003510| 03 7e 03 94 83 9a 83 9a | 83 9a 03 9a 83 c2 83 c2 |.~......|........|
|00003520| 03 c2 03 d8 83 de 83 de | 03 de 84 10 84 10 04 10 |........|........|
|00003530| 04 26 84 2c 84 2c 04 2c | 84 50 84 50 04 50 04 66 |.&.,.,.,|.P.P.P.f|
|00003540| 84 6c 84 6c 04 6c 84 9c | 84 9c 04 9c 04 b2 84 b8 |.l.l.l..|........|
|00003550| 84 b8 04 b8 84 c4 84 c4 | 84 c4 84 c4 04 c4 04 da |........|........|
|00003560| 85 0a 85 0a 05 0a 05 20 | 05 32 85 36 05 36 05 46 |....... |.2.6.6.F|
|00003570| 85 5c 05 5c 05 5e 85 6e | 85 6e 85 6e 85 6e 85 6e |.\.\.^.n|.n.n.n.n|
|00003580| 00 00 01 e4 00 1d 00 00 | 02 a4 00 00 02 a4 0f 63 |........|.......c|
|00003590| 61 72 72 69 61 67 65 52 | 65 74 75 72 6e 00 00 00 |arriageR|eturn...|
|000035a0| 12 3f 00 00 12 3f 03 63 | 70 00 00 00 23 54 00 00 |.?...?.c|p...#T..|
|000035b0| 23 54 05 63 70 64 69 72 | 00 00 25 21 00 00 25 21 |#T.cpdir|..%!..%!|
|000035c0| 07 63 70 68 69 65 72 00 | 00 00 32 59 00 00 32 59 |.cphier.|..2Y..2Y|
|000035d0| 07 63 72 65 61 74 6f 72 | 00 00 27 bf 00 00 27 bf |.creator|..'...'.|
|000035e0| 09 64 75 6d 6d 79 43 73 | 68 00 00 00 01 02 00 00 |.dummyCs|h.......|
|000035f0| 01 02 09 69 6e 69 74 53 | 68 65 6c 6c 00 00 0e 74 |...initS|hell...t|
|00003600| 00 00 0e 74 01 6c 00 00 | 0e a4 00 00 0e a4 03 6c |...t.l..|.......l|
|00003610| 6c 00 00 00 2b 08 00 00 | 2b 08 03 6c 74 00 00 00 |l...+...|+..lt...|
|00003620| 26 6c 00 00 26 6c 05 6d | 6b 64 69 72 00 00 0d 55 |&l..&l.m|kdir...U|
|00003630| 00 00 0d 55 09 6d 70 77 | 50 72 6f 6d 70 74 00 00 |...U.mpw|Prompt..|
|00003640| 16 c6 00 00 16 c6 03 6d | 76 00 00 00 0a 9a 00 00 |.......m|v.......|
|00003650| 0a 9a 09 6e 65 78 74 48 | 69 73 74 00 00 00 08 e9 |...nextH|ist.....|
|00003660| 00 00 08 e9 09 70 72 65 | 76 48 69 73 74 00 00 00 |.....pre|vHist...|
|00003670| 30 64 00 00 30 64 03 70 | 73 00 00 00 1b 56 00 00 |0d..0d.p|s....V..|
|00003680| 1b 56 03 72 6d 00 00 00 | 26 98 00 00 26 98 05 72 |.V.rm...|&...&..r|
|00003690| 6d 64 69 72 00 00 0d 81 | 00 00 0d 81 0b 73 65 74 |mdir....|.....set|
|000036a0| 4d 50 57 4d 6f 64 65 00 | 00 00 00 b7 00 00 00 b7 |MPWMode.|........|
|000036b0| 0d 73 65 74 53 68 65 6c | 6c 4d 6f 64 65 00 00 00 |.setShel|lMode...|
|000036c0| 26 c4 00 00 26 c4 09 73 | 68 65 6c 6c 42 6f 6c 00 |&...&..s|hellBol.|
|000036d0| 00 00 02 30 00 00 02 30 | 0b 73 68 65 6c 6c 50 72 |...0...0|.shellPr|
|000036e0| 6f 6d 70 74 00 00 29 26 | 00 00 29 26 09 73 68 65 |ompt..)&|..)&.she|
|000036f0| 6c 6c 64 6f 77 6e 00 00 | 28 30 00 00 28 30 07 73 |lldown..|(0..(0.s|
|00003700| 68 65 6c 6c 75 70 00 00 | 2a 53 00 00 2a 53 07 73 |hellup..|*S..*S.s|
|00003710| 6f 72 74 64 74 00 00 00 | 0c 4c 00 00 0c 4c 09 73 |ortdt...|.L...L.s|
|00003720| 74 61 72 74 4d 50 57 00 | 00 00 04 62 00 00 04 62 |tartMPW.|...b...b|
|00003730| 11 74 63 6c 43 61 72 72 | 69 61 67 65 52 65 74 75 |.tclCarr|iageRetu|
|00003740| 72 6e 00 00 1c 44 00 00 | 1c 44 11 74 63 6c 46 69 |rn...D..|.D.tclFi|
|00003750| 6c 65 43 6f 6d 70 6c 65 | 74 69 6f 6e 00 00 0e d5 |leComple|tion....|
|00003760| 00 00 0e d5 03 77 63 00 | 00 00 00 48 00 09 4d 6f |.....wc.|...H..Mo|
|00003770| 6e 61 63 6f 00 ff 9d 30 | 00 00 17 82 00 f8 10 ec |naco...0|........|
|00003780| 01 16 b6 20 24 00 04 44 | 01 60 ad 00 ff fc 00 04 |... $..D|.`......|
|00003790| 00 04 00 28 00 02 02 5c | 02 00 00 28 00 02 02 5c |...(...\|...(...\|
|000037a0| 02 00 ac 24 c7 ff 00 00 | 00 00 00 00 00 00 00 00 |...$....|........|
|000037b0| 00 00 01 00 00 00 01 00 | 00 00 03 34 00 00 02 34 |........|...4...4|
|000037c0| 00 00 00 42 00 f6 86 48 | 17 82 00 00 00 1c 00 3e |...B...H|.......>|
|000037d0| 00 00 4d 50 53 52 00 01 | 00 0a 03 ef 00 00 00 00 |..MPSR..|........|
|000037e0| 00 00 00 00 00 00 03 ed | ff ff 00 00 01 e8 00 ff |........|........|
|000037f0| 9e c4 03 74 61 62 00 00 | 00 00 00 00 00 00 00 00 |...tab..|........|
+--------+-------------------------+-------------------------+--------+--------+