home *** CD-ROM | disk | FTP | other *** search
/ Internet File Formats / InternetFileFormatsCD.bin / text / latex / mac / alpha.6.0.sit / Tcl / SystemCode / latexMacros.tcl < prev    next >
MacBinary  |  1995-07-09  |  93.4 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, Sun Jul 9 20:43:47 1995, modified Sun Jul 9 20:43:47 1995, creator Alpha editor, type ASCII, 87155 bytes "latexMacros.tcl" , at 0x154f3 8308 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 0f 6c 61 74 65 78 4d | 61 63 72 6f 73 2e 74 63 |..latexM|acros.tc|
|00000010| 6c 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |l.......|........|
|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 01 54 73 00 | 00 20 74 ac 26 28 43 ac |.....Ts.|. t.&(C.|
|00000060| 26 28 43 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |&(C.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 f8 9e 00 00 |........|........|
|00000080| 23 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 0d 23 23 |########|#####.##|
|000000d0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000000e0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|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 0d 23 0d 23 20 |########|###.#.# |
|00000120| 6c 61 74 65 78 4d 61 63 | 72 6f 73 2e 74 63 6c 20 |latexMac|ros.tcl |
|00000130| 28 63 61 6c 6c 65 64 20 | 66 72 6f 6d 20 6c 61 74 |(called |from lat|
|00000140| 65 78 2e 74 63 6c 29 0d | 23 0d 23 23 23 23 23 23 |ex.tcl).|#.######|
|00000150| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000160| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000170| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000180| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000190| 23 23 23 23 23 23 23 0d | 23 0d 23 20 41 75 74 68 |#######.|#.# Auth|
|000001a0| 6f 72 3a 20 20 54 6f 6d | 20 53 63 61 76 6f 20 28 |or: Tom| Scavo (|
|000001b0| 74 72 73 63 61 76 6f 40 | 73 79 72 2e 65 64 75 29 |trscavo@|syr.edu)|
|000001c0| 0d 23 0d 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |.#.#####|########|
|000001d0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000001e0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000001f0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000200| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000210| 0d 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |.#######|########|
|00000220| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000230| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000240| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000250| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 0d 0d |########|######..|
|00000260| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000270| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000280| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000290| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000002a0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 0d 23 20 |########|#####.# |
|000002b0| 0d 23 20 42 61 73 69 63 | 20 43 6f 6d 6d 61 6e 64 |.# Basic| Command|
|000002c0| 73 0d 23 0d 23 23 23 23 | 23 23 23 23 23 23 23 23 |s.#.####|########|
|000002d0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000002e0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000002f0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000300| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000310| 23 0d 0d 70 72 6f 63 20 | 74 79 70 65 73 65 74 20 |#..proc |typeset |
|00000320| 7b 7d 20 7b 0d 09 67 6c | 6f 62 61 6c 20 74 65 78 |{} {..gl|obal tex|
|00000330| 50 61 74 68 20 50 52 45 | 46 53 20 54 65 58 6d 6f |Path PRE|FS TeXmo|
|00000340| 64 65 56 61 72 73 0d 09 | 0d 09 23 20 49 6e 69 74 |deVars..|..# Init|
|00000350| 69 61 6c 69 7a 61 74 69 | 6f 6e 3a 0d 09 66 6f 72 |ializati|on:..for|
|00000360| 65 61 63 68 20 66 6c 61 | 67 20 7b 69 73 4f 7a 54 |each fla|g {isOzT|
|00000370| 65 58 20 69 73 54 65 78 | 74 75 72 65 73 20 69 73 |eX isTex|tures is|
|00000380| 43 4d 61 63 54 65 58 20 | 69 73 44 69 72 65 63 74 |CMacTeX |isDirect|
|00000390| 54 65 58 20 69 73 44 69 | 72 65 63 74 54 65 58 50 |TeX isDi|rectTeXP|
|000003a0| 72 6f 7d 20 7b 0d 09 09 | 73 65 74 20 24 66 6c 61 |ro} {...|set $fla|
|000003b0| 67 20 30 0d 09 7d 0d 09 | 73 65 74 20 63 75 72 72 |g 0..}..|set curr|
|000003c0| 65 6e 74 57 69 6e 20 5b | 6c 69 6e 64 65 78 20 5b |entWin [|lindex [|
|000003d0| 77 69 6e 4e 61 6d 65 73 | 20 2d 66 5d 20 30 5d 0d |winNames| -f] 0].|
|000003e0| 09 73 65 74 20 63 75 72 | 72 65 6e 74 44 69 72 20 |.set cur|rentDir |
|000003f0| 5b 66 69 6c 65 20 64 69 | 72 6e 61 6d 65 20 24 63 |[file di|rname $c|
|00000400| 75 72 72 65 6e 74 57 69 | 6e 5d 0d 09 73 65 74 20 |urrentWi|n]..set |
|00000410| 63 75 72 72 65 6e 74 44 | 6f 63 20 5b 66 69 6c 65 |currentD|oc [file|
|00000420| 20 74 61 69 6c 20 24 63 | 75 72 72 65 6e 74 57 69 | tail $c|urrentWi|
|00000430| 6e 5d 0d 09 73 65 74 20 | 64 6f 63 42 61 73 65 6e |n]..set |docBasen|
|00000440| 61 6d 65 20 5b 66 69 6c | 65 20 72 6f 6f 74 6e 61 |ame [fil|e rootna|
|00000450| 6d 65 20 24 63 75 72 72 | 65 6e 74 44 6f 63 5d 0d |me $curr|entDoc].|
|00000460| 09 73 65 74 20 64 6f 63 | 45 78 74 65 6e 73 69 6f |.set doc|Extensio|
|00000470| 6e 20 5b 66 69 6c 65 20 | 65 78 74 65 6e 73 69 6f |n [file |extensio|
|00000480| 6e 20 24 63 75 72 72 65 | 6e 74 44 6f 63 5d 0d 09 |n $curre|ntDoc]..|
|00000490| 0d 09 23 20 49 73 20 74 | 68 65 20 77 69 6e 64 6f |..# Is t|he windo|
|000004a0| 77 20 75 6e 74 69 74 6c | 65 64 20 6f 72 20 64 69 |w untitl|ed or di|
|000004b0| 72 74 79 3f 0d 09 69 66 | 20 7b 5b 73 74 72 69 6e |rty?..if| {[strin|
|000004c0| 67 20 6d 61 74 63 68 20 | 24 63 75 72 72 65 6e 74 |g match |$current|
|000004d0| 57 69 6e 20 24 63 75 72 | 72 65 6e 74 44 6f 63 5d |Win $cur|rentDoc]|
|000004e0| 7d 20 7b 0d 09 09 63 61 | 73 65 20 5b 61 73 6b 79 |} {...ca|se [asky|
|000004f0| 65 73 6e 6f 20 2d 63 20 | 22 53 61 76 65 20 5c 22 |esno -c |"Save \"|
|00000500| 24 63 75 72 72 65 6e 74 | 44 6f 63 5c 22 3f 22 5d |$current|Doc\"?"]|
|00000510| 20 69 6e 20 7b 0d 09 09 | 09 22 79 65 73 22 20 7b | in {...|."yes" {|
|00000520| 0d 09 09 09 09 69 66 20 | 7b 5b 63 61 74 63 68 20 |.....if |{[catch |
|00000530| 7b 73 65 74 20 63 75 72 | 72 65 6e 74 57 69 6e 20 |{set cur|rentWin |
|00000540| 5b 73 61 76 65 41 73 20 | 22 55 6e 74 69 74 6c 65 |[saveAs |"Untitle|
|00000550| 64 5c 2e 74 65 78 22 5d | 7d 5d 7d 20 74 68 65 6e |d\.tex"]|}]} then|
|00000560| 20 7b 72 65 74 75 72 6e | 7d 0d 09 09 09 7d 0d 09 | {return|}....}..|
|00000570| 09 09 22 6e 6f 22 20 7b | 0d 09 09 09 09 69 66 20 |.."no" {|.....if |
|00000580| 7b 5b 72 65 67 65 78 70 | 20 7b 3c 28 2e 2a 29 3e |{[regexp| {<(.*)>|
|00000590| 7d 20 24 63 75 72 72 65 | 6e 74 44 6f 63 20 64 75 |} $curre|ntDoc du|
|000005a0| 6d 6d 79 20 6e 75 6d 5d | 7d 20 7b 0d 09 09 09 09 |mmy num]|} {.....|
|000005b0| 09 73 65 74 20 74 6d 70 | 46 69 6c 65 6e 61 6d 65 |.set tmp|Filename|
|000005c0| 20 22 55 6e 74 69 74 6c | 65 64 24 6e 75 6d 5c 2e | "Untitl|ed$num\.|
|000005d0| 74 65 78 22 0d 09 09 09 | 09 7d 20 65 6c 73 65 20 |tex"....|.} else |
|000005e0| 7b 0d 09 09 09 09 09 73 | 65 74 20 74 6d 70 46 69 |{......s|et tmpFi|
|000005f0| 6c 65 6e 61 6d 65 20 22 | 55 6e 74 69 74 6c 65 64 |lename "|Untitled|
|00000600| 5c 2e 74 65 78 22 0d 09 | 09 09 09 7d 0d 09 09 09 |\.tex"..|...}....|
|00000610| 09 73 65 74 20 74 65 78 | 74 20 5b 67 65 74 54 65 |.set tex|t [getTe|
|00000620| 78 74 20 30 20 5b 6d 61 | 78 50 6f 73 5d 5d 0d 09 |xt 0 [ma|xPos]]..|
|00000630| 09 09 09 73 65 74 20 6e | 65 77 44 6f 63 20 22 24 |...set n|ewDoc "$|
|00000640| 50 52 45 46 53 3a 24 74 | 6d 70 46 69 6c 65 6e 61 |PREFS:$t|mpFilena|
|00000650| 6d 65 22 0d 09 09 09 09 | 6d 65 73 73 61 67 65 20 |me".....|message |
|00000660| 22 53 61 76 69 6e 67 20 | 24 6e 65 77 44 6f 63 2e |"Saving |$newDoc.|
|00000670| 2e 2e 22 0d 09 09 09 09 | 73 65 74 20 66 64 20 5b |..".....|set fd [|
|00000680| 6f 70 65 6e 20 24 6e 65 | 77 44 6f 63 20 22 77 22 |open $ne|wDoc "w"|
|00000690| 5d 0d 09 09 09 09 70 75 | 74 73 20 24 66 64 20 24 |].....pu|ts $fd $|
|000006a0| 74 65 78 74 0d 09 09 09 | 09 63 6c 6f 73 65 20 24 |text....|.close $|
|000006b0| 66 64 0d 09 09 09 09 73 | 65 74 20 63 75 72 72 65 |fd.....s|et curre|
|000006c0| 6e 74 57 69 6e 20 24 6e | 65 77 44 6f 63 0d 09 09 |ntWin $n|ewDoc...|
|000006d0| 09 7d 0d 09 09 09 22 63 | 61 6e 63 65 6c 22 20 7b |.}...."c|ancel" {|
|000006e0| 72 65 74 75 72 6e 7d 0d | 09 09 7d 0d 09 7d 20 65 |return}.|..}..} e|
|000006f0| 6c 73 65 69 66 20 7b 5b | 77 69 6e 44 69 72 74 79 |lseif {[|winDirty|
|00000700| 5d 7d 20 7b 0d 09 09 63 | 61 73 65 20 5b 61 73 6b |]} {...c|ase [ask|
|00000710| 79 65 73 6e 6f 20 2d 63 | 20 22 53 61 76 65 20 5c |yesno -c| "Save \|
|00000720| 22 24 63 75 72 72 65 6e | 74 44 6f 63 5c 22 3f 22 |"$curren|tDoc\"?"|
|00000730| 5d 20 69 6e 20 7b 0d 09 | 09 09 22 79 65 73 22 20 |] in {..|.."yes" |
|00000740| 7b 73 61 76 65 7d 0d 09 | 09 09 22 6e 6f 22 20 7b |{save}..|.."no" {|
|00000750| 0d 09 09 09 09 73 65 74 | 20 74 65 78 74 20 5b 67 |.....set| text [g|
|00000760| 65 74 54 65 78 74 20 30 | 20 5b 6d 61 78 50 6f 73 |etText 0| [maxPos|
|00000770| 5d 5d 0d 09 09 09 09 73 | 65 74 20 6e 65 77 44 6f |]].....s|et newDo|
|00000780| 63 20 22 24 50 52 45 46 | 53 3a 74 65 6d 70 2d 24 |c "$PREF|S:temp-$|
|00000790| 63 75 72 72 65 6e 74 44 | 6f 63 22 0d 09 09 09 09 |currentD|oc".....|
|000007a0| 6d 65 73 73 61 67 65 20 | 22 53 61 76 69 6e 67 20 |message |"Saving |
|000007b0| 24 6e 65 77 44 6f 63 2e | 2e 2e 22 0d 09 09 09 09 |$newDoc.|..".....|
|000007c0| 73 65 74 20 66 64 20 5b | 6f 70 65 6e 20 24 6e 65 |set fd [|open $ne|
|000007d0| 77 44 6f 63 20 22 77 22 | 5d 0d 09 09 09 09 70 75 |wDoc "w"|].....pu|
|000007e0| 74 73 20 24 66 64 20 24 | 74 65 78 74 0d 09 09 09 |ts $fd $|text....|
|000007f0| 09 63 6c 6f 73 65 20 24 | 66 64 0d 09 09 09 09 73 |.close $|fd.....s|
|00000800| 65 74 20 63 75 72 72 65 | 6e 74 57 69 6e 20 24 6e |et curre|ntWin $n|
|00000810| 65 77 44 6f 63 0d 09 09 | 09 7d 0d 09 09 09 22 63 |ewDoc...|.}...."c|
|00000820| 61 6e 63 65 6c 22 20 7b | 72 65 74 75 72 6e 7d 0d |ancel" {|return}.|
|00000830| 09 09 7d 0d 09 7d 0d 09 | 0d 09 23 20 43 68 65 63 |..}..}..|..# Chec|
|00000840| 6b 20 69 66 20 61 20 54 | 65 58 20 61 70 70 20 69 |k if a T|eX app i|
|00000850| 73 20 72 75 6e 6e 69 6e | 67 2e 20 20 49 66 20 6e |s runnin|g. If n|
|00000860| 6f 74 2c 20 6f 70 65 6e | 20 74 68 65 20 61 70 70 |ot, open| the app|
|00000870| 20 6e 61 6d 65 64 20 69 | 6e 20 0d 09 23 20 24 74 | named i|n ..# $t|
|00000880| 65 78 50 61 74 68 20 28 | 69 66 20 64 65 66 69 6e |exPath (|if defin|
|00000890| 65 64 29 20 6f 72 20 68 | 61 76 65 20 74 68 65 20 |ed) or h|ave the |
|000008a0| 75 73 65 72 20 73 65 6c | 65 63 74 20 61 6e 20 61 |user sel|ect an a|
|000008b0| 70 70 20 76 69 61 20 61 | 0d 09 23 20 73 74 61 6e |pp via a|..# stan|
|000008c0| 64 61 72 64 20 66 69 6c | 65 20 64 69 61 6c 6f 67 |dard fil|e dialog|
|000008d0| 2e 20 20 4c 65 61 76 65 | 20 74 68 65 20 54 65 58 |. Leave| the TeX|
|000008e0| 20 61 70 70 20 69 6e 20 | 74 68 65 20 62 61 63 6b | app in |the back|
|000008f0| 67 72 6f 75 6e 64 2e 0d | 09 73 65 74 20 61 70 70 |ground..|.set app|
|00000900| 4e 61 6d 65 20 5b 63 68 | 65 63 6b 52 75 6e 6e 69 |Name [ch|eckRunni|
|00000910| 6e 67 20 54 65 58 20 7b | 4f 54 45 58 20 2a 54 45 |ng TeX {|OTEX *TE|
|00000920| 58 20 2a 58 65 54 20 4d | 50 53 2a 20 54 65 58 2b |X *XeT M|PS* TeX+|
|00000930| 7d 20 74 65 78 50 61 74 | 68 20 30 5d 0d 09 0d 09 |} texPat|h 0]....|
|00000940| 69 66 20 7b 5b 73 74 72 | 69 6e 67 20 6d 61 74 63 |if {[str|ing matc|
|00000950| 68 20 7b 4f 7a 54 65 58 | 2a 7d 20 24 61 70 70 4e |h {OzTeX|*} $appN|
|00000960| 61 6d 65 5d 7d 20 7b 0d | 09 09 73 65 74 20 69 73 |ame]} {.|..set is|
|00000970| 4f 7a 54 65 58 20 31 0d | 09 7d 20 65 6c 73 65 69 |OzTeX 1.|.} elsei|
|00000980| 66 20 7b 5b 73 74 72 69 | 6e 67 20 6d 61 74 63 68 |f {[stri|ng match|
|00000990| 20 7b 45 75 72 6f 2d 4f | 7a 54 65 58 2a 7d 20 24 | {Euro-O|zTeX*} $|
|000009a0| 61 70 70 4e 61 6d 65 5d | 7d 20 7b 0d 09 09 73 65 |appName]|} {...se|
|000009b0| 74 20 69 73 4f 7a 54 65 | 58 20 31 0d 09 7d 20 65 |t isOzTe|X 1..} e|
|000009c0| 6c 73 65 69 66 20 7b 5b | 73 74 72 69 6e 67 20 6d |lseif {[|string m|
|000009d0| 61 74 63 68 20 7b 54 65 | 78 74 75 72 65 73 2a 7d |atch {Te|xtures*}|
|000009e0| 20 24 61 70 70 4e 61 6d | 65 5d 7d 20 7b 0d 09 09 | $appNam|e]} {...|
|000009f0| 73 65 74 20 69 73 54 65 | 78 74 75 72 65 73 20 31 |set isTe|xtures 1|
|00000a00| 0d 09 7d 20 65 6c 73 65 | 69 66 20 7b 5b 73 74 72 |..} else|if {[str|
|00000a10| 69 6e 67 20 6d 61 74 63 | 68 20 7b 44 69 72 65 63 |ing matc|h {Direc|
|00000a20| 74 54 65 58 2a 7d 20 24 | 61 70 70 4e 61 6d 65 5d |tTeX*} $|appName]|
|00000a30| 7d 20 7b 0d 09 09 73 65 | 74 20 69 73 44 69 72 65 |} {...se|t isDire|
|00000a40| 63 74 54 65 58 50 72 6f | 20 31 0d 09 7d 20 65 6c |ctTeXPro| 1..} el|
|00000a50| 73 65 69 66 20 7b 5b 73 | 74 72 69 6e 67 20 6d 61 |seif {[s|tring ma|
|00000a60| 74 63 68 20 7b 2a 74 65 | 78 7d 20 24 61 70 70 4e |tch {*te|x} $appN|
|00000a70| 61 6d 65 5d 7d 20 7b 0d | 09 09 73 65 74 20 69 73 |ame]} {.|..set is|
|00000a80| 43 4d 61 63 54 65 58 20 | 31 0d 09 7d 20 65 6c 73 |CMacTeX |1..} els|
|00000a90| 65 69 66 20 7b 5b 73 74 | 72 69 6e 67 20 6d 61 74 |eif {[st|ring mat|
|00000aa0| 63 68 20 7b 4d 50 57 2a | 7d 20 24 61 70 70 4e 61 |ch {MPW*|} $appNa|
|00000ab0| 6d 65 5d 7d 20 7b 0d 09 | 09 73 65 74 20 69 73 44 |me]} {..|.set isD|
|00000ac0| 69 72 65 63 74 54 65 58 | 20 31 0d 09 7d 20 65 6c |irectTeX| 1..} el|
|00000ad0| 73 65 20 7b 0d 09 09 61 | 6c 65 72 74 6e 6f 74 65 |se {...a|lertnote|
|00000ae0| 20 22 53 6f 72 72 79 2c | 20 49 20 64 6f 6e 27 74 | "Sorry,| I don't|
|00000af0| 20 6b 6e 6f 77 20 68 6f | 77 20 74 6f 20 74 61 6c | know ho|w to tal|
|00000b00| 6b 20 74 6f 20 5c 22 24 | 61 70 70 4e 61 6d 65 5c |k to \"$|appName\|
|00000b10| 22 2e 22 0d 09 09 72 65 | 74 75 72 6e 0d 09 7d 0d |"."...re|turn..}.|
|00000b20| 09 0d 09 23 20 43 6f 6e | 64 69 74 69 6f 6e 61 6c |...# Con|ditional|
|00000b30| 6c 79 20 62 72 69 6e 67 | 20 74 68 65 20 54 65 58 |ly bring| the TeX|
|00000b40| 20 61 70 70 20 74 6f 20 | 74 68 65 20 66 6f 72 65 | app to |the fore|
|00000b50| 67 72 6f 75 6e 64 3a 0d | 09 69 66 20 7b 24 54 65 |ground:.|.if {$Te|
|00000b60| 58 6d 6f 64 65 56 61 72 | 73 28 72 75 6e 54 65 58 |XmodeVar|s(runTeX|
|00000b70| 49 6e 42 61 63 6b 67 72 | 6f 75 6e 64 29 20 3d 3d |InBackgr|ound) ==|
|00000b80| 20 30 7d 20 7b 20 73 77 | 69 74 63 68 54 6f 20 24 | 0} { sw|itchTo $|
|00000b90| 61 70 70 4e 61 6d 65 20 | 7d 0d 09 0d 09 23 20 54 |appName |}....# T|
|00000ba0| 79 70 65 73 65 74 20 74 | 68 65 20 64 6f 63 75 6d |ypeset t|he docum|
|00000bb0| 65 6e 74 3a 0d 09 69 66 | 20 7b 24 69 73 4f 7a 54 |ent:..if| {$isOzT|
|00000bc0| 65 58 7d 20 7b 0d 09 09 | 73 65 6e 64 4f 70 65 6e |eX} {...|sendOpen|
|00000bd0| 45 76 65 6e 74 20 2d 6e | 20 24 61 70 70 4e 61 6d |Event -n| $appNam|
|00000be0| 65 20 24 63 75 72 72 65 | 6e 74 57 69 6e 0d 09 7d |e $curre|ntWin..}|
|00000bf0| 20 65 6c 73 65 69 66 20 | 7b 24 69 73 54 65 78 74 | elseif |{$isText|
|00000c00| 75 72 65 73 7d 20 7b 0d | 09 09 23 20 43 68 6f 6f |ures} {.|..# Choo|
|00000c10| 73 65 20 6f 6e 65 20 6f | 66 20 74 68 65 20 66 6f |se one o|f the fo|
|00000c20| 6c 6c 6f 77 69 6e 67 20 | 74 68 72 65 65 20 6f 70 |llowing |three op|
|00000c30| 74 69 6f 6e 73 3a 0d 09 | 09 23 20 64 6f 73 63 20 |tions:..|.# dosc |
|00000c40| 2d 63 20 27 2a 54 45 58 | 27 20 2d 73 20 5b 67 65 |-c '*TEX|' -s [ge|
|00000c50| 74 54 65 78 74 20 30 20 | 5b 6d 61 78 50 6f 73 5d |tText 0 |[maxPos]|
|00000c60| 5d 20 2d 72 0d 09 09 23 | 20 73 65 6e 64 4f 70 65 |] -r...#| sendOpe|
|00000c70| 6e 45 76 65 6e 74 20 2d | 6e 20 24 61 70 70 4e 61 |nEvent -|n $appNa|
|00000c80| 6d 65 20 24 63 75 72 72 | 65 6e 74 57 69 6e 0d 09 |me $curr|entWin..|
|00000c90| 09 64 6f 73 63 20 2d 63 | 20 27 2a 54 45 58 27 20 |.dosc -c| '*TEX' |
|00000ca0| 2d 66 20 5b 6c 69 6e 64 | 65 78 20 5b 77 69 6e 4e |-f [lind|ex [winN|
|00000cb0| 61 6d 65 73 20 2d 66 5d | 20 30 5d 20 2d 72 0d 09 |ames -f]| 0] -r..|
|00000cc0| 7d 20 65 6c 73 65 69 66 | 20 7b 24 69 73 44 69 72 |} elseif| {$isDir|
|00000cd0| 65 63 74 54 65 58 50 72 | 6f 7d 20 7b 0d 09 09 64 |ectTeXPr|o} {...d|
|00000ce0| 6f 73 63 20 2d 63 20 27 | 54 65 58 2b 27 20 2d 73 |osc -c '|TeX+' -s|
|00000cf0| 20 22 50 72 6f 6a 65 63 | 74 4d 67 72 20 2d 74 20 | "Projec|tMgr -t |
|00000d00| 4c 61 54 65 58 20 5c 22 | 24 63 75 72 72 65 6e 74 |LaTeX \"|$current|
|00000d10| 57 69 6e 5c 22 3b 20 53 | 65 6c 65 63 74 41 70 70 |Win\"; S|electApp|
|00000d20| 3b 20 4d 65 6e 75 43 6f | 6d 6d 61 6e 64 20 31 20 |; MenuCo|mmand 1 |
|00000d30| 34 22 0d 09 7d 20 65 6c | 73 65 69 66 20 7b 24 69 |4"..} el|seif {$i|
|00000d40| 73 43 4d 61 63 54 65 58 | 7d 20 7b 0d 09 09 64 6f |sCMacTeX|} {...do|
|00000d50| 73 63 20 2d 6e 20 24 61 | 70 70 4e 61 6d 65 20 2d |sc -n $a|ppName -|
|00000d60| 6b 20 27 61 65 76 74 27 | 20 2d 65 20 27 6f 64 6f |k 'aevt'| -e 'odo|
|00000d70| 63 27 20 2d 72 20 2d 66 | 20 24 63 75 72 72 65 6e |c' -r -f| $curren|
|00000d80| 74 57 69 6e 0d 09 7d 20 | 65 6c 73 65 69 66 20 7b |tWin..} |elseif {|
|00000d90| 24 69 73 44 69 72 65 63 | 74 54 65 58 7d 20 7b 0d |$isDirec|tTeX} {.|
|00000da0| 09 09 73 65 74 20 73 63 | 72 69 70 74 20 22 42 65 |..set sc|ript "Be|
|00000db0| 67 69 6e 3b 20 43 68 61 | 6e 67 65 54 65 58 50 72 |gin; Cha|ngeTeXPr|
|00000dc0| 6f 6a 65 63 74 20 27 24 | 63 75 72 72 65 6e 74 57 |oject '$|currentW|
|00000dd0| 69 6e 27 20 2d 63 68 65 | 63 6b 20 2d 63 6f 6e 66 |in' -che|ck -conf|
|00000de0| 69 72 6d 20 7c 7c 20 45 | 78 69 74 20 30 3b 5c 0d |irm || E|xit 0;\.|
|00000df0| 09 09 09 20 20 20 20 20 | 20 20 20 20 20 45 78 65 |... | Exe|
|00000e00| 63 75 74 65 20 5c 22 7b | 64 74 5f 54 65 58 50 72 |cute \"{|dt_TeXPr|
|00000e10| 6f 6a 65 63 74 7d 5c 22 | 3b 20 54 65 58 4d 65 6e |oject}\"|; TeXMen|
|00000e20| 75 20 2d 74 65 78 20 2d | 66 6f 72 6d 61 74 73 3b |u -tex -|formats;|
|00000e30| 20 45 6e 64 20 b7 20 44 | 65 76 3a 4e 75 6c 6c 3b | End . D|ev:Null;|
|00000e40| 5c 0d 09 09 09 20 20 20 | 20 20 20 20 20 20 20 52 |\.... | R|
|00000e50| 75 6e 53 65 73 73 69 6f | 6e 20 31 20 b7 20 44 65 |unSessio|n 1 . De|
|00000e60| 76 3a 4e 75 6c 6c 22 0d | 09 09 64 6f 73 63 20 2d |v:Null".|..dosc -|
|00000e70| 72 20 2d 6e 20 24 61 70 | 70 4e 61 6d 65 20 2d 73 |r -n $ap|pName -s|
|00000e80| 20 24 73 63 72 69 70 74 | 0d 09 7d 0d 7d 0d 0d 0d | $script|..}.}...|
|00000e90| 23 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |#-------|--------|
|00000ea0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000eb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ec0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ed0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 23 20 47 6f |--------|---.# Go|
|00000ee0| 74 6f 3a 0d 23 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |to:.#---|--------|
|00000ef0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000f00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000f10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000f20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00000f30| 0d 23 20 53 77 69 74 63 | 68 20 74 6f 20 28 62 75 |.# Switc|h to (bu|
|00000f40| 74 20 64 6f 6e 27 74 20 | 65 78 65 63 75 74 65 29 |t don't |execute)|
|00000f50| 20 61 6e 79 20 6f 66 20 | 74 68 65 20 66 6f 6c 6c | any of |the foll|
|00000f60| 6f 77 69 6e 67 20 61 70 | 70 6c 69 63 61 74 69 6f |owing ap|plicatio|
|00000f70| 6e 73 2e 0d 70 72 6f 63 | 20 6c 61 74 65 78 20 7b |ns..proc| latex {|
|00000f80| 7d 20 7b 0d 09 67 6c 6f | 62 61 6c 20 74 65 78 50 |} {..glo|bal texP|
|00000f90| 61 74 68 0d 09 69 66 20 | 7b 21 5b 63 61 74 63 68 |ath..if |{![catch|
|00000fa0| 20 7b 67 65 74 46 69 6c | 65 53 69 67 20 24 74 65 | {getFil|eSig $te|
|00000fb0| 78 50 61 74 68 7d 20 73 | 69 67 5d 7d 20 7b 0d 09 |xPath} s|ig]} {..|
|00000fc0| 09 73 65 74 20 61 70 70 | 4e 61 6d 65 20 5b 63 68 |.set app|Name [ch|
|00000fd0| 65 63 6b 52 75 6e 6e 69 | 6e 67 20 54 65 58 20 24 |eckRunni|ng TeX $|
|00000fe0| 73 69 67 20 74 65 78 50 | 61 74 68 5d 0d 09 7d 20 |sig texP|ath]..} |
|00000ff0| 65 6c 73 65 20 7b 0d 09 | 09 73 65 74 20 61 70 70 |else {..|.set app|
|00001000| 4e 61 6d 65 20 5b 63 68 | 65 63 6b 52 75 6e 6e 69 |Name [ch|eckRunni|
|00001010| 6e 67 20 54 65 58 20 7b | 4f 54 45 58 20 2a 54 45 |ng TeX {|OTEX *TE|
|00001020| 58 20 2a 58 65 54 20 4d | 50 53 2a 20 54 65 58 2b |X *XeT M|PS* TeX+|
|00001030| 7d 20 74 65 78 50 61 74 | 68 5d 0d 09 7d 0d 09 69 |} texPat|h]..}..i|
|00001040| 66 20 7b 5b 73 74 72 69 | 6e 67 20 6c 65 6e 67 74 |f {[stri|ng lengt|
|00001050| 68 20 24 61 70 70 4e 61 | 6d 65 5d 20 3e 20 30 7d |h $appNa|me] > 0}|
|00001060| 20 7b 0d 09 09 73 77 69 | 74 63 68 54 6f 20 24 61 | {...swi|tchTo $a|
|00001070| 70 70 4e 61 6d 65 0d 09 | 7d 0d 7d 0d 70 72 6f 63 |ppName..|}.}.proc|
|00001080| 20 62 69 62 74 65 78 20 | 7b 7d 20 7b 0d 09 67 6c | bibtex |{} {..gl|
|00001090| 6f 62 61 6c 20 62 69 62 | 74 65 78 50 61 74 68 0d |obal bib|texPath.|
|000010a0| 09 73 65 74 20 61 70 70 | 4e 61 6d 65 20 5b 63 68 |.set app|Name [ch|
|000010b0| 65 63 6b 52 75 6e 6e 69 | 6e 67 20 42 69 62 54 65 |eckRunni|ng BibTe|
|000010c0| 58 20 42 49 42 74 20 62 | 69 62 74 65 78 50 61 74 |X BIBt b|ibtexPat|
|000010d0| 68 5d 0d 09 69 66 20 7b | 21 5b 73 74 72 69 6e 67 |h]..if {|![string|
|000010e0| 20 6c 65 6e 67 74 68 20 | 24 61 70 70 4e 61 6d 65 | length |$appName|
|000010f0| 5d 7d 20 72 65 74 75 72 | 6e 0d 09 73 77 69 74 63 |]} retur|n..switc|
|00001100| 68 54 6f 20 24 61 70 70 | 4e 61 6d 65 0d 7d 0d 70 |hTo $app|Name.}.p|
|00001110| 72 6f 63 20 6d 61 6b 65 | 69 6e 64 65 78 20 7b 7d |roc make|index {}|
|00001120| 20 7b 0d 09 67 6c 6f 62 | 61 6c 20 6d 61 6b 65 69 | {..glob|al makei|
|00001130| 6e 64 65 78 50 61 74 68 | 0d 09 73 65 74 20 61 70 |ndexPath|..set ap|
|00001140| 70 4e 61 6d 65 20 5b 63 | 68 65 63 6b 52 75 6e 6e |pName [c|heckRunn|
|00001150| 69 6e 67 20 4d 61 6b 65 | 49 6e 64 65 78 20 4d 69 |ing Make|Index Mi|
|00001160| 64 78 20 6d 61 6b 65 69 | 6e 64 65 78 50 61 74 68 |dx makei|ndexPath|
|00001170| 5d 0d 09 69 66 20 7b 21 | 5b 73 74 72 69 6e 67 20 |]..if {!|[string |
|00001180| 6c 65 6e 67 74 68 20 24 | 61 70 70 4e 61 6d 65 5d |length $|appName]|
|00001190| 7d 20 72 65 74 75 72 6e | 0d 09 73 77 69 74 63 68 |} return|..switch|
|000011a0| 54 6f 20 24 61 70 70 4e | 61 6d 65 0d 7d 0d 0d 23 |To $appN|ame.}..#|
|000011b0| 20 46 69 6e 64 20 74 68 | 65 20 6e 65 78 74 20 6f | Find th|e next o|
|000011c0| 72 20 70 72 65 76 69 6f | 75 73 20 65 6e 76 69 72 |r previo|us envir|
|000011d0| 6f 6e 6d 65 6e 74 2e 20 | 20 53 65 61 72 63 68 20 |onment. | Search |
|000011e0| 66 6f 72 77 61 72 64 20 | 28 6f 72 20 62 61 63 6b |forward |(or back|
|000011f0| 77 61 72 64 2c 20 0d 23 | 20 64 65 70 65 6e 64 69 |ward, .#| dependi|
|00001200| 6e 67 20 6f 6e 20 24 66 | 6f 72 77 61 72 64 29 20 |ng on $f|orward) |
|00001210| 66 6f 72 20 65 69 74 68 | 65 72 20 5c 62 65 67 69 |for eith|er \begi|
|00001220| 6e 20 6f 72 20 5c 65 6e | 64 2e 20 20 49 66 20 5c |n or \en|d. If \|
|00001230| 62 65 67 69 6e 20 69 73 | 20 66 6f 75 6e 64 2c 20 |begin is| found, |
|00001240| 0d 23 20 73 65 61 72 63 | 68 20 66 6f 72 77 61 72 |.# searc|h forwar|
|00001250| 64 20 66 6f 72 20 63 6f | 72 72 65 73 70 6f 6e 64 |d for co|rrespond|
|00001260| 69 6e 67 20 5c 65 6e 64 | 3b 20 6f 74 68 65 72 77 |ing \end|; otherw|
|00001270| 69 73 65 2c 20 73 65 61 | 72 63 68 20 62 61 63 6b |ise, sea|rch back|
|00001280| 77 61 72 64 20 66 6f 72 | 20 0d 23 20 63 6f 72 72 |ward for| .# corr|
|00001290| 65 73 70 6f 6e 64 69 6e | 67 20 5c 62 65 67 69 6e |espondin|g \begin|
|000012a0| 2e 20 20 53 65 6c 65 63 | 74 20 74 68 65 20 66 6f |. Selec|t the fo|
|000012b0| 75 6e 64 20 65 6e 76 69 | 72 6f 6e 6d 65 6e 74 2c |und envi|ronment,|
|000012c0| 20 6f 72 20 64 69 73 70 | 6c 61 79 20 61 6e 20 0d | or disp|lay an .|
|000012d0| 23 20 65 72 72 6f 72 20 | 6d 65 73 73 61 67 65 20 |# error |message |
|000012e0| 69 66 20 6e 6f 20 65 6e | 76 69 72 6f 6e 6d 65 6e |if no en|vironmen|
|000012f0| 74 20 69 73 20 66 6f 75 | 6e 64 2e 0d 70 72 6f 63 |t is fou|nd..proc|
|00001300| 20 66 69 6e 64 45 6e 76 | 69 72 6f 6e 6d 65 6e 74 | findEnv|ironment|
|00001310| 20 7b 66 6f 72 77 61 72 | 64 7d 20 7b 0d 09 73 65 | {forwar|d} {..se|
|00001320| 74 20 73 65 61 72 63 68 | 53 74 72 69 6e 67 31 20 |t search|String1 |
|00001330| 7b 5e 5b 20 5c 74 5d 2a | 5c 5c 62 65 67 69 6e 5c |{^[ \t]*|\\begin\|
|00001340| 7b 5b 5e 5c 7b 5c 7d 5d | 2a 5c 7d 7c 5c 5c 65 6e |{[^\{\}]|*\}|\\en|
|00001350| 64 5c 7b 5b 5e 5c 7b 5c | 7d 5d 2a 5c 7d 5b 20 5c |d\{[^\{\|}]*\}[ \|
|00001360| 74 5d 2a 5c 72 3f 7d 0d | 09 73 65 74 20 73 65 61 |t]*\r?}.|.set sea|
|00001370| 72 63 68 50 6f 73 20 5b | 67 65 74 50 6f 73 5d 0d |rchPos [|getPos].|
|00001380| 09 69 66 20 7b 20 5b 69 | 73 53 65 6c 65 63 74 69 |.if { [i|sSelecti|
|00001390| 6f 6e 5d 20 7d 20 74 68 | 65 6e 20 7b 20 0d 09 09 |on] } th|en { ...|
|000013a0| 69 66 20 7b 20 24 66 6f | 72 77 61 72 64 20 7d 20 |if { $fo|rward } |
|000013b0| 74 68 65 6e 20 7b 0d 09 | 09 09 73 65 74 20 73 65 |then {..|..set se|
|000013c0| 61 72 63 68 50 6f 73 20 | 5b 73 65 6c 45 6e 64 5d |archPos |[selEnd]|
|000013d0| 0d 09 09 7d 20 65 6c 73 | 65 20 7b 0d 09 09 09 73 |...} els|e {....s|
|000013e0| 65 74 20 73 65 61 72 63 | 68 50 6f 73 20 5b 65 78 |et searc|hPos [ex|
|000013f0| 70 72 20 24 73 65 61 72 | 63 68 50 6f 73 20 2d 20 |pr $sear|chPos - |
|00001400| 31 5d 0d 09 09 7d 0d 09 | 7d 20 65 6c 73 65 20 7b |1]...}..|} else {|
|00001410| 0d 09 09 69 66 20 7b 20 | 24 66 6f 72 77 61 72 64 |...if { |$forward|
|00001420| 20 7d 20 74 68 65 6e 20 | 7b 0d 09 09 09 73 65 74 | } then |{....set|
|00001430| 20 73 65 61 72 63 68 50 | 6f 73 20 5b 65 78 70 72 | searchP|os [expr|
|00001440| 20 24 73 65 61 72 63 68 | 50 6f 73 20 2b 20 31 5d | $search|Pos + 1]|
|00001450| 0d 09 09 7d 20 65 6c 73 | 65 20 7b 0d 09 09 09 73 |...} els|e {....s|
|00001460| 65 74 20 73 65 61 72 63 | 68 50 6f 73 20 5b 65 78 |et searc|hPos [ex|
|00001470| 70 72 20 24 73 65 61 72 | 63 68 50 6f 73 20 2d 20 |pr $sear|chPos - |
|00001480| 31 5d 0d 09 09 7d 0d 09 | 7d 0d 09 73 65 74 20 73 |1]...}..|}..set s|
|00001490| 65 61 72 63 68 52 65 73 | 75 6c 74 20 5b 73 65 61 |earchRes|ult [sea|
|000014a0| 72 63 68 20 2d 73 20 2d | 66 20 24 66 6f 72 77 61 |rch -s -|f $forwa|
|000014b0| 72 64 20 2d 72 20 31 20 | 2d 6e 20 24 73 65 61 72 |rd -r 1 |-n $sear|
|000014c0| 63 68 53 74 72 69 6e 67 | 31 20 24 73 65 61 72 63 |chString|1 $searc|
|000014d0| 68 50 6f 73 5d 0d 09 69 | 66 20 7b 5b 73 74 72 69 |hPos]..i|f {[stri|
|000014e0| 6e 67 20 6c 65 6e 67 74 | 68 20 24 73 65 61 72 63 |ng lengt|h $searc|
|000014f0| 68 52 65 73 75 6c 74 5d | 7d 20 74 68 65 6e 20 7b |hResult]|} then {|
|00001500| 0d 09 09 73 65 74 20 62 | 65 67 50 6f 73 20 5b 6c |...set b|egPos [l|
|00001510| 69 6e 64 65 78 20 24 73 | 65 61 72 63 68 52 65 73 |index $s|earchRes|
|00001520| 75 6c 74 20 30 5d 0d 09 | 09 73 65 74 20 65 6e 64 |ult 0]..|.set end|
|00001530| 50 6f 73 20 5b 6c 69 6e | 64 65 78 20 24 73 65 61 |Pos [lin|dex $sea|
|00001540| 72 63 68 52 65 73 75 6c | 74 20 31 5d 0d 09 09 73 |rchResul|t 1]...s|
|00001550| 65 74 20 73 65 61 72 63 | 68 54 65 78 74 20 5b 67 |et searc|hText [g|
|00001560| 65 74 54 65 78 74 20 24 | 62 65 67 50 6f 73 20 24 |etText $|begPos $|
|00001570| 65 6e 64 50 6f 73 5d 0d | 09 09 72 65 67 65 78 70 |endPos].|..regexp|
|00001580| 20 7b 5c 7b 28 2e 2a 29 | 5c 7d 7d 20 24 73 65 61 | {\{(.*)|\}} $sea|
|00001590| 72 63 68 54 65 78 74 20 | 64 75 6d 6d 79 20 65 6e |rchText |dummy en|
|000015a0| 76 4e 61 6d 65 0d 09 09 | 69 66 20 7b 5b 73 74 72 |vName...|if {[str|
|000015b0| 69 6e 67 20 6d 61 74 63 | 68 20 7b 2a 62 65 67 69 |ing matc|h {*begi|
|000015c0| 6e 2a 7d 20 24 73 65 61 | 72 63 68 54 65 78 74 5d |n*} $sea|rchText]|
|000015d0| 7d 20 7b 0d 09 09 09 73 | 65 74 20 62 65 67 45 6e |} {....s|et begEn|
|000015e0| 76 20 24 62 65 67 50 6f | 73 0d 09 09 09 61 70 70 |v $begPo|s....app|
|000015f0| 65 6e 64 20 73 65 61 72 | 63 68 53 74 72 69 6e 67 |end sear|chString|
|00001600| 32 20 7b 5c 5c 65 6e 64 | 5c 7b 7d 20 24 65 6e 76 |2 {\\end|\{} $env|
|00001610| 4e 61 6d 65 20 7b 5c 7d | 5b 20 5c 74 5d 2a 5c 72 |Name {\}|[ \t]*\r|
|00001620| 3f 7d 0d 09 09 09 73 65 | 74 20 73 65 61 72 63 68 |?}....se|t search|
|00001630| 50 6f 73 20 24 65 6e 64 | 50 6f 73 0d 09 09 09 73 |Pos $end|Pos....s|
|00001640| 65 74 20 73 65 61 72 63 | 68 52 65 73 75 6c 74 20 |et searc|hResult |
|00001650| 5b 73 65 61 72 63 68 20 | 2d 73 20 2d 66 20 31 20 |[search |-s -f 1 |
|00001660| 2d 72 20 31 20 2d 6e 20 | 24 73 65 61 72 63 68 53 |-r 1 -n |$searchS|
|00001670| 74 72 69 6e 67 32 20 24 | 73 65 61 72 63 68 50 6f |tring2 $|searchPo|
|00001680| 73 5d 0d 09 09 09 69 66 | 20 7b 5b 73 74 72 69 6e |s]....if| {[strin|
|00001690| 67 20 6c 65 6e 67 74 68 | 20 24 73 65 61 72 63 68 |g length| $search|
|000016a0| 52 65 73 75 6c 74 5d 7d | 20 7b 0d 09 09 09 09 73 |Result]}| {.....s|
|000016b0| 65 74 20 65 6e 64 50 6f | 73 20 5b 6c 69 6e 64 65 |et endPo|s [linde|
|000016c0| 78 20 24 73 65 61 72 63 | 68 52 65 73 75 6c 74 20 |x $searc|hResult |
|000016d0| 31 5d 0d 09 09 09 09 72 | 65 74 75 72 6e 20 5b 6c |1].....r|eturn [l|
|000016e0| 69 73 74 20 24 62 65 67 | 50 6f 73 20 24 65 6e 64 |ist $beg|Pos $end|
|000016f0| 50 6f 73 5d 0d 09 09 09 | 7d 20 65 6c 73 65 20 7b |Pos]....|} else {|
|00001700| 0d 09 09 09 09 72 65 74 | 75 72 6e 20 22 6d 61 74 |.....ret|urn "mat|
|00001710| 63 68 69 6e 67 20 5c 5c | 65 6e 64 20 6e 6f 74 20 |ching \\|end not |
|00001720| 66 6f 75 6e 64 22 0d 09 | 09 09 7d 0d 09 09 7d 20 |found"..|..}...} |
|00001730| 65 6c 73 65 20 7b 0d 09 | 09 09 73 65 74 20 65 6e |else {..|..set en|
|00001740| 64 45 6e 76 20 24 65 6e | 64 50 6f 73 0d 09 09 09 |dEnv $en|dPos....|
|00001750| 61 70 70 65 6e 64 20 73 | 65 61 72 63 68 53 74 72 |append s|earchStr|
|00001760| 69 6e 67 32 20 7b 5e 5b | 20 5c 74 5d 2a 5c 5c 62 |ing2 {^[| \t]*\\b|
|00001770| 65 67 69 6e 5c 7b 7d 20 | 24 65 6e 76 4e 61 6d 65 |egin\{} |$envName|
|00001780| 20 7b 5c 7d 7d 0d 09 09 | 09 73 65 74 20 73 65 61 | {\}}...|.set sea|
|00001790| 72 63 68 50 6f 73 20 24 | 62 65 67 50 6f 73 0d 09 |rchPos $|begPos..|
|000017a0| 09 09 73 65 74 20 73 65 | 61 72 63 68 52 65 73 75 |..set se|archResu|
|000017b0| 6c 74 20 5b 73 65 61 72 | 63 68 20 2d 73 20 2d 66 |lt [sear|ch -s -f|
|000017c0| 20 30 20 2d 72 20 31 20 | 2d 6e 20 24 73 65 61 72 | 0 -r 1 |-n $sear|
|000017d0| 63 68 53 74 72 69 6e 67 | 32 20 24 73 65 61 72 63 |chString|2 $searc|
|000017e0| 68 50 6f 73 5d 0d 09 09 | 09 69 66 20 7b 5b 73 74 |hPos]...|.if {[st|
|000017f0| 72 69 6e 67 20 6c 65 6e | 67 74 68 20 24 73 65 61 |ring len|gth $sea|
|00001800| 72 63 68 52 65 73 75 6c | 74 5d 7d 20 7b 0d 09 09 |rchResul|t]} {...|
|00001810| 09 09 73 65 74 20 62 65 | 67 50 6f 73 20 5b 6c 69 |..set be|gPos [li|
|00001820| 6e 64 65 78 20 24 73 65 | 61 72 63 68 52 65 73 75 |ndex $se|archResu|
|00001830| 6c 74 20 30 5d 0d 09 09 | 09 09 72 65 74 75 72 6e |lt 0]...|..return|
|00001840| 20 5b 6c 69 73 74 20 24 | 62 65 67 50 6f 73 20 24 | [list $|begPos $|
|00001850| 65 6e 64 50 6f 73 5d 0d | 09 09 09 7d 20 65 6c 73 |endPos].|...} els|
|00001860| 65 20 7b 0d 09 09 09 09 | 72 65 74 75 72 6e 20 22 |e {.....|return "|
|00001870| 6d 61 74 63 68 69 6e 67 | 20 5c 5c 62 65 67 69 6e |matching| \\begin|
|00001880| 20 6e 6f 74 20 66 6f 75 | 6e 64 22 0d 09 09 09 7d | not fou|nd"....}|
|00001890| 0d 09 09 7d 0d 09 7d 20 | 65 6c 73 65 20 7b 0d 09 |...}..} |else {..|
|000018a0| 09 69 66 20 7b 20 24 66 | 6f 72 77 61 72 64 20 7d |.if { $f|orward }|
|000018b0| 20 74 68 65 6e 20 7b 0d | 09 09 09 72 65 74 75 72 | then {.|...retur|
|000018c0| 6e 20 22 6e 65 78 74 20 | 65 6e 76 69 72 6f 6e 6d |n "next |environm|
|000018d0| 65 6e 74 20 6e 6f 74 20 | 66 6f 75 6e 64 22 0d 09 |ent not |found"..|
|000018e0| 09 7d 20 65 6c 73 65 20 | 7b 0d 09 09 09 72 65 74 |.} else |{....ret|
|000018f0| 75 72 6e 20 22 70 72 65 | 76 69 6f 75 73 20 65 6e |urn "pre|vious en|
|00001900| 76 69 72 6f 6e 6d 65 6e | 74 20 6e 6f 74 20 66 6f |vironmen|t not fo|
|00001910| 75 6e 64 22 0d 09 09 7d | 0d 09 7d 0d 7d 0d 0d 70 |und"...}|..}.}..p|
|00001920| 72 6f 63 20 70 72 65 76 | 45 6e 76 69 72 6f 6e 6d |roc prev|Environm|
|00001930| 65 6e 74 20 7b 7d 20 7b | 0d 09 67 6c 6f 62 61 6c |ent {} {|..global|
|00001940| 20 73 65 61 72 63 68 4e | 6f 69 73 69 6c 79 0d 09 | searchN|oisily..|
|00001950| 73 65 74 20 66 69 6e 64 | 52 65 73 75 6c 74 20 5b |set find|Result [|
|00001960| 66 69 6e 64 45 6e 76 69 | 72 6f 6e 6d 65 6e 74 20 |findEnvi|ronment |
|00001970| 30 5d 0d 09 69 66 20 7b | 5b 6c 6c 65 6e 67 74 68 |0]..if {|[llength|
|00001980| 20 24 66 69 6e 64 52 65 | 73 75 6c 74 5d 20 3d 3d | $findRe|sult] ==|
|00001990| 20 32 7d 20 74 68 65 6e | 20 7b 0d 09 09 67 6f 74 | 2} then| {...got|
|000019a0| 6f 20 5b 6c 69 6e 64 65 | 78 20 24 66 69 6e 64 52 |o [linde|x $findR|
|000019b0| 65 73 75 6c 74 20 30 5d | 0d 09 7d 20 65 6c 73 65 |esult 0]|..} else|
|000019c0| 20 7b 0d 09 09 69 66 20 | 7b 24 73 65 61 72 63 68 | {...if |{$search|
|000019d0| 4e 6f 69 73 69 6c 79 7d | 20 7b 62 65 65 70 7d 0d |Noisily}| {beep}.|
|000019e0| 09 09 6d 65 73 73 61 67 | 65 20 24 66 69 6e 64 52 |..messag|e $findR|
|000019f0| 65 73 75 6c 74 0d 09 7d | 0d 7d 0d 70 72 6f 63 20 |esult..}|.}.proc |
|00001a00| 6e 65 78 74 45 6e 76 69 | 72 6f 6e 6d 65 6e 74 20 |nextEnvi|ronment |
|00001a10| 7b 7d 20 7b 0d 09 67 6c | 6f 62 61 6c 20 73 65 61 |{} {..gl|obal sea|
|00001a20| 72 63 68 4e 6f 69 73 69 | 6c 79 0d 09 73 65 74 20 |rchNoisi|ly..set |
|00001a30| 66 69 6e 64 52 65 73 75 | 6c 74 20 5b 66 69 6e 64 |findResu|lt [find|
|00001a40| 45 6e 76 69 72 6f 6e 6d | 65 6e 74 20 31 5d 0d 09 |Environm|ent 1]..|
|00001a50| 69 66 20 7b 5b 6c 6c 65 | 6e 67 74 68 20 24 66 69 |if {[lle|ngth $fi|
|00001a60| 6e 64 52 65 73 75 6c 74 | 5d 20 3d 3d 20 32 7d 20 |ndResult|] == 2} |
|00001a70| 74 68 65 6e 20 7b 0d 09 | 09 67 6f 74 6f 20 5b 6c |then {..|.goto [l|
|00001a80| 69 6e 64 65 78 20 24 66 | 69 6e 64 52 65 73 75 6c |index $f|indResul|
|00001a90| 74 20 30 5d 0d 09 7d 20 | 65 6c 73 65 20 7b 0d 09 |t 0]..} |else {..|
|00001aa0| 09 69 66 20 7b 24 73 65 | 61 72 63 68 4e 6f 69 73 |.if {$se|archNois|
|00001ab0| 69 6c 79 7d 20 7b 62 65 | 65 70 7d 0d 09 09 6d 65 |ily} {be|ep}...me|
|00001ac0| 73 73 61 67 65 20 24 66 | 69 6e 64 52 65 73 75 6c |ssage $f|indResul|
|00001ad0| 74 0d 09 7d 0d 7d 0d 70 | 72 6f 63 20 70 72 65 76 |t..}.}.p|roc prev|
|00001ae0| 45 6e 76 69 72 6f 6e 6d | 65 6e 74 53 65 6c 65 63 |Environm|entSelec|
|00001af0| 74 20 7b 7d 20 7b 0d 09 | 67 6c 6f 62 61 6c 20 73 |t {} {..|global s|
|00001b00| 65 61 72 63 68 4e 6f 69 | 73 69 6c 79 0d 09 73 65 |earchNoi|sily..se|
|00001b10| 74 20 66 6f 72 77 61 72 | 64 20 30 0d 09 73 65 74 |t forwar|d 0..set|
|00001b20| 20 66 69 6e 64 52 65 73 | 75 6c 74 20 5b 66 69 6e | findRes|ult [fin|
|00001b30| 64 45 6e 76 69 72 6f 6e | 6d 65 6e 74 20 24 66 6f |dEnviron|ment $fo|
|00001b40| 72 77 61 72 64 5d 0d 09 | 69 66 20 7b 5b 6c 6c 65 |rward]..|if {[lle|
|00001b50| 6e 67 74 68 20 24 66 69 | 6e 64 52 65 73 75 6c 74 |ngth $fi|ndResult|
|00001b60| 5d 20 3d 3d 20 32 7d 20 | 74 68 65 6e 20 7b 0d 09 |] == 2} |then {..|
|00001b70| 09 73 65 74 20 65 6e 64 | 50 6f 73 20 5b 6c 69 6e |.set end|Pos [lin|
|00001b80| 64 65 78 20 24 66 69 6e | 64 52 65 73 75 6c 74 20 |dex $fin|dResult |
|00001b90| 31 5d 0d 23 20 09 09 69 | 66 20 7b 20 5b 72 65 67 |1].# ..i|f { [reg|
|00001ba0| 65 78 70 20 7b 5c 72 7d | 20 5b 6c 6f 6f 6b 41 74 |exp {\r}| [lookAt|
|00001bb0| 20 5b 65 78 70 72 20 24 | 65 6e 64 50 6f 73 20 2b | [expr $|endPos +|
|00001bc0| 20 31 5d 5d 5d 20 7d 20 | 74 68 65 6e 20 7b 0d 23 | 1]]] } |then {.#|
|00001bd0| 20 09 09 09 73 65 74 20 | 65 6e 64 50 6f 73 20 5b | ...set |endPos [|
|00001be0| 65 78 70 72 20 24 65 6e | 64 50 6f 73 20 2b 20 31 |expr $en|dPos + 1|
|00001bf0| 5d 0d 23 20 09 09 7d 0d | 09 09 73 65 6c 65 63 74 |].# ..}.|..select|
|00001c00| 20 5b 6c 69 6e 64 65 78 | 20 24 66 69 6e 64 52 65 | [lindex| $findRe|
|00001c10| 73 75 6c 74 20 30 5d 20 | 24 65 6e 64 50 6f 73 0d |sult 0] |$endPos.|
|00001c20| 09 7d 20 65 6c 73 65 20 | 7b 0d 09 09 69 66 20 7b |.} else |{...if {|
|00001c30| 20 24 73 65 61 72 63 68 | 4e 6f 69 73 69 6c 79 20 | $search|Noisily |
|00001c40| 7d 20 7b 62 65 65 70 7d | 0d 09 09 6d 65 73 73 61 |} {beep}|...messa|
|00001c50| 67 65 20 24 66 69 6e 64 | 52 65 73 75 6c 74 0d 09 |ge $find|Result..|
|00001c60| 7d 0d 7d 0d 70 72 6f 63 | 20 6e 65 78 74 45 6e 76 |}.}.proc| nextEnv|
|00001c70| 69 72 6f 6e 6d 65 6e 74 | 53 65 6c 65 63 74 20 7b |ironment|Select {|
|00001c80| 7d 20 7b 0d 09 67 6c 6f | 62 61 6c 20 73 65 61 72 |} {..glo|bal sear|
|00001c90| 63 68 4e 6f 69 73 69 6c | 79 0d 09 73 65 74 20 66 |chNoisil|y..set f|
|00001ca0| 6f 72 77 61 72 64 20 31 | 0d 09 73 65 74 20 66 69 |orward 1|..set fi|
|00001cb0| 6e 64 52 65 73 75 6c 74 | 20 5b 66 69 6e 64 45 6e |ndResult| [findEn|
|00001cc0| 76 69 72 6f 6e 6d 65 6e | 74 20 24 66 6f 72 77 61 |vironmen|t $forwa|
|00001cd0| 72 64 5d 0d 09 69 66 20 | 7b 5b 6c 6c 65 6e 67 74 |rd]..if |{[llengt|
|00001ce0| 68 20 24 66 69 6e 64 52 | 65 73 75 6c 74 5d 20 3d |h $findR|esult] =|
|00001cf0| 3d 20 32 7d 20 74 68 65 | 6e 20 7b 0d 09 09 73 65 |= 2} the|n {...se|
|00001d00| 74 20 65 6e 64 50 6f 73 | 20 5b 6c 69 6e 64 65 78 |t endPos| [lindex|
|00001d10| 20 24 66 69 6e 64 52 65 | 73 75 6c 74 20 31 5d 0d | $findRe|sult 1].|
|00001d20| 23 20 09 09 69 66 20 7b | 20 5b 72 65 67 65 78 70 |# ..if {| [regexp|
|00001d30| 20 7b 5c 72 7d 20 5b 6c | 6f 6f 6b 41 74 20 5b 65 | {\r} [l|ookAt [e|
|00001d40| 78 70 72 20 24 65 6e 64 | 50 6f 73 20 2b 20 31 5d |xpr $end|Pos + 1]|
|00001d50| 5d 5d 20 7d 20 74 68 65 | 6e 20 7b 0d 23 20 09 09 |]] } the|n {.# ..|
|00001d60| 09 73 65 74 20 65 6e 64 | 50 6f 73 20 5b 65 78 70 |.set end|Pos [exp|
|00001d70| 72 20 24 65 6e 64 50 6f | 73 20 2b 20 31 5d 0d 23 |r $endPo|s + 1].#|
|00001d80| 20 09 09 7d 0d 09 09 73 | 65 6c 65 63 74 20 5b 6c | ..}...s|elect [l|
|00001d90| 69 6e 64 65 78 20 24 66 | 69 6e 64 52 65 73 75 6c |index $f|indResul|
|00001da0| 74 20 30 5d 20 24 65 6e | 64 50 6f 73 0d 09 7d 20 |t 0] $en|dPos..} |
|00001db0| 65 6c 73 65 20 7b 0d 09 | 09 69 66 20 7b 20 24 73 |else {..|.if { $s|
|00001dc0| 65 61 72 63 68 4e 6f 69 | 73 69 6c 79 20 7d 20 7b |earchNoi|sily } {|
|00001dd0| 62 65 65 70 7d 0d 09 09 | 6d 65 73 73 61 67 65 20 |beep}...|message |
|00001de0| 24 66 69 6e 64 52 65 73 | 75 6c 74 0d 09 7d 0d 7d |$findRes|ult..}.}|
|00001df0| 0d 0d 23 20 46 69 6e 64 | 20 61 20 4c 61 54 65 58 |..# Find| a LaTeX|
|00001e00| 20 63 6f 6d 6d 61 6e 64 | 20 69 6e 20 65 69 74 68 | command| in eith|
|00001e10| 65 72 20 64 69 72 65 63 | 74 69 6f 6e 2e 20 20 49 |er direc|tion. I|
|00001e20| 74 27 73 20 75 70 20 74 | 6f 20 74 68 65 20 63 61 |t's up t|o the ca|
|00001e30| 6c 6c 69 6e 67 0d 23 20 | 70 72 6f 63 65 64 75 72 |lling.# |procedur|
|00001e40| 65 20 74 6f 20 70 61 73 | 73 20 74 68 65 20 63 6f |e to pas|s the co|
|00001e50| 72 72 65 63 74 20 73 74 | 61 72 74 69 6e 67 20 70 |rrect st|arting p|
|00001e60| 6f 73 69 74 69 6f 6e 20 | 6f 66 20 74 68 65 20 73 |osition |of the s|
|00001e70| 65 61 72 63 68 2e 0d 70 | 72 6f 63 20 66 69 6e 64 |earch..p|roc find|
|00001e80| 43 6f 6d 6d 61 6e 64 20 | 7b 70 6f 73 20 64 69 72 |Command |{pos dir|
|00001e90| 65 63 74 69 6f 6e 7d 20 | 7b 0d 23 09 48 61 6e 64 |ection} |{.#.Hand|
|00001ea0| 6c 65 20 22 5c 20 22 20 | 61 6e 64 20 22 5c 5b 22 |le "\ " |and "\["|
|00001eb0| 20 73 65 70 61 72 61 74 | 65 6c 79 3a 0d 09 73 65 | separat|ely:..se|
|00001ec0| 74 20 73 65 61 72 63 68 | 53 74 72 69 6e 67 20 7b |t search|String {|
|00001ed0| 28 5c 5c 28 5b 5e 61 2d | 7a 41 2d 5a 5c 74 5c 72 |(\\([^a-|zA-Z\t\r|
|00001ee0| 2a 20 5b 5d 7c 5b 61 2d | 7a 41 2d 5a 5d 2b 29 5c |* []|[a-|zA-Z]+)\|
|00001ef0| 2a 3f 29 7c 28 5b 5e 5c | 5c 5d 5c 5c 5c 20 29 7c |*?)|([^\|\]\\\ )||
|00001f00| 28 5b 5e 5c 5c 5d 5c 5c | 5c 5b 29 7d 0d 09 73 65 |([^\\]\\|\[)}..se|
|00001f10| 74 20 73 65 61 72 63 68 | 52 65 73 75 6c 74 20 5b |t search|Result [|
|00001f20| 73 65 61 72 63 68 20 2d | 73 20 2d 66 20 24 64 69 |search -|s -f $di|
|00001f30| 72 65 63 74 69 6f 6e 20 | 2d 72 20 31 20 2d 6e 20 |rection |-r 1 -n |
|00001f40| 24 73 65 61 72 63 68 53 | 74 72 69 6e 67 20 24 70 |$searchS|tring $p|
|00001f50| 6f 73 5d 0d 09 69 66 20 | 7b 20 5b 73 74 72 69 6e |os]..if |{ [strin|
|00001f60| 67 20 6c 65 6e 67 74 68 | 20 24 73 65 61 72 63 68 |g length| $search|
|00001f70| 52 65 73 75 6c 74 5d 20 | 7d 20 7b 0d 09 09 73 65 |Result] |} {...se|
|00001f80| 74 20 62 65 67 50 6f 73 | 20 5b 6c 69 6e 64 65 78 |t begPos| [lindex|
|00001f90| 20 24 73 65 61 72 63 68 | 52 65 73 75 6c 74 20 30 | $search|Result 0|
|00001fa0| 5d 0d 09 09 73 65 74 20 | 65 6e 64 50 6f 73 20 5b |]...set |endPos [|
|00001fb0| 6c 69 6e 64 65 78 20 24 | 73 65 61 72 63 68 52 65 |lindex $|searchRe|
|00001fc0| 73 75 6c 74 20 31 5d 0d | 09 09 73 65 74 20 6c 61 |sult 1].|..set la|
|00001fd0| 73 74 43 68 61 72 20 5b | 6c 6f 6f 6b 41 74 20 5b |stChar [|lookAt [|
|00001fe0| 65 78 70 72 20 24 65 6e | 64 50 6f 73 20 2d 20 31 |expr $en|dPos - 1|
|00001ff0| 5d 5d 0d 09 09 69 66 20 | 7b 24 6c 61 73 74 43 68 |]]...if |{$lastCh|
|00002000| 61 72 20 3d 3d 20 22 5c | 20 22 20 7c 7c 20 24 6c |ar == "\| " || $l|
|00002010| 61 73 74 43 68 61 72 20 | 3d 3d 20 22 5c 5b 22 7d |astChar |== "\["}|
|00002020| 20 74 68 65 6e 20 7b 0d | 09 09 09 72 65 74 75 72 | then {.|...retur|
|00002030| 6e 20 5b 6c 69 73 74 20 | 5b 65 78 70 72 20 24 62 |n [list |[expr $b|
|00002040| 65 67 50 6f 73 20 2b 20 | 31 5d 20 24 65 6e 64 50 |egPos + |1] $endP|
|00002050| 6f 73 5d 0d 09 09 7d 20 | 65 6c 73 65 20 7b 7d 0d |os]...} |else {}.|
|00002060| 09 7d 0d 09 72 65 74 75 | 72 6e 20 24 73 65 61 72 |.}..retu|rn $sear|
|00002070| 63 68 52 65 73 75 6c 74 | 0d 23 20 48 61 6e 64 6c |chResult|.# Handl|
|00002080| 65 73 20 65 76 65 72 79 | 74 68 69 6e 67 20 62 75 |es every|thing bu|
|00002090| 74 20 22 5c 20 22 20 61 | 6e 64 20 22 5c 5b 22 3a |t "\ " a|nd "\[":|
|000020a0| 0d 23 20 09 73 65 74 20 | 73 65 61 72 63 68 53 74 |.# .set |searchSt|
|000020b0| 72 69 6e 67 20 7b 5c 5c | 28 5b 5e 61 2d 7a 41 2d |ring {\\|([^a-zA-|
|000020c0| 5a 5c 74 5c 72 2a 20 5b | 5d 7c 5b 61 2d 7a 41 2d |Z\t\r* [|]|[a-zA-|
|000020d0| 5a 5d 2b 29 5c 2a 3f 7d | 0d 23 20 09 72 65 74 75 |Z]+)\*?}|.# .retu|
|000020e0| 72 6e 20 5b 73 65 61 72 | 63 68 20 2d 73 20 2d 66 |rn [sear|ch -s -f|
|000020f0| 20 24 64 69 72 65 63 74 | 69 6f 6e 20 2d 72 20 31 | $direct|ion -r 1|
|00002100| 20 2d 6e 20 24 73 65 61 | 72 63 68 53 74 72 69 6e | -n $sea|rchStrin|
|00002110| 67 20 24 70 6f 73 5d 0d | 7d 0d 23 20 46 69 6e 64 |g $pos].|}.# Find|
|00002120| 20 61 6e 64 20 67 6f 74 | 6f 20 74 68 65 20 62 65 | and got|o the be|
|00002130| 67 69 6e 6e 69 6e 67 20 | 6f 66 20 74 68 65 20 70 |ginning |of the p|
|00002140| 72 65 76 69 6f 75 73 20 | 4c 61 54 65 58 20 63 6f |revious |LaTeX co|
|00002150| 6d 6d 61 6e 64 2e 0d 70 | 72 6f 63 20 70 72 65 76 |mmand..p|roc prev|
|00002160| 43 6f 6d 6d 61 6e 64 20 | 7b 7d 20 7b 0d 09 67 6c |Command |{} {..gl|
|00002170| 6f 62 61 6c 20 73 65 61 | 72 63 68 4e 6f 69 73 69 |obal sea|rchNoisi|
|00002180| 6c 79 0d 09 73 65 74 20 | 70 6f 73 20 5b 67 65 74 |ly..set |pos [get|
|00002190| 50 6f 73 5d 0d 09 69 66 | 20 7b 24 70 6f 73 20 3e |Pos]..if| {$pos >|
|000021a0| 20 30 7d 20 74 68 65 6e | 20 7b 0d 09 09 73 65 74 | 0} then| {...set|
|000021b0| 20 73 65 61 72 63 68 52 | 65 73 75 6c 74 20 5b 66 | searchR|esult [f|
|000021c0| 69 6e 64 43 6f 6d 6d 61 | 6e 64 20 5b 65 78 70 72 |indComma|nd [expr|
|000021d0| 20 24 70 6f 73 20 2d 20 | 31 5d 20 30 5d 0d 09 09 | $pos - |1] 0]...|
|000021e0| 69 66 20 7b 20 5b 73 74 | 72 69 6e 67 20 6c 65 6e |if { [st|ring len|
|000021f0| 67 74 68 20 24 73 65 61 | 72 63 68 52 65 73 75 6c |gth $sea|rchResul|
|00002200| 74 5d 20 7d 20 7b 0d 09 | 09 09 67 6f 74 6f 20 5b |t] } {..|..goto [|
|00002210| 6c 69 6e 64 65 78 20 24 | 73 65 61 72 63 68 52 65 |lindex $|searchRe|
|00002220| 73 75 6c 74 20 30 5d 0d | 09 09 09 72 65 74 75 72 |sult 0].|...retur|
|00002230| 6e 0d 09 09 7d 20 65 6c | 73 65 20 7b 7d 0d 09 7d |n...} el|se {}..}|
|00002240| 0d 09 69 66 20 7b 20 24 | 73 65 61 72 63 68 4e 6f |..if { $|searchNo|
|00002250| 69 73 69 6c 79 20 7d 20 | 7b 62 65 65 70 7d 0d 09 |isily } |{beep}..|
|00002260| 6d 65 73 73 61 67 65 20 | 22 70 72 65 76 69 6f 75 |message |"previou|
|00002270| 73 20 63 6f 6d 6d 61 6e | 64 20 6e 6f 74 20 66 6f |s comman|d not fo|
|00002280| 75 6e 64 22 0d 7d 0d 23 | 20 46 69 6e 64 20 61 6e |und".}.#| Find an|
|00002290| 64 20 67 6f 74 6f 20 74 | 68 65 20 62 65 67 69 6e |d goto t|he begin|
|000022a0| 6e 69 6e 67 20 6f 66 20 | 74 68 65 20 6e 65 78 74 |ning of |the next|
|000022b0| 20 4c 61 54 65 58 20 63 | 6f 6d 6d 61 6e 64 2e 0d | LaTeX c|ommand..|
|000022c0| 70 72 6f 63 20 6e 65 78 | 74 43 6f 6d 6d 61 6e 64 |proc nex|tCommand|
|000022d0| 20 7b 7d 20 7b 0d 09 67 | 6c 6f 62 61 6c 20 73 65 | {} {..g|lobal se|
|000022e0| 61 72 63 68 4e 6f 69 73 | 69 6c 79 0d 09 73 65 74 |archNois|ily..set|
|000022f0| 20 70 6f 73 20 5b 67 65 | 74 50 6f 73 5d 0d 09 69 | pos [ge|tPos]..i|
|00002300| 66 20 7b 24 70 6f 73 20 | 3c 20 5b 6d 61 78 50 6f |f {$pos |< [maxPo|
|00002310| 73 5d 7d 20 74 68 65 6e | 20 7b 0d 09 09 73 65 74 |s]} then| {...set|
|00002320| 20 73 65 61 72 63 68 52 | 65 73 75 6c 74 20 5b 66 | searchR|esult [f|
|00002330| 69 6e 64 43 6f 6d 6d 61 | 6e 64 20 5b 65 78 70 72 |indComma|nd [expr|
|00002340| 20 24 70 6f 73 20 2b 20 | 31 5d 20 31 5d 0d 09 09 | $pos + |1] 1]...|
|00002350| 69 66 20 7b 20 5b 73 74 | 72 69 6e 67 20 6c 65 6e |if { [st|ring len|
|00002360| 67 74 68 20 24 73 65 61 | 72 63 68 52 65 73 75 6c |gth $sea|rchResul|
|00002370| 74 5d 20 7d 20 7b 0d 09 | 09 09 67 6f 74 6f 20 5b |t] } {..|..goto [|
|00002380| 6c 69 6e 64 65 78 20 24 | 73 65 61 72 63 68 52 65 |lindex $|searchRe|
|00002390| 73 75 6c 74 20 30 5d 0d | 09 09 09 72 65 74 75 72 |sult 0].|...retur|
|000023a0| 6e 0d 09 09 7d 20 65 6c | 73 65 20 7b 7d 0d 09 7d |n...} el|se {}..}|
|000023b0| 0d 09 69 66 20 7b 20 24 | 73 65 61 72 63 68 4e 6f |..if { $|searchNo|
|000023c0| 69 73 69 6c 79 20 7d 20 | 7b 62 65 65 70 7d 0d 09 |isily } |{beep}..|
|000023d0| 6d 65 73 73 61 67 65 20 | 22 6e 65 78 74 20 63 6f |message |"next co|
|000023e0| 6d 6d 61 6e 64 20 6e 6f | 74 20 66 6f 75 6e 64 22 |mmand no|t found"|
|000023f0| 0d 7d 0d 23 20 53 65 6c | 65 63 74 20 74 68 65 20 |.}.# Sel|ect the |
|00002400| 70 72 65 76 69 6f 75 73 | 20 4c 61 54 65 58 20 63 |previous| LaTeX c|
|00002410| 6f 6d 6d 61 6e 64 2c 20 | 62 75 74 20 64 6f 20 6e |ommand, |but do n|
|00002420| 6f 74 20 61 74 74 65 6d | 70 74 20 74 6f 20 73 65 |ot attem|pt to se|
|00002430| 6c 65 63 74 0d 23 20 61 | 6e 79 20 61 73 73 6f 63 |lect.# a|ny assoc|
|00002440| 69 61 74 65 64 20 61 72 | 67 75 6d 65 6e 74 2e 0d |iated ar|gument..|
|00002450| 70 72 6f 63 20 70 72 65 | 76 43 6f 6d 6d 61 6e 64 |proc pre|vCommand|
|00002460| 53 65 6c 65 63 74 20 7b | 7d 20 7b 0d 09 67 6c 6f |Select {|} {..glo|
|00002470| 62 61 6c 20 73 65 61 72 | 63 68 4e 6f 69 73 69 6c |bal sear|chNoisil|
|00002480| 79 0d 09 73 65 74 20 70 | 6f 73 20 5b 67 65 74 50 |y..set p|os [getP|
|00002490| 6f 73 5d 0d 09 69 66 20 | 7b 24 70 6f 73 20 3e 20 |os]..if |{$pos > |
|000024a0| 30 7d 20 74 68 65 6e 20 | 7b 0d 09 09 73 65 74 20 |0} then |{...set |
|000024b0| 73 65 61 72 63 68 52 65 | 73 75 6c 74 20 5b 66 69 |searchRe|sult [fi|
|000024c0| 6e 64 43 6f 6d 6d 61 6e | 64 20 5b 65 78 70 72 20 |ndComman|d [expr |
|000024d0| 24 70 6f 73 20 2d 20 31 | 5d 20 30 5d 0d 09 09 69 |$pos - 1|] 0]...i|
|000024e0| 66 20 7b 20 5b 73 74 72 | 69 6e 67 20 6c 65 6e 67 |f { [str|ing leng|
|000024f0| 74 68 20 24 73 65 61 72 | 63 68 52 65 73 75 6c 74 |th $sear|chResult|
|00002500| 5d 20 7d 20 7b 0d 09 09 | 09 65 76 61 6c 20 73 65 |] } {...|.eval se|
|00002510| 6c 65 63 74 20 24 73 65 | 61 72 63 68 52 65 73 75 |lect $se|archResu|
|00002520| 6c 74 0d 09 09 09 72 65 | 74 75 72 6e 0d 09 09 7d |lt....re|turn...}|
|00002530| 20 65 6c 73 65 20 7b 7d | 0d 09 7d 0d 09 69 66 20 | else {}|..}..if |
|00002540| 7b 20 24 73 65 61 72 63 | 68 4e 6f 69 73 69 6c 79 |{ $searc|hNoisily|
|00002550| 20 7d 20 7b 62 65 65 70 | 7d 0d 09 6d 65 73 73 61 | } {beep|}..messa|
|00002560| 67 65 20 22 70 72 65 76 | 69 6f 75 73 20 63 6f 6d |ge "prev|ious com|
|00002570| 6d 61 6e 64 20 6e 6f 74 | 20 66 6f 75 6e 64 22 0d |mand not| found".|
|00002580| 7d 0d 23 20 53 65 6c 65 | 63 74 20 74 68 65 20 6e |}.# Sele|ct the n|
|00002590| 65 78 74 20 4c 61 54 65 | 58 20 63 6f 6d 6d 61 6e |ext LaTe|X comman|
|000025a0| 64 2c 20 62 75 74 20 64 | 6f 20 6e 6f 74 20 61 74 |d, but d|o not at|
|000025b0| 74 65 6d 70 74 20 74 6f | 20 73 65 6c 65 63 74 0d |tempt to| select.|
|000025c0| 23 20 61 6e 79 20 61 73 | 73 6f 63 69 61 74 65 64 |# any as|sociated|
|000025d0| 20 61 72 67 75 6d 65 6e | 74 2e 0d 70 72 6f 63 20 | argumen|t..proc |
|000025e0| 6e 65 78 74 43 6f 6d 6d | 61 6e 64 53 65 6c 65 63 |nextComm|andSelec|
|000025f0| 74 20 7b 7d 20 7b 0d 09 | 67 6c 6f 62 61 6c 20 73 |t {} {..|global s|
|00002600| 65 61 72 63 68 4e 6f 69 | 73 69 6c 79 0d 09 73 65 |earchNoi|sily..se|
|00002610| 74 20 70 6f 73 20 5b 67 | 65 74 50 6f 73 5d 0d 09 |t pos [g|etPos]..|
|00002620| 69 66 20 7b 24 70 6f 73 | 20 3c 20 5b 6d 61 78 50 |if {$pos| < [maxP|
|00002630| 6f 73 5d 7d 20 74 68 65 | 6e 20 7b 0d 09 09 69 66 |os]} the|n {...if|
|00002640| 20 7b 20 5b 69 73 53 65 | 6c 65 63 74 69 6f 6e 5d | { [isSe|lection]|
|00002650| 20 7d 20 74 68 65 6e 20 | 7b 0d 09 09 09 73 65 74 | } then |{....set|
|00002660| 20 70 6f 73 20 5b 65 78 | 70 72 20 24 70 6f 73 20 | pos [ex|pr $pos |
|00002670| 2b 20 31 5d 0d 09 09 7d | 0d 09 09 73 65 74 20 73 |+ 1]...}|...set s|
|00002680| 65 61 72 63 68 52 65 73 | 75 6c 74 20 5b 66 69 6e |earchRes|ult [fin|
|00002690| 64 43 6f 6d 6d 61 6e 64 | 20 24 70 6f 73 20 31 5d |dCommand| $pos 1]|
|000026a0| 0d 09 09 69 66 20 7b 20 | 5b 73 74 72 69 6e 67 20 |...if { |[string |
|000026b0| 6c 65 6e 67 74 68 20 24 | 73 65 61 72 63 68 52 65 |length $|searchRe|
|000026c0| 73 75 6c 74 5d 20 7d 20 | 7b 0d 09 09 09 65 76 61 |sult] } |{....eva|
|000026d0| 6c 20 73 65 6c 65 63 74 | 20 24 73 65 61 72 63 68 |l select| $search|
|000026e0| 52 65 73 75 6c 74 0d 09 | 09 09 72 65 74 75 72 6e |Result..|..return|
|000026f0| 0d 09 09 7d 20 65 6c 73 | 65 20 7b 7d 0d 09 7d 0d |...} els|e {}..}.|
|00002700| 09 69 66 20 7b 20 24 73 | 65 61 72 63 68 4e 6f 69 |.if { $s|earchNoi|
|00002710| 73 69 6c 79 20 7d 20 7b | 62 65 65 70 7d 0d 09 6d |sily } {|beep}..m|
|00002720| 65 73 73 61 67 65 20 22 | 6e 65 78 74 20 63 6f 6d |essage "|next com|
|00002730| 6d 61 6e 64 20 6e 6f 74 | 20 66 6f 75 6e 64 22 0d |mand not| found".|
|00002740| 7d 0d 0d 23 20 46 69 6e | 64 20 61 20 4c 61 54 65 |}..# Fin|d a LaTe|
|00002750| 58 20 63 6f 6d 6d 61 6e | 64 20 77 69 74 68 20 61 |X comman|d with a|
|00002760| 72 67 75 6d 65 6e 74 73 | 20 69 6e 20 65 69 74 68 |rguments| in eith|
|00002770| 65 72 20 64 69 72 65 63 | 74 69 6f 6e 2e 20 20 49 |er direc|tion. I|
|00002780| 74 27 73 20 75 70 20 0d | 23 20 74 6f 20 74 68 65 |t's up .|# to the|
|00002790| 20 63 61 6c 6c 69 6e 67 | 20 70 72 6f 63 65 64 75 | calling| procedu|
|000027a0| 72 65 20 74 6f 20 70 61 | 73 73 20 74 68 65 20 73 |re to pa|ss the s|
|000027b0| 74 61 72 74 69 6e 67 20 | 70 6f 73 69 74 69 6f 6e |tarting |position|
|000027c0| 20 6f 66 20 74 68 65 20 | 73 65 61 72 63 68 2e 0d | of the |search..|
|000027d0| 23 20 28 48 61 6e 64 6c | 65 73 20 65 76 65 72 79 |# (Handl|es every|
|000027e0| 74 68 69 6e 67 20 62 75 | 74 20 22 5c 20 22 20 61 |thing bu|t "\ " a|
|000027f0| 6e 64 20 63 6f 6d 6d 61 | 6e 64 73 20 77 68 6f 73 |nd comma|nds whos|
|00002800| 65 20 61 72 67 75 6d 65 | 6e 74 73 20 63 6f 6e 74 |e argume|nts cont|
|00002810| 61 69 6e 0d 23 20 65 6d | 62 65 64 64 65 64 20 62 |ain.# em|bedded b|
|00002820| 72 61 63 65 73 2e 29 0d | 70 72 6f 63 20 66 69 6e |races.).|proc fin|
|00002830| 64 43 6f 6d 6d 61 6e 64 | 57 69 74 68 41 72 67 73 |dCommand|WithArgs|
|00002840| 20 7b 70 6f 73 20 64 69 | 72 65 63 74 69 6f 6e 7d | {pos di|rection}|
|00002850| 20 7b 0d 09 73 65 74 20 | 73 65 61 72 63 68 53 74 | {..set |searchSt|
|00002860| 72 69 6e 67 20 7b 5c 5c | 28 5b 5e 61 2d 7a 41 2d |ring {\\|([^a-zA-|
|00002870| 5a 5c 74 5c 72 5d 7c 5b | 61 2d 7a 41 2d 5a 5d 2b |Z\t\r]|[|a-zA-Z]+|
|00002880| 5c 2a 3f 29 28 5c 5b 2e | 2a 5c 5d 29 2a 28 7b 5b |\*?)(\[.|*\])*({[|
|00002890| 5e 7b 7d 5d 2a 7d 29 2a | 7d 0d 09 72 65 74 75 72 |^{}]*})*|}..retur|
|000028a0| 6e 20 5b 73 65 61 72 63 | 68 20 2d 73 20 2d 66 20 |n [searc|h -s -f |
|000028b0| 24 64 69 72 65 63 74 69 | 6f 6e 20 2d 72 20 31 20 |$directi|on -r 1 |
|000028c0| 2d 6e 20 24 73 65 61 72 | 63 68 53 74 72 69 6e 67 |-n $sear|chString|
|000028d0| 20 24 70 6f 73 5d 0d 7d | 0d 23 20 53 65 6c 65 63 | $pos].}|.# Selec|
|000028e0| 74 20 74 68 65 20 70 72 | 65 76 69 6f 75 73 20 4c |t the pr|evious L|
|000028f0| 61 54 65 58 20 63 6f 6d | 6d 61 6e 64 20 61 6e 64 |aTeX com|mand and|
|00002900| 20 61 6e 79 20 61 73 73 | 6f 63 69 61 74 65 64 20 | any ass|ociated |
|00002910| 61 72 67 75 6d 65 6e 74 | 73 2e 0d 70 72 6f 63 20 |argument|s..proc |
|00002920| 70 72 65 76 43 6f 6d 6d | 61 6e 64 53 65 6c 65 63 |prevComm|andSelec|
|00002930| 74 57 69 74 68 41 72 67 | 73 20 7b 7d 20 7b 0d 09 |tWithArg|s {} {..|
|00002940| 67 6c 6f 62 61 6c 20 73 | 65 61 72 63 68 4e 6f 69 |global s|earchNoi|
|00002950| 73 69 6c 79 0d 09 73 65 | 74 20 70 6f 73 20 5b 67 |sily..se|t pos [g|
|00002960| 65 74 50 6f 73 5d 0d 09 | 69 66 20 7b 24 70 6f 73 |etPos]..|if {$pos|
|00002970| 20 3e 20 30 7d 20 74 68 | 65 6e 20 7b 0d 09 09 73 | > 0} th|en {...s|
|00002980| 65 74 20 73 65 61 72 63 | 68 52 65 73 75 6c 74 20 |et searc|hResult |
|00002990| 5b 66 69 6e 64 43 6f 6d | 6d 61 6e 64 57 69 74 68 |[findCom|mandWith|
|000029a0| 41 72 67 73 20 5b 65 78 | 70 72 20 24 70 6f 73 20 |Args [ex|pr $pos |
|000029b0| 2d 20 31 5d 20 30 5d 0d | 09 09 69 66 20 7b 20 5b |- 1] 0].|..if { [|
|000029c0| 73 74 72 69 6e 67 20 6c | 65 6e 67 74 68 20 24 73 |string l|ength $s|
|000029d0| 65 61 72 63 68 52 65 73 | 75 6c 74 5d 20 7d 20 7b |earchRes|ult] } {|
|000029e0| 0d 09 09 09 65 76 61 6c | 20 73 65 6c 65 63 74 20 |....eval| select |
|000029f0| 24 73 65 61 72 63 68 52 | 65 73 75 6c 74 0d 09 09 |$searchR|esult...|
|00002a00| 09 72 65 74 75 72 6e 0d | 09 09 7d 20 65 6c 73 65 |.return.|..} else|
|00002a10| 20 7b 7d 0d 09 7d 0d 09 | 69 66 20 7b 20 24 73 65 | {}..}..|if { $se|
|00002a20| 61 72 63 68 4e 6f 69 73 | 69 6c 79 20 7d 20 7b 62 |archNois|ily } {b|
|00002a30| 65 65 70 7d 0d 09 6d 65 | 73 73 61 67 65 20 22 70 |eep}..me|ssage "p|
|00002a40| 72 65 76 69 6f 75 73 20 | 63 6f 6d 6d 61 6e 64 20 |revious |command |
|00002a50| 6e 6f 74 20 66 6f 75 6e | 64 22 0d 7d 0d 23 20 53 |not foun|d".}.# S|
|00002a60| 65 6c 65 63 74 20 74 68 | 65 20 6e 65 78 74 20 4c |elect th|e next L|
|00002a70| 61 54 65 58 20 63 6f 6d | 6d 61 6e 64 20 61 6e 64 |aTeX com|mand and|
|00002a80| 20 61 6e 79 20 61 73 73 | 6f 63 69 61 74 65 64 20 | any ass|ociated |
|00002a90| 61 72 67 75 6d 65 6e 74 | 73 2e 0d 70 72 6f 63 20 |argument|s..proc |
|00002aa0| 6e 65 78 74 43 6f 6d 6d | 61 6e 64 53 65 6c 65 63 |nextComm|andSelec|
|00002ab0| 74 57 69 74 68 41 72 67 | 73 20 7b 7d 20 7b 0d 09 |tWithArg|s {} {..|
|00002ac0| 67 6c 6f 62 61 6c 20 73 | 65 61 72 63 68 4e 6f 69 |global s|earchNoi|
|00002ad0| 73 69 6c 79 0d 09 73 65 | 74 20 70 6f 73 20 5b 67 |sily..se|t pos [g|
|00002ae0| 65 74 50 6f 73 5d 0d 09 | 69 66 20 7b 24 70 6f 73 |etPos]..|if {$pos|
|00002af0| 20 3c 20 5b 6d 61 78 50 | 6f 73 5d 7d 20 74 68 65 | < [maxP|os]} the|
|00002b00| 6e 20 7b 0d 09 09 69 66 | 20 7b 20 5b 69 73 53 65 |n {...if| { [isSe|
|00002b10| 6c 65 63 74 69 6f 6e 5d | 20 7d 20 74 68 65 6e 20 |lection]| } then |
|00002b20| 7b 0d 09 09 09 73 65 74 | 20 70 6f 73 20 5b 65 78 |{....set| pos [ex|
|00002b30| 70 72 20 24 70 6f 73 20 | 2b 20 31 5d 0d 09 09 7d |pr $pos |+ 1]...}|
|00002b40| 0d 09 09 73 65 74 20 73 | 65 61 72 63 68 52 65 73 |...set s|earchRes|
|00002b50| 75 6c 74 20 5b 66 69 6e | 64 43 6f 6d 6d 61 6e 64 |ult [fin|dCommand|
|00002b60| 57 69 74 68 41 72 67 73 | 20 24 70 6f 73 20 31 5d |WithArgs| $pos 1]|
|00002b70| 0d 09 09 69 66 20 7b 20 | 5b 73 74 72 69 6e 67 20 |...if { |[string |
|00002b80| 6c 65 6e 67 74 68 20 24 | 73 65 61 72 63 68 52 65 |length $|searchRe|
|00002b90| 73 75 6c 74 5d 20 7d 20 | 7b 0d 09 09 09 65 76 61 |sult] } |{....eva|
|00002ba0| 6c 20 73 65 6c 65 63 74 | 20 24 73 65 61 72 63 68 |l select| $search|
|00002bb0| 52 65 73 75 6c 74 0d 09 | 09 09 72 65 74 75 72 6e |Result..|..return|
|00002bc0| 0d 09 09 7d 20 65 6c 73 | 65 20 7b 7d 0d 09 7d 0d |...} els|e {}..}.|
|00002bd0| 09 69 66 20 7b 20 24 73 | 65 61 72 63 68 4e 6f 69 |.if { $s|earchNoi|
|00002be0| 73 69 6c 79 20 7d 20 7b | 62 65 65 70 7d 0d 09 6d |sily } {|beep}..m|
|00002bf0| 65 73 73 61 67 65 20 22 | 6e 65 78 74 20 63 6f 6d |essage "|next com|
|00002c00| 6d 61 6e 64 20 6e 6f 74 | 20 66 6f 75 6e 64 22 0d |mand not| found".|
|00002c10| 7d 0d 0d 23 20 46 69 6e | 64 20 61 20 4c 61 54 65 |}..# Fin|d a LaTe|
|00002c20| 58 20 73 65 63 74 69 6f | 6e 69 6e 67 20 63 6f 6d |X sectio|ning com|
|00002c30| 6d 61 6e 64 20 69 6e 20 | 65 69 74 68 65 72 20 64 |mand in |either d|
|00002c40| 69 72 65 63 74 69 6f 6e | 2e 20 20 49 74 27 73 20 |irection|. It's |
|00002c50| 75 70 20 74 6f 20 0d 23 | 20 74 68 65 20 63 61 6c |up to .#| the cal|
|00002c60| 6c 69 6e 67 20 70 72 6f | 63 65 64 75 72 65 20 74 |ling pro|cedure t|
|00002c70| 6f 20 70 61 73 73 20 74 | 68 65 20 73 74 61 72 74 |o pass t|he start|
|00002c80| 69 6e 67 20 70 6f 73 69 | 74 69 6f 6e 20 6f 66 20 |ing posi|tion of |
|00002c90| 74 68 65 20 73 65 61 72 | 63 68 2e 0d 70 72 6f 63 |the sear|ch..proc|
|00002ca0| 20 66 69 6e 64 53 65 63 | 74 69 6f 6e 20 7b 70 6f | findSec|tion {po|
|00002cb0| 73 20 64 69 72 65 63 74 | 69 6f 6e 7d 20 7b 0d 09 |s direct|ion} {..|
|00002cc0| 67 6c 6f 62 61 6c 20 66 | 75 6e 63 45 78 70 72 41 |global f|uncExprA|
|00002cd0| 6c 74 0d 09 72 65 74 75 | 72 6e 20 5b 73 65 61 72 |lt..retu|rn [sear|
|00002ce0| 63 68 20 2d 73 20 2d 66 | 20 24 64 69 72 65 63 74 |ch -s -f| $direct|
|00002cf0| 69 6f 6e 20 2d 72 20 31 | 20 2d 6e 20 24 66 75 6e |ion -r 1| -n $fun|
|00002d00| 63 45 78 70 72 41 6c 74 | 20 24 70 6f 73 5d 0d 7d |cExprAlt| $pos].}|
|00002d10| 0d 23 20 53 65 6c 65 63 | 74 20 74 68 65 20 70 72 |.# Selec|t the pr|
|00002d20| 65 76 69 6f 75 73 20 4c | 61 54 65 58 20 73 65 63 |evious L|aTeX sec|
|00002d30| 74 69 6f 6e 69 6e 67 20 | 63 6f 6d 6d 61 6e 64 2e |tioning |command.|
|00002d40| 0d 70 72 6f 63 20 70 72 | 65 76 53 65 63 74 69 6f |.proc pr|evSectio|
|00002d50| 6e 20 7b 7d 20 7b 0d 09 | 67 6c 6f 62 61 6c 20 73 |n {} {..|global s|
|00002d60| 65 61 72 63 68 4e 6f 69 | 73 69 6c 79 0d 09 73 65 |earchNoi|sily..se|
|00002d70| 74 20 70 6f 73 20 5b 67 | 65 74 50 6f 73 5d 0d 09 |t pos [g|etPos]..|
|00002d80| 69 66 20 7b 24 70 6f 73 | 20 3e 20 30 7d 20 74 68 |if {$pos| > 0} th|
|00002d90| 65 6e 20 7b 0d 09 09 73 | 65 74 20 73 65 61 72 63 |en {...s|et searc|
|00002da0| 68 52 65 73 75 6c 74 20 | 5b 66 69 6e 64 53 65 63 |hResult |[findSec|
|00002db0| 74 69 6f 6e 20 5b 65 78 | 70 72 20 24 70 6f 73 20 |tion [ex|pr $pos |
|00002dc0| 2d 20 31 5d 20 30 5d 0d | 09 09 69 66 20 7b 20 5b |- 1] 0].|..if { [|
|00002dd0| 73 74 72 69 6e 67 20 6c | 65 6e 67 74 68 20 24 73 |string l|ength $s|
|00002de0| 65 61 72 63 68 52 65 73 | 75 6c 74 5d 20 7d 20 7b |earchRes|ult] } {|
|00002df0| 0d 09 09 09 65 76 61 6c | 20 73 65 6c 65 63 74 20 |....eval| select |
|00002e00| 24 73 65 61 72 63 68 52 | 65 73 75 6c 74 0d 09 09 |$searchR|esult...|
|00002e10| 09 72 65 74 75 72 6e 0d | 09 09 7d 20 65 6c 73 65 |.return.|..} else|
|00002e20| 20 7b 7d 0d 09 7d 0d 09 | 69 66 20 7b 20 24 73 65 | {}..}..|if { $se|
|00002e30| 61 72 63 68 4e 6f 69 73 | 69 6c 79 20 7d 20 7b 62 |archNois|ily } {b|
|00002e40| 65 65 70 7d 0d 09 6d 65 | 73 73 61 67 65 20 7b 70 |eep}..me|ssage {p|
|00002e50| 72 65 76 69 6f 75 73 20 | 73 65 63 74 69 6f 6e 20 |revious |section |
|00002e60| 6e 6f 74 20 66 6f 75 6e | 64 7d 0d 7d 0d 23 20 53 |not foun|d}.}.# S|
|00002e70| 65 6c 65 63 74 20 74 68 | 65 20 6e 65 78 74 20 4c |elect th|e next L|
|00002e80| 61 54 65 58 20 73 65 63 | 74 69 6f 6e 69 6e 67 20 |aTeX sec|tioning |
|00002e90| 63 6f 6d 6d 61 6e 64 2e | 0d 70 72 6f 63 20 6e 65 |command.|.proc ne|
|00002ea0| 78 74 53 65 63 74 69 6f | 6e 20 7b 7d 20 7b 0d 09 |xtSectio|n {} {..|
|00002eb0| 67 6c 6f 62 61 6c 20 73 | 65 61 72 63 68 4e 6f 69 |global s|earchNoi|
|00002ec0| 73 69 6c 79 0d 09 73 65 | 74 20 70 6f 73 20 5b 67 |sily..se|t pos [g|
|00002ed0| 65 74 50 6f 73 5d 0d 09 | 69 66 20 7b 24 70 6f 73 |etPos]..|if {$pos|
|00002ee0| 20 3c 20 5b 6d 61 78 50 | 6f 73 5d 7d 20 74 68 65 | < [maxP|os]} the|
|00002ef0| 6e 20 7b 0d 09 09 69 66 | 20 7b 20 5b 69 73 53 65 |n {...if| { [isSe|
|00002f00| 6c 65 63 74 69 6f 6e 5d | 20 7d 20 74 68 65 6e 20 |lection]| } then |
|00002f10| 7b 0d 09 09 09 73 65 74 | 20 70 6f 73 20 5b 65 78 |{....set| pos [ex|
|00002f20| 70 72 20 24 70 6f 73 20 | 2b 20 31 5d 0d 09 09 7d |pr $pos |+ 1]...}|
|00002f30| 0d 09 09 73 65 74 20 73 | 65 61 72 63 68 52 65 73 |...set s|earchRes|
|00002f40| 75 6c 74 20 5b 66 69 6e | 64 53 65 63 74 69 6f 6e |ult [fin|dSection|
|00002f50| 20 24 70 6f 73 20 31 5d | 0d 09 09 69 66 20 7b 20 | $pos 1]|...if { |
|00002f60| 5b 73 74 72 69 6e 67 20 | 6c 65 6e 67 74 68 20 24 |[string |length $|
|00002f70| 73 65 61 72 63 68 52 65 | 73 75 6c 74 5d 20 7d 20 |searchRe|sult] } |
|00002f80| 7b 0d 09 09 09 65 76 61 | 6c 20 73 65 6c 65 63 74 |{....eva|l select|
|00002f90| 20 24 73 65 61 72 63 68 | 52 65 73 75 6c 74 0d 09 | $search|Result..|
|00002fa0| 09 09 72 65 74 75 72 6e | 0d 09 09 7d 20 65 6c 73 |..return|...} els|
|00002fb0| 65 20 7b 7d 0d 09 7d 0d | 09 69 66 20 7b 20 24 73 |e {}..}.|.if { $s|
|00002fc0| 65 61 72 63 68 4e 6f 69 | 73 69 6c 79 20 7d 20 7b |earchNoi|sily } {|
|00002fd0| 62 65 65 70 7d 0d 09 6d | 65 73 73 61 67 65 20 7b |beep}..m|essage {|
|00002fe0| 6e 65 78 74 20 73 65 63 | 74 69 6f 6e 20 6e 6f 74 |next sec|tion not|
|00002ff0| 20 66 6f 75 6e 64 7d 0d | 7d 0d 70 72 6f 63 20 70 | found}.|}.proc p|
|00003000| 72 65 76 53 65 63 74 69 | 6f 6e 53 65 6c 65 63 74 |revSecti|onSelect|
|00003010| 20 7b 7d 20 7b 0d 09 67 | 6c 6f 62 61 6c 20 73 65 | {} {..g|lobal se|
|00003020| 61 72 63 68 4e 6f 69 73 | 69 6c 79 0d 09 73 65 74 |archNois|ily..set|
|00003030| 20 70 6f 73 20 5b 67 65 | 74 50 6f 73 5d 0d 09 69 | pos [ge|tPos]..i|
|00003040| 66 20 7b 24 70 6f 73 20 | 3e 20 30 7d 20 74 68 65 |f {$pos |> 0} the|
|00003050| 6e 20 7b 0d 09 09 73 65 | 74 20 73 65 61 72 63 68 |n {...se|t search|
|00003060| 52 65 73 75 6c 74 20 5b | 66 69 6e 64 53 65 63 74 |Result [|findSect|
|00003070| 69 6f 6e 20 5b 65 78 70 | 72 20 24 70 6f 73 20 2d |ion [exp|r $pos -|
|00003080| 20 31 5d 20 30 5d 0d 09 | 09 69 66 20 7b 20 5b 73 | 1] 0]..|.if { [s|
|00003090| 74 72 69 6e 67 20 6c 65 | 6e 67 74 68 20 24 73 65 |tring le|ngth $se|
|000030a0| 61 72 63 68 52 65 73 75 | 6c 74 5d 20 7d 20 7b 0d |archResu|lt] } {.|
|000030b0| 09 09 09 73 65 74 20 62 | 65 67 50 6f 73 20 5b 6c |...set b|egPos [l|
|000030c0| 69 6e 64 65 78 20 24 73 | 65 61 72 63 68 52 65 73 |index $s|earchRes|
|000030d0| 75 6c 74 20 30 5d 0d 09 | 09 09 73 65 74 20 73 65 |ult 0]..|..set se|
|000030e0| 61 72 63 68 50 6f 73 20 | 5b 65 78 70 72 20 5b 6c |archPos |[expr [l|
|000030f0| 69 6e 64 65 78 20 24 73 | 65 61 72 63 68 52 65 73 |index $s|earchRes|
|00003100| 75 6c 74 20 31 5d 20 2b | 20 31 5d 0d 09 09 09 73 |ult 1] +| 1]....s|
|00003110| 65 74 20 73 65 61 72 63 | 68 52 65 73 75 6c 74 20 |et searc|hResult |
|00003120| 5b 66 69 6e 64 53 65 63 | 74 69 6f 6e 20 24 73 65 |[findSec|tion $se|
|00003130| 61 72 63 68 50 6f 73 20 | 31 5d 0d 09 09 09 69 66 |archPos |1]....if|
|00003140| 20 7b 20 5b 73 74 72 69 | 6e 67 20 6c 65 6e 67 74 | { [stri|ng lengt|
|00003150| 68 20 24 73 65 61 72 63 | 68 52 65 73 75 6c 74 5d |h $searc|hResult]|
|00003160| 20 7d 20 7b 0d 09 09 09 | 09 73 65 74 20 65 6e 64 | } {....|.set end|
|00003170| 50 6f 73 20 5b 6c 69 6e | 64 65 78 20 24 73 65 61 |Pos [lin|dex $sea|
|00003180| 72 63 68 52 65 73 75 6c | 74 20 30 5d 0d 09 09 09 |rchResul|t 0]....|
|00003190| 7d 20 65 6c 73 65 20 7b | 0d 09 09 09 09 73 65 74 |} else {|.....set|
|000031a0| 20 73 65 61 72 63 68 52 | 65 73 75 6c 74 20 5b 73 | searchR|esult [s|
|000031b0| 65 61 72 63 68 20 2d 73 | 20 2d 66 20 31 20 2d 72 |earch -s| -f 1 -r|
|000031c0| 20 30 20 2d 6e 20 22 5c | 5c 65 6e 64 7b 64 6f 63 | 0 -n "\|\end{doc|
|000031d0| 75 6d 65 6e 74 7d 22 20 | 24 73 65 61 72 63 68 50 |ument}" |$searchP|
|000031e0| 6f 73 5d 0d 09 09 09 09 | 73 65 74 20 65 6e 64 50 |os].....|set endP|
|000031f0| 6f 73 20 5b 6c 69 6e 64 | 65 78 20 24 73 65 61 72 |os [lind|ex $sear|
|00003200| 63 68 52 65 73 75 6c 74 | 20 30 5d 0d 09 09 09 7d |chResult| 0]....}|
|00003210| 0d 09 09 09 73 65 6c 65 | 63 74 20 24 62 65 67 50 |....sele|ct $begP|
|00003220| 6f 73 20 24 65 6e 64 50 | 6f 73 0d 09 09 09 72 65 |os $endP|os....re|
|00003230| 74 75 72 6e 0d 09 09 7d | 20 65 6c 73 65 20 7b 7d |turn...}| else {}|
|00003240| 0d 09 7d 0d 09 69 66 20 | 7b 20 24 73 65 61 72 63 |..}..if |{ $searc|
|00003250| 68 4e 6f 69 73 69 6c 79 | 20 7d 20 7b 62 65 65 70 |hNoisily| } {beep|
|00003260| 7d 0d 09 6d 65 73 73 61 | 67 65 20 7b 70 72 65 76 |}..messa|ge {prev|
|00003270| 69 6f 75 73 20 73 65 63 | 74 69 6f 6e 20 6e 6f 74 |ious sec|tion not|
|00003280| 20 66 6f 75 6e 64 7d 0d | 7d 0d 23 20 53 65 6c 65 | found}.|}.# Sele|
|00003290| 63 74 20 74 68 65 20 6e | 65 78 74 20 4c 61 54 65 |ct the n|ext LaTe|
|000032a0| 58 20 73 65 63 74 69 6f | 6e 69 6e 67 20 63 6f 6d |X sectio|ning com|
|000032b0| 6d 61 6e 64 2e 0d 70 72 | 6f 63 20 6e 65 78 74 53 |mand..pr|oc nextS|
|000032c0| 65 63 74 69 6f 6e 53 65 | 6c 65 63 74 20 7b 7d 20 |ectionSe|lect {} |
|000032d0| 7b 0d 09 67 6c 6f 62 61 | 6c 20 73 65 61 72 63 68 |{..globa|l search|
|000032e0| 4e 6f 69 73 69 6c 79 0d | 09 73 65 74 20 70 6f 73 |Noisily.|.set pos|
|000032f0| 20 5b 67 65 74 50 6f 73 | 5d 0d 09 69 66 20 7b 24 | [getPos|]..if {$|
|00003300| 70 6f 73 20 3c 20 5b 6d | 61 78 50 6f 73 5d 7d 20 |pos < [m|axPos]} |
|00003310| 74 68 65 6e 20 7b 0d 09 | 09 69 66 20 7b 20 5b 69 |then {..|.if { [i|
|00003320| 73 53 65 6c 65 63 74 69 | 6f 6e 5d 20 7d 20 74 68 |sSelecti|on] } th|
|00003330| 65 6e 20 7b 0d 09 09 09 | 73 65 74 20 70 6f 73 20 |en {....|set pos |
|00003340| 5b 65 78 70 72 20 24 70 | 6f 73 20 2b 20 31 5d 0d |[expr $p|os + 1].|
|00003350| 09 09 7d 0d 09 09 73 65 | 74 20 73 65 61 72 63 68 |..}...se|t search|
|00003360| 52 65 73 75 6c 74 20 5b | 66 69 6e 64 53 65 63 74 |Result [|findSect|
|00003370| 69 6f 6e 20 24 70 6f 73 | 20 31 5d 0d 09 09 69 66 |ion $pos| 1]...if|
|00003380| 20 7b 20 5b 73 74 72 69 | 6e 67 20 6c 65 6e 67 74 | { [stri|ng lengt|
|00003390| 68 20 24 73 65 61 72 63 | 68 52 65 73 75 6c 74 5d |h $searc|hResult]|
|000033a0| 20 7d 20 7b 0d 09 09 09 | 73 65 74 20 62 65 67 50 | } {....|set begP|
|000033b0| 6f 73 20 5b 6c 69 6e 64 | 65 78 20 24 73 65 61 72 |os [lind|ex $sear|
|000033c0| 63 68 52 65 73 75 6c 74 | 20 30 5d 0d 09 09 09 73 |chResult| 0]....s|
|000033d0| 65 74 20 73 65 61 72 63 | 68 50 6f 73 20 5b 65 78 |et searc|hPos [ex|
|000033e0| 70 72 20 5b 6c 69 6e 64 | 65 78 20 24 73 65 61 72 |pr [lind|ex $sear|
|000033f0| 63 68 52 65 73 75 6c 74 | 20 31 5d 20 2b 20 31 5d |chResult| 1] + 1]|
|00003400| 0d 09 09 09 73 65 74 20 | 73 65 61 72 63 68 52 65 |....set |searchRe|
|00003410| 73 75 6c 74 20 5b 66 69 | 6e 64 53 65 63 74 69 6f |sult [fi|ndSectio|
|00003420| 6e 20 24 73 65 61 72 63 | 68 50 6f 73 20 31 5d 0d |n $searc|hPos 1].|
|00003430| 09 09 09 69 66 20 7b 20 | 5b 73 74 72 69 6e 67 20 |...if { |[string |
|00003440| 6c 65 6e 67 74 68 20 24 | 73 65 61 72 63 68 52 65 |length $|searchRe|
|00003450| 73 75 6c 74 5d 20 7d 20 | 7b 0d 09 09 09 09 73 65 |sult] } |{.....se|
|00003460| 74 20 65 6e 64 50 6f 73 | 20 5b 6c 69 6e 64 65 78 |t endPos| [lindex|
|00003470| 20 24 73 65 61 72 63 68 | 52 65 73 75 6c 74 20 30 | $search|Result 0|
|00003480| 5d 0d 09 09 09 7d 20 65 | 6c 73 65 20 7b 0d 09 09 |]....} e|lse {...|
|00003490| 09 09 73 65 74 20 73 65 | 61 72 63 68 52 65 73 75 |..set se|archResu|
|000034a0| 6c 74 20 5b 73 65 61 72 | 63 68 20 2d 73 20 2d 66 |lt [sear|ch -s -f|
|000034b0| 20 31 20 2d 72 20 30 20 | 2d 6e 20 22 5c 5c 65 6e | 1 -r 0 |-n "\\en|
|000034c0| 64 7b 64 6f 63 75 6d 65 | 6e 74 7d 22 20 24 73 65 |d{docume|nt}" $se|
|000034d0| 61 72 63 68 50 6f 73 5d | 0d 09 09 09 09 73 65 74 |archPos]|.....set|
|000034e0| 20 65 6e 64 50 6f 73 20 | 5b 6c 69 6e 64 65 78 20 | endPos |[lindex |
|000034f0| 24 73 65 61 72 63 68 52 | 65 73 75 6c 74 20 30 5d |$searchR|esult 0]|
|00003500| 0d 09 09 09 7d 0d 09 09 | 09 73 65 6c 65 63 74 20 |....}...|.select |
|00003510| 24 62 65 67 50 6f 73 20 | 24 65 6e 64 50 6f 73 0d |$begPos |$endPos.|
|00003520| 09 09 09 72 65 74 75 72 | 6e 0d 09 09 7d 20 65 6c |...retur|n...} el|
|00003530| 73 65 20 7b 7d 0d 09 7d | 0d 09 69 66 20 7b 20 24 |se {}..}|..if { $|
|00003540| 73 65 61 72 63 68 4e 6f | 69 73 69 6c 79 20 7d 20 |searchNo|isily } |
|00003550| 7b 62 65 65 70 7d 0d 09 | 6d 65 73 73 61 67 65 20 |{beep}..|message |
|00003560| 7b 6e 65 78 74 20 73 65 | 63 74 69 6f 6e 20 6e 6f |{next se|ction no|
|00003570| 74 20 66 6f 75 6e 64 7d | 0d 7d 0d 0d 23 20 46 69 |t found}|.}..# Fi|
|00003580| 6e 64 20 61 20 4c 61 54 | 65 58 20 73 75 62 73 65 |nd a LaT|eX subse|
|00003590| 63 74 69 6f 6e 69 6e 67 | 20 63 6f 6d 6d 61 6e 64 |ctioning| command|
|000035a0| 20 69 6e 20 65 69 74 68 | 65 72 20 64 69 72 65 63 | in eith|er direc|
|000035b0| 74 69 6f 6e 2e 20 20 49 | 74 27 73 20 75 70 20 74 |tion. I|t's up t|
|000035c0| 6f 20 0d 23 20 74 68 65 | 20 63 61 6c 6c 69 6e 67 |o .# the| calling|
|000035d0| 20 70 72 6f 63 65 64 75 | 72 65 20 74 6f 20 70 61 | procedu|re to pa|
|000035e0| 73 73 20 74 68 65 20 73 | 74 61 72 74 69 6e 67 20 |ss the s|tarting |
|000035f0| 70 6f 73 69 74 69 6f 6e | 20 6f 66 20 74 68 65 20 |position| of the |
|00003600| 73 65 61 72 63 68 2e 0d | 70 72 6f 63 20 66 69 6e |search..|proc fin|
|00003610| 64 53 75 62 73 65 63 74 | 69 6f 6e 20 7b 70 6f 73 |dSubsect|ion {pos|
|00003620| 20 64 69 72 65 63 74 69 | 6f 6e 7d 20 7b 0d 09 67 | directi|on} {..g|
|00003630| 6c 6f 62 61 6c 20 66 75 | 6e 63 45 78 70 72 0d 09 |lobal fu|ncExpr..|
|00003640| 72 65 74 75 72 6e 20 5b | 73 65 61 72 63 68 20 2d |return [|search -|
|00003650| 73 20 2d 66 20 24 64 69 | 72 65 63 74 69 6f 6e 20 |s -f $di|rection |
|00003660| 2d 72 20 31 20 2d 6e 20 | 24 66 75 6e 63 45 78 70 |-r 1 -n |$funcExp|
|00003670| 72 20 24 70 6f 73 5d 0d | 7d 0d 70 72 6f 63 20 70 |r $pos].|}.proc p|
|00003680| 72 65 76 53 75 62 73 65 | 63 74 69 6f 6e 20 7b 7d |revSubse|ction {}|
|00003690| 20 7b 0d 09 67 6c 6f 62 | 61 6c 20 73 65 61 72 63 | {..glob|al searc|
|000036a0| 68 4e 6f 69 73 69 6c 79 | 0d 09 73 65 74 20 70 6f |hNoisily|..set po|
|000036b0| 73 20 5b 67 65 74 50 6f | 73 5d 0d 09 69 66 20 7b |s [getPo|s]..if {|
|000036c0| 24 70 6f 73 20 3e 20 30 | 7d 20 74 68 65 6e 20 7b |$pos > 0|} then {|
|000036d0| 0d 09 09 73 65 74 20 73 | 65 61 72 63 68 52 65 73 |...set s|earchRes|
|000036e0| 75 6c 74 20 5b 66 69 6e | 64 53 75 62 73 65 63 74 |ult [fin|dSubsect|
|000036f0| 69 6f 6e 20 5b 65 78 70 | 72 20 24 70 6f 73 20 2d |ion [exp|r $pos -|
|00003700| 20 31 5d 20 30 5d 0d 09 | 09 69 66 20 7b 20 5b 73 | 1] 0]..|.if { [s|
|00003710| 74 72 69 6e 67 20 6c 65 | 6e 67 74 68 20 24 73 65 |tring le|ngth $se|
|00003720| 61 72 63 68 52 65 73 75 | 6c 74 5d 20 7d 20 7b 0d |archResu|lt] } {.|
|00003730| 09 09 09 65 76 61 6c 20 | 73 65 6c 65 63 74 20 24 |...eval |select $|
|00003740| 73 65 61 72 63 68 52 65 | 73 75 6c 74 0d 09 09 09 |searchRe|sult....|
|00003750| 72 65 74 75 72 6e 0d 09 | 09 7d 20 65 6c 73 65 20 |return..|.} else |
|00003760| 7b 7d 0d 09 7d 0d 09 69 | 66 20 7b 20 24 73 65 61 |{}..}..i|f { $sea|
|00003770| 72 63 68 4e 6f 69 73 69 | 6c 79 20 7d 20 7b 62 65 |rchNoisi|ly } {be|
|00003780| 65 70 7d 0d 09 6d 65 73 | 73 61 67 65 20 7b 70 72 |ep}..mes|sage {pr|
|00003790| 65 76 69 6f 75 73 20 28 | 73 75 62 29 2a 73 65 63 |evious (|sub)*sec|
|000037a0| 74 69 6f 6e 20 6e 6f 74 | 20 66 6f 75 6e 64 7d 0d |tion not| found}.|
|000037b0| 7d 0d 23 20 53 65 6c 65 | 63 74 20 74 68 65 20 6e |}.# Sele|ct the n|
|000037c0| 65 78 74 20 4c 61 54 65 | 58 20 73 65 63 74 69 6f |ext LaTe|X sectio|
|000037d0| 6e 69 6e 67 20 63 6f 6d | 6d 61 6e 64 2e 0d 70 72 |ning com|mand..pr|
|000037e0| 6f 63 20 6e 65 78 74 53 | 75 62 73 65 63 74 69 6f |oc nextS|ubsectio|
|000037f0| 6e 20 7b 7d 20 7b 0d 09 | 67 6c 6f 62 61 6c 20 73 |n {} {..|global s|
|00003800| 65 61 72 63 68 4e 6f 69 | 73 69 6c 79 0d 09 73 65 |earchNoi|sily..se|
|00003810| 74 20 70 6f 73 20 5b 67 | 65 74 50 6f 73 5d 0d 09 |t pos [g|etPos]..|
|00003820| 69 66 20 7b 24 70 6f 73 | 20 3c 20 5b 6d 61 78 50 |if {$pos| < [maxP|
|00003830| 6f 73 5d 7d 20 74 68 65 | 6e 20 7b 0d 09 09 69 66 |os]} the|n {...if|
|00003840| 20 7b 20 5b 69 73 53 65 | 6c 65 63 74 69 6f 6e 5d | { [isSe|lection]|
|00003850| 20 7d 20 74 68 65 6e 20 | 7b 0d 09 09 09 73 65 74 | } then |{....set|
|00003860| 20 70 6f 73 20 5b 65 78 | 70 72 20 24 70 6f 73 20 | pos [ex|pr $pos |
|00003870| 2b 20 31 5d 0d 09 09 7d | 0d 09 09 73 65 74 20 73 |+ 1]...}|...set s|
|00003880| 65 61 72 63 68 52 65 73 | 75 6c 74 20 5b 66 69 6e |earchRes|ult [fin|
|00003890| 64 53 75 62 73 65 63 74 | 69 6f 6e 20 24 70 6f 73 |dSubsect|ion $pos|
|000038a0| 20 31 5d 0d 09 09 69 66 | 20 7b 20 5b 73 74 72 69 | 1]...if| { [stri|
|000038b0| 6e 67 20 6c 65 6e 67 74 | 68 20 24 73 65 61 72 63 |ng lengt|h $searc|
|000038c0| 68 52 65 73 75 6c 74 5d | 20 7d 20 7b 0d 09 09 09 |hResult]| } {....|
|000038d0| 65 76 61 6c 20 73 65 6c | 65 63 74 20 24 73 65 61 |eval sel|ect $sea|
|000038e0| 72 63 68 52 65 73 75 6c | 74 0d 09 09 09 72 65 74 |rchResul|t....ret|
|000038f0| 75 72 6e 0d 09 09 7d 20 | 65 6c 73 65 20 7b 7d 0d |urn...} |else {}.|
|00003900| 09 7d 0d 09 69 66 20 7b | 20 24 73 65 61 72 63 68 |.}..if {| $search|
|00003910| 4e 6f 69 73 69 6c 79 20 | 7d 20 7b 62 65 65 70 7d |Noisily |} {beep}|
|00003920| 0d 09 6d 65 73 73 61 67 | 65 20 7b 6e 65 78 74 20 |..messag|e {next |
|00003930| 28 73 75 62 29 2a 73 65 | 63 74 69 6f 6e 20 6e 6f |(sub)*se|ction no|
|00003940| 74 20 66 6f 75 6e 64 7d | 0d 7d 0d 70 72 6f 63 20 |t found}|.}.proc |
|00003950| 70 72 65 76 53 75 62 73 | 65 63 74 69 6f 6e 53 65 |prevSubs|ectionSe|
|00003960| 6c 65 63 74 20 7b 7d 20 | 7b 0d 09 67 6c 6f 62 61 |lect {} |{..globa|
|00003970| 6c 20 73 65 61 72 63 68 | 4e 6f 69 73 69 6c 79 0d |l search|Noisily.|
|00003980| 09 73 65 74 20 70 6f 73 | 20 5b 67 65 74 50 6f 73 |.set pos| [getPos|
|00003990| 5d 0d 09 69 66 20 7b 24 | 70 6f 73 20 3e 20 30 7d |]..if {$|pos > 0}|
|000039a0| 20 74 68 65 6e 20 7b 0d | 09 09 73 65 74 20 73 65 | then {.|..set se|
|000039b0| 61 72 63 68 52 65 73 75 | 6c 74 20 5b 66 69 6e 64 |archResu|lt [find|
|000039c0| 53 75 62 73 65 63 74 69 | 6f 6e 20 5b 65 78 70 72 |Subsecti|on [expr|
|000039d0| 20 24 70 6f 73 20 2d 20 | 31 5d 20 30 5d 0d 09 09 | $pos - |1] 0]...|
|000039e0| 69 66 20 7b 20 5b 73 74 | 72 69 6e 67 20 6c 65 6e |if { [st|ring len|
|000039f0| 67 74 68 20 24 73 65 61 | 72 63 68 52 65 73 75 6c |gth $sea|rchResul|
|00003a00| 74 5d 20 7d 20 7b 0d 09 | 09 09 73 65 74 20 62 65 |t] } {..|..set be|
|00003a10| 67 50 6f 73 20 5b 6c 69 | 6e 64 65 78 20 24 73 65 |gPos [li|ndex $se|
|00003a20| 61 72 63 68 52 65 73 75 | 6c 74 20 30 5d 0d 09 09 |archResu|lt 0]...|
|00003a30| 09 73 65 74 20 65 6e 64 | 50 6f 73 20 5b 6c 69 6e |.set end|Pos [lin|
|00003a40| 64 65 78 20 24 73 65 61 | 72 63 68 52 65 73 75 6c |dex $sea|rchResul|
|00003a50| 74 20 31 5d 0d 09 09 09 | 73 65 74 20 73 65 61 72 |t 1]....|set sear|
|00003a60| 63 68 50 6f 73 20 5b 65 | 78 70 72 20 24 65 6e 64 |chPos [e|xpr $end|
|00003a70| 50 6f 73 20 2b 20 31 5d | 0d 09 09 09 73 65 74 20 |Pos + 1]|....set |
|00003a80| 63 6f 6d 6d 61 6e 64 4e | 61 6d 65 20 5b 65 78 74 |commandN|ame [ext|
|00003a90| 72 61 63 74 43 6f 6d 6d | 61 6e 64 4e 61 6d 65 20 |ractComm|andName |
|00003aa0| 5b 67 65 74 54 65 78 74 | 20 24 62 65 67 50 6f 73 |[getText| $begPos|
|00003ab0| 20 24 65 6e 64 50 6f 73 | 5d 5d 0d 09 09 09 69 66 | $endPos|]]....if|
|00003ac0| 20 7b 5b 73 74 72 69 6e | 67 20 6d 61 74 63 68 20 | {[strin|g match |
|00003ad0| 7b 73 65 63 74 69 6f 6e | 2a 7d 20 24 63 6f 6d 6d |{section|*} $comm|
|00003ae0| 61 6e 64 4e 61 6d 65 5d | 7d 20 74 68 65 6e 20 7b |andName]|} then {|
|00003af0| 0d 09 09 09 09 73 65 74 | 20 73 65 61 72 63 68 52 |.....set| searchR|
|00003b00| 65 73 75 6c 74 20 5b 66 | 69 6e 64 53 65 63 74 69 |esult [f|indSecti|
|00003b10| 6f 6e 20 24 73 65 61 72 | 63 68 50 6f 73 20 31 5d |on $sear|chPos 1]|
|00003b20| 0d 09 09 09 7d 20 65 6c | 73 65 20 7b 0d 09 09 09 |....} el|se {....|
|00003b30| 09 73 65 74 20 73 65 61 | 72 63 68 52 65 73 75 6c |.set sea|rchResul|
|00003b40| 74 20 5b 66 69 6e 64 53 | 75 62 73 65 63 74 69 6f |t [findS|ubsectio|
|00003b50| 6e 20 24 73 65 61 72 63 | 68 50 6f 73 20 31 5d 0d |n $searc|hPos 1].|
|00003b60| 09 09 09 7d 0d 09 09 09 | 69 66 20 7b 20 5b 73 74 |...}....|if { [st|
|00003b70| 72 69 6e 67 20 6c 65 6e | 67 74 68 20 24 73 65 61 |ring len|gth $sea|
|00003b80| 72 63 68 52 65 73 75 6c | 74 5d 20 7d 20 7b 0d 09 |rchResul|t] } {..|
|00003b90| 09 09 09 73 65 74 20 65 | 6e 64 50 6f 73 20 5b 6c |...set e|ndPos [l|
|00003ba0| 69 6e 64 65 78 20 24 73 | 65 61 72 63 68 52 65 73 |index $s|earchRes|
|00003bb0| 75 6c 74 20 30 5d 0d 09 | 09 09 7d 20 65 6c 73 65 |ult 0]..|..} else|
|00003bc0| 20 7b 0d 09 09 09 09 73 | 65 74 20 73 65 61 72 63 | {.....s|et searc|
|00003bd0| 68 52 65 73 75 6c 74 20 | 5b 73 65 61 72 63 68 20 |hResult |[search |
|00003be0| 2d 73 20 2d 66 20 31 20 | 2d 72 20 30 20 2d 6e 20 |-s -f 1 |-r 0 -n |
|00003bf0| 22 5c 5c 65 6e 64 7b 64 | 6f 63 75 6d 65 6e 74 7d |"\\end{d|ocument}|
|00003c00| 22 20 24 73 65 61 72 63 | 68 50 6f 73 5d 0d 09 09 |" $searc|hPos]...|
|00003c10| 09 09 73 65 74 20 65 6e | 64 50 6f 73 20 5b 6c 69 |..set en|dPos [li|
|00003c20| 6e 64 65 78 20 24 73 65 | 61 72 63 68 52 65 73 75 |ndex $se|archResu|
|00003c30| 6c 74 20 30 5d 0d 09 09 | 09 7d 0d 09 09 09 73 65 |lt 0]...|.}....se|
|00003c40| 6c 65 63 74 20 24 62 65 | 67 50 6f 73 20 24 65 6e |lect $be|gPos $en|
|00003c50| 64 50 6f 73 0d 09 09 09 | 72 65 74 75 72 6e 0d 09 |dPos....|return..|
|00003c60| 09 7d 20 65 6c 73 65 20 | 7b 7d 0d 09 7d 0d 09 69 |.} else |{}..}..i|
|00003c70| 66 20 7b 20 24 73 65 61 | 72 63 68 4e 6f 69 73 69 |f { $sea|rchNoisi|
|00003c80| 6c 79 20 7d 20 7b 62 65 | 65 70 7d 0d 09 6d 65 73 |ly } {be|ep}..mes|
|00003c90| 73 61 67 65 20 7b 70 72 | 65 76 69 6f 75 73 20 28 |sage {pr|evious (|
|00003ca0| 73 75 62 29 2a 73 65 63 | 74 69 6f 6e 20 6e 6f 74 |sub)*sec|tion not|
|00003cb0| 20 66 6f 75 6e 64 7d 0d | 7d 0d 23 20 53 65 6c 65 | found}.|}.# Sele|
|00003cc0| 63 74 20 74 68 65 20 6e | 65 78 74 20 4c 61 54 65 |ct the n|ext LaTe|
|00003cd0| 58 20 73 65 63 74 69 6f | 6e 69 6e 67 20 63 6f 6d |X sectio|ning com|
|00003ce0| 6d 61 6e 64 2e 0d 70 72 | 6f 63 20 6e 65 78 74 53 |mand..pr|oc nextS|
|00003cf0| 75 62 73 65 63 74 69 6f | 6e 53 65 6c 65 63 74 20 |ubsectio|nSelect |
|00003d00| 7b 7d 20 7b 0d 09 67 6c | 6f 62 61 6c 20 73 65 61 |{} {..gl|obal sea|
|00003d10| 72 63 68 4e 6f 69 73 69 | 6c 79 0d 09 73 65 74 20 |rchNoisi|ly..set |
|00003d20| 70 6f 73 20 5b 67 65 74 | 50 6f 73 5d 0d 09 69 66 |pos [get|Pos]..if|
|00003d30| 20 7b 24 70 6f 73 20 3c | 20 5b 6d 61 78 50 6f 73 | {$pos <| [maxPos|
|00003d40| 5d 7d 20 74 68 65 6e 20 | 7b 0d 09 09 69 66 20 7b |]} then |{...if {|
|00003d50| 20 5b 69 73 53 65 6c 65 | 63 74 69 6f 6e 5d 20 7d | [isSele|ction] }|
|00003d60| 20 74 68 65 6e 20 7b 0d | 09 09 09 73 65 74 20 70 | then {.|...set p|
|00003d70| 6f 73 20 5b 65 78 70 72 | 20 24 70 6f 73 20 2b 20 |os [expr| $pos + |
|00003d80| 31 5d 0d 09 09 7d 0d 09 | 09 73 65 74 20 73 65 61 |1]...}..|.set sea|
|00003d90| 72 63 68 52 65 73 75 6c | 74 20 5b 66 69 6e 64 53 |rchResul|t [findS|
|00003da0| 75 62 73 65 63 74 69 6f | 6e 20 24 70 6f 73 20 31 |ubsectio|n $pos 1|
|00003db0| 5d 0d 09 09 69 66 20 7b | 20 5b 73 74 72 69 6e 67 |]...if {| [string|
|00003dc0| 20 6c 65 6e 67 74 68 20 | 24 73 65 61 72 63 68 52 | length |$searchR|
|00003dd0| 65 73 75 6c 74 5d 20 7d | 20 7b 0d 09 09 09 73 65 |esult] }| {....se|
|00003de0| 74 20 62 65 67 50 6f 73 | 20 5b 6c 69 6e 64 65 78 |t begPos| [lindex|
|00003df0| 20 24 73 65 61 72 63 68 | 52 65 73 75 6c 74 20 30 | $search|Result 0|
|00003e00| 5d 0d 09 09 09 73 65 74 | 20 65 6e 64 50 6f 73 20 |]....set| endPos |
|00003e10| 5b 6c 69 6e 64 65 78 20 | 24 73 65 61 72 63 68 52 |[lindex |$searchR|
|00003e20| 65 73 75 6c 74 20 31 5d | 0d 09 09 09 73 65 74 20 |esult 1]|....set |
|00003e30| 73 65 61 72 63 68 50 6f | 73 20 5b 65 78 70 72 20 |searchPo|s [expr |
|00003e40| 24 65 6e 64 50 6f 73 20 | 2b 20 31 5d 0d 09 09 09 |$endPos |+ 1]....|
|00003e50| 73 65 74 20 63 6f 6d 6d | 61 6e 64 4e 61 6d 65 20 |set comm|andName |
|00003e60| 5b 65 78 74 72 61 63 74 | 43 6f 6d 6d 61 6e 64 4e |[extract|CommandN|
|00003e70| 61 6d 65 20 5b 67 65 74 | 54 65 78 74 20 24 62 65 |ame [get|Text $be|
|00003e80| 67 50 6f 73 20 24 65 6e | 64 50 6f 73 5d 5d 0d 09 |gPos $en|dPos]]..|
|00003e90| 09 09 69 66 20 7b 5b 73 | 74 72 69 6e 67 20 6d 61 |..if {[s|tring ma|
|00003ea0| 74 63 68 20 7b 73 65 63 | 74 69 6f 6e 2a 7d 20 24 |tch {sec|tion*} $|
|00003eb0| 63 6f 6d 6d 61 6e 64 4e | 61 6d 65 5d 7d 20 74 68 |commandN|ame]} th|
|00003ec0| 65 6e 20 7b 0d 09 09 09 | 09 73 65 74 20 73 65 61 |en {....|.set sea|
|00003ed0| 72 63 68 52 65 73 75 6c | 74 20 5b 66 69 6e 64 53 |rchResul|t [findS|
|00003ee0| 65 63 74 69 6f 6e 20 24 | 73 65 61 72 63 68 50 6f |ection $|searchPo|
|00003ef0| 73 20 31 5d 0d 09 09 09 | 7d 20 65 6c 73 65 20 7b |s 1]....|} else {|
|00003f00| 0d 09 09 09 09 73 65 74 | 20 73 65 61 72 63 68 52 |.....set| searchR|
|00003f10| 65 73 75 6c 74 20 5b 66 | 69 6e 64 53 75 62 73 65 |esult [f|indSubse|
|00003f20| 63 74 69 6f 6e 20 24 73 | 65 61 72 63 68 50 6f 73 |ction $s|earchPos|
|00003f30| 20 31 5d 0d 09 09 09 7d | 0d 09 09 09 69 66 20 7b | 1]....}|....if {|
|00003f40| 20 5b 73 74 72 69 6e 67 | 20 6c 65 6e 67 74 68 20 | [string| length |
|00003f50| 24 73 65 61 72 63 68 52 | 65 73 75 6c 74 5d 20 7d |$searchR|esult] }|
|00003f60| 20 7b 0d 09 09 09 09 73 | 65 74 20 65 6e 64 50 6f | {.....s|et endPo|
|00003f70| 73 20 5b 6c 69 6e 64 65 | 78 20 24 73 65 61 72 63 |s [linde|x $searc|
|00003f80| 68 52 65 73 75 6c 74 20 | 30 5d 0d 09 09 09 7d 20 |hResult |0]....} |
|00003f90| 65 6c 73 65 20 7b 0d 09 | 09 09 09 73 65 74 20 73 |else {..|...set s|
|00003fa0| 65 61 72 63 68 52 65 73 | 75 6c 74 20 5b 73 65 61 |earchRes|ult [sea|
|00003fb0| 72 63 68 20 2d 73 20 2d | 66 20 31 20 2d 72 20 30 |rch -s -|f 1 -r 0|
|00003fc0| 20 2d 6e 20 22 5c 5c 65 | 6e 64 7b 64 6f 63 75 6d | -n "\\e|nd{docum|
|00003fd0| 65 6e 74 7d 22 20 24 73 | 65 61 72 63 68 50 6f 73 |ent}" $s|earchPos|
|00003fe0| 5d 0d 09 09 09 09 73 65 | 74 20 65 6e 64 50 6f 73 |].....se|t endPos|
|00003ff0| 20 5b 6c 69 6e 64 65 78 | 20 24 73 65 61 72 63 68 | [lindex| $search|
|00004000| 52 65 73 75 6c 74 20 30 | 5d 0d 09 09 09 7d 0d 09 |Result 0|]....}..|
|00004010| 09 09 73 65 6c 65 63 74 | 20 24 62 65 67 50 6f 73 |..select| $begPos|
|00004020| 20 24 65 6e 64 50 6f 73 | 0d 09 09 09 72 65 74 75 | $endPos|....retu|
|00004030| 72 6e 0d 09 09 7d 20 65 | 6c 73 65 20 7b 7d 0d 09 |rn...} e|lse {}..|
|00004040| 7d 0d 09 69 66 20 7b 20 | 24 73 65 61 72 63 68 4e |}..if { |$searchN|
|00004050| 6f 69 73 69 6c 79 20 7d | 20 7b 62 65 65 70 7d 0d |oisily }| {beep}.|
|00004060| 09 6d 65 73 73 61 67 65 | 20 7b 6e 65 78 74 20 28 |.message| {next (|
|00004070| 73 75 62 29 2a 73 65 63 | 74 69 6f 6e 20 6e 6f 74 |sub)*sec|tion not|
|00004080| 20 66 6f 75 6e 64 7d 0d | 7d 0d 0d 70 72 6f 63 20 | found}.|}..proc |
|00004090| 67 6f 74 6f 54 61 62 53 | 74 6f 70 20 7b 64 69 72 |gotoTabS|top {dir|
|000040a0| 49 6e 64 69 63 61 74 6f | 72 7d 20 7b 0d 09 73 65 |Indicato|r} {..se|
|000040b0| 74 20 70 6f 73 20 5b 67 | 65 74 50 6f 73 5d 0d 09 |t pos [g|etPos]..|
|000040c0| 69 66 20 7b 24 64 69 72 | 49 6e 64 69 63 61 74 6f |if {$dir|Indicato|
|000040d0| 72 7d 20 74 68 65 6e 20 | 7b 0d 09 09 69 66 20 7b |r} then |{...if {|
|000040e0| 24 70 6f 73 20 3d 3d 20 | 5b 6d 61 78 50 6f 73 5d |$pos == |[maxPos]|
|000040f0| 7d 20 7b 72 65 74 75 72 | 6e 20 30 7d 0d 09 7d 20 |} {retur|n 0}..} |
|00004100| 65 6c 73 65 20 7b 0d 09 | 09 69 66 20 7b 24 70 6f |else {..|.if {$po|
|00004110| 73 20 3d 3d 20 30 7d 20 | 7b 0d 09 09 09 73 65 74 |s == 0} |{....set|
|00004120| 20 70 6f 73 20 5b 65 78 | 70 72 20 24 70 6f 73 20 | pos [ex|pr $pos |
|00004130| 2d 20 31 5d 0d 09 09 09 | 72 65 74 75 72 6e 20 30 |- 1]....|return 0|
|00004140| 0d 09 09 7d 0d 09 7d 0d | 09 73 65 74 20 73 65 61 |...}..}.|.set sea|
|00004150| 72 63 68 52 65 73 75 6c | 74 20 5b 73 65 61 72 63 |rchResul|t [searc|
|00004160| 68 20 2d 73 20 2d 6e 20 | 2d 66 20 24 64 69 72 49 |h -s -n |-f $dirI|
|00004170| 6e 64 69 63 61 74 6f 72 | 20 2d 6d 20 30 20 2d 69 |ndicator| -m 0 -i|
|00004180| 20 31 20 2d 72 20 30 20 | 7b a5 7d 20 24 70 6f 73 | 1 -r 0 |{.} $pos|
|00004190| 5d 0d 09 69 66 20 7b 5b | 73 74 72 69 6e 67 20 6c |]..if {[|string l|
|000041a0| 65 6e 67 74 68 20 24 73 | 65 61 72 63 68 52 65 73 |ength $s|earchRes|
|000041b0| 75 6c 74 5d 7d 20 74 68 | 65 6e 20 7b 0d 09 09 67 |ult]} th|en {...g|
|000041c0| 6f 74 6f 20 5b 6c 69 6e | 64 65 78 20 24 73 65 61 |oto [lin|dex $sea|
|000041d0| 72 63 68 52 65 73 75 6c | 74 20 30 5d 0d 09 09 72 |rchResul|t 0]...r|
|000041e0| 65 74 75 72 6e 20 31 0d | 09 7d 20 65 6c 73 65 20 |eturn 1.|.} else |
|000041f0| 7b 0d 09 09 72 65 74 75 | 72 6e 20 30 0d 09 7d 0d |{...retu|rn 0..}.|
|00004200| 7d 0d 70 72 6f 63 20 6e | 65 78 74 54 61 62 53 74 |}.proc n|extTabSt|
|00004210| 6f 70 20 7b 7d 20 7b 0d | 09 67 6c 6f 62 61 6c 20 |op {} {.|.global |
|00004220| 73 65 61 72 63 68 4e 6f | 69 73 69 6c 79 0d 09 73 |searchNo|isily..s|
|00004230| 65 74 20 66 6f 72 77 61 | 72 64 20 31 0d 09 69 66 |et forwa|rd 1..if|
|00004240| 20 7b 5b 67 6f 74 6f 54 | 61 62 53 74 6f 70 20 24 | {[gotoT|abStop $|
|00004250| 66 6f 72 77 61 72 64 5d | 7d 20 74 68 65 6e 20 7b |forward]|} then {|
|00004260| 0d 09 09 64 65 6c 65 74 | 65 43 68 61 72 0d 09 7d |...delet|eChar..}|
|00004270| 20 65 6c 73 65 20 7b 0d | 09 09 69 66 20 7b 24 73 | else {.|..if {$s|
|00004280| 65 61 72 63 68 4e 6f 69 | 73 69 6c 79 7d 20 7b 62 |earchNoi|sily} {b|
|00004290| 65 65 70 7d 0d 09 09 6d | 65 73 73 61 67 65 20 22 |eep}...m|essage "|
|000042a0| 74 61 62 20 73 74 6f 70 | 20 6e 6f 74 20 66 6f 75 |tab stop| not fou|
|000042b0| 6e 64 22 0d 09 7d 0d 7d | 0d 70 72 6f 63 20 70 72 |nd"..}.}|.proc pr|
|000042c0| 65 76 54 61 62 53 74 6f | 70 20 7b 7d 20 7b 0d 09 |evTabSto|p {} {..|
|000042d0| 67 6c 6f 62 61 6c 20 73 | 65 61 72 63 68 4e 6f 69 |global s|earchNoi|
|000042e0| 73 69 6c 79 0d 09 73 65 | 74 20 66 6f 72 77 61 72 |sily..se|t forwar|
|000042f0| 64 20 30 0d 09 69 66 20 | 7b 5b 67 6f 74 6f 54 61 |d 0..if |{[gotoTa|
|00004300| 62 53 74 6f 70 20 24 66 | 6f 72 77 61 72 64 5d 7d |bStop $f|orward]}|
|00004310| 20 74 68 65 6e 20 7b 0d | 09 09 64 65 6c 65 74 65 | then {.|..delete|
|00004320| 43 68 61 72 0d 09 7d 20 | 65 6c 73 65 20 7b 0d 09 |Char..} |else {..|
|00004330| 09 69 66 20 7b 24 73 65 | 61 72 63 68 4e 6f 69 73 |.if {$se|archNois|
|00004340| 69 6c 79 7d 20 7b 62 65 | 65 70 7d 0d 09 09 6d 65 |ily} {be|ep}...me|
|00004350| 73 73 61 67 65 20 22 74 | 61 62 20 73 74 6f 70 20 |ssage "t|ab stop |
|00004360| 6e 6f 74 20 66 6f 75 6e | 64 22 0d 09 7d 0d 7d 0d |not foun|d"..}.}.|
|00004370| 23 20 47 6f 74 6f 20 74 | 68 65 20 6e 74 68 20 74 |# Goto t|he nth t|
|00004380| 61 62 20 73 74 6f 70 2e | 20 20 41 20 6e 6f 6e 7a |ab stop.| A nonz|
|00004390| 65 72 6f 20 61 72 67 75 | 6d 65 6e 74 20 69 73 20 |ero argu|ment is |
|000043a0| 6e 6f 6e 2d 69 6e 74 65 | 72 61 63 74 69 76 65 0d |non-inte|ractive.|
|000043b0| 23 20 28 66 6f 72 20 75 | 73 65 20 69 6e 20 54 63 |# (for u|se in Tc|
|000043c0| 6c 20 70 72 6f 63 73 29 | 20 61 6e 64 20 6e 6f 74 |l procs)| and not|
|000043d0| 20 76 61 6c 69 64 61 74 | 65 64 2e 0d 70 72 6f 63 | validat|ed..proc|
|000043e0| 20 6e 74 68 54 61 62 53 | 74 6f 70 20 7b 7b 6e 75 | nthTabS|top {{nu|
|000043f0| 6d 54 61 62 53 74 6f 70 | 73 20 30 7d 7d 20 7b 0d |mTabStop|s 0}} {.|
|00004400| 09 67 6c 6f 62 61 6c 20 | 73 65 61 72 63 68 4e 6f |.global |searchNo|
|00004410| 69 73 69 6c 79 20 70 72 | 6f 6d 70 74 4e 6f 69 73 |isily pr|omptNois|
|00004420| 69 6c 79 20 75 73 65 53 | 74 61 74 75 73 42 61 72 |ily useS|tatusBar|
|00004430| 0d 09 69 66 20 7b 24 6e | 75 6d 54 61 62 53 74 6f |..if {$n|umTabSto|
|00004440| 70 73 20 3d 3d 20 30 7d | 20 74 68 65 6e 20 7b 0d |ps == 0}| then {.|
|00004450| 09 09 69 66 20 7b 24 70 | 72 6f 6d 70 74 4e 6f 69 |..if {$p|romptNoi|
|00004460| 73 69 6c 79 20 26 26 20 | 24 75 73 65 53 74 61 74 |sily && |$useStat|
|00004470| 75 73 42 61 72 7d 20 7b | 62 65 65 70 7d 0d 09 09 |usBar} {|beep}...|
|00004480| 63 61 74 63 68 20 7b 73 | 50 72 6f 6d 70 74 20 22 |catch {s|Prompt "|
|00004490| 48 6f 77 20 6d 61 6e 79 | 20 74 61 62 20 73 74 6f |How many| tab sto|
|000044a0| 70 73 3f 22 20 22 33 22 | 7d 20 6e 75 6d 54 61 62 |ps?" "3"|} numTab|
|000044b0| 53 74 6f 70 73 0d 09 09 | 69 66 20 7b 24 6e 75 6d |Stops...|if {$num|
|000044c0| 54 61 62 53 74 6f 70 73 | 20 3d 3d 20 22 63 61 6e |TabStops| == "can|
|000044d0| 63 65 6c 22 20 7c 7c 20 | 24 6e 75 6d 54 61 62 53 |cel" || |$numTabS|
|000044e0| 74 6f 70 73 20 3d 3d 20 | 30 7d 20 74 68 65 6e 20 |tops == |0} then |
|000044f0| 7b 0d 09 09 09 72 65 74 | 75 72 6e 0d 09 09 7d 20 |{....ret|urn...} |
|00004500| 65 6c 73 65 69 66 20 7b | 21 5b 69 73 49 6e 74 65 |elseif {|![isInte|
|00004510| 67 65 72 20 24 6e 75 6d | 54 61 62 53 74 6f 70 73 |ger $num|TabStops|
|00004520| 5d 7d 20 74 68 65 6e 20 | 7b 0d 09 09 09 62 65 65 |]} then |{....bee|
|00004530| 70 0d 09 09 09 6d 65 73 | 73 61 67 65 20 22 69 6e |p....mes|sage "in|
|00004540| 76 61 6c 69 64 20 69 6e | 70 75 74 22 0d 09 09 09 |valid in|put"....|
|00004550| 72 65 74 75 72 6e 0d 09 | 09 7d 0d 09 7d 0d 09 73 |return..|.}..}..s|
|00004560| 65 74 20 63 75 72 72 65 | 6e 74 50 6f 73 20 5b 67 |et curre|ntPos [g|
|00004570| 65 74 50 6f 73 5d 0d 09 | 69 66 20 7b 24 6e 75 6d |etPos]..|if {$num|
|00004580| 54 61 62 53 74 6f 70 73 | 20 3e 20 30 7d 20 7b 73 |TabStops| > 0} {s|
|00004590| 65 74 20 66 6f 72 77 61 | 72 64 20 31 7d 20 7b 73 |et forwa|rd 1} {s|
|000045a0| 65 74 20 66 6f 72 77 61 | 72 64 20 30 7d 0d 09 73 |et forwa|rd 0}..s|
|000045b0| 65 74 20 6d 61 78 69 74 | 73 20 5b 65 78 70 72 20 |et maxit|s [expr |
|000045c0| 61 62 73 28 24 6e 75 6d | 54 61 62 53 74 6f 70 73 |abs($num|TabStops|
|000045d0| 29 5d 0d 09 69 66 20 7b | 21 5b 67 6f 74 6f 54 61 |)]..if {|![gotoTa|
|000045e0| 62 53 74 6f 70 20 24 66 | 6f 72 77 61 72 64 5d 7d |bStop $f|orward]}|
|000045f0| 20 74 68 65 6e 20 7b 0d | 09 09 69 66 20 7b 24 73 | then {.|..if {$s|
|00004600| 65 61 72 63 68 4e 6f 69 | 73 69 6c 79 7d 20 7b 62 |earchNoi|sily} {b|
|00004610| 65 65 70 7d 0d 09 09 6d | 65 73 73 61 67 65 20 22 |eep}...m|essage "|
|00004620| 74 61 62 20 73 74 6f 70 | 20 6e 6f 74 20 66 6f 75 |tab stop| not fou|
|00004630| 6e 64 22 0d 09 09 67 6f | 74 6f 20 24 63 75 72 72 |nd"...go|to $curr|
|00004640| 65 6e 74 50 6f 73 0d 09 | 09 72 65 74 75 72 6e 0d |entPos..|.return.|
|00004650| 09 7d 0d 09 66 6f 72 20 | 7b 73 65 74 20 69 20 31 |.}..for |{set i 1|
|00004660| 7d 20 7b 24 69 20 3c 20 | 24 6d 61 78 69 74 73 7d |} {$i < |$maxits}|
|00004670| 20 7b 69 6e 63 72 20 69 | 7d 20 7b 0d 09 09 69 66 | {incr i|} {...if|
|00004680| 20 7b 24 66 6f 72 77 61 | 72 64 7d 20 7b 66 6f 72 | {$forwa|rd} {for|
|00004690| 77 61 72 64 43 68 61 72 | 7d 20 7b 62 61 63 6b 77 |wardChar|} {backw|
|000046a0| 61 72 64 43 68 61 72 7d | 0d 09 09 69 66 20 7b 21 |ardChar}|...if {!|
|000046b0| 5b 67 6f 74 6f 54 61 62 | 53 74 6f 70 20 24 66 6f |[gotoTab|Stop $fo|
|000046c0| 72 77 61 72 64 5d 7d 20 | 74 68 65 6e 20 7b 0d 09 |rward]} |then {..|
|000046d0| 09 09 69 66 20 7b 24 73 | 65 61 72 63 68 4e 6f 69 |..if {$s|earchNoi|
|000046e0| 73 69 6c 79 7d 20 7b 62 | 65 65 70 7d 0d 09 09 09 |sily} {b|eep}....|
|000046f0| 6d 65 73 73 61 67 65 20 | 22 74 61 62 20 73 74 6f |message |"tab sto|
|00004700| 70 20 6e 6f 74 20 66 6f | 75 6e 64 22 0d 09 09 09 |p not fo|und"....|
|00004710| 67 6f 74 6f 20 24 63 75 | 72 72 65 6e 74 50 6f 73 |goto $cu|rrentPos|
|00004720| 0d 09 09 09 72 65 74 75 | 72 6e 0d 09 09 7d 0d 09 |....retu|rn...}..|
|00004730| 7d 0d 09 64 65 6c 65 74 | 65 43 68 61 72 0d 7d 0d |}..delet|eChar.}.|
|00004740| 0d 23 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.#------|--------|
|00004750| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004760| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004770| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004780| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 23 20 55 |--------|----.# U|
|00004790| 74 69 6c 69 74 69 65 73 | 3a 0d 23 2d 2d 2d 2d 2d |tilities|:.#-----|
|000047a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000047b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000047c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000047d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000047e0| 2d 2d 2d 2d 2d 0d 0d 70 | 72 6f 63 20 63 68 6f 6f |-----..p|roc choo|
|000047f0| 73 65 43 6f 6d 6d 61 6e | 64 20 7b 7b 6d 65 6e 20 |seComman|d {{men |
|00004800| 7b 7d 7d 20 7b 70 72 6f | 6d 70 74 20 22 4c 61 54 |{}} {pro|mpt "LaT|
|00004810| 65 58 20 73 75 62 6d 65 | 6e 75 3a 22 7d 7d 20 7b |eX subme|nu:"}} {|
|00004820| 0d 09 77 61 74 63 68 43 | 75 72 73 6f 72 0d 09 69 |..watchC|ursor..i|
|00004830| 66 20 7b 21 5b 73 74 72 | 69 6e 67 20 6c 65 6e 67 |f {![str|ing leng|
|00004840| 74 68 20 24 6d 65 6e 5d | 7d 20 7b 0d 09 09 73 65 |th $men]|} {...se|
|00004850| 74 20 6d 65 6e 09 5b 67 | 65 74 54 65 58 4d 65 6e |t men.[g|etTeXMen|
|00004860| 75 5d 0d 09 7d 0d 09 66 | 6f 72 65 61 63 68 09 69 |u]..}..f|oreach.i|
|00004870| 74 65 6d 20 24 6d 65 6e | 20 7b 0d 09 09 72 65 67 |tem $men| {...reg|
|00004880| 73 75 62 20 2d 61 6c 6c | 20 7b 5b 3c 21 2f 5d 2e |sub -all| {[<!/].|
|00004890| 7d 20 24 69 74 65 6d 20 | 7b 7d 20 69 74 65 6d 0d |} $item |{} item.|
|000048a0| 09 09 72 65 67 73 75 62 | 20 2d 61 6c 6c 20 7b c9 |..regsub| -all {.|
|000048b0| 7d 09 24 69 74 65 6d 20 | 7b 7d 20 69 74 65 6d 0d |}.$item |{} item.|
|000048c0| 09 09 6c 61 70 70 65 6e | 64 09 6d 65 6e 4f 75 74 |..lappen|d.menOut|
|000048d0| 20 24 69 74 65 6d 0d 09 | 09 69 66 20 7b 5b 73 74 | $item..|.if {[st|
|000048e0| 72 69 6e 67 20 6d 61 74 | 63 68 20 22 6d 65 6e 75 |ring mat|ch "menu|
|000048f0| 2a 22 20 24 69 74 65 6d | 5d 7d 20 7b 0d 09 09 09 |*" $item|]} {....|
|00004900| 69 66 20 7b 5b 73 65 74 | 20 69 6e 64 20 5b 6c 73 |if {[set| ind [ls|
|00004910| 65 61 72 63 68 20 24 69 | 74 65 6d 20 7b 2d 6e 7d |earch $i|tem {-n}|
|00004920| 5d 5d 20 3e 3d 20 30 7d | 20 7b 0d 09 09 09 09 6c |]] >= 0}| {.....l|
|00004930| 61 70 70 65 6e 64 09 74 | 6f 70 20 5b 6c 69 6e 64 |append.t|op [lind|
|00004940| 65 78 20 24 69 74 65 6d | 20 5b 69 6e 63 72 09 69 |ex $item| [incr.i|
|00004950| 6e 64 5d 5d 0d 09 09 09 | 7d 0d 09 09 7d 20 65 6c |nd]]....|}...} el|
|00004960| 73 65 69 66 20 7b 21 5b | 73 74 72 69 6e 67 20 6d |seif {![|string m|
|00004970| 61 74 63 68 20 22 28 2a | 22 20 24 69 74 65 6d 5d |atch "(*|" $item]|
|00004980| 7d 20 7b 0d 09 09 09 6c | 61 70 70 65 6e 64 09 74 |} {....l|append.t|
|00004990| 6f 70 20 24 69 74 65 6d | 0d 09 09 7d 0d 09 7d 0d |op $item|...}..}.|
|000049a0| 09 73 65 74 20 72 65 73 | 09 5b 6c 69 73 74 70 69 |.set res|.[listpi|
|000049b0| 63 6b 20 2d 70 20 24 70 | 72 6f 6d 70 74 20 24 74 |ck -p $p|rompt $t|
|000049c0| 6f 70 5d 0d 09 69 66 20 | 7b 5b 6c 73 65 61 72 63 |op]..if |{[lsearc|
|000049d0| 68 20 24 6d 65 6e 4f 75 | 74 20 24 72 65 73 5d 20 |h $menOu|t $res] |
|000049e0| 3e 3d 20 30 7d 20 7b 0d | 09 09 69 6e 74 65 72 70 |>= 0} {.|..interp|
|000049f0| 72 65 74 4d 65 6e 75 49 | 74 65 6d 20 64 75 6d 6d |retMenuI|tem dumm|
|00004a00| 79 09 24 72 65 73 0d 09 | 7d 20 65 6c 73 65 20 7b |y.$res..|} else {|
|00004a10| 0d 09 09 66 6f 72 65 61 | 63 68 09 69 74 65 6d 20 |...forea|ch.item |
|00004a20| 24 6d 65 6e 4f 75 74 20 | 7b 0d 09 09 09 69 66 20 |$menOut |{....if |
|00004a30| 7b 5b 73 65 74 20 69 6e | 64 20 5b 6c 73 65 61 72 |{[set in|d [lsear|
|00004a40| 63 68 20 24 69 74 65 6d | 20 24 72 65 73 5d 5d 20 |ch $item| $res]] |
|00004a50| 3e 3d 20 30 7d 20 7b 0d | 09 09 09 09 72 65 74 75 |>= 0} {.|....retu|
|00004a60| 72 6e 20 5b 63 68 6f 6f | 73 65 43 6f 6d 6d 61 6e |rn [choo|seComman|
|00004a70| 64 20 5b 6c 69 6e 64 65 | 78 20 24 69 74 65 6d 20 |d [linde|x $item |
|00004a80| 65 6e 64 5d 20 22 4c 61 | 54 65 58 20 73 75 62 6d |end] "La|TeX subm|
|00004a90| 65 6e 75 20 63 6f 6d 6d | 61 6e 64 3a 22 5d 0d 09 |enu comm|and:"]..|
|00004aa0| 09 09 7d 0d 09 09 7d 0d | 09 7d 0d 7d 0d 0d 70 72 |..}...}.|.}.}..pr|
|00004ab0| 6f 63 20 69 6e 73 65 72 | 74 4c 69 74 65 72 61 6c |oc inser|tLiteral|
|00004ac0| 54 61 62 20 7b 7d 20 7b | 0d 09 69 66 20 7b 5b 69 |Tab {} {|..if {[i|
|00004ad0| 73 53 65 6c 65 63 74 69 | 6f 6e 5d 7d 20 74 68 65 |sSelecti|on]} the|
|00004ae0| 6e 20 7b 0d 09 09 64 65 | 6c 65 74 65 53 65 6c 65 |n {...de|leteSele|
|00004af0| 63 74 69 6f 6e 0d 09 7d | 0d 09 69 6e 73 65 72 74 |ction..}|..insert|
|00004b00| 54 65 78 74 20 22 5c 74 | 22 0d 7d 0d 0d 70 72 6f |Text "\t|".}..pro|
|00004b10| 63 20 69 6e 73 65 72 74 | 54 61 62 53 74 6f 70 20 |c insert|TabStop |
|00004b20| 7b 7d 20 7b 0d 09 69 66 | 20 7b 5b 69 73 53 65 6c |{} {..if| {[isSel|
|00004b30| 65 63 74 69 6f 6e 5d 7d | 20 74 68 65 6e 20 7b 0d |ection]}| then {.|
|00004b40| 09 09 64 65 6c 65 74 65 | 53 65 6c 65 63 74 69 6f |..delete|Selectio|
|00004b50| 6e 0d 09 7d 0d 09 69 6e | 73 65 72 74 54 65 78 74 |n..}..in|sertText|
|00004b60| 20 22 a5 22 0d 7d 0d 0d | 70 72 6f 63 20 69 6e 73 | ".".}..|proc ins|
|00004b70| 65 72 74 52 65 66 65 72 | 65 6e 63 65 20 7b 7d 20 |ertRefer|ence {} |
|00004b80| 7b 0d 09 73 65 74 20 65 | 6e 64 20 5b 6d 61 78 50 |{..set e|nd [maxP|
|00004b90| 6f 73 5d 0d 09 73 65 74 | 20 70 6f 73 20 30 0d 09 |os]..set| pos 0..|
|00004ba0| 73 65 74 20 6c 61 62 65 | 6c 73 20 7b 7d 0d 09 0d |set labe|ls {}...|
|00004bb0| 09 73 65 74 20 65 78 70 | 20 7b 5c 5c 6c 61 62 65 |.set exp| {\\labe|
|00004bc0| 6c 5c 7b 28 2e 2a 29 5c | 7d 7d 0d 09 77 68 69 6c |l\{(.*)\|}}..whil|
|00004bd0| 65 20 7b 21 5b 63 61 74 | 63 68 20 7b 73 65 61 72 |e {![cat|ch {sear|
|00004be0| 63 68 20 2d 73 20 2d 66 | 20 31 20 2d 72 20 31 20 |ch -s -f| 1 -r 1 |
|00004bf0| 2d 6d 20 30 20 2d 69 20 | 30 20 24 65 78 70 20 24 |-m 0 -i |0 $exp $|
|00004c00| 70 6f 73 7d 20 72 65 73 | 5d 7d 20 7b 0d 09 09 73 |pos} res|]} {...s|
|00004c10| 65 74 20 73 74 61 72 74 | 20 5b 6c 69 6e 64 65 78 |et start| [lindex|
|00004c20| 20 24 72 65 73 20 30 5d | 0d 09 09 73 65 74 20 65 | $res 0]|...set e|
|00004c30| 6e 64 20 5b 6c 69 6e 64 | 65 78 20 24 72 65 73 20 |nd [lind|ex $res |
|00004c40| 31 5d 0d 09 09 73 65 74 | 20 74 65 78 74 20 5b 67 |1]...set| text [g|
|00004c50| 65 74 54 65 78 74 20 24 | 73 74 61 72 74 20 24 65 |etText $|start $e|
|00004c60| 6e 64 5d 0d 09 09 72 65 | 67 65 78 70 20 7b 5c 7b |nd]...re|gexp {\{|
|00004c70| 28 2e 2a 29 5c 7d 7d 20 | 24 74 65 78 74 20 64 75 |(.*)\}} |$text du|
|00004c80| 6d 6d 79 20 6c 61 62 65 | 6c 0d 09 09 6c 61 70 70 |mmy labe|l...lapp|
|00004c90| 65 6e 64 20 6c 61 62 65 | 6c 73 20 24 6c 61 62 65 |end labe|ls $labe|
|00004ca0| 6c 0d 09 09 73 65 74 20 | 70 6f 73 20 5b 65 78 70 |l...set |pos [exp|
|00004cb0| 72 20 24 65 6e 64 20 2b | 31 5d 0d 09 7d 0d 0d 09 |r $end +|1]..}...|
|00004cc0| 73 65 74 20 72 65 66 20 | 5b 6c 69 73 74 70 69 63 |set ref |[listpic|
|00004cd0| 6b 20 2d 70 20 22 53 65 | 6c 65 63 74 20 61 20 72 |k -p "Se|lect a r|
|00004ce0| 65 66 65 72 65 6e 63 65 | 20 74 6f 20 69 6e 73 65 |eference| to inse|
|00004cf0| 72 74 22 20 5b 6c 73 6f | 72 74 20 24 6c 61 62 65 |rt" [lso|rt $labe|
|00004d00| 6c 73 5d 5d 0d 09 69 66 | 20 7b 5b 73 74 72 69 6e |ls]]..if| {[strin|
|00004d10| 67 20 6c 65 6e 67 74 68 | 20 24 72 65 66 5d 7d 20 |g length| $ref]} |
|00004d20| 7b 0d 09 09 69 6e 73 65 | 72 74 54 65 78 74 20 22 |{...inse|rtText "|
|00004d30| 5c 5c 72 65 66 5c 7b 24 | 72 65 66 5c 7d 22 0d 09 |\\ref\{$|ref\}"..|
|00004d40| 7d 09 0d 7d 0d 0d 23 20 | 52 65 6d 6f 76 65 73 20 |}..}..# |Removes |
|00004d50| 61 6c 6c 20 74 61 62 20 | 73 74 6f 70 73 20 66 72 |all tab |stops fr|
|00004d60| 6f 6d 20 74 68 65 20 63 | 75 72 72 65 6e 74 20 73 |om the c|urrent s|
|00004d70| 65 6c 65 63 74 69 6f 6e | 20 28 69 66 20 74 68 65 |election| (if the|
|00004d80| 72 65 20 69 73 20 6f 6e | 65 29 20 0d 23 20 6f 72 |re is on|e) .# or|
|00004d90| 20 74 68 65 20 63 75 72 | 72 65 6e 74 20 64 6f 63 | the cur|rent doc|
|00004da0| 75 6d 65 6e 74 2c 20 6d | 61 69 6e 74 61 69 6e 69 |ument, m|aintaini|
|00004db0| 6e 67 20 74 68 65 20 63 | 75 72 73 6f 72 20 70 6f |ng the c|ursor po|
|00004dc0| 73 69 74 69 6f 6e 20 69 | 6e 20 74 68 65 20 0d 23 |sition i|n the .#|
|00004dd0| 20 6c 61 74 74 65 72 20 | 63 61 73 65 2e 0d 70 72 | latter |case..pr|
|00004de0| 6f 63 20 64 65 6c 65 74 | 65 54 61 62 53 74 6f 70 |oc delet|eTabStop|
|00004df0| 73 20 7b 7d 20 7b 0d 09 | 67 6c 6f 62 61 6c 20 73 |s {} {..|global s|
|00004e00| 65 61 72 63 68 4e 6f 69 | 73 69 6c 79 0d 09 77 61 |earchNoi|sily..wa|
|00004e10| 74 63 68 43 75 72 73 6f | 72 0d 09 73 65 74 20 73 |tchCurso|r..set s|
|00004e20| 75 62 73 31 20 30 3b 20 | 73 65 74 20 73 75 62 73 |ubs1 0; |set subs|
|00004e30| 32 20 30 3b 20 73 65 74 | 20 73 75 62 73 33 20 30 |2 0; set| subs3 0|
|00004e40| 0d 09 73 65 74 20 70 6f | 73 20 5b 67 65 74 50 6f |..set po|s [getPo|
|00004e50| 73 5d 0d 09 69 66 20 7b | 5b 73 65 74 20 73 74 61 |s]..if {|[set sta|
|00004e60| 72 74 20 24 70 6f 73 5d | 20 3d 3d 20 5b 73 65 74 |rt $pos]| == [set|
|00004e70| 20 65 6e 64 20 5b 73 65 | 6c 45 6e 64 5d 5d 7d 20 | end [se|lEnd]]} |
|00004e80| 7b 0d 09 09 73 65 74 20 | 6d 65 73 73 61 67 65 53 |{...set |messageS|
|00004e90| 74 72 69 6e 67 20 22 64 | 6f 63 75 6d 65 6e 74 22 |tring "d|ocument"|
|00004ea0| 0d 09 09 73 65 74 20 73 | 74 61 72 74 20 30 0d 09 |...set s|tart 0..|
|00004eb0| 09 73 65 74 20 65 6e 64 | 20 5b 6d 61 78 50 6f 73 |.set end| [maxPos|
|00004ec0| 5d 0d 09 09 73 65 74 20 | 74 65 78 74 31 20 5b 67 |]...set |text1 [g|
|00004ed0| 65 74 54 65 78 74 20 24 | 73 74 61 72 74 20 24 70 |etText $|start $p|
|00004ee0| 6f 73 5d 0d 09 09 73 65 | 74 20 73 75 62 73 31 20 |os]...se|t subs1 |
|00004ef0| 5b 72 65 67 73 75 62 20 | 2d 61 6c 6c 20 7b a5 7d |[regsub |-all {.}|
|00004f00| 20 24 74 65 78 74 31 20 | 7b 7d 20 74 65 78 74 31 | $text1 |{} text1|
|00004f10| 5d 0d 09 09 73 65 74 20 | 74 65 78 74 32 20 5b 67 |]...set |text2 [g|
|00004f20| 65 74 54 65 78 74 20 24 | 70 6f 73 20 24 65 6e 64 |etText $|pos $end|
|00004f30| 5d 0d 09 09 73 65 74 20 | 73 75 62 73 32 20 5b 72 |]...set |subs2 [r|
|00004f40| 65 67 73 75 62 20 2d 61 | 6c 6c 20 7b a5 7d 20 24 |egsub -a|ll {.} $|
|00004f50| 74 65 78 74 32 20 7b 7d | 20 74 65 78 74 32 5d 0d |text2 {}| text2].|
|00004f60| 09 09 61 70 70 65 6e 64 | 20 74 65 78 74 20 24 74 |..append| text $t|
|00004f70| 65 78 74 31 20 24 74 65 | 78 74 32 0d 09 7d 20 65 |ext1 $te|xt2..} e|
|00004f80| 6c 73 65 20 7b 0d 09 09 | 73 65 74 20 6d 65 73 73 |lse {...|set mess|
|00004f90| 61 67 65 53 74 72 69 6e | 67 20 22 73 65 6c 65 63 |ageStrin|g "selec|
|00004fa0| 74 69 6f 6e 22 0d 09 09 | 73 65 74 20 74 65 78 74 |tion"...|set text|
|00004fb0| 20 5b 67 65 74 54 65 78 | 74 20 24 73 74 61 72 74 | [getTex|t $start|
|00004fc0| 20 24 65 6e 64 5d 0d 09 | 09 73 65 74 20 73 75 62 | $end]..|.set sub|
|00004fd0| 73 33 20 5b 72 65 67 73 | 75 62 20 2d 61 6c 6c 20 |s3 [regs|ub -all |
|00004fe0| 7b a5 7d 20 24 74 65 78 | 74 20 7b 7d 20 74 65 78 |{.} $tex|t {} tex|
|00004ff0| 74 5d 0d 09 7d 0d 09 69 | 66 20 7b 24 73 75 62 73 |t]..}..i|f {$subs|
|00005000| 31 20 7c 7c 20 24 73 75 | 62 73 32 20 7c 7c 20 24 |1 || $su|bs2 || $|
|00005010| 73 75 62 73 33 7d 20 74 | 68 65 6e 20 7b 0d 09 09 |subs3} t|hen {...|
|00005020| 72 65 70 6c 61 63 65 54 | 65 78 74 20 24 73 74 61 |replaceT|ext $sta|
|00005030| 72 74 20 24 65 6e 64 20 | 24 74 65 78 74 0d 09 09 |rt $end |$text...|
|00005040| 69 66 20 7b 24 6d 65 73 | 73 61 67 65 53 74 72 69 |if {$mes|sageStri|
|00005050| 6e 67 20 3d 3d 20 22 64 | 6f 63 75 6d 65 6e 74 22 |ng == "d|ocument"|
|00005060| 7d 20 74 68 65 6e 20 7b | 0d 09 09 09 67 6f 74 6f |} then {|....goto|
|00005070| 20 5b 65 78 70 72 20 24 | 70 6f 73 20 2d 20 24 73 | [expr $|pos - $s|
|00005080| 75 62 73 31 5d 0d 09 09 | 7d 20 65 6c 73 65 20 7b |ubs1]...|} else {|
|00005090| 0d 09 09 09 73 65 74 20 | 65 6e 64 20 5b 67 65 74 |....set |end [get|
|000050a0| 50 6f 73 5d 0d 09 09 09 | 73 65 6c 65 63 74 20 24 |Pos]....|select $|
|000050b0| 73 74 61 72 74 20 24 65 | 6e 64 0d 09 09 7d 0d 09 |start $e|nd...}..|
|000050c0| 09 73 65 74 20 73 75 62 | 73 20 5b 65 78 70 72 20 |.set sub|s [expr |
|000050d0| 24 73 75 62 73 31 20 2b | 20 24 73 75 62 73 32 20 |$subs1 +| $subs2 |
|000050e0| 2b 20 24 73 75 62 73 33 | 5d 0d 09 09 6d 65 73 73 |+ $subs3|]...mess|
|000050f0| 61 67 65 20 22 24 73 75 | 62 73 20 74 61 62 20 73 |age "$su|bs tab s|
|00005100| 74 6f 70 73 20 72 65 6d | 6f 76 65 64 20 66 72 6f |tops rem|oved fro|
|00005110| 6d 20 24 6d 65 73 73 61 | 67 65 53 74 72 69 6e 67 |m $messa|geString|
|00005120| 22 0d 09 7d 20 65 6c 73 | 65 20 7b 0d 09 09 69 66 |"..} els|e {...if|
|00005130| 20 7b 24 73 65 61 72 63 | 68 4e 6f 69 73 69 6c 79 | {$searc|hNoisily|
|00005140| 7d 20 7b 62 65 65 70 7d | 0d 09 09 6d 65 73 73 61 |} {beep}|...messa|
|00005150| 67 65 20 22 6e 6f 20 74 | 61 62 20 73 74 6f 70 73 |ge "no t|ab stops|
|00005160| 20 66 6f 75 6e 64 20 69 | 6e 20 24 6d 65 73 73 61 | found i|n $messa|
|00005170| 67 65 53 74 72 69 6e 67 | 22 0d 09 7d 0d 7d 0d 0d |geString|"..}.}..|
|00005180| 23 20 44 65 6c 65 74 65 | 20 61 6c 6c 20 75 6e 6e |# Delete| all unn|
|00005190| 65 63 65 73 73 61 72 79 | 20 63 6f 6d 6d 65 6e 74 |ecessary| comment|
|000051a0| 73 20 66 72 6f 6d 20 74 | 68 65 20 63 75 72 72 65 |s from t|he curre|
|000051b0| 6e 74 20 64 6f 63 75 6d | 65 6e 74 3a 0d 70 72 6f |nt docum|ent:.pro|
|000051c0| 63 20 64 65 6c 65 74 65 | 43 6f 6d 6d 65 6e 74 73 |c delete|Comments|
|000051d0| 20 7b 7d 20 7b 0d 09 63 | 61 73 65 20 5b 61 73 6b | {} {..c|ase [ask|
|000051e0| 79 65 73 6e 6f 20 22 57 | 61 72 6e 69 6e 67 21 20 |yesno "W|arning! |
|000051f0| 20 54 68 69 73 20 6f 70 | 65 72 61 74 69 6f 6e 20 | This op|eration |
|00005200| 63 61 6e 20 6e 6f 74 20 | 62 65 20 75 6e 64 6f 6e |can not |be undon|
|00005210| 65 2e 20 20 5c 0d 09 20 | 20 20 20 20 20 20 20 20 |e. \.. | |
|00005220| 20 20 20 20 20 20 20 43 | 6f 6e 74 69 6e 75 65 20 | C|ontinue |
|00005230| 61 6e 79 77 61 79 3f 22 | 5d 20 69 6e 20 7b 0d 09 |anyway?"|] in {..|
|00005240| 09 22 79 65 73 22 20 7b | 7d 0d 09 09 22 6e 6f 22 |."yes" {|}..."no"|
|00005250| 20 7b 20 72 65 74 75 72 | 6e 20 7d 0d 09 7d 0d 09 | { retur|n }..}..|
|00005260| 72 65 70 6c 61 63 65 53 | 74 72 69 6e 67 20 7b 7d |replaceS|tring {}|
|00005270| 0d 09 65 76 61 6c 20 73 | 65 6c 65 63 74 20 5b 73 |..eval s|elect [s|
|00005280| 65 61 72 63 68 20 2d 66 | 20 31 20 2d 72 20 31 20 |earch -f| 1 -r 1 |
|00005290| 2d 69 20 31 20 2d 6d 20 | 30 20 2d 2d 20 7b 5e 5b |-i 1 -m |0 -- {^[|
|000052a0| 20 5c 74 5d 2a 25 2e 2a | 5c 72 7d 20 30 5d 0d 09 | \t]*%.*|\r} 0]..|
|000052b0| 72 65 70 6c 61 63 65 41 | 6c 6c 0d 09 0d 09 72 65 |replaceA|ll....re|
|000052c0| 70 6c 61 63 65 53 74 72 | 69 6e 67 20 7b 7d 0d 09 |placeStr|ing {}..|
|000052d0| 65 76 61 6c 20 73 65 6c | 65 63 74 20 5b 73 65 61 |eval sel|ect [sea|
|000052e0| 72 63 68 20 2d 66 20 31 | 20 2d 72 20 31 20 2d 69 |rch -f 1| -r 1 -i|
|000052f0| 20 31 20 2d 6d 20 30 20 | 2d 2d 20 7b 5b 20 5c 74 | 1 -m 0 |-- {[ \t|
|00005300| 5d 2b 25 2e 2a 7d 20 30 | 5d 0d 09 72 65 70 6c 61 |]+%.*} 0|]..repla|
|00005310| 63 65 41 6c 6c 0d 09 0d | 09 72 65 70 6c 61 63 65 |ceAll...|.replace|
|00005320| 53 74 72 69 6e 67 20 7b | 5c 31 25 7d 0d 09 65 76 |String {|\1%}..ev|
|00005330| 61 6c 20 73 65 6c 65 63 | 74 20 5b 73 65 61 72 63 |al selec|t [searc|
|00005340| 68 20 2d 66 20 31 20 2d | 72 20 31 20 2d 69 20 31 |h -f 1 -|r 1 -i 1|
|00005350| 20 2d 6d 20 30 20 2d 2d | 20 7b 28 5b 5e 5c 5c 5d | -m 0 --| {([^\\]|
|00005360| 28 5c 5c 5c 5c 29 2a 29 | 25 2e 2a 7d 20 30 5d 0d |(\\\\)*)|%.*} 0].|
|00005370| 09 72 65 70 6c 61 63 65 | 41 6c 6c 0d 7d 0d 0d 23 |.replace|All.}..#|
|00005380| 20 43 6f 6e 76 65 72 74 | 73 20 61 6c 6c 20 73 74 | Convert|s all st|
|00005390| 72 61 69 67 68 74 20 71 | 75 6f 74 65 73 20 74 6f |raight q|uotes to|
|000053a0| 20 74 68 65 69 72 20 54 | 65 58 20 65 71 75 69 76 | their T|eX equiv|
|000053b0| 61 6c 65 6e 74 73 2e 0d | 70 72 6f 63 20 63 6f 6e |alents..|proc con|
|000053c0| 76 65 72 74 51 75 6f 74 | 65 73 20 7b 7d 20 7b 0d |vertQuot|es {} {.|
|000053d0| 09 67 6c 6f 62 61 6c 20 | 73 65 61 72 63 68 4e 6f |.global |searchNo|
|000053e0| 69 73 69 6c 79 0d 09 6d | 65 73 73 61 67 65 20 22 |isily..m|essage "|
|000053f0| 77 6f 72 6b 69 6e 67 c9 | 22 0d 09 77 61 74 63 68 |working.|"..watch|
|00005400| 43 75 72 73 6f 72 0d 09 | 73 65 74 20 6d 65 73 73 |Cursor..|set mess|
|00005410| 61 67 65 53 74 72 69 6e | 67 20 22 73 65 6c 65 63 |ageStrin|g "selec|
|00005420| 74 69 6f 6e 22 0d 09 69 | 66 20 7b 5b 73 65 74 20 |tion"..i|f {[set |
|00005430| 73 74 61 72 74 20 5b 67 | 65 74 50 6f 73 5d 5d 20 |start [g|etPos]] |
|00005440| 3d 3d 20 5b 73 65 74 20 | 65 6e 64 20 5b 73 65 6c |== [set |end [sel|
|00005450| 45 6e 64 5d 5d 7d 20 7b | 0d 09 09 73 65 74 20 6d |End]]} {|...set m|
|00005460| 65 73 73 61 67 65 53 74 | 72 69 6e 67 20 22 64 6f |essageSt|ring "do|
|00005470| 63 75 6d 65 6e 74 22 0d | 09 09 73 65 74 20 73 74 |cument".|..set st|
|00005480| 61 72 74 20 30 0d 09 09 | 73 65 74 20 65 6e 64 20 |art 0...|set end |
|00005490| 5b 6d 61 78 50 6f 73 5d | 0d 09 7d 0d 09 73 65 74 |[maxPos]|..}..set|
|000054a0| 20 74 65 78 74 20 5b 67 | 65 74 54 65 78 74 20 24 | text [g|etText $|
|000054b0| 73 74 61 72 74 20 24 65 | 6e 64 5d 0d 09 23 20 43 |start $e|nd]..# C|
|000054c0| 6f 6e 76 65 72 74 20 61 | 6c 6c 20 6c 65 66 74 20 |onvert a|ll left |
|000054d0| 64 6f 75 62 6c 65 20 71 | 75 6f 74 65 73 3a 0d 09 |double q|uotes:..|
|000054e0| 73 65 74 20 63 6f 6e 76 | 65 72 74 31 20 5b 72 65 |set conv|ert1 [re|
|000054f0| 67 73 75 62 20 2d 61 6c | 6c 20 22 5c 28 5c 5e 5c |gsub -al|l "\(\^\|
|00005500| 7c 5c 5b 5c 20 5c 72 5c | 74 5c 28 5c 5b 5c 7b 5c ||\[\ \r\|t\(\[\{\|
|00005510| 5d 5c 29 5c 22 22 20 24 | 74 65 78 74 20 7b 5c 31 |]\)\"" $|text {\1|
|00005520| 60 60 7d 20 74 65 78 74 | 5d 0d 09 23 20 43 6f 6e |``} text|]..# Con|
|00005530| 76 65 72 74 20 61 6c 6c | 20 72 69 67 68 74 20 64 |vert all| right d|
|00005540| 6f 75 62 6c 65 20 71 75 | 6f 74 65 73 3a 0d 09 73 |ouble qu|otes:..s|
|00005550| 65 74 20 63 6f 6e 76 65 | 72 74 32 20 5b 72 65 67 |et conve|rt2 [reg|
|00005560| 73 75 62 20 2d 61 6c 6c | 20 22 5c 28 5c 5b 5c 5e |sub -all| "\(\[\^|
|00005570| 5c 5c 5c 5c 5c 5d 5c 29 | 5c 22 22 20 24 74 65 78 |\\\\\]\)|\"" $tex|
|00005580| 74 20 7b 5c 31 27 27 7d | 20 74 65 78 74 5d 0d 09 |t {\1''}| text]..|
|00005590| 23 20 43 6f 6e 76 65 72 | 74 20 61 6c 6c 20 6c 65 |# Conver|t all le|
|000055a0| 66 74 20 73 69 6e 67 6c | 65 20 71 75 6f 74 65 73 |ft singl|e quotes|
|000055b0| 3a 0d 09 73 65 74 20 63 | 6f 6e 76 65 72 74 33 20 |:..set c|onvert3 |
|000055c0| 5b 72 65 67 73 75 62 20 | 2d 61 6c 6c 20 22 5c 28 |[regsub |-all "\(|
|000055d0| 5c 5e 5c 7c 5c 5b 5c 20 | 5c 72 5c 74 5c 28 5c 5b |\^\|\[\ |\r\t\(\[|
|000055e0| 5c 7b 5c 5d 5c 29 5c 27 | 22 20 24 74 65 78 74 20 |\{\]\)\'|" $text |
|000055f0| 7b 5c 31 60 7d 20 74 65 | 78 74 5d 0d 09 69 66 20 |{\1`} te|xt]..if |
|00005600| 7b 24 63 6f 6e 76 65 72 | 74 31 20 7c 7c 20 24 63 |{$conver|t1 || $c|
|00005610| 6f 6e 76 65 72 74 32 20 | 7c 7c 20 24 63 6f 6e 76 |onvert2 ||| $conv|
|00005620| 65 72 74 33 7d 20 74 68 | 65 6e 20 7b 0d 09 09 72 |ert3} th|en {...r|
|00005630| 65 70 6c 61 63 65 54 65 | 78 74 20 24 73 74 61 72 |eplaceTe|xt $star|
|00005640| 74 20 24 65 6e 64 20 24 | 74 65 78 74 0d 09 09 6d |t $end $|text...m|
|00005650| 65 73 73 61 67 65 20 22 | 61 6c 6c 20 71 75 6f 74 |essage "|all quot|
|00005660| 65 73 20 69 6e 20 24 6d | 65 73 73 61 67 65 53 74 |es in $m|essageSt|
|00005670| 72 69 6e 67 20 63 6f 6e | 76 65 72 74 65 64 22 0d |ring con|verted".|
|00005680| 09 7d 20 65 6c 73 65 20 | 7b 0d 09 09 69 66 20 7b |.} else |{...if {|
|00005690| 24 73 65 61 72 63 68 4e | 6f 69 73 69 6c 79 7d 20 |$searchN|oisily} |
|000056a0| 7b 62 65 65 70 7d 0d 09 | 09 6d 65 73 73 61 67 65 |{beep}..|.message|
|000056b0| 20 22 6e 6f 20 71 75 6f | 74 65 73 20 66 6f 75 6e | "no quo|tes foun|
|000056c0| 64 20 69 6e 20 24 6d 65 | 73 73 61 67 65 53 74 72 |d in $me|ssageStr|
|000056d0| 69 6e 67 22 0d 09 7d 0d | 7d 0d 0d 23 20 52 65 74 |ing"..}.|}..# Ret|
|000056e0| 75 72 6e 73 20 74 72 75 | 65 20 69 66 20 74 68 65 |urns tru|e if the|
|000056f0| 20 61 72 67 75 6d 65 6e | 74 20 63 6f 6e 74 61 69 | argumen|t contai|
|00005700| 6e 73 20 6e 6f 6e 2d 6c | 69 74 65 72 61 6c 20 64 |ns non-l|iteral d|
|00005710| 6f 75 62 6c 65 20 64 6f | 6c 6c 61 72 0d 23 20 73 |ouble do|llar.# s|
|00005720| 69 67 6e 73 2c 20 61 6e | 64 20 66 61 6c 73 65 20 |igns, an|d false |
|00005730| 6f 74 68 65 72 77 69 73 | 65 2e 0d 70 72 6f 63 20 |otherwis|e..proc |
|00005740| 63 6f 6e 74 61 69 6e 73 | 44 6f 75 62 6c 65 44 6f |contains|DoubleDo|
|00005750| 6c 6c 61 72 53 69 67 6e | 73 20 7b 74 65 78 74 7d |llarSign|s {text}|
|00005760| 20 7b 0d 09 72 65 74 75 | 72 6e 20 5b 72 65 67 65 | {..retu|rn [rege|
|00005770| 78 70 20 7b 28 5e 7c 5b | 5e 5c 5c 5d 29 5c 24 5c |xp {(^|[|^\\])\$\|
|00005780| 24 7d 20 24 74 65 78 74 | 5d 0d 7d 0d 0d 23 20 43 |$} $text|].}..# C|
|00005790| 6f 6e 76 65 72 74 73 20 | 61 6c 6c 20 24 24 2e 2e |onverts |all $$..|
|000057a0| 2e 24 24 20 70 61 69 72 | 73 20 74 6f 20 5c 5b 2e |.$$ pair|s to \[.|
|000057b0| 2e 2e 5c 5d 20 61 6e 64 | 20 72 65 74 75 72 6e 73 |..\] and| returns|
|000057c0| 20 74 68 65 20 6e 75 6d | 62 65 72 20 6f 66 20 73 | the num|ber of s|
|000057d0| 75 63 68 20 0d 23 20 70 | 61 69 72 73 20 63 6f 6e |uch .# p|airs con|
|000057e0| 76 65 72 74 65 64 2e 20 | 20 49 66 20 74 68 65 20 |verted. | If the |
|000057f0| 64 6f 6c 6c 61 72 20 73 | 69 67 6e 73 20 61 72 65 |dollar s|igns are|
|00005800| 20 75 6e 62 61 6c 61 6e | 63 65 64 2c 20 64 6f 65 | unbalan|ced, doe|
|00005810| 73 20 6e 6f 74 68 69 6e | 67 20 0d 23 20 61 6e 64 |s nothin|g .# and|
|00005820| 20 72 65 74 75 72 6e 73 | 20 2d 31 2e 0d 70 72 6f | returns| -1..pro|
|00005830| 63 20 63 6f 6e 76 65 72 | 74 44 6f 75 62 6c 65 44 |c conver|tDoubleD|
|00005840| 6f 6c 6c 61 72 53 69 67 | 6e 73 20 7b 7d 20 7b 0d |ollarSig|ns {} {.|
|00005850| 09 77 61 74 63 68 43 75 | 72 73 6f 72 0d 09 73 65 |.watchCu|rsor..se|
|00005860| 74 20 6d 65 73 73 61 67 | 65 53 74 72 69 6e 67 20 |t messag|eString |
|00005870| 22 73 65 6c 65 63 74 69 | 6f 6e 22 0d 09 69 66 20 |"selecti|on"..if |
|00005880| 7b 5b 73 65 74 20 73 74 | 61 72 74 20 5b 67 65 74 |{[set st|art [get|
|00005890| 50 6f 73 5d 5d 20 3d 3d | 20 5b 73 65 74 20 65 6e |Pos]] ==| [set en|
|000058a0| 64 20 5b 73 65 6c 45 6e | 64 5d 5d 7d 20 7b 0d 09 |d [selEn|d]]} {..|
|000058b0| 09 73 65 74 20 6d 65 73 | 73 61 67 65 53 74 72 69 |.set mes|sageStri|
|000058c0| 6e 67 20 22 64 6f 63 75 | 6d 65 6e 74 22 0d 09 09 |ng "docu|ment"...|
|000058d0| 73 65 74 20 73 74 61 72 | 74 20 30 0d 09 09 73 65 |set star|t 0...se|
|000058e0| 74 20 65 6e 64 20 5b 6d | 61 78 50 6f 73 5d 0d 09 |t end [m|axPos]..|
|000058f0| 7d 0d 09 73 65 74 20 74 | 65 78 74 20 5b 67 65 74 |}..set t|ext [get|
|00005900| 54 65 78 74 20 24 73 74 | 61 72 74 20 24 65 6e 64 |Text $st|art $end|
|00005910| 5d 0d 09 73 65 74 20 73 | 75 62 73 20 5b 72 65 67 |]..set s|ubs [reg|
|00005920| 73 75 62 20 2d 61 6c 6c | 20 7b 28 5e 7c 5b 5e 5c |sub -all| {(^|[^\|
|00005930| 5c 5d 29 5c 24 5c 24 28 | 5b 5e 24 5d 2a 29 5c 24 |\])\$\$(|[^$]*)\$|
|00005940| 5c 24 7d 20 24 74 65 78 | 74 20 7b 5c 31 5c 5c 5b |\$} $tex|t {\1\\[|
|00005950| 5c 32 5c 5c 5d 7d 20 74 | 65 78 74 5d 0d 09 69 66 |\2\\]} t|ext]..if|
|00005960| 20 7b 5b 63 6f 6e 74 61 | 69 6e 73 44 6f 75 62 6c | {[conta|insDoubl|
|00005970| 65 44 6f 6c 6c 61 72 53 | 69 67 6e 73 20 24 74 65 |eDollarS|igns $te|
|00005980| 78 74 5d 7d 20 74 68 65 | 6e 20 7b 72 65 74 75 72 |xt]} the|n {retur|
|00005990| 6e 20 2d 31 7d 0d 09 69 | 66 20 7b 24 73 75 62 73 |n -1}..i|f {$subs|
|000059a0| 7d 20 74 68 65 6e 20 7b | 0d 09 09 72 65 70 6c 61 |} then {|...repla|
|000059b0| 63 65 54 65 78 74 20 24 | 73 74 61 72 74 20 24 65 |ceText $|start $e|
|000059c0| 6e 64 20 24 74 65 78 74 | 0d 09 7d 0d 09 72 65 74 |nd $text|..}..ret|
|000059d0| 75 72 6e 20 5b 65 78 70 | 72 20 24 73 75 62 73 5d |urn [exp|r $subs]|
|000059e0| 0d 7d 0d 0d 23 20 52 65 | 74 75 72 6e 73 20 74 72 |.}..# Re|turns tr|
|000059f0| 75 65 20 69 66 20 74 68 | 65 20 61 72 67 75 6d 65 |ue if th|e argume|
|00005a00| 6e 74 20 63 6f 6e 74 61 | 69 6e 73 20 61 20 6e 6f |nt conta|ins a no|
|00005a10| 6e 2d 6c 69 74 65 72 61 | 6c 20 64 6f 6c 6c 61 72 |n-litera|l dollar|
|00005a20| 20 73 69 67 6e 2c 0d 23 | 20 61 6e 64 20 66 61 6c | sign,.#| and fal|
|00005a30| 73 65 20 6f 74 68 65 72 | 77 69 73 65 2e 0d 70 72 |se other|wise..pr|
|00005a40| 6f 63 20 63 6f 6e 74 61 | 69 6e 73 53 69 6e 67 6c |oc conta|insSingl|
|00005a50| 65 44 6f 6c 6c 61 72 53 | 69 67 6e 20 7b 74 65 78 |eDollarS|ign {tex|
|00005a60| 74 7d 20 7b 0d 09 72 65 | 74 75 72 6e 20 5b 72 65 |t} {..re|turn [re|
|00005a70| 67 65 78 70 20 7b 28 5e | 7c 5b 5e 5c 5c 5d 29 5c |gexp {(^||[^\\])\|
|00005a80| 24 7d 20 24 74 65 78 74 | 5d 0d 7d 0d 0d 23 20 43 |$} $text|].}..# C|
|00005a90| 6f 6e 76 65 72 74 73 20 | 61 6c 6c 20 24 2e 2e 2e |onverts |all $...|
|00005aa0| 24 20 70 61 69 72 73 20 | 74 6f 20 5c 28 2e 2e 2e |$ pairs |to \(...|
|00005ab0| 5c 29 2c 20 6d 61 69 6e | 74 61 69 6e 73 20 74 68 |\), main|tains th|
|00005ac0| 65 20 63 75 72 73 6f 72 | 20 70 6f 73 69 74 69 6f |e cursor| positio|
|00005ad0| 6e 2c 20 0d 23 20 61 6e | 64 20 72 65 74 75 72 6e |n, .# an|d return|
|00005ae0| 73 20 74 68 65 20 6e 75 | 6d 62 65 72 20 6f 66 20 |s the nu|mber of |
|00005af0| 73 75 63 68 20 70 61 69 | 72 73 20 63 6f 6e 76 65 |such pai|rs conve|
|00005b00| 72 74 65 64 2e 20 20 49 | 66 20 74 68 65 20 64 6f |rted. I|f the do|
|00005b10| 6c 6c 61 72 20 73 69 67 | 6e 73 20 0d 23 20 61 72 |llar sig|ns .# ar|
|00005b20| 65 20 75 6e 62 61 6c 61 | 6e 63 65 64 2c 20 64 6f |e unbala|nced, do|
|00005b30| 65 73 20 6e 6f 74 68 69 | 6e 67 20 61 6e 64 20 72 |es nothi|ng and r|
|00005b40| 65 74 75 72 6e 73 20 2d | 31 2e 0d 70 72 6f 63 20 |eturns -|1..proc |
|00005b50| 63 6f 6e 76 65 72 74 53 | 69 6e 67 6c 65 44 6f 6c |convertS|ingleDol|
|00005b60| 6c 61 72 53 69 67 6e 73 | 20 7b 7d 20 7b 0d 09 77 |larSigns| {} {..w|
|00005b70| 61 74 63 68 43 75 72 73 | 6f 72 0d 09 73 65 74 20 |atchCurs|or..set |
|00005b80| 73 75 62 73 31 20 30 3b | 20 73 65 74 20 73 75 62 |subs1 0;| set sub|
|00005b90| 73 32 20 30 3b 20 73 65 | 74 20 73 75 62 73 33 20 |s2 0; se|t subs3 |
|00005ba0| 30 0d 09 73 65 74 20 70 | 6f 73 20 5b 67 65 74 50 |0..set p|os [getP|
|00005bb0| 6f 73 5d 3b 20 73 65 74 | 20 70 6f 73 32 20 24 70 |os]; set| pos2 $p|
|00005bc0| 6f 73 0d 09 69 66 20 7b | 5b 73 65 74 20 73 74 61 |os..if {|[set sta|
|00005bd0| 72 74 20 24 70 6f 73 5d | 20 3d 3d 20 5b 73 65 74 |rt $pos]| == [set|
|00005be0| 20 65 6e 64 20 5b 73 65 | 6c 45 6e 64 5d 5d 7d 20 | end [se|lEnd]]} |
|00005bf0| 7b 0d 09 09 73 65 74 20 | 69 73 53 65 6c 65 63 74 |{...set |isSelect|
|00005c00| 69 6f 6e 20 30 0d 09 09 | 73 65 74 20 73 74 61 72 |ion 0...|set star|
|00005c10| 74 20 30 0d 09 09 73 65 | 74 20 65 6e 64 20 5b 6d |t 0...se|t end [m|
|00005c20| 61 78 50 6f 73 5d 0d 09 | 09 73 65 74 20 74 65 78 |axPos]..|.set tex|
|00005c30| 74 31 20 5b 67 65 74 54 | 65 78 74 20 24 73 74 61 |t1 [getT|ext $sta|
|00005c40| 72 74 20 24 70 6f 73 5d | 0d 09 09 73 65 74 20 73 |rt $pos]|...set s|
|00005c50| 75 62 73 31 20 5b 72 65 | 67 73 75 62 20 2d 61 6c |ubs1 [re|gsub -al|
|00005c60| 6c 20 7b 28 5e 7c 5b 5e | 5c 5c 5d 29 5c 24 28 5b |l {(^|[^|\\])\$([|
|00005c70| 5e 24 5d 2a 29 5c 24 7d | 20 24 74 65 78 74 31 20 |^$]*)\$}| $text1 |
|00005c80| 7b 5c 31 5c 5c 28 5c 32 | 5c 5c 29 7d 20 74 65 78 |{\1\\(\2|\\)} tex|
|00005c90| 74 31 5d 0d 09 09 23 20 | 49 73 20 74 68 65 72 65 |t1]...# |Is there|
|00005ca0| 20 61 20 64 6f 6c 6c 61 | 72 20 73 69 67 6e 20 6c | a dolla|r sign l|
|00005cb0| 65 66 74 20 6f 76 65 72 | 3f 20 20 49 66 20 73 6f |eft over|? If so|
|00005cc0| 2c 20 73 65 61 72 63 68 | 20 62 61 63 6b 77 61 72 |, search| backwar|
|00005cd0| 64 20 66 6f 72 20 74 68 | 69 73 0d 09 09 23 20 64 |d for th|is...# d|
|00005ce0| 6f 6c 6c 61 72 20 73 69 | 67 6e 20 61 6e 64 20 70 |ollar si|gn and p|
|00005cf0| 72 65 70 61 72 65 20 74 | 6f 20 64 6f 20 61 20 73 |repare t|o do a s|
|00005d00| 75 62 73 74 69 74 75 74 | 69 6f 6e 20 6f 6e 20 74 |ubstitut|ion on t|
|00005d10| 68 65 20 74 65 78 74 20 | 74 6f 20 74 68 65 20 72 |he text |to the r|
|00005d20| 69 67 68 74 0d 09 09 23 | 20 6f 66 20 74 68 69 73 |ight...#| of this|
|00005d30| 20 64 6f 6c 6c 61 72 20 | 73 69 67 6e 2e 0d 09 09 | dollar |sign....|
|00005d40| 69 66 20 7b 5b 63 6f 6e | 74 61 69 6e 73 53 69 6e |if {[con|tainsSin|
|00005d50| 67 6c 65 44 6f 6c 6c 61 | 72 53 69 67 6e 20 24 74 |gleDolla|rSign $t|
|00005d60| 65 78 74 31 5d 7d 20 74 | 68 65 6e 20 7b 0d 09 09 |ext1]} t|hen {...|
|00005d70| 09 73 65 74 20 73 65 61 | 72 63 68 53 74 72 69 6e |.set sea|rchStrin|
|00005d80| 67 20 7b 5b 5e 5c 5c 5d | 5c 24 7d 0d 09 09 09 73 |g {[^\\]|\$}....s|
|00005d90| 65 74 20 73 65 61 72 63 | 68 52 65 73 75 6c 74 20 |et searc|hResult |
|00005da0| 5b 73 65 61 72 63 68 20 | 2d 73 20 2d 6e 20 2d 66 |[search |-s -n -f|
|00005db0| 20 30 20 2d 6d 20 30 20 | 2d 69 20 31 20 2d 72 20 | 0 -m 0 |-i 1 -r |
|00005dc0| 31 20 24 73 65 61 72 63 | 68 53 74 72 69 6e 67 20 |1 $searc|hString |
|00005dd0| 5b 65 78 70 72 20 24 70 | 6f 73 2d 31 5d 5d 0d 09 |[expr $p|os-1]]..|
|00005de0| 09 09 73 65 74 20 70 6f | 73 32 20 5b 6c 69 6e 64 |..set po|s2 [lind|
|00005df0| 65 78 20 24 73 65 61 72 | 63 68 52 65 73 75 6c 74 |ex $sear|chResult|
|00005e00| 20 30 5d 0d 09 09 09 73 | 65 74 20 74 65 78 74 31 | 0]....s|et text1|
|00005e10| 20 5b 73 74 72 69 6e 67 | 20 72 61 6e 67 65 20 24 | [string| range $|
|00005e20| 74 65 78 74 31 20 30 20 | 5b 65 78 70 72 20 24 70 |text1 0 |[expr $p|
|00005e30| 6f 73 32 20 2b 20 28 32 | 20 2a 20 24 73 75 62 73 |os2 + (2| * $subs|
|00005e40| 31 29 5d 5d 0d 09 09 09 | 73 65 74 20 70 6f 73 20 |1)]]....|set pos |
|00005e50| 5b 65 78 70 72 20 24 70 | 6f 73 20 2b 20 32 5d 0d |[expr $p|os + 2].|
|00005e60| 09 09 7d 0d 09 09 73 65 | 74 20 74 65 78 74 32 20 |..}...se|t text2 |
|00005e70| 5b 67 65 74 54 65 78 74 | 20 24 70 6f 73 32 20 24 |[getText| $pos2 $|
|00005e80| 65 6e 64 5d 0d 09 09 73 | 65 74 20 73 75 62 73 32 |end]...s|et subs2|
|00005e90| 20 5b 72 65 67 73 75 62 | 20 2d 61 6c 6c 20 7b 28 | [regsub| -all {(|
|00005ea0| 5e 7c 5b 5e 5c 5c 5d 29 | 5c 24 28 5b 5e 24 5d 2a |^|[^\\])|\$([^$]*|
|00005eb0| 29 5c 24 7d 20 24 74 65 | 78 74 32 20 7b 5c 31 5c |)\$} $te|xt2 {\1\|
|00005ec0| 5c 28 5c 32 5c 5c 29 7d | 20 74 65 78 74 32 5d 0d |\(\2\\)}| text2].|
|00005ed0| 09 09 23 20 49 73 20 74 | 68 65 72 65 20 61 20 64 |..# Is t|here a d|
|00005ee0| 6f 6c 6c 61 72 20 73 69 | 67 6e 20 6c 65 66 74 20 |ollar si|gn left |
|00005ef0| 6f 76 65 72 3f 20 20 49 | 66 20 73 6f 2c 20 69 74 |over? I|f so, it|
|00005f00| 27 73 20 75 6e 62 61 6c | 61 6e 63 65 64 2e 0d 09 |'s unbal|anced...|
|00005f10| 09 69 66 20 7b 5b 63 6f | 6e 74 61 69 6e 73 53 69 |.if {[co|ntainsSi|
|00005f20| 6e 67 6c 65 44 6f 6c 6c | 61 72 53 69 67 6e 20 24 |ngleDoll|arSign $|
|00005f30| 74 65 78 74 32 5d 7d 20 | 74 68 65 6e 20 7b 72 65 |text2]} |then {re|
|00005f40| 74 75 72 6e 20 2d 31 7d | 0d 09 09 61 70 70 65 6e |turn -1}|...appen|
|00005f50| 64 20 74 65 78 74 20 24 | 74 65 78 74 31 20 24 74 |d text $|text1 $t|
|00005f60| 65 78 74 32 0d 09 7d 20 | 65 6c 73 65 20 7b 0d 09 |ext2..} |else {..|
|00005f70| 09 73 65 74 20 69 73 53 | 65 6c 65 63 74 69 6f 6e |.set isS|election|
|00005f80| 20 31 0d 09 09 73 65 74 | 20 74 65 78 74 20 5b 67 | 1...set| text [g|
|00005f90| 65 74 54 65 78 74 20 24 | 73 74 61 72 74 20 24 65 |etText $|start $e|
|00005fa0| 6e 64 5d 0d 09 09 73 65 | 74 20 73 75 62 73 33 20 |nd]...se|t subs3 |
|00005fb0| 5b 72 65 67 73 75 62 20 | 2d 61 6c 6c 20 7b 28 5e |[regsub |-all {(^|
|00005fc0| 7c 5b 5e 5c 5c 5d 29 5c | 24 28 5b 5e 24 5d 2a 29 ||[^\\])\|$([^$]*)|
|00005fd0| 5c 24 7d 20 24 74 65 78 | 74 20 7b 5c 31 5c 5c 28 |\$} $tex|t {\1\\(|
|00005fe0| 5c 32 5c 5c 29 7d 20 74 | 65 78 74 5d 0d 09 09 23 |\2\\)} t|ext]...#|
|00005ff0| 20 49 73 20 74 68 65 72 | 65 20 61 20 64 6f 6c 6c | Is ther|e a doll|
|00006000| 61 72 20 73 69 67 6e 20 | 6c 65 66 74 20 6f 76 65 |ar sign |left ove|
|00006010| 72 3f 20 20 49 66 20 73 | 6f 2c 20 69 74 27 73 20 |r? If s|o, it's |
|00006020| 75 6e 62 61 6c 61 6e 63 | 65 64 2e 0d 09 09 69 66 |unbalanc|ed....if|
|00006030| 20 7b 5b 63 6f 6e 74 61 | 69 6e 73 53 69 6e 67 6c | {[conta|insSingl|
|00006040| 65 44 6f 6c 6c 61 72 53 | 69 67 6e 20 24 74 65 78 |eDollarS|ign $tex|
|00006050| 74 5d 7d 20 74 68 65 6e | 20 7b 72 65 74 75 72 6e |t]} then| {return|
|00006060| 20 2d 31 7d 0d 09 7d 0d | 09 69 66 20 7b 24 73 75 | -1}..}.|.if {$su|
|00006070| 62 73 31 20 7c 7c 20 24 | 73 75 62 73 32 20 7c 7c |bs1 || $|subs2 |||
|00006080| 20 24 73 75 62 73 33 7d | 20 74 68 65 6e 20 7b 0d | $subs3}| then {.|
|00006090| 09 09 72 65 70 6c 61 63 | 65 54 65 78 74 20 24 73 |..replac|eText $s|
|000060a0| 74 61 72 74 20 24 65 6e | 64 20 24 74 65 78 74 0d |tart $en|d $text.|
|000060b0| 09 09 23 20 49 66 20 74 | 68 65 72 65 20 69 73 20 |..# If t|here is |
|000060c0| 61 20 73 65 6c 65 63 74 | 69 6f 6e 2c 20 6a 75 73 |a select|ion, jus|
|000060d0| 74 20 70 75 74 20 69 74 | 20 62 61 63 6b 2e 20 20 |t put it| back. |
|000060e0| 4f 74 68 65 72 77 69 73 | 65 2c 20 61 64 6a 75 73 |Otherwis|e, adjus|
|000060f0| 74 20 74 68 65 0d 09 09 | 23 20 63 75 72 73 6f 72 |t the...|# cursor|
|00006100| 20 70 6f 73 69 74 69 6f | 6e 20 62 61 73 65 64 20 | positio|n based |
|00006110| 6f 6e 20 74 68 65 20 6e | 75 6d 62 65 72 20 6f 66 |on the n|umber of|
|00006120| 20 73 75 62 73 74 69 74 | 75 74 69 6f 6e 73 2e 0d | substit|utions..|
|00006130| 09 09 69 66 20 7b 24 69 | 73 53 65 6c 65 63 74 69 |..if {$i|sSelecti|
|00006140| 6f 6e 7d 20 74 68 65 6e | 20 7b 0d 09 09 09 73 65 |on} then| {....se|
|00006150| 74 20 65 6e 64 20 5b 67 | 65 74 50 6f 73 5d 0d 09 |t end [g|etPos]..|
|00006160| 09 09 73 65 6c 65 63 74 | 20 24 73 74 61 72 74 20 |..select| $start |
|00006170| 24 65 6e 64 0d 09 09 7d | 20 65 6c 73 65 20 7b 0d |$end...}| else {.|
|00006180| 09 09 09 67 6f 74 6f 20 | 5b 65 78 70 72 20 24 70 |...goto |[expr $p|
|00006190| 6f 73 20 2b 20 28 32 20 | 2a 20 24 73 75 62 73 31 |os + (2 |* $subs1|
|000061a0| 29 5d 0d 09 09 7d 0d 09 | 7d 0d 09 72 65 74 75 72 |)]...}..|}..retur|
|000061b0| 6e 20 5b 65 78 70 72 20 | 24 73 75 62 73 31 20 2b |n [expr |$subs1 +|
|000061c0| 20 24 73 75 62 73 32 20 | 2b 20 24 73 75 62 73 33 | $subs2 |+ $subs3|
|000061d0| 5d 0d 7d 0d 0d 70 72 6f | 63 20 63 6f 6e 76 65 72 |].}..pro|c conver|
|000061e0| 74 44 6f 6c 6c 61 72 53 | 69 67 6e 73 20 7b 7d 20 |tDollarS|igns {} |
|000061f0| 7b 0d 09 67 6c 6f 62 61 | 6c 20 73 65 61 72 63 68 |{..globa|l search|
|00006200| 4e 6f 69 73 69 6c 79 0d | 09 69 66 20 7b 5b 69 73 |Noisily.|.if {[is|
|00006210| 53 65 6c 65 63 74 69 6f | 6e 5d 7d 20 74 68 65 6e |Selectio|n]} then|
|00006220| 20 7b 0d 09 09 73 65 74 | 20 6d 65 73 73 61 67 65 | {...set| message|
|00006230| 53 74 72 69 6e 67 20 22 | 73 65 6c 65 63 74 69 6f |String "|selectio|
|00006240| 6e 22 0d 09 7d 20 65 6c | 73 65 20 7b 0d 09 09 73 |n"..} el|se {...s|
|00006250| 65 74 20 6d 65 73 73 61 | 67 65 53 74 72 69 6e 67 |et messa|geString|
|00006260| 20 22 64 6f 63 75 6d 65 | 6e 74 22 0d 09 7d 0d 09 | "docume|nt"..}..|
|00006270| 73 65 74 20 73 75 62 73 | 32 20 5b 63 6f 6e 76 65 |set subs|2 [conve|
|00006280| 72 74 44 6f 75 62 6c 65 | 44 6f 6c 6c 61 72 53 69 |rtDouble|DollarSi|
|00006290| 67 6e 73 5d 0d 09 69 66 | 20 7b 24 73 75 62 73 32 |gns]..if| {$subs2|
|000062a0| 20 3d 3d 20 2d 31 7d 20 | 74 68 65 6e 20 7b 0d 09 | == -1} |then {..|
|000062b0| 09 62 65 65 70 0d 09 09 | 61 6c 65 72 74 6e 6f 74 |.beep...|alertnot|
|000062c0| 65 20 22 75 6e 6d 61 74 | 63 68 65 64 20 64 6f 75 |e "unmat|ched dou|
|000062d0| 62 6c 65 20 64 6f 6c 6c | 61 72 20 73 69 67 6e 73 |ble doll|ar signs|
|000062e0| 20 69 6e 20 24 6d 65 73 | 73 61 67 65 53 74 72 69 | in $mes|sageStri|
|000062f0| 6e 67 22 0d 09 7d 20 65 | 6c 73 65 20 7b 0d 09 09 |ng"..} e|lse {...|
|00006300| 73 65 74 20 73 75 62 73 | 31 20 5b 63 6f 6e 76 65 |set subs|1 [conve|
|00006310| 72 74 53 69 6e 67 6c 65 | 44 6f 6c 6c 61 72 53 69 |rtSingle|DollarSi|
|00006320| 67 6e 73 5d 0d 09 09 69 | 66 20 7b 24 73 75 62 73 |gns]...i|f {$subs|
|00006330| 31 20 3d 3d 20 2d 31 7d | 20 74 68 65 6e 20 7b 0d |1 == -1}| then {.|
|00006340| 09 09 09 62 65 65 70 0d | 09 09 09 61 6c 65 72 74 |...beep.|...alert|
|00006350| 6e 6f 74 65 20 22 75 6e | 6d 61 74 63 68 65 64 20 |note "un|matched |
|00006360| 73 69 6e 67 6c 65 20 64 | 6f 6c 6c 61 72 20 73 69 |single d|ollar si|
|00006370| 67 6e 20 69 6e 20 24 6d | 65 73 73 61 67 65 53 74 |gn in $m|essageSt|
|00006380| 72 69 6e 67 22 0d 09 09 | 7d 20 65 6c 73 65 69 66 |ring"...|} elseif|
|00006390| 20 7b 24 73 75 62 73 31 | 20 3d 3d 20 30 20 26 26 | {$subs1| == 0 &&|
|000063a0| 20 24 73 75 62 73 32 20 | 3d 3d 20 30 7d 20 74 68 | $subs2 |== 0} th|
|000063b0| 65 6e 20 7b 0d 09 09 09 | 69 66 20 7b 24 73 65 61 |en {....|if {$sea|
|000063c0| 72 63 68 4e 6f 69 73 69 | 6c 79 7d 20 7b 62 65 65 |rchNoisi|ly} {bee|
|000063d0| 70 7d 0d 09 09 09 6d 65 | 73 73 61 67 65 20 22 6e |p}....me|ssage "n|
|000063e0| 6f 20 64 6f 6c 6c 61 72 | 20 73 69 67 6e 73 20 66 |o dollar| signs f|
|000063f0| 6f 75 6e 64 20 69 6e 20 | 24 6d 65 73 73 61 67 65 |ound in |$message|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.