home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1994-09-19 | 30.5 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).
Confidence | Program | Detection | Match Type | Support
|
---|
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Mon Sep 19 17:34:45 1994, modified Mon Sep 19 17:34:45 1994, creator Alpha editor, type ASCII, 29966 bytes "bibtex.tcl" , at 0x758e 1016 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 |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [ALFA] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0a 62 69 62 74 65 78 | 2e 74 63 6c 00 00 00 00 |..bibtex|.tcl....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 41 4c 46 | 41 01 00 00 00 00 00 00 |.TEXTALF|A.......|
|00000050| 00 00 00 00 00 75 0e 00 | 00 03 f8 aa a3 b4 75 aa |.....u..|......u.|
|00000060| a3 b4 75 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..u.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 20 91 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 0d 23 20 62 69 |########|###.# bi|
|000000d0| 62 74 65 78 2e 74 63 6c | 0d 23 20 0d 23 20 54 68 |btex.tcl|.# .# Th|
|000000e0| 69 73 20 66 69 6c 65 20 | 63 6f 6e 74 61 69 6e 73 |is file |contains|
|000000f0| 20 61 20 70 61 63 6b 61 | 67 65 20 6f 66 20 54 63 | a packa|ge of Tc|
|00000100| 6c 20 72 6f 75 74 69 6e | 65 73 20 74 68 61 74 20 |l routin|es that |
|00000110| 61 64 64 20 73 75 70 70 | 6f 72 74 20 66 6f 72 20 |add supp|ort for |
|00000120| 75 73 69 6e 67 0d 23 20 | 61 6e 64 20 6d 61 69 6e |using.# |and main|
|00000130| 74 61 69 6e 69 6e 67 20 | 42 69 62 54 65 58 20 63 |taining |BibTeX c|
|00000140| 69 74 61 74 69 6f 6e 20 | 64 61 74 61 62 61 73 65 |itation |database|
|00000150| 73 20 74 6f 20 41 6c 70 | 68 61 2e 20 0d 23 0d 23 |s to Alp|ha. .#.#|
|00000160| 20 53 65 65 20 74 68 65 | 20 61 63 63 6f 6d 70 61 | See the| accompa|
|00000170| 6e 79 69 6e 67 20 66 69 | 6c 65 2c 20 22 42 69 62 |nying fi|le, "Bib|
|00000180| 54 65 58 20 48 65 6c 70 | 22 2c 20 66 6f 72 20 61 |TeX Help|", for a|
|00000190| 20 63 6f 6d 70 6c 65 74 | 65 20 64 65 73 63 72 69 | complet|e descri|
|000001a0| 70 74 69 6f 6e 2e 0d 23 | 20 0d 23 23 23 23 23 23 |ption..#| .######|
|000001b0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000001c0| 23 23 23 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 0d 23 20 | 4e 6f 74 65 73 3a 20 0d |#####.# |Notes: .|
|00000200| 23 20 0d 23 20 42 79 20 | 64 65 66 61 75 6c 74 2c |# .# By |default,|
|00000210| 20 6f 6e 6c 79 20 74 68 | 65 20 72 65 71 75 69 72 | only th|e requir|
|00000220| 65 64 20 66 69 65 6c 64 | 73 20 61 72 65 20 69 6e |ed field|s are in|
|00000230| 63 6c 75 64 65 64 20 77 | 68 65 6e 20 61 20 6e 65 |cluded w|hen a ne|
|00000240| 77 20 62 69 62 20 65 6e | 74 72 79 20 0d 23 20 69 |w bib en|try .# i|
|00000250| 73 20 63 72 65 61 74 65 | 64 2e 20 20 59 6f 75 20 |s create|d. You |
|00000260| 63 61 6e 20 73 65 6c 65 | 63 74 20 61 6e 79 20 6f |can sele|ct any o|
|00000270| 74 68 65 72 20 73 65 74 | 20 6f 66 20 66 69 65 6c |ther set| of fiel|
|00000280| 64 73 20 74 6f 20 62 65 | 20 75 73 65 64 20 62 79 |ds to be| used by|
|00000290| 20 61 64 64 69 6e 67 20 | 0d 23 20 61 6e 20 61 70 | adding |.# an ap|
|000002a0| 70 72 6f 70 72 69 61 74 | 65 20 65 6e 74 72 79 20 |propriat|e entry |
|000002b0| 74 6f 20 74 68 65 20 27 | 6d 79 46 6c 64 27 20 61 |to the '|myFld' a|
|000002c0| 72 72 61 79 2c 20 66 6f | 6c 6c 6f 77 69 6e 67 20 |rray, fo|llowing |
|000002d0| 74 68 65 20 65 78 61 6d | 70 6c 65 20 66 6f 72 20 |the exam|ple for |
|000002e0| 74 68 65 20 0d 23 20 41 | 72 74 69 63 6c 65 20 65 |the .# A|rticle e|
|000002f0| 6e 74 72 79 2c 20 66 75 | 72 74 68 65 72 20 62 65 |ntry, fu|rther be|
|00000300| 6c 6f 77 2e 20 20 59 6f | 75 20 73 68 6f 75 6c 64 |low. Yo|u should|
|00000310| 6e 27 74 20 63 68 61 6e | 67 65 20 74 68 65 20 27 |n't chan|ge the '|
|00000320| 72 71 64 46 6c 64 27 20 | 6f 72 20 0d 23 20 27 6f |rqdFld' |or .# 'o|
|00000330| 70 74 46 6c 64 27 20 61 | 72 72 61 79 73 2c 20 73 |ptFld' a|rrays, s|
|00000340| 69 6e 63 65 20 74 68 65 | 73 65 20 77 69 6c 6c 20 |ince the|se will |
|00000350| 28 73 6f 6d 65 20 64 61 | 79 29 20 62 65 20 75 73 |(some da|y) be us|
|00000360| 65 64 20 66 6f 72 20 73 | 79 6e 74 61 78 20 63 68 |ed for s|yntax ch|
|00000370| 65 63 6b 69 6e 67 2e 0d | 23 20 0d 23 23 23 23 23 |ecking..|# .#####|
|00000380| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000390| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000003a0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000003b0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000003c0| 23 23 23 23 23 23 0d 23 | 20 77 72 69 74 74 65 6e |######.#| written|
|000003d0| 20 62 79 20 54 6f 6d 20 | 50 6f 6c 6c 61 72 64 20 | by Tom |Pollard |
|000003e0| 28 70 6f 6c 6c 61 72 64 | 40 63 75 63 62 73 2e 63 |(pollard|@cucbs.c|
|000003f0| 68 65 6d 2e 63 6f 6c 75 | 6d 62 69 61 2e 65 64 75 |hem.colu|mbia.edu|
|00000400| 29 0d 23 0d 23 20 56 65 | 72 73 69 6f 6e 20 48 69 |).#.# Ve|rsion Hi|
|00000410| 73 74 6f 72 79 0d 23 0d | 23 20 31 2e 39 20 28 39 |story.#.|# 1.9 (9|
|00000420| 2f 39 34 29 20 20 20 20 | 27 67 65 74 46 69 65 6c |/94) |'getFiel|
|00000430| 64 73 27 20 73 68 6f 75 | 6c 64 20 6e 6f 77 20 63 |ds' shou|ld now c|
|00000440| 6f 72 72 65 63 74 6c 79 | 20 70 61 72 73 65 20 61 |orrectly| parse a|
|00000450| 6e 79 20 6c 65 67 61 6c | 20 65 6e 74 72 79 2e 0d |ny legal| entry..|
|00000460| 23 09 09 09 09 27 6c 61 | 6e 67 75 61 67 65 27 20 |#....'la|nguage' |
|00000470| 66 69 65 6c 64 20 6e 6f | 77 20 69 6e 63 6c 75 64 |field no|w includ|
|00000480| 65 64 2e 0d 23 09 09 09 | 09 44 65 66 61 75 6c 74 |ed..#...|.Default|
|00000490| 20 76 61 6c 75 65 73 20 | 66 6f 72 20 6e 65 77 20 | values |for new |
|000004a0| 66 69 65 6c 64 73 20 28 | 65 67 20 27 6c 61 6e 67 |fields (|eg 'lang|
|000004b0| 75 61 67 65 27 29 20 6d | 61 79 20 62 65 20 64 65 |uage') m|ay be de|
|000004c0| 66 69 6e 65 64 0d 23 09 | 09 09 09 27 70 72 65 66 |fined.#.|...'pref|
|000004d0| 65 72 42 72 61 63 65 73 | 27 20 72 65 70 6c 61 63 |erBraces|' replac|
|000004e0| 65 64 20 62 79 20 27 66 | 69 65 6c 64 42 72 61 63 |ed by 'f|ieldBrac|
|000004f0| 65 73 27 20 61 6e 64 20 | 27 65 6e 74 72 79 42 72 |es' and |'entryBr|
|00000500| 61 63 65 73 27 2e 0d 23 | 09 09 09 09 6c 69 6e 65 |aces'..#|....line|
|00000510| 2d 77 72 61 70 70 69 6e | 67 20 69 73 20 64 6f 6e |-wrappin|g is don|
|00000520| 65 20 6f 6e 20 72 65 66 | 6f 72 6d 61 74 74 65 64 |e on ref|ormatted|
|00000530| 20 65 6e 74 72 69 65 73 | 2e 0d 23 09 09 09 09 27 | entries|..#....'|
|00000540| 40 73 74 72 69 6e 67 27 | 20 65 6e 74 72 69 65 73 |@string'| entries|
|00000550| 20 70 72 65 73 65 72 76 | 65 64 20 69 6e 20 73 6f | preserv|ed in so|
|00000560| 72 74 73 2e 0d 23 09 09 | 09 09 74 65 78 74 20 62 |rts..#..|..text b|
|00000570| 65 66 6f 72 65 20 66 69 | 72 73 74 20 65 6e 74 72 |efore fi|rst entr|
|00000580| 79 20 61 6e 64 20 61 66 | 74 65 72 20 6c 61 73 74 |y and af|ter last|
|00000590| 20 65 6e 74 72 79 20 61 | 72 65 20 70 72 65 73 65 | entry a|re prese|
|000005a0| 72 76 65 64 0d 23 09 09 | 09 09 09 62 79 20 73 6f |rved.#..|...by so|
|000005b0| 72 74 73 2e 0d 23 20 31 | 2e 38 20 28 38 2f 39 34 |rts..# 1|.8 (8/94|
|000005c0| 29 20 20 20 20 22 67 65 | 74 45 6e 74 72 79 22 20 |) "ge|tEntry" |
|000005d0| 6e 6f 77 20 72 65 63 6f | 67 6e 69 7a 65 73 20 70 |now reco|gnizes p|
|000005e0| 61 72 65 6e 73 20 61 73 | 20 65 6e 74 72 79 20 64 |arens as| entry d|
|000005f0| 65 6c 69 6d 69 74 65 72 | 73 0d 23 20 31 2e 37 20 |elimiter|s.# 1.7 |
|00000600| 28 38 2f 39 34 29 20 20 | 20 20 42 75 67 20 66 69 |(8/94) | Bug fi|
|00000610| 78 65 73 20 61 6e 64 20 | 61 63 63 6f 6d 6f 64 61 |xes and |accomoda|
|00000620| 74 69 6f 6e 73 20 74 6f | 20 6c 61 74 65 78 2e 74 |tions to| latex.t|
|00000630| 63 6c 20 76 32 2e 32 0d | 23 20 20 20 20 20 20 20 |cl v2.2.|# |
|00000640| 20 20 20 20 20 20 20 20 | 54 65 6d 70 6c 61 74 65 | |Template|
|00000650| 20 69 6e 73 65 72 74 69 | 6f 6e 20 73 74 72 65 61 | inserti|on strea|
|00000660| 6d 6c 69 6e 65 64 0d 23 | 09 09 09 09 43 68 6f 6f |mlined.#|....Choo|
|00000670| 73 65 20 6d 75 6c 74 69 | 70 6c 65 20 66 69 65 6c |se multi|ple fiel|
|00000680| 64 73 20 61 74 20 61 20 | 74 69 6d 65 20 66 72 6f |ds at a |time fro|
|00000690| 6d 20 6c 69 73 74 20 64 | 69 61 6c 6f 67 0d 23 20 |m list d|ialog.# |
|000006a0| 31 2e 36 20 28 38 2f 39 | 34 29 20 20 20 20 22 70 |1.6 (8/9|4) "p|
|000006b0| 72 65 66 65 72 42 72 61 | 63 65 73 22 20 61 6c 6c |referBra|ces" all|
|000006c0| 6f 77 73 20 62 72 61 63 | 65 73 20 6f 72 20 71 75 |ows brac|es or qu|
|000006d0| 6f 74 65 73 20 74 6f 20 | 62 65 20 64 65 66 61 75 |otes to |be defau|
|000006e0| 6c 74 20 66 6f 72 0d 23 | 20 20 20 20 20 20 20 20 |lt for.#| |
|000006f0| 20 20 20 20 20 20 20 20 | 20 20 20 6e 65 77 20 6f | | new o|
|00000700| 72 20 72 65 66 6f 72 6d | 61 74 74 65 64 20 65 6e |r reform|atted en|
|00000710| 74 72 69 65 73 2c 0d 23 | 20 20 20 20 20 20 20 20 |tries,.#| |
|00000720| 20 20 20 20 20 20 20 4d | 65 6e 75 20 62 75 69 6c | M|enu buil|
|00000730| 74 20 75 73 69 6e 67 20 | 24 65 6e 74 72 79 4e 61 |t using |$entryNa|
|00000740| 6d 65 73 20 61 6e 64 20 | 24 66 69 65 6c 64 4e 61 |mes and |$fieldNa|
|00000750| 6d 65 73 2c 0d 23 20 20 | 20 20 20 20 20 20 20 20 |mes,.# | |
|00000760| 20 20 20 20 20 27 73 6f | 72 74 42 79 41 75 74 68 | 'so|rtByAuth|
|00000770| 6f 72 73 27 20 63 61 6e | 20 6e 6f 77 20 73 6f 72 |ors' can| now sor|
|00000780| 74 20 75 73 69 6e 67 20 | 6c 61 73 74 20 61 75 74 |t using |last aut|
|00000790| 68 6f 72 20 66 69 72 73 | 74 2c 0d 23 20 20 20 20 |hor firs|t,.# |
|000007a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 61 | | a|
|000007b0| 6e 64 20 69 73 20 61 20 | 62 69 74 20 66 61 73 74 |nd is a |bit fast|
|000007c0| 65 72 2c 0d 23 20 20 20 | 20 20 20 20 20 20 20 20 |er,.# | |
|000007d0| 20 20 20 20 27 66 6f 72 | 6d 61 74 45 6e 74 72 79 | 'for|matEntry|
|000007e0| 27 20 72 65 77 72 69 74 | 65 73 20 65 6e 74 72 69 |' rewrit|es entri|
|000007f0| 65 73 20 69 6e 20 63 61 | 6e 6f 6e 69 63 61 6c 20 |es in ca|nonical |
|00000800| 66 6f 72 6d 61 74 2c 0d | 23 20 20 20 20 20 20 20 |format,.|# |
|00000810| 20 20 20 20 20 20 20 20 | 4d 6f 72 65 20 63 75 73 | |More cus|
|00000820| 74 6f 6d 69 7a 61 74 69 | 6f 6e 20 6f 66 20 63 61 |tomizati|on of ca|
|00000830| 6e 6f 6e 69 63 61 6c 20 | 66 6f 72 6d 61 74 20 61 |nonical |format a|
|00000840| 6c 6c 6f 77 65 64 20 28 | 27 69 6e 64 65 6e 74 53 |llowed (|'indentS|
|00000850| 74 72 69 6e 67 27 29 0d | 23 20 20 20 20 20 20 20 |tring').|# |
|00000860| 20 20 20 20 20 20 20 20 | 42 69 62 20 6d 6f 64 65 | |Bib mode|
|00000870| 20 64 65 66 69 6e 69 74 | 69 6f 6e 20 61 64 61 70 | definit|ion adap|
|00000880| 74 65 64 20 74 6f 20 41 | 6c 70 68 61 20 35 2e 39 |ted to A|lpha 5.9|
|00000890| 30 2e 0d 23 20 31 2e 35 | 20 28 37 2f 39 34 29 20 |0..# 1.5| (7/94) |
|000008a0| 20 20 20 22 73 6f 72 74 | 42 79 41 75 74 68 6f 72 | "sort|ByAuthor|
|000008b0| 73 22 20 69 73 20 6e 6f | 77 20 72 6f 62 75 73 74 |s" is no|w robust|
|000008c0| 20 28 49 20 74 68 69 6e | 6b 29 2c 0d 23 20 20 20 | (I thin|k),.# |
|000008d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 4d 6f 64 65 | | Mode|
|000008e0| 20 6f 66 20 6e 65 77 20 | 77 69 6e 64 6f 77 73 20 | of new |windows |
|000008f0| 6e 6f 77 20 73 65 74 20 | 63 6f 72 72 65 63 74 6c |now set |correctl|
|00000900| 79 2e 0d 23 20 31 2e 34 | 20 28 37 2f 39 34 29 20 |y..# 1.4| (7/94) |
|00000910| 20 20 20 41 64 64 65 64 | 20 73 6f 72 74 69 6e 67 | Added| sorting|
|00000920| 20 62 79 20 61 75 74 68 | 6f 72 73 2c 20 62 75 74 | by auth|ors, but|
|00000930| 20 73 74 69 6c 6c 20 6f | 6e 6c 79 20 73 65 6d 69 | still o|nly semi|
|00000940| 2d 66 75 6e 63 74 69 6f | 6e 61 6c 2c 0d 23 20 20 |-functio|nal,.# |
|00000950| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 41 64 64 | | Add|
|00000960| 65 64 20 72 65 67 65 78 | 70 20 73 65 61 72 63 68 |ed regex|p search|
|00000970| 69 6e 67 20 62 79 20 66 | 69 65 6c 64 2c 0d 23 20 |ing by f|ield,.# |
|00000980| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 22 67 | | "g|
|00000990| 65 74 45 6e 74 72 79 22 | 20 62 75 67 73 20 66 69 |etEntry"| bugs fi|
|000009a0| 78 65 64 2e 0d 23 20 31 | 2e 32 20 28 37 2f 39 34 |xed..# 1|.2 (7/94|
|000009b0| 29 20 20 20 20 42 69 62 | 20 6d 6f 64 65 20 64 65 |) Bib| mode de|
|000009c0| 66 69 6e 69 74 69 6f 6e | 20 61 64 61 70 74 65 64 |finition| adapted|
|000009d0| 20 74 6f 20 41 6c 70 68 | 61 20 35 2e 38 35 2c 0d | to Alph|a 5.85,.|
|000009e0| 23 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |# | |
|000009f0| 41 64 64 65 64 20 62 69 | 62 2d 66 69 6c 65 20 6d |Added bi|b-file m|
|00000a00| 61 72 6b 69 6e 67 20 28 | 62 69 62 4d 61 72 6b 46 |arking (|bibMarkF|
|00000a10| 69 6c 65 29 2c 0d 23 20 | 20 20 20 20 20 20 20 20 |ile),.# | |
|00000a20| 20 20 20 20 20 20 45 6e | 74 72 79 20 61 6e 64 20 | En|try and |
|00000a30| 66 69 65 6c 64 20 63 72 | 65 61 74 69 6f 6e 20 6e |field cr|eation n|
|00000a40| 6f 77 20 63 6f 6e 74 72 | 6f 6c 6c 65 64 20 62 79 |ow contr|olled by|
|00000a50| 20 64 61 74 61 20 61 72 | 72 61 79 73 2e 0d 23 20 | data ar|rays..# |
|00000a60| 31 2e 31 20 28 36 2f 39 | 34 29 20 20 20 20 43 75 |1.1 (6/9|4) Cu|
|00000a70| 73 74 6f 6d 20 42 69 62 | 54 65 58 20 69 63 6f 6e |stom Bib|TeX icon|
|00000a80| 2c 20 0d 23 20 20 20 20 | 20 20 20 20 20 20 20 20 |, .# | |
|00000a90| 20 20 20 41 64 64 65 64 | 20 73 69 6d 70 6c 65 20 | Added| simple |
|00000aa0| 73 65 61 72 63 68 20 63 | 61 70 61 62 69 6c 69 74 |search c|apabilit|
|00000ab0| 79 20 28 6d 61 74 63 68 | 69 6e 67 45 6e 74 72 69 |y (match|ingEntri|
|00000ac0| 65 73 29 2e 0d 23 20 31 | 2e 30 20 28 39 2f 39 33 |es)..# 1|.0 (9/93|
|00000ad0| 29 20 20 20 20 46 69 72 | 73 74 20 73 74 61 62 6c |) Fir|st stabl|
|00000ae0| 65 20 76 65 72 73 69 6f | 6e 2e 0d 23 0d 23 23 23 |e versio|n..#.###|
|00000af0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000b00| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000b10| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000b20| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000b30| 23 23 23 23 23 23 23 23 | 0d 23 20 54 68 69 73 20 |########|.# This |
|00000b40| 70 61 63 6b 61 67 65 20 | 77 61 73 20 69 6e 73 70 |package |was insp|
|00000b50| 69 72 65 64 20 62 79 20 | 74 68 65 20 4c 61 54 65 |ired by |the LaTe|
|00000b60| 58 20 70 61 63 6b 61 67 | 65 20 28 6c 61 74 65 78 |X packag|e (latex|
|00000b70| 2e 74 63 6c 29 2c 20 77 | 72 69 74 74 65 6e 20 62 |.tcl), w|ritten b|
|00000b80| 79 0d 23 20 0d 23 20 20 | 20 20 52 69 63 68 61 72 |y.# .# | Richar|
|00000b90| 64 20 54 2e 20 41 75 73 | 74 69 6e 20 20 3c 61 75 |d T. Aus|tin <au|
|00000ba0| 73 74 69 6e 40 65 65 63 | 73 2e 75 6d 69 63 68 2e |stin@eec|s.umich.|
|00000bb0| 65 64 75 3e 20 20 2c 20 | 61 6e 64 20 28 63 75 72 |edu> , |and (cur|
|00000bc0| 72 65 6e 74 6c 79 29 2c | 0d 23 20 20 20 20 54 6f |rently),|.# To|
|00000bd0| 6d 20 53 63 61 76 6f 20 | 20 20 20 20 20 20 20 20 |m Scavo | |
|00000be0| 20 3c 73 63 61 76 6f 40 | 73 79 72 2e 65 64 75 3e | <scavo@|syr.edu>|
|00000bf0| 0d 23 0d 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |.#.#####|########|
|00000c00| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000c10| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000c20| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000c30| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 0d 23 |########|######.#|
|00000c40| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000c50| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000c60| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000c70| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000c80| 23 23 23 23 23 23 23 23 | 23 23 0d 23 20 42 69 62 |########|##.# Bib|
|00000c90| 54 65 58 20 4b 65 79 20 | 42 69 6e 64 69 6e 67 73 |TeX Key |Bindings|
|00000ca0| 2e 0d 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |..######|########|
|00000cb0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000cc0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000cd0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000ce0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 0d 23 20 |########|#####.# |
|00000cf0| 61 62 62 72 65 76 69 61 | 74 69 6f 6e 73 3a 20 20 |abbrevia|tions: |
|00000d00| 3c 6f 3e 20 3d 20 6f 70 | 74 69 6f 6e 2c 20 3c 7a |<o> = op|tion, <z|
|00000d10| 3e 20 3d 20 63 6f 6e 74 | 72 6f 6c 2c 20 3c 73 3e |> = cont|rol, <s>|
|00000d20| 20 3d 20 73 68 69 66 74 | 2c 20 3c 63 3e 20 3d 20 | = shift|, <c> = |
|00000d30| 63 6f 6d 6d 61 6e 64 0d | 23 0d 62 69 6e 64 20 27 |command.|#.bind '|
|00000d40| 62 27 20 3c 73 7a 3e 09 | 73 65 6c 65 63 74 45 6e |b' <sz>.|selectEn|
|00000d50| 74 72 79 20 22 42 69 62 | 22 0d 62 69 6e 64 20 27 |try "Bib|".bind '|
|00000d60| 6e 27 20 3c 73 7a 3e 09 | 6e 65 78 74 45 6e 74 72 |n' <sz>.|nextEntr|
|00000d70| 79 20 22 42 69 62 22 0d | 62 69 6e 64 20 27 70 27 |y "Bib".|bind 'p'|
|00000d80| 20 3c 73 7a 3e 09 70 72 | 65 76 45 6e 74 72 79 20 | <sz>.pr|evEntry |
|00000d90| 22 42 69 62 22 0d 0d 62 | 69 6e 64 20 27 66 27 20 |"Bib"..b|ind 'f' |
|00000da0| 3c 73 7a 3e 09 73 65 61 | 72 63 68 46 69 65 6c 64 |<sz>.sea|rchField|
|00000db0| 73 20 22 42 69 62 22 0d | 62 69 6e 64 20 27 6d 27 |s "Bib".|bind 'm'|
|00000dc0| 20 3c 73 7a 3e 09 73 65 | 61 72 63 68 45 6e 74 72 | <sz>.se|archEntr|
|00000dd0| 69 65 73 20 22 42 69 62 | 22 0d 62 69 6e 64 20 27 |ies "Bib|".bind '|
|00000de0| 6c 27 20 3c 73 7a 3e 09 | 66 6f 72 6d 61 74 45 6e |l' <sz>.|formatEn|
|00000df0| 74 72 79 20 22 42 69 62 | 22 0d 0d 23 20 74 61 62 |try "Bib|"..# tab|
|00000e00| 20 73 74 6f 70 73 3a 0d | 62 69 6e 64 09 27 5c 74 | stops:.|bind.'\t|
|00000e10| 27 09 6e 65 78 74 54 61 | 62 53 74 6f 70 09 22 42 |'.nextTa|bStop."B|
|00000e20| 69 62 22 0d 62 69 6e 64 | 09 27 5c 74 27 09 3c 73 |ib".bind|.'\t'.<s|
|00000e30| 3e 20 09 70 72 65 76 54 | 61 62 53 74 6f 70 09 22 |> .prevT|abStop."|
|00000e40| 42 69 62 22 0d 62 69 6e | 64 20 20 27 5c 74 27 20 |Bib".bin|d '\t' |
|00000e50| 20 3c 7a 3e 20 20 7b 6e | 74 68 54 61 62 53 74 6f | <z> {n|thTabSto|
|00000e60| 70 20 30 7d 20 20 22 42 | 69 62 22 0d 62 69 6e 64 |p 0} "B|ib".bind|
|00000e70| 20 20 27 5c 74 27 20 20 | 3c 63 3e 20 20 63 6c 65 | '\t' |<c> cle|
|00000e80| 61 72 54 61 62 53 74 6f | 70 73 20 20 22 42 69 62 |arTabSto|ps "Bib|
|00000e90| 22 0d 0d 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |"..#####|########|
|00000ea0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000eb0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000ec0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000ed0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 0d 23 |########|######.#|
|00000ee0| 20 44 61 74 61 20 44 65 | 66 69 6e 69 74 69 6f 6e | Data De|finition|
|00000ef0| 73 0d 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |s.######|########|
|00000f00| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000f10| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000f20| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000f30| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 0d 23 23 |########|#####.##|
|00000f40| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000f50| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000f60| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000f70| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000f80| 23 23 23 23 23 23 23 23 | 23 0d 23 20 44 65 66 69 |########|#.# Defi|
|00000f90| 6e 65 20 74 68 65 20 64 | 61 74 61 20 61 72 72 61 |ne the d|ata arra|
|00000fa0| 79 73 20 74 68 61 74 20 | 63 6f 6e 74 61 69 6e 20 |ys that |contain |
|00000fb0| 74 68 65 20 6e 61 6d 65 | 73 20 6f 66 20 74 68 65 |the name|s of the|
|00000fc0| 20 72 65 71 75 69 72 65 | 64 2c 0d 23 20 6f 70 74 | require|d,.# opt|
|00000fd0| 69 6f 6e 61 6c 2c 20 61 | 6e 64 20 70 72 65 66 65 |ional, a|nd prefe|
|00000fe0| 72 72 65 64 20 66 69 65 | 6c 64 73 20 66 6f 72 20 |rred fie|lds for |
|00000ff0| 65 61 63 68 20 65 6e 74 | 72 79 20 74 79 70 65 2e |each ent|ry type.|
|00001000| 0d 23 0d 23 20 54 68 65 | 20 69 6e 64 65 78 20 6e |.#.# The| index n|
|00001010| 61 6d 65 73 20 6f 66 20 | 74 68 65 20 72 71 64 46 |ames of |the rqdF|
|00001020| 6c 64 28 29 20 61 72 72 | 61 79 20 5f 64 65 66 69 |ld() arr|ay _defi|
|00001030| 6e 65 5f 20 74 68 65 20 | 76 61 6c 69 64 20 65 6e |ne_ the |valid en|
|00001040| 74 72 79 20 74 79 70 65 | 73 0d 23 20 72 65 63 6f |try type|s.# reco|
|00001050| 67 6e 69 7a 65 64 20 62 | 79 20 74 68 65 20 70 72 |gnized b|y the pr|
|00001060| 6f 67 72 61 6d 2e 0d 23 | 0d 73 65 74 20 72 71 64 |ogram..#|.set rqd|
|00001070| 46 6c 64 28 61 72 74 69 | 63 6c 65 29 20 7b 61 75 |Fld(arti|cle) {au|
|00001080| 74 68 6f 72 20 74 69 74 | 6c 65 20 6a 6f 75 72 6e |thor tit|le journ|
|00001090| 61 6c 20 79 65 61 72 7d | 20 0d 73 65 74 20 6f 70 |al year}| .set op|
|000010a0| 74 46 6c 64 28 61 72 74 | 69 63 6c 65 29 20 7b 76 |tFld(art|icle) {v|
|000010b0| 6f 6c 75 6d 65 20 6e 75 | 6d 62 65 72 20 70 61 67 |olume nu|mber pag|
|000010c0| 65 73 20 6d 6f 6e 74 68 | 20 6e 6f 74 65 7d 0d 73 |es month| note}.s|
|000010d0| 65 74 20 6d 79 46 6c 64 | 28 61 72 74 69 63 6c 65 |et myFld|(article|
|000010e0| 29 20 7b 61 75 74 68 6f | 72 20 74 69 74 6c 65 20 |) {autho|r title |
|000010f0| 6a 6f 75 72 6e 61 6c 20 | 76 6f 6c 75 6d 65 20 70 |journal |volume p|
|00001100| 61 67 65 73 20 79 65 61 | 72 20 6e 6f 74 65 7d 20 |ages yea|r note} |
|00001110| 0d 0d 73 65 74 20 72 71 | 64 46 6c 64 28 62 6f 6f |..set rq|dFld(boo|
|00001120| 6b 29 20 7b 61 75 74 68 | 6f 72 20 74 69 74 6c 65 |k) {auth|or title|
|00001130| 20 70 75 62 6c 69 73 68 | 65 72 20 79 65 61 72 7d | publish|er year}|
|00001140| 20 0d 73 65 74 20 6f 70 | 74 46 6c 64 28 62 6f 6f | .set op|tFld(boo|
|00001150| 6b 29 20 7b 65 64 69 74 | 6f 72 20 76 6f 6c 75 6d |k) {edit|or volum|
|00001160| 65 20 6e 75 6d 62 65 72 | 20 73 65 72 69 65 73 20 |e number| series |
|00001170| 61 64 64 72 65 73 73 20 | 65 64 69 74 69 6f 6e 20 |address |edition |
|00001180| 6d 6f 6e 74 68 20 6e 6f | 74 65 7d 0d 0d 73 65 74 |month no|te}..set|
|00001190| 20 72 71 64 46 6c 64 28 | 62 6f 6f 6b 6c 65 74 29 | rqdFld(|booklet)|
|000011a0| 20 7b 74 69 74 6c 65 7d | 20 0d 73 65 74 20 6f 70 | {title}| .set op|
|000011b0| 74 46 6c 64 28 62 6f 6f | 6b 6c 65 74 29 20 7b 61 |tFld(boo|klet) {a|
|000011c0| 75 74 68 6f 72 20 68 6f | 77 70 75 62 6c 69 73 68 |uthor ho|wpublish|
|000011d0| 65 64 20 61 64 64 72 65 | 73 73 20 6d 6f 6e 74 68 |ed addre|ss month|
|000011e0| 20 79 65 61 72 20 6e 6f | 74 65 7d 0d 0d 73 65 74 | year no|te}..set|
|000011f0| 20 72 71 64 46 6c 64 28 | 63 6f 6e 66 65 72 65 6e | rqdFld(|conferen|
|00001200| 63 65 29 20 7b 61 75 74 | 68 6f 72 20 74 69 74 6c |ce) {aut|hor titl|
|00001210| 65 20 62 6f 6f 6b 74 69 | 74 6c 65 20 79 65 61 72 |e bookti|tle year|
|00001220| 7d 20 0d 73 65 74 20 6f | 70 74 46 6c 64 28 63 6f |} .set o|ptFld(co|
|00001230| 6e 66 65 72 65 6e 63 65 | 29 20 7b 65 64 69 74 6f |nference|) {edito|
|00001240| 72 20 76 6f 6c 75 6d 65 | 20 6e 75 6d 62 65 72 20 |r volume| number |
|00001250| 73 65 72 69 65 73 20 70 | 61 67 65 73 20 6f 72 67 |series p|ages org|
|00001260| 61 6e 69 7a 61 74 69 6f | 6e 20 70 75 62 6c 69 73 |anizatio|n publis|
|00001270| 68 65 72 20 61 64 64 72 | 65 73 73 20 6d 6f 6e 74 |her addr|ess mont|
|00001280| 68 20 6e 6f 74 65 7d 0d | 0d 73 65 74 20 72 71 64 |h note}.|.set rqd|
|00001290| 46 6c 64 28 69 6e 42 6f | 6f 6b 29 20 7b 61 75 74 |Fld(inBo|ok) {aut|
|000012a0| 68 6f 72 20 74 69 74 6c | 65 20 63 68 61 70 74 65 |hor titl|e chapte|
|000012b0| 72 20 70 75 62 6c 69 73 | 68 65 72 20 79 65 61 72 |r publis|her year|
|000012c0| 7d 20 0d 73 65 74 20 6f | 70 74 46 6c 64 28 69 6e |} .set o|ptFld(in|
|000012d0| 42 6f 6f 6b 29 20 7b 65 | 64 69 74 6f 72 20 70 61 |Book) {e|ditor pa|
|000012e0| 67 65 73 20 76 6f 6c 75 | 6d 65 20 6e 75 6d 62 65 |ges volu|me numbe|
|000012f0| 72 20 73 65 72 69 65 73 | 20 61 64 64 72 65 73 73 |r series| address|
|00001300| 20 65 64 69 74 69 6f 6e | 20 6d 6f 6e 74 68 20 74 | edition| month t|
|00001310| 79 70 65 20 6e 6f 74 65 | 7d 0d 0d 73 65 74 20 72 |ype note|}..set r|
|00001320| 71 64 46 6c 64 28 69 6e | 43 6f 6c 6c 65 63 74 69 |qdFld(in|Collecti|
|00001330| 6f 6e 29 20 7b 61 75 74 | 68 6f 72 20 74 69 74 6c |on) {aut|hor titl|
|00001340| 65 20 62 6f 6f 6b 74 69 | 74 6c 65 20 70 75 62 6c |e bookti|tle publ|
|00001350| 69 73 68 65 72 20 79 65 | 61 72 7d 20 0d 73 65 74 |isher ye|ar} .set|
|00001360| 20 6f 70 74 46 6c 64 28 | 69 6e 43 6f 6c 6c 65 63 | optFld(|inCollec|
|00001370| 74 69 6f 6e 29 20 7b 65 | 64 69 74 6f 72 20 76 6f |tion) {e|ditor vo|
|00001380| 6c 75 6d 65 20 6e 75 6d | 62 65 72 20 73 65 72 69 |lume num|ber seri|
|00001390| 65 73 20 74 79 70 65 20 | 63 68 61 70 74 65 72 20 |es type |chapter |
|000013a0| 70 61 67 65 73 20 61 64 | 64 72 65 73 73 20 65 64 |pages ad|dress ed|
|000013b0| 69 74 69 6f 6e 20 6d 6f | 6e 74 68 20 6e 6f 74 65 |ition mo|nth note|
|000013c0| 7d 0d 0d 73 65 74 20 72 | 71 64 46 6c 64 28 69 6e |}..set r|qdFld(in|
|000013d0| 50 72 6f 63 65 65 64 69 | 6e 67 73 29 20 7b 61 75 |Proceedi|ngs) {au|
|000013e0| 74 68 6f 72 20 74 69 74 | 6c 65 20 62 6f 6f 6b 74 |thor tit|le bookt|
|000013f0| 69 74 6c 65 20 79 65 61 | 72 7d 20 0d 73 65 74 20 |itle yea|r} .set |
|00001400| 6f 70 74 46 6c 64 28 69 | 6e 50 72 6f 63 65 65 64 |optFld(i|nProceed|
|00001410| 69 6e 67 73 29 20 7b 65 | 64 69 74 6f 72 20 76 6f |ings) {e|ditor vo|
|00001420| 6c 75 6d 65 20 6e 75 6d | 62 65 72 20 73 65 72 69 |lume num|ber seri|
|00001430| 65 73 20 70 61 67 65 73 | 20 6f 72 67 61 6e 69 7a |es pages| organiz|
|00001440| 61 74 69 6f 6e 20 70 75 | 62 6c 69 73 68 65 72 20 |ation pu|blisher |
|00001450| 61 64 64 72 65 73 73 20 | 6d 6f 6e 74 68 20 6e 6f |address |month no|
|00001460| 74 65 7d 0d 0d 73 65 74 | 20 72 71 64 46 6c 64 28 |te}..set| rqdFld(|
|00001470| 6d 61 6e 75 61 6c 29 20 | 7b 74 69 74 6c 65 7d 20 |manual) |{title} |
|00001480| 0d 73 65 74 20 6f 70 74 | 46 6c 64 28 6d 61 6e 75 |.set opt|Fld(manu|
|00001490| 61 6c 29 20 7b 61 75 74 | 68 6f 72 20 6f 72 67 61 |al) {aut|hor orga|
|000014a0| 6e 69 7a 61 74 69 6f 6e | 20 61 64 64 72 65 73 73 |nization| address|
|000014b0| 20 65 64 69 74 69 6f 6e | 20 79 65 61 72 20 6d 6f | edition| year mo|
|000014c0| 6e 74 68 20 6e 6f 74 65 | 7d 0d 0d 73 65 74 20 72 |nth note|}..set r|
|000014d0| 71 64 46 6c 64 28 6d 61 | 73 74 65 72 73 54 68 65 |qdFld(ma|stersThe|
|000014e0| 73 69 73 29 20 7b 61 75 | 74 68 6f 72 20 74 69 74 |sis) {au|thor tit|
|000014f0| 6c 65 20 73 63 68 6f 6f | 6c 20 79 65 61 72 7d 20 |le schoo|l year} |
|00001500| 0d 73 65 74 20 6f 70 74 | 46 6c 64 28 6d 61 73 74 |.set opt|Fld(mast|
|00001510| 65 72 73 54 68 65 73 69 | 73 29 20 7b 61 64 64 72 |ersThesi|s) {addr|
|00001520| 65 73 73 20 6d 6f 6e 74 | 68 20 6e 6f 74 65 20 74 |ess mont|h note t|
|00001530| 79 70 65 7d 0d 0d 73 65 | 74 20 72 71 64 46 6c 64 |ype}..se|t rqdFld|
|00001540| 28 6d 69 73 63 29 20 7b | 7d 20 0d 73 65 74 20 6f |(misc) {|} .set o|
|00001550| 70 74 46 6c 64 28 6d 69 | 73 63 29 20 7b 61 75 74 |ptFld(mi|sc) {aut|
|00001560| 68 6f 72 20 74 69 74 6c | 65 20 68 6f 77 70 75 62 |hor titl|e howpub|
|00001570| 6c 69 73 68 65 64 20 79 | 65 61 72 20 6d 6f 6e 74 |lished y|ear mont|
|00001580| 68 20 6e 6f 74 65 7d 0d | 0d 73 65 74 20 72 71 64 |h note}.|.set rqd|
|00001590| 46 6c 64 28 70 68 64 54 | 68 65 73 69 73 29 20 7b |Fld(phdT|hesis) {|
|000015a0| 61 75 74 68 6f 72 20 74 | 69 74 6c 65 20 73 63 68 |author t|itle sch|
|000015b0| 6f 6f 6c 20 79 65 61 72 | 7d 20 0d 73 65 74 20 6f |ool year|} .set o|
|000015c0| 70 74 46 6c 64 28 70 68 | 64 54 68 65 73 69 73 29 |ptFld(ph|dThesis)|
|000015d0| 20 7b 61 64 64 72 65 73 | 73 20 6d 6f 6e 74 68 20 | {addres|s month |
|000015e0| 74 79 70 65 20 6e 6f 74 | 65 7d 0d 0d 73 65 74 20 |type not|e}..set |
|000015f0| 72 71 64 46 6c 64 28 70 | 72 6f 63 65 65 64 69 6e |rqdFld(p|roceedin|
|00001600| 67 73 29 20 7b 74 69 74 | 6c 65 20 79 65 61 72 7d |gs) {tit|le year}|
|00001610| 20 0d 73 65 74 20 6f 70 | 74 46 6c 64 28 70 72 6f | .set op|tFld(pro|
|00001620| 63 65 65 64 69 6e 67 73 | 29 20 7b 65 64 69 74 6f |ceedings|) {edito|
|00001630| 72 20 76 6f 6c 75 6d 65 | 20 6e 75 6d 62 65 72 20 |r volume| number |
|00001640| 73 65 72 69 65 73 20 70 | 75 62 6c 69 73 68 65 72 |series p|ublisher|
|00001650| 20 6f 72 67 61 6e 69 7a | 61 74 69 6f 6e 20 61 64 | organiz|ation ad|
|00001660| 64 72 65 73 73 20 6d 6f | 6e 74 68 20 6e 6f 74 65 |dress mo|nth note|
|00001670| 7d 0d 0d 73 65 74 20 72 | 71 64 46 6c 64 28 74 65 |}..set r|qdFld(te|
|00001680| 63 68 52 65 70 6f 72 74 | 29 20 7b 61 75 74 68 6f |chReport|) {autho|
|00001690| 72 20 74 69 74 6c 65 20 | 69 6e 73 74 69 74 75 74 |r title |institut|
|000016a0| 69 6f 6e 20 79 65 61 72 | 7d 20 0d 73 65 74 20 6f |ion year|} .set o|
|000016b0| 70 74 46 6c 64 28 74 65 | 63 68 52 65 70 6f 72 74 |ptFld(te|chReport|
|000016c0| 29 20 7b 74 79 70 65 20 | 6e 75 6d 62 65 72 20 61 |) {type |number a|
|000016d0| 64 64 72 65 73 73 20 6d | 6f 6e 74 68 20 6e 6f 74 |ddress m|onth not|
|000016e0| 65 7d 0d 0d 73 65 74 20 | 72 71 64 46 6c 64 28 75 |e}..set |rqdFld(u|
|000016f0| 6e 70 75 62 6c 69 73 68 | 65 64 29 20 7b 61 75 74 |npublish|ed) {aut|
|00001700| 68 6f 72 20 74 69 74 6c | 65 20 6e 6f 74 65 7d 20 |hor titl|e note} |
|00001710| 0d 73 65 74 20 6f 70 74 | 46 6c 64 28 75 6e 70 75 |.set opt|Fld(unpu|
|00001720| 62 6c 69 73 68 65 64 29 | 20 7b 79 65 61 72 20 6d |blished)| {year m|
|00001730| 6f 6e 74 68 7d 0d 0d 73 | 65 74 20 65 6e 74 72 79 |onth}..s|et entry|
|00001740| 4e 61 6d 65 73 20 5b 6c | 73 6f 72 74 20 5b 61 72 |Names [l|sort [ar|
|00001750| 72 61 79 20 6e 61 6d 65 | 73 20 72 71 64 46 6c 64 |ray name|s rqdFld|
|00001760| 5d 5d 0d 73 65 74 20 63 | 75 73 74 6f 6d 45 6e 74 |]].set c|ustomEnt|
|00001770| 72 69 65 73 20 5b 6c 73 | 6f 72 74 20 5b 61 72 72 |ries [ls|ort [arr|
|00001780| 61 79 20 6e 61 6d 65 73 | 20 6d 79 46 6c 64 5d 5d |ay names| myFld]]|
|00001790| 0d 0d 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |..######|########|
|000017a0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000017b0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000017c0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000017d0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 0d 23 20 |########|#####.# |
|000017e0| 44 65 66 69 6e 65 20 61 | 6e 20 61 72 72 61 79 20 |Define a|n array |
|000017f0| 6f 66 20 66 6c 61 67 73 | 20 69 6e 64 69 63 61 74 |of flags| indicat|
|00001800| 69 6e 67 20 77 68 65 74 | 68 65 72 20 74 68 65 20 |ing whet|her the |
|00001810| 64 61 74 61 20 61 20 67 | 69 76 65 6e 20 66 69 65 |data a g|iven fie|
|00001820| 6c 64 0d 23 20 74 79 70 | 65 20 73 68 6f 75 6c 64 |ld.# typ|e should|
|00001830| 20 62 65 20 71 75 6f 74 | 65 64 2e 20 20 54 68 65 | be quot|ed. The|
|00001840| 20 61 63 74 75 61 6c 20 | 63 68 61 72 61 63 74 65 | actual |characte|
|00001850| 72 73 20 75 73 65 64 20 | 74 6f 20 71 75 6f 74 65 |rs used |to quote|
|00001860| 20 74 68 65 20 66 69 65 | 6c 64 20 61 72 65 0d 23 | the fie|ld are.#|
|00001870| 20 67 69 76 65 6e 20 62 | 79 20 24 62 69 62 4f 70 | given b|y $bibOp|
|00001880| 65 6e 51 75 6f 74 65 20 | 61 6e 64 20 24 62 69 62 |enQuote |and $bib|
|00001890| 43 6c 6f 73 65 51 75 6f | 74 65 2c 20 77 68 69 63 |CloseQuo|te, whic|
|000018a0| 68 20 61 72 65 20 73 65 | 74 20 62 79 20 74 68 65 |h are se|t by the|
|000018b0| 20 72 6f 75 74 69 6e 65 | 0d 23 20 27 62 69 62 46 | routine|.# 'bibF|
|000018c0| 69 65 6c 64 44 65 6c 69 | 6d 73 27 20 61 63 63 6f |ieldDeli|ms' acco|
|000018d0| 72 64 69 6e 67 20 74 6f | 20 74 68 65 20 66 6c 61 |rding to| the fla|
|000018e0| 67 20 24 66 69 65 6c 64 | 42 72 61 63 65 73 2e 0d |g $field|Braces..|
|000018f0| 23 0d 23 20 4e 6f 74 65 | 20 74 68 61 74 20 74 68 |#.# Note| that th|
|00001900| 65 20 69 6e 64 65 78 20 | 6e 61 6d 65 73 20 6f 66 |e index |names of|
|00001910| 20 74 68 65 20 75 73 65 | 42 72 61 63 65 28 29 20 | the use|Brace() |
|00001920| 61 72 72 61 79 20 5f 64 | 65 66 69 6e 65 5f 20 74 |array _d|efine_ t|
|00001930| 68 65 20 76 61 6c 69 64 | 20 0d 23 20 66 69 65 6c |he valid| .# fiel|
|00001940| 64 20 74 79 70 65 73 20 | 72 65 63 6f 67 6e 69 7a |d types |recogniz|
|00001950| 65 64 20 62 79 20 74 68 | 65 20 70 72 6f 67 72 61 |ed by th|e progra|
|00001960| 6d 2e 0d 23 0d 73 65 74 | 20 75 73 65 42 72 61 63 |m..#.set| useBrac|
|00001970| 65 28 61 64 64 72 65 73 | 73 29 09 31 0d 73 65 74 |e(addres|s).1.set|
|00001980| 20 75 73 65 42 72 61 63 | 65 28 61 6e 6e 6f 74 65 | useBrac|e(annote|
|00001990| 29 09 31 0d 73 65 74 20 | 75 73 65 42 72 61 63 65 |).1.set |useBrace|
|000019a0| 28 61 75 74 68 6f 72 29 | 20 09 31 0d 73 65 74 20 |(author)| .1.set |
|000019b0| 75 73 65 42 72 61 63 65 | 28 62 6f 6f 6b 74 69 74 |useBrace|(booktit|
|000019c0| 6c 65 29 09 31 0d 73 65 | 74 20 75 73 65 42 72 61 |le).1.se|t useBra|
|000019d0| 63 65 28 63 68 61 70 74 | 65 72 29 09 30 0d 73 65 |ce(chapt|er).0.se|
|000019e0| 74 20 75 73 65 42 72 61 | 63 65 28 65 64 69 74 69 |t useBra|ce(editi|
|000019f0| 6f 6e 29 09 31 0d 73 65 | 74 20 75 73 65 42 72 61 |on).1.se|t useBra|
|00001a00| 63 65 28 65 64 69 74 6f | 72 29 09 31 0d 73 65 74 |ce(edito|r).1.set|
|00001a10| 20 75 73 65 42 72 61 63 | 65 28 68 6f 77 70 75 62 | useBrac|e(howpub|
|00001a20| 6c 69 73 68 65 64 29 09 | 31 0d 73 65 74 20 75 73 |lished).|1.set us|
|00001a30| 65 42 72 61 63 65 28 69 | 6e 73 74 69 74 75 74 69 |eBrace(i|nstituti|
|00001a40| 6f 6e 29 09 31 0d 73 65 | 74 20 75 73 65 42 72 61 |on).1.se|t useBra|
|00001a50| 63 65 28 6a 6f 75 72 6e | 61 6c 29 09 31 0d 73 65 |ce(journ|al).1.se|
|00001a60| 74 20 75 73 65 42 72 61 | 63 65 28 6b 65 79 29 09 |t useBra|ce(key).|
|00001a70| 31 0d 73 65 74 20 75 73 | 65 42 72 61 63 65 28 6c |1.set us|eBrace(l|
|00001a80| 61 6e 67 75 61 67 65 29 | 09 31 0d 73 65 74 20 75 |anguage)|.1.set u|
|00001a90| 73 65 42 72 61 63 65 28 | 6d 6f 6e 74 68 29 09 31 |seBrace(|month).1|
|00001aa0| 0d 73 65 74 20 75 73 65 | 42 72 61 63 65 28 6e 6f |.set use|Brace(no|
|00001ab0| 74 65 29 09 31 0d 73 65 | 74 20 75 73 65 42 72 61 |te).1.se|t useBra|
|00001ac0| 63 65 28 6e 75 6d 62 65 | 72 29 09 30 0d 73 65 74 |ce(numbe|r).0.set|
|00001ad0| 20 75 73 65 42 72 61 63 | 65 28 6f 72 67 61 6e 69 | useBrac|e(organi|
|00001ae0| 7a 61 74 69 6f 6e 29 09 | 31 0d 73 65 74 20 75 73 |zation).|1.set us|
|00001af0| 65 42 72 61 63 65 28 70 | 61 67 65 73 29 09 30 0d |eBrace(p|ages).0.|
|00001b00| 73 65 74 20 75 73 65 42 | 72 61 63 65 28 70 75 62 |set useB|race(pub|
|00001b10| 6c 69 73 68 65 72 29 09 | 31 0d 73 65 74 20 75 73 |lisher).|1.set us|
|00001b20| 65 42 72 61 63 65 28 73 | 63 68 6f 6f 6c 29 09 31 |eBrace(s|chool).1|
|00001b30| 0d 73 65 74 20 75 73 65 | 42 72 61 63 65 28 73 65 |.set use|Brace(se|
|00001b40| 72 69 65 73 29 09 31 0d | 73 65 74 20 75 73 65 42 |ries).1.|set useB|
|00001b50| 72 61 63 65 28 74 69 74 | 6c 65 29 09 31 0d 73 65 |race(tit|le).1.se|
|00001b60| 74 20 75 73 65 42 72 61 | 63 65 28 74 79 70 65 29 |t useBra|ce(type)|
|00001b70| 09 31 0d 73 65 74 20 75 | 73 65 42 72 61 63 65 28 |.1.set u|seBrace(|
|00001b80| 76 6f 6c 75 6d 65 29 09 | 30 0d 73 65 74 20 75 73 |volume).|0.set us|
|00001b90| 65 42 72 61 63 65 28 79 | 65 61 72 29 09 30 0d 0d |eBrace(y|ear).0..|
|00001ba0| 73 65 74 20 66 69 65 6c | 64 4e 61 6d 65 73 20 5b |set fiel|dNames [|
|00001bb0| 6c 73 6f 72 74 20 5b 61 | 72 72 61 79 20 6e 61 6d |lsort [a|rray nam|
|00001bc0| 65 73 20 75 73 65 42 72 | 61 63 65 5d 5d 0d 23 23 |es useBr|ace]].##|
|00001bd0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001be0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001bf0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001c00| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001c10| 23 23 23 23 23 23 23 23 | 23 0d 23 20 44 65 66 61 |########|#.# Defa|
|00001c20| 75 6c 74 20 76 61 6c 75 | 65 73 20 66 6f 72 20 6e |ult valu|es for n|
|00001c30| 65 77 6c 79 20 63 72 65 | 61 74 65 64 20 66 69 65 |ewly cre|ated fie|
|00001c40| 6c 64 73 0d 23 0d 73 65 | 74 20 64 65 66 46 6c 64 |lds.#.se|t defFld|
|00001c50| 56 61 6c 28 6c 61 6e 67 | 75 61 67 65 29 20 22 67 |Val(lang|uage) "g|
|00001c60| 65 72 6d 61 6e 22 0d 0d | 73 65 74 20 66 69 65 6c |erman"..|set fiel|
|00001c70| 64 44 65 66 73 20 5b 6c | 73 6f 72 74 20 5b 61 72 |dDefs [l|sort [ar|
|00001c80| 72 61 79 20 6e 61 6d 65 | 73 20 64 65 66 46 6c 64 |ray name|s defFld|
|00001c90| 56 61 6c 5d 5d 0d 0d 23 | 23 23 23 23 23 23 23 23 |Val]]..#|########|
|00001ca0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001cb0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001cc0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001cd0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001ce0| 23 23 0d 23 20 42 69 62 | 54 65 58 2d 6d 6f 64 65 |##.# Bib|TeX-mode|
|00001cf0| 20 6d 6f 64 65 20 64 65 | 66 69 6e 69 74 69 6f 6e | mode de|finition|
|00001d00| 0d 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |.#######|########|
|00001d10| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001d20| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001d30| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001d40| 23 23 23 23 23 23 23 23 | 23 23 23 23 0d 6e 65 77 |########|####.new|
|00001d50| 4d 6f 64 65 56 61 72 20 | 42 69 62 20 73 75 66 66 |ModeVar |Bib suff|
|00001d60| 69 78 53 74 72 69 6e 67 | 09 7b 20 5c 5c 5c 5c 7d |ixString|.{ \\\\}|
|00001d70| 20 30 0d 6e 65 77 4d 6f | 64 65 56 61 72 20 42 69 | 0.newMo|deVar Bi|
|00001d80| 62 20 70 72 65 66 69 78 | 53 74 72 69 6e 67 09 7b |b prefix|String.{|
|00001d90| 25 20 7d 20 30 0d 6e 65 | 77 4d 6f 64 65 56 61 72 |% } 0.ne|wModeVar|
|00001da0| 20 42 69 62 20 77 6f 72 | 64 57 72 61 70 09 09 7b | Bib wor|dWrap..{|
|00001db0| 30 7d 20 31 0d 6e 65 77 | 4d 6f 64 65 56 61 72 20 |0} 1.new|ModeVar |
|00001dc0| 42 69 62 20 77 6f 72 64 | 42 72 65 61 6b 09 09 7b |Bib word|Break..{|
|00001dd0| 5b 61 2d 7a 41 2d 5a 30 | 2d 39 5d 2b 7d 20 30 0d |[a-zA-Z0|-9]+} 0.|
|00001de0| 6e 65 77 4d 6f 64 65 56 | 61 72 20 42 69 62 20 77 |newModeV|ar Bib w|
|00001df0| 6f 72 64 42 72 65 61 6b | 50 72 65 66 61 63 65 09 |ordBreak|Preface.|
|00001e00| 09 7b 5b 5e 61 2d 7a 41 | 2d 5a 30 2d 39 5d 7d 20 |.{[^a-zA|-Z0-9]} |
|00001e10| 30 0d 6e 65 77 4d 6f 64 | 65 56 61 72 20 42 69 62 |0.newMod|eVar Bib|
|00001e20| 20 66 75 6e 63 45 78 70 | 72 09 09 7b 5b 20 5c 74 | funcExp|r..{[ \t|
|00001e30| 5d 2a 40 5b 61 2d 7a 41 | 2d 5a 5d 2b 2e 28 5b 61 |]*@[a-zA|-Z]+.([a|
|00001e40| 2d 7a 41 2d 5a 30 2d 39 | 5d 2b 29 7d 20 30 0d 6e |-zA-Z0-9|]+)} 0.n|
|00001e50| 65 77 4d 6f 64 65 56 61 | 72 20 42 69 62 20 6f 70 |ewModeVa|r Bib op|
|00001e60| 74 69 6f 6e 49 73 4d 65 | 74 61 09 7b 31 7d 20 31 |tionIsMe|ta.{1} 1|
|00001e70| 0d 0d 6e 65 77 4d 6f 64 | 65 56 61 72 20 42 69 62 |..newMod|eVar Bib|
|00001e80| 20 6f 76 65 72 77 72 69 | 74 65 42 75 66 66 65 72 | overwri|teBuffer|
|00001e90| 20 7b 31 7d 20 31 0d 6e | 65 77 4d 6f 64 65 56 61 | {1} 1.n|ewModeVa|
|00001ea0| 72 20 42 69 62 20 66 69 | 65 6c 64 42 72 61 63 65 |r Bib fi|eldBrace|
|00001eb0| 73 20 7b 31 7d 20 31 0d | 6e 65 77 4d 6f 64 65 56 |s {1} 1.|newModeV|
|00001ec0| 61 72 20 42 69 62 20 65 | 6e 74 72 79 42 72 61 63 |ar Bib e|ntryBrac|
|00001ed0| 65 73 20 7b 31 7d 20 31 | 0d 6e 65 77 4d 6f 64 65 |es {1} 1|.newMode|
|00001ee0| 56 61 72 20 42 69 62 20 | 69 6e 64 65 6e 74 53 74 |Var Bib |indentSt|
|00001ef0| 72 69 6e 67 20 7b 20 20 | 20 7d 20 30 0d 0d 73 65 |ring { | } 0..se|
|00001f00| 74 20 62 69 62 74 65 78 | 4b 65 79 57 6f 72 64 73 |t bibtex|KeyWords|
|00001f10| 20 7b 61 64 64 72 65 73 | 73 20 61 6e 6e 6f 74 65 | {addres|s annote|
|00001f20| 20 61 75 74 68 6f 72 20 | 62 6f 6f 6b 74 69 74 6c | author |booktitl|
|00001f30| 65 20 0d 20 20 20 20 63 | 68 61 70 74 65 72 20 63 |e . c|hapter c|
|00001f40| 69 74 79 20 63 72 6f 73 | 73 72 65 66 20 65 64 69 |ity cros|sref edi|
|00001f50| 74 69 6f 6e 20 65 64 69 | 74 6f 72 20 68 6f 77 70 |tion edi|tor howp|
|00001f60| 75 62 6c 69 73 68 65 64 | 20 69 6e 73 74 69 74 75 |ublished| institu|
|00001f70| 74 69 6f 6e 20 0d 20 20 | 20 20 6a 6f 75 72 6e 61 |tion . | journa|
|00001f80| 6c 20 6b 65 79 20 6c 61 | 6e 67 75 61 67 65 20 6d |l key la|nguage m|
|00001f90| 6f 6e 74 68 20 6e 6f 74 | 65 20 6e 75 6d 62 65 72 |onth not|e number|
|00001fa0| 20 6f 72 67 61 6e 69 7a | 61 74 69 6f 6e 20 0d 20 | organiz|ation . |
|00001fb0| 20 20 20 70 75 62 6c 69 | 73 68 65 72 20 70 61 67 | publi|sher pag|
|00001fc0| 65 73 20 73 63 68 6f 6f | 6c 20 73 65 72 69 65 73 |es schoo|l series|
|00001fd0| 20 74 69 74 6c 65 20 74 | 79 70 65 20 0d 20 20 20 | title t|ype . |
|00001fe0| 20 76 6f 6c 75 6d 65 20 | 79 65 61 72 7d 0d 72 65 | volume |year}.re|
|00001ff0| 67 4d 6f 64 65 4b 65 79 | 77 6f 72 64 73 20 2d 65 |gModeKey|words -e|
|00002000| 20 7b 25 7d 20 2d 6d 20 | 7b 40 7d 20 2d 63 20 72 | {%} -m |{@} -c r|
|00002010| 65 64 20 2d 6b 20 62 6c | 75 65 20 42 69 62 20 24 |ed -k bl|ue Bib $|
|00002020| 62 69 62 74 65 78 4b 65 | 79 57 6f 72 64 73 0d 75 |bibtexKe|yWords.u|
|00002030| 6e 73 65 74 20 62 69 62 | 74 65 78 4b 65 79 57 6f |nset bib|texKeyWo|
|00002040| 72 64 73 0d 0d 23 23 23 | 23 23 23 23 23 23 23 23 |rds..###|########|
|00002050| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002060| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002070| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002080| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002090| 0d 23 20 42 69 62 54 65 | 58 20 4d 65 6e 75 20 44 |.# BibTe|X Menu D|
|000020a0| 65 66 69 6e 69 74 69 6f | 6e 2e 0d 23 23 23 23 23 |efinitio|n..#####|
|000020b0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000020c0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000020d0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000020e0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000020f0| 23 23 23 23 23 23 0d 73 | 65 74 20 62 69 62 74 65 |######.s|et bibte|
|00002100| 78 4d 65 6e 75 20 22 a5 | 31 33 36 22 0d 0d 70 72 |xMenu ".|136"..pr|
|00002110| 6f 63 20 62 69 62 74 65 | 78 20 7b 7d 20 7b 0d 09 |oc bibte|x {} {..|
|00002120| 67 6c 6f 62 61 6c 20 62 | 69 62 74 65 78 50 61 74 |global b|ibtexPat|
|00002130| 68 0d 09 73 65 74 20 6e | 61 6d 65 20 5b 63 68 65 |h..set n|ame [che|
|00002140| 63 6b 52 75 6e 6e 69 6e | 67 20 42 69 62 54 65 58 |ckRunnin|g BibTeX|
|00002150| 20 42 49 42 74 20 62 69 | 62 74 65 78 50 61 74 68 | BIBt bi|btexPath|
|00002160| 5d 0d 09 69 66 20 7b 21 | 5b 73 74 72 69 6e 67 20 |]..if {!|[string |
|00002170| 6c 65 6e 67 74 68 20 24 | 6e 61 6d 65 5d 7d 20 72 |length $|name]} r|
|00002180| 65 74 75 72 6e 0d 09 73 | 77 69 74 63 68 54 6f 20 |eturn..s|witchTo |
|00002190| 24 6e 61 6d 65 0d 7d 0d | 0d 70 72 6f 63 20 6d 61 |$name.}.|.proc ma|
|000021a0| 6b 65 69 6e 64 65 78 20 | 7b 7d 20 7b 0d 09 67 6c |keindex |{} {..gl|
|000021b0| 6f 62 61 6c 20 6d 61 6b | 65 69 6e 64 65 78 50 61 |obal mak|eindexPa|
|000021c0| 74 68 0d 09 73 65 74 20 | 6e 61 6d 65 20 5b 63 68 |th..set |name [ch|
|000021d0| 65 63 6b 52 75 6e 6e 69 | 6e 67 20 4d 61 6b 65 49 |eckRunni|ng MakeI|
|000021e0| 6e 64 65 78 20 4d 69 64 | 78 20 6d 61 6b 65 69 6e |ndex Mid|x makein|
|000021f0| 64 65 78 50 61 74 68 5d | 0d 09 69 66 20 7b 21 5b |dexPath]|..if {![|
|00002200| 73 74 72 69 6e 67 20 6c | 65 6e 67 74 68 20 24 6e |string l|ength $n|
|00002210| 61 6d 65 5d 7d 20 72 65 | 74 75 72 6e 0d 09 73 77 |ame]} re|turn..sw|
|00002220| 69 74 63 68 54 6f 20 24 | 6e 61 6d 65 0d 7d 0d 0d |itchTo $|name.}..|
|00002230| 6d 65 6e 75 20 2d 6e 20 | 24 62 69 62 74 65 78 4d |menu -n |$bibtexM|
|00002240| 65 6e 75 20 7b 0d 09 22 | 62 69 62 74 65 78 22 0d |enu {.."|bibtex".|
|00002250| 09 22 28 2d 29 22 20 20 | 0d 09 7b 6d 65 6e 75 20 |."(-)" |..{menu |
|00002260| 2d 6e 20 45 6e 74 72 69 | 65 73 20 2d 70 20 6d 61 |-n Entri|es -p ma|
|00002270| 6b 65 45 6e 74 72 79 20 | 7b 7d 0d 09 7d 0d 09 7b |keEntry |{}..}..{|
|00002280| 6d 65 6e 75 20 2d 6e 20 | 46 69 65 6c 64 73 20 2d |menu -n |Fields -|
|00002290| 70 20 6d 61 6b 65 46 69 | 65 6c 64 20 7b 7d 0d 09 |p makeFi|eld {}..|
|000022a0| 7d 0d 09 22 28 2d 29 22 | 0d 09 22 73 65 6c 65 63 |}.."(-)"|.."selec|
|000022b0| 74 45 6e 74 72 79 22 0d | 09 22 6e 65 78 74 45 6e |tEntry".|."nextEn|
|000022c0| 74 72 79 22 0d 09 22 70 | 72 65 76 45 6e 74 72 79 |try".."p|revEntry|
|000022d0| 22 0d 09 22 66 6f 72 6d | 61 74 45 6e 74 72 79 22 |".."form|atEntry"|
|000022e0| 0d 09 22 28 2d 29 22 0d | 09 22 73 65 61 72 63 68 |.."(-)".|."search|
|000022f0| 45 6e 74 72 69 65 73 22 | 0d 09 22 73 65 61 72 63 |Entries"|.."searc|
|00002300| 68 46 69 65 6c 64 73 22 | 0d 09 7b 6d 65 6e 75 20 |hFields"|..{menu |
|00002310| 2d 6e 20 73 6f 72 74 42 | 79 2e 2e 2e 20 2d 70 20 |-n sortB|y... -p |
|00002320| 62 69 62 53 6f 72 74 50 | 72 6f 63 20 7b 0d 09 09 |bibSortP|roc {...|
|00002330| 22 63 69 74 65 4b 65 79 | 22 0d 09 09 22 66 69 72 |"citeKey|"..."fir|
|00002340| 73 74 41 75 74 68 6f 72 | 22 0d 09 09 22 6c 61 73 |stAuthor|"..."las|
|00002350| 74 41 75 74 68 6f 72 22 | 0d 09 09 7d 0d 09 7d 0d |tAuthor"|...}..}.|
|00002360| 7d 20 0d 09 0d 6d 65 6e | 75 20 2d 6e 20 45 6e 74 |} ...men|u -n Ent|
|00002370| 72 69 65 73 20 2d 70 20 | 6d 61 6b 65 45 6e 74 72 |ries -p |makeEntr|
|00002380| 79 20 5b 63 6f 6e 63 61 | 74 20 24 65 6e 74 72 79 |y [conca|t $entry|
|00002390| 4e 61 6d 65 73 20 7b 0d | 09 09 22 28 2d 29 22 0d |Names {.|.."(-)".|
|000023a0| 09 09 22 63 75 73 74 6f | 6d 45 6e 74 72 79 22 0d |.."custo|mEntry".|
|000023b0| 09 09 7d 20 5d 0d 0d 6d | 65 6e 75 20 2d 6e 20 46 |..} ]..m|enu -n F|
|000023c0| 69 65 6c 64 73 20 2d 70 | 20 6d 61 6b 65 46 69 65 |ields -p| makeFie|
|000023d0| 6c 64 20 5b 63 6f 6e 63 | 61 74 20 24 66 69 65 6c |ld [conc|at $fiel|
|000023e0| 64 4e 61 6d 65 73 20 7b | 0d 09 09 22 28 2d 29 22 |dNames {|..."(-)"|
|000023f0| 0d 09 09 22 63 75 73 74 | 6f 6d 46 69 65 6c 64 22 |..."cust|omField"|
|00002400| 0d 09 09 22 6d 75 6c 74 | 69 70 6c 65 46 69 65 6c |..."mult|ipleFiel|
|00002410| 64 73 22 0d 09 09 7d 20 | 5d 0d 09 09 0d 23 23 23 |ds"...} |]....###|
|00002420| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002430| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002440| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002450| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002460| 23 23 23 23 23 23 23 23 | 0d 23 20 4d 65 6e 75 20 |########|.# Menu |
|00002470| 63 6f 6d 6d 61 6e 64 20 | 70 72 6f 63 73 0d 23 23 |command |procs.##|
|00002480| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002490| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000024a0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000024b0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000024c0| 23 23 23 23 23 23 23 23 | 23 0d 09 09 0d 70 72 6f |########|#....pro|
|000024d0| 63 20 6d 61 6b 65 46 69 | 65 6c 64 20 7b 6d 65 6e |c makeFi|eld {men|
|000024e0| 75 20 69 74 65 6d 7d 20 | 7b 0d 09 67 6c 6f 62 61 |u item} |{..globa|
|000024f0| 6c 20 66 69 65 6c 64 4e | 61 6d 65 73 0d 09 62 69 |l fieldN|ames..bi|
|00002500| 62 46 6f 72 6d 61 74 53 | 65 74 75 70 0d 09 0d 09 |bFormatS|etup....|
|00002510| 69 66 20 7b 24 69 74 65 | 6d 20 3d 3d 20 22 6d 75 |if {$ite|m == "mu|
|00002520| 6c 74 69 70 6c 65 46 69 | 65 6c 64 73 22 7d 20 74 |ltipleFi|elds"} t|
|00002530| 68 65 6e 20 7b 0d 09 09 | 73 65 74 20 66 6c 64 73 |hen {...|set flds|
|00002540| 20 5b 6c 69 73 74 70 69 | 63 6b 20 2d 6c 20 2d 4c | [listpi|ck -l -L|
|00002550| 20 7b 61 75 74 68 6f 72 | 20 79 65 61 72 7d 20 2d | {author| year} -|
|00002560| 70 20 22 50 69 63 6b 20 | 64 65 73 69 72 65 64 20 |p "Pick |desired |
|00002570| 66 69 65 6c 64 73 3a 22 | 20 24 66 69 65 6c 64 4e |fields:"| $fieldN|
|00002580| 61 6d 65 73 5d 0d 09 09 | 69 66 20 7b 5b 6c 6c 65 |ames]...|if {[lle|
|00002590| 6e 67 74 68 20 66 6c 64 | 73 5d 7d 20 7b 0d 09 09 |ngth fld|s]} {...|
|000025a0| 09 73 65 74 20 6c 69 6e | 65 73 20 7b 7d 0d 09 09 |.set lin|es {}...|
|000025b0| 09 66 6f 72 65 61 63 68 | 20 66 6c 64 20 24 66 6c |.foreach| fld $fl|
|000025c0| 64 73 20 7b 0d 09 09 09 | 09 61 70 70 65 6e 64 20 |ds {....|.append |
|000025d0| 6c 69 6e 65 73 20 5b 6e | 65 77 46 69 65 6c 64 20 |lines [n|ewField |
|000025e0| 24 66 6c 64 5d 0d 09 09 | 09 7d 0d 09 09 7d 20 65 |$fld]...|.}...} e|
|000025f0| 6c 73 65 20 7b 0d 09 09 | 09 72 65 74 75 72 6e 0d |lse {...|.return.|
|00002600| 09 09 7d 0d 09 7d 20 65 | 6c 73 65 20 7b 0d 09 09 |..}..} e|lse {...|
|00002610| 73 65 74 20 6c 69 6e 65 | 73 20 5b 6e 65 77 46 69 |set line|s [newFi|
|00002620| 65 6c 64 20 24 69 74 65 | 6d 5d 0d 09 7d 0d 09 0d |eld $ite|m]..}...|
|00002630| 09 73 65 74 20 70 6f 73 | 30 20 5b 6e 65 78 74 4c |.set pos|0 [nextL|
|00002640| 69 6e 65 53 74 61 72 74 | 20 5b 67 65 74 50 6f 73 |ineStart| [getPos|
|00002650| 5d 5d 0d 09 67 6f 74 6f | 20 24 70 6f 73 30 0d 09 |]]..goto| $pos0..|
|00002660| 69 6e 73 65 72 74 54 65 | 78 74 20 24 6c 69 6e 65 |insertTe|xt $line|
|00002670| 73 0d 09 67 6f 74 6f 20 | 24 70 6f 73 30 0d 09 6e |s..goto |$pos0..n|
|00002680| 65 78 74 54 61 62 53 74 | 6f 70 0d 7d 0d 0d 70 72 |extTabSt|op.}..pr|
|00002690| 6f 63 20 6d 61 6b 65 45 | 6e 74 72 79 20 7b 6d 65 |oc makeE|ntry {me|
|000026a0| 6e 75 20 69 74 65 6d 7d | 20 7b 0d 09 62 69 62 46 |nu item}| {..bibF|
|000026b0| 6f 72 6d 61 74 53 65 74 | 75 70 0d 09 6e 65 77 45 |ormatSet|up..newE|
|000026c0| 6e 74 72 79 20 24 69 74 | 65 6d 0d 7d 0d 0d 23 23 |ntry $it|em.}..##|
|000026d0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000026e0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000026f0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002700| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002710| 23 23 23 23 23 23 23 23 | 23 0d 23 20 20 52 65 74 |########|#.# Ret|
|00002720| 75 72 6e 20 74 68 65 20 | 62 6f 75 6e 64 73 20 6f |urn the |bounds o|
|00002730| 66 20 74 68 65 20 62 69 | 62 6c 69 6f 67 72 61 70 |f the bi|bliograp|
|00002740| 68 69 63 20 65 6e 74 72 | 79 20 73 75 72 72 6f 75 |hic entr|y surrou|
|00002750| 6e 64 69 6e 67 20 74 68 | 65 20 63 75 72 72 65 6e |nding th|e curren|
|00002760| 74 20 0d 23 20 20 70 6f | 73 69 74 69 6f 6e 2e 0d |t .# po|sition..|
|00002770| 23 0d 70 72 6f 63 20 67 | 65 74 45 6e 74 72 79 20 |#.proc g|etEntry |
|00002780| 7b 70 6f 73 7d 20 7b 0d | 20 20 20 20 0d 09 73 65 |{pos} {.| ..se|
|00002790| 74 20 70 6f 73 31 20 5b | 73 65 61 72 63 68 20 2d |t pos1 [|search -|
|000027a0| 66 20 30 20 2d 72 20 31 | 20 2d 6e 20 7b 5b 20 09 |f 0 -r 1| -n {[ .|
|000027b0| 5d 2a 40 5b 61 2d 7a 41 | 2d 5a 5d 2a 5b 5c 7b 5c |]*@[a-zA|-Z]*[\{\|
|000027c0| 28 5d 7d 20 24 70 6f 73 | 20 5d 0d 20 20 20 20 69 |(]} $pos| ]. i|
|000027d0| 66 20 7b 24 70 6f 73 31 | 20 3d 3d 20 22 22 7d 20 |f {$pos1| == ""} |
|000027e0| 74 68 65 6e 20 7b 0d 20 | 20 20 20 09 73 65 74 20 |then {. | .set |
|000027f0| 62 65 67 50 6f 73 20 5b | 6e 65 78 74 4c 69 6e 65 |begPos [|nextLine|
|00002800| 53 74 61 72 74 20 24 70 | 6f 73 5d 0d 20 20 20 20 |Start $p|os]. |
|00002810| 09 73 65 74 20 65 6e 64 | 50 6f 73 20 24 62 65 67 |.set end|Pos $beg|
|00002820| 50 6f 73 0d 20 20 20 20 | 7d 20 65 6c 73 65 20 7b |Pos. |} else {|
|00002830| 0d 20 20 20 20 09 73 65 | 74 20 62 65 67 50 6f 73 |. .se|t begPos|
|00002840| 20 5b 6c 69 6e 65 53 74 | 61 72 74 20 5b 6c 69 6e | [lineSt|art [lin|
|00002850| 64 65 78 20 24 70 6f 73 | 31 20 30 5d 5d 0d 20 20 |dex $pos|1 0]]. |
|00002860| 20 20 09 73 65 74 20 70 | 6f 73 30 20 5b 6c 69 6e | .set p|os0 [lin|
|00002870| 64 65 78 20 24 70 6f 73 | 31 20 31 5d 0d 23 20 09 |dex $pos|1 1].# .|
|00002880| 09 73 65 74 20 70 6f 73 | 31 20 5b 6d 61 74 63 68 |.set pos|1 [match|
|00002890| 49 74 20 22 5c 7b 22 20 | 24 70 6f 73 30 5d 5d 0d |It "\{" |$pos0]].|
|000028a0| 20 20 20 20 09 73 65 74 | 20 6f 70 65 6e 42 72 61 | .set| openBra|
|000028b0| 63 65 20 5b 67 65 74 54 | 65 78 74 20 5b 65 78 70 |ce [getT|ext [exp|
|000028c0| 72 20 24 70 6f 73 30 2d | 31 5d 20 24 70 6f 73 30 |r $pos0-|1] $pos0|
|000028d0| 20 5d 0d 20 20 20 20 20 | 20 20 20 73 65 74 20 70 | ]. | set p|
|000028e0| 6f 73 31 20 5b 6d 61 74 | 63 68 49 74 20 24 6f 70 |os1 [mat|chIt $op|
|000028f0| 65 6e 42 72 61 63 65 20 | 24 70 6f 73 30 5d 5d 0d |enBrace |$pos0]].|
|00002900| 20 20 20 20 20 20 20 20 | 73 65 74 20 65 6e 64 50 | |set endP|
|00002910| 6f 73 20 5b 6e 65 78 74 | 4c 69 6e 65 53 74 61 72 |os [next|LineStar|
|00002920| 74 20 24 70 6f 73 31 5d | 0d 20 20 20 20 7d 0d 09 |t $pos1]|. }..|
|00002930| 72 65 74 75 72 6e 20 5b | 6c 69 73 74 20 24 62 65 |return [|list $be|
|00002940| 67 50 6f 73 20 24 65 6e | 64 50 6f 73 5d 0d 7d 0d |gPos $en|dPos].}.|
|00002950| 0d 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |.#######|########|
|00002960| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002970| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002980| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002990| 23 23 23 23 23 23 23 23 | 23 23 23 23 0d 23 20 20 |########|####.# |
|000029a0| 41 64 76 61 6e 63 65 20 | 74 6f 20 74 68 65 20 6e |Advance |to the n|
|000029b0| 65 78 74 20 62 69 62 6c | 69 6f 67 72 61 70 68 69 |ext bibl|iographi|
|000029c0| 63 20 65 6e 74 72 79 2e | 0d 23 0d 70 72 6f 63 20 |c entry.|.#.proc |
|000029d0| 6e 65 78 74 45 6e 74 72 | 79 20 7b 7d 20 7b 0d 09 |nextEntr|y {} {..|
|000029e0| 73 61 76 65 56 61 72 73 | 0d 09 0d 09 73 65 74 20 |saveVars|....set |
|000029f0| 70 6f 73 30 20 5b 6c 69 | 6e 64 65 78 20 5b 67 65 |pos0 [li|ndex [ge|
|00002a00| 74 45 6e 74 72 79 20 5b | 67 65 74 50 6f 73 5d 5d |tEntry [|getPos]]|
|00002a10| 20 31 5d 0d 20 20 20 20 | 0d 09 73 65 74 20 70 6f | 1]. |..set po|
|00002a20| 73 20 5b 73 65 61 72 63 | 68 20 2d 66 20 31 20 2d |s [searc|h -f 1 -|
|00002a30| 72 20 31 20 2d 6e 20 7b | 5b 20 09 5d 2a 40 5b 61 |r 1 -n {|[ .]*@[a|
|00002a40| 2d 7a 41 2d 5a 5d 2b 5b | 5c 7b 5c 28 5d 7d 20 24 |-zA-Z]+[|\{\(]} $|
|00002a50| 70 6f 73 30 20 5d 0d 20 | 20 20 20 69 66 20 7b 24 |pos0 ]. | if {$|
|00002a60| 70 6f 73 20 3d 3d 20 22 | 22 7d 20 74 68 65 6e 20 |pos == "|"} then |
|00002a70| 7b 0d 20 20 20 20 20 20 | 20 73 65 74 20 6e 65 78 |{. | set nex|
|00002a80| 74 50 6f 73 20 24 70 6f | 73 30 0d 20 20 20 20 7d |tPos $po|s0. }|
|00002a90| 20 65 6c 73 65 20 7b 0d | 20 20 20 20 20 20 20 73 | else {.| s|
|00002aa0| 65 74 20 6e 65 78 74 50 | 6f 73 20 5b 6c 69 6e 64 |et nextP|os [lind|
|00002ab0| 65 78 20 24 70 6f 73 20 | 30 5d 0d 20 20 20 20 7d |ex $pos |0]. }|
|00002ac0| 0d 09 67 6f 74 6f 20 24 | 6e 65 78 74 50 6f 73 0d |..goto $|nextPos.|
|00002ad0| 7d 0d 0d 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |}..#####|########|
|00002ae0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002af0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002b00| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002b10| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 0d 23 |########|######.#|
|00002b20| 20 20 47 6f 20 62 61 63 | 6b 20 74 6f 20 74 68 65 | Go bac|k to the|
|00002b30| 20 70 72 65 76 69 6f 75 | 73 20 62 69 62 6c 69 6f | previou|s biblio|
|00002b40| 67 72 61 70 68 69 63 20 | 65 6e 74 72 79 2e 0d 23 |graphic |entry..#|
|00002b50| 0d 70 72 6f 63 20 70 72 | 65 76 45 6e 74 72 79 20 |.proc pr|evEntry |
|00002b60| 7b 7d 20 7b 0d 09 73 61 | 76 65 56 61 72 73 0d 09 |{} {..sa|veVars..|
|00002b70| 0d 09 73 65 74 20 70 6f | 73 30 20 5b 6c 69 6e 64 |..set po|s0 [lind|
|00002b80| 65 78 20 5b 67 65 74 45 | 6e 74 72 79 20 5b 67 65 |ex [getE|ntry [ge|
|00002b90| 74 50 6f 73 5d 5d 20 30 | 5d 0d 20 20 20 20 73 65 |tPos]] 0|]. se|
|00002ba0| 74 20 70 6f 73 31 20 24 | 70 6f 73 30 0d 20 20 20 |t pos1 $|pos0. |
|00002bb0| 20 69 66 20 7b 24 70 6f | 73 31 20 3e 20 30 7d 20 | if {$po|s1 > 0} |
|00002bc0| 7b 69 6e 63 72 20 70 6f | 73 31 20 2d 31 7d 0d 20 |{incr po|s1 -1}. |
|00002bd0| 20 20 20 0d 09 73 65 74 | 20 70 6f 73 20 5b 73 65 | ..set| pos [se|
|00002be0| 61 72 63 68 20 2d 66 20 | 30 20 2d 72 20 31 20 2d |arch -f |0 -r 1 -|
|00002bf0| 6e 20 7b 5b 20 09 5d 2a | 40 5b 61 2d 7a 41 2d 5a |n {[ .]*|@[a-zA-Z|
|00002c00| 5d 2b 5b 5c 7b 5c 28 5d | 7d 20 24 70 6f 73 31 20 |]+[\{\(]|} $pos1 |
|00002c10| 5d 0d 20 20 20 20 69 66 | 20 7b 24 70 6f 73 20 3d |]. if| {$pos =|
|00002c20| 3d 20 22 22 7d 20 74 68 | 65 6e 20 7b 0d 20 20 20 |= ""} th|en {. |
|00002c30| 20 20 20 20 73 65 74 20 | 6e 65 78 74 50 6f 73 20 | set |nextPos |
|00002c40| 24 70 6f 73 30 0d 20 20 | 20 20 7d 20 65 6c 73 65 |$pos0. | } else|
|00002c50| 20 7b 0d 20 20 20 20 20 | 20 20 73 65 74 20 6e 65 | {. | set ne|
|00002c60| 78 74 50 6f 73 20 5b 6c | 69 6e 64 65 78 20 24 70 |xtPos [l|index $p|
|00002c70| 6f 73 20 30 5d 0d 20 20 | 20 20 7d 0d 09 67 6f 74 |os 0]. | }..got|
|00002c80| 6f 20 24 6e 65 78 74 50 | 6f 73 0d 7d 0d 0d 23 23 |o $nextP|os.}..##|
|00002c90| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002ca0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002cb0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002cc0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002cd0| 23 23 23 23 23 23 23 23 | 23 0d 23 20 20 53 65 6c |########|#.# Sel|
|00002ce0| 65 63 74 20 28 68 69 67 | 68 6c 69 67 68 74 29 20 |ect (hig|hlight) |
|00002cf0| 74 68 65 20 63 75 72 72 | 65 6e 74 20 62 69 62 6c |the curr|ent bibl|
|00002d00| 69 6f 67 72 61 70 68 69 | 63 20 65 6e 74 72 79 2e |iographi|c entry.|
|00002d10| 0d 23 0d 70 72 6f 63 20 | 73 65 6c 65 63 74 45 6e |.#.proc |selectEn|
|00002d20| 74 72 79 20 7b 7d 20 7b | 0d 09 73 65 74 20 70 6f |try {} {|..set po|
|00002d30| 73 20 5b 67 65 74 45 6e | 74 72 79 20 5b 67 65 74 |s [getEn|try [get|
|00002d40| 50 6f 73 5d 5d 0d 09 73 | 65 6c 65 63 74 20 5b 6c |Pos]]..s|elect [l|
|00002d50| 69 6e 64 65 78 20 24 70 | 6f 73 20 30 5d 20 5b 6c |index $p|os 0] [l|
|00002d60| 69 6e 64 65 78 20 24 70 | 6f 73 20 31 5d 0d 7d 0d |index $p|os 1].}.|
|00002d70| 0d 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |.#######|########|
|00002d80| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002d90| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002da0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002db0| 23 23 23 23 23 23 23 23 | 23 23 23 23 0d 23 20 20 |########|####.# |
|00002dc0| 43 72 65 61 74 65 20 61 | 20 6e 65 77 20 62 69 62 |Create a| new bib|
|00002dd0| 6c 69 6f 67 72 61 70 68 | 69 63 20 65 6e 74 72 79 |liograph|ic entry|
|00002de0| 20 77 69 74 68 20 69 74 | 73 20 72 65 71 75 69 72 | with it|s requir|
|00002df0| 65 64 20 66 69 65 6c 64 | 73 2e 0d 23 0d 70 72 6f |ed field|s..#.pro|
|00002e00| 63 20 6e 65 77 45 6e 74 | 72 79 20 7b 65 6e 74 72 |c newEnt|ry {entr|
|00002e10| 79 4e 61 6d 65 7d 20 7b | 09 0d 09 67 6c 6f 62 61 |yName} {|...globa|
|00002e20| 6c 20 20 65 6e 74 72 79 | 4e 61 6d 65 73 20 63 75 |l entry|Names cu|
|00002e30| 73 74 6f 6d 45 6e 74 72 | 69 65 73 20 66 69 65 6c |stomEntr|ies fiel|
|00002e40| 64 4e 61 6d 65 73 20 72 | 71 64 46 6c 64 20 6f 70 |dNames r|qdFld op|
|00002e50| 74 46 6c 64 20 6d 79 46 | 6c 64 20 64 65 66 46 6c |tFld myF|ld defFl|
|00002e60| 64 56 61 6c 0d 09 67 6c | 6f 62 61 6c 20 62 69 62 |dVal..gl|obal bib|
|00002e70| 4f 70 65 6e 45 6e 74 72 | 79 20 62 69 62 43 6c 6f |OpenEntr|y bibClo|
|00002e80| 73 65 45 6e 74 72 79 0d | 09 67 6f 74 6f 20 5b 6c |seEntry.|.goto [l|
|00002e90| 69 6e 64 65 78 20 5b 67 | 65 74 45 6e 74 72 79 20 |index [g|etEntry |
|00002ea0| 5b 67 65 74 50 6f 73 5d | 5d 20 31 5d 0d 09 69 66 |[getPos]|] 1]..if|
|00002eb0| 20 7b 24 65 6e 74 72 79 | 4e 61 6d 65 20 3d 3d 20 | {$entry|Name == |
|00002ec0| 22 63 75 73 74 6f 6d 45 | 6e 74 72 79 22 7d 20 7b |"customE|ntry"} {|
|00002ed0| 0d 09 09 73 65 74 20 6c | 69 6e 65 73 20 22 40 a5 |...set l|ines "@.|
|00002ee0| 24 62 69 62 4f 70 65 6e | 45 6e 74 72 79 a5 2c 5c |$bibOpen|Entry.,\|
|00002ef0| 72 22 0d 09 09 73 65 74 | 20 74 68 65 46 69 65 6c |r"...set| theFiel|
|00002f00| 64 73 20 5b 6c 69 73 74 | 70 69 63 6b 20 2d 6c 20 |ds [list|pick -l |
|00002f10| 2d 4c 20 7b 61 75 74 68 | 6f 72 7d 20 2d 70 20 22 |-L {auth|or} -p "|
|00002f20| 50 69 63 6b 20 64 65 73 | 69 72 65 64 20 66 69 65 |Pick des|ired fie|
|00002f30| 6c 64 73 3a 22 20 24 66 | 69 65 6c 64 4e 61 6d 65 |lds:" $f|ieldName|
|00002f40| 73 5d 0d 09 7d 20 65 6c | 73 65 20 7b 0d 09 09 73 |s]..} el|se {...s|
|00002f50| 65 74 20 6c 69 6e 65 73 | 20 22 40 24 7b 65 6e 74 |et lines| "@${ent|
|00002f60| 72 79 4e 61 6d 65 7d 24 | 62 69 62 4f 70 65 6e 45 |ryName}$|bibOpenE|
|00002f70| 6e 74 72 79 a5 2c 5c 72 | 22 0d 09 09 69 66 20 7b |ntry.,\r|"...if {|
|00002f80| 5b 6c 73 65 61 72 63 68 | 20 2d 65 78 61 63 74 20 |[lsearch| -exact |
|00002f90| 24 63 75 73 74 6f 6d 45 | 6e 74 72 69 65 73 20 24 |$customE|ntries $|
|00002fa0| 65 6e 74 72 79 4e 61 6d | 65 5d 20 3e 3d 20 30 20 |entryNam|e] >= 0 |
|00002fb0| 26 26 20 5b 6c 6c 65 6e | 67 74 68 20 24 6d 79 46 |&& [llen|gth $myF|
|00002fc0| 6c 64 28 24 65 6e 74 72 | 79 4e 61 6d 65 29 5d 7d |ld($entr|yName)]}|
|00002fd0| 20 7b 0d 09 09 09 73 65 | 74 20 74 68 65 46 69 65 | {....se|t theFie|
|00002fe0| 6c 64 73 20 24 6d 79 46 | 6c 64 28 24 65 6e 74 72 |lds $myF|ld($entr|
|00002ff0| 79 4e 61 6d 65 29 0d 09 | 09 7d 20 65 6c 73 65 69 |yName)..|.} elsei|
|00003000| 66 20 7b 5b 6c 73 65 61 | 72 63 68 20 2d 65 78 61 |f {[lsea|rch -exa|
|00003010| 63 74 20 24 65 6e 74 72 | 79 4e 61 6d 65 73 20 24 |ct $entr|yNames $|
|00003020| 65 6e 74 72 79 4e 61 6d | 65 5d 20 3e 3d 20 30 7d |entryNam|e] >= 0}|
|00003030| 20 7b 0d 09 09 09 73 65 | 74 20 74 68 65 46 69 65 | {....se|t theFie|
|00003040| 6c 64 73 20 24 72 71 64 | 46 6c 64 28 24 65 6e 74 |lds $rqd|Fld($ent|
|00003050| 72 79 4e 61 6d 65 29 0d | 09 09 7d 20 65 6c 73 65 |ryName).|..} else|
|00003060| 20 7b 0d 09 09 09 73 65 | 74 20 74 68 65 46 69 65 | {....se|t theFie|
|00003070| 6c 64 73 20 7b 7d 0d 09 | 09 7d 0d 09 7d 0d 09 73 |lds {}..|.}..}..s|
|00003080| 65 74 20 74 68 65 54 6f | 70 20 5b 6c 69 6e 65 53 |et theTo|p [lineS|
|00003090| 74 61 72 74 20 5b 67 65 | 74 50 6f 73 5d 5d 0d 09 |tart [ge|tPos]]..|
|000030a0| 66 6f 72 65 61 63 68 20 | 66 69 65 6c 64 20 24 74 |foreach |field $t|
|000030b0| 68 65 46 69 65 6c 64 73 | 20 7b 0d 09 09 63 61 74 |heFields| {...cat|
|000030c0| 63 68 20 7b 61 70 70 65 | 6e 64 20 6c 69 6e 65 73 |ch {appe|nd lines|
|000030d0| 20 5b 6e 65 77 46 69 65 | 6c 64 20 24 66 69 65 6c | [newFie|ld $fiel|
|000030e0| 64 5d 7d 0d 09 7d 0d 09 | 61 70 70 65 6e 64 20 6c |d]}..}..|append l|
|000030f0| 69 6e 65 73 20 22 24 62 | 69 62 43 6c 6f 73 65 45 |ines "$b|ibCloseE|
|00003100| 6e 74 72 79 5c 72 22 0d | 09 69 6e 73 65 72 74 54 |ntry\r".|.insertT|
|00003110| 65 78 74 20 24 6c 69 6e | 65 73 0d 09 67 6f 74 6f |ext $lin|es..goto|
|00003120| 20 24 74 68 65 54 6f 70 | 0d 09 6e 65 78 74 54 61 | $theTop|..nextTa|
|00003130| 62 53 74 6f 70 0d 7d 0d | 0d 23 23 23 23 23 23 23 |bStop.}.|.#######|
|00003140| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003150| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003160| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003170| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003180| 23 23 23 23 0d 23 20 20 | 43 72 65 61 74 65 20 61 |####.# |Create a|
|00003190| 20 6e 65 77 20 66 69 65 | 6c 64 20 77 69 74 68 69 | new fie|ld withi|
|000031a0| 6e 20 74 68 65 20 63 75 | 72 72 65 6e 74 20 62 69 |n the cu|rrent bi|
|000031b0| 62 6c 69 6f 67 72 61 70 | 68 69 63 20 65 6e 74 72 |bliograp|hic entr|
|000031c0| 79 0d 23 0d 70 72 6f 63 | 20 6e 65 77 46 69 65 6c |y.#.proc| newFiel|
|000031d0| 64 20 7b 66 69 65 6c 64 | 4e 61 6d 65 7d 20 7b 09 |d {field|Name} {.|
|000031e0| 0d 09 67 6c 6f 62 61 6c | 20 66 69 65 6c 64 4e 61 |..global| fieldNa|
|000031f0| 6d 65 73 20 75 73 65 42 | 72 61 63 65 20 62 69 62 |mes useB|race bib|
|00003200| 4f 70 65 6e 51 75 6f 74 | 65 20 62 69 62 43 6c 6f |OpenQuot|e bibClo|
|00003210| 73 65 51 75 6f 74 65 20 | 62 69 62 49 6e 64 65 6e |seQuote |bibInden|
|00003220| 74 0d 09 67 6c 6f 62 61 | 6c 20 66 69 65 6c 64 44 |t..globa|l fieldD|
|00003230| 65 66 73 20 64 65 66 46 | 6c 64 56 61 6c 0d 09 69 |efs defF|ldVal..i|
|00003240| 66 20 7b 5b 6c 73 65 61 | 72 63 68 20 2d 65 78 61 |f {[lsea|rch -exa|
|00003250| 63 74 20 24 66 69 65 6c | 64 4e 61 6d 65 73 20 24 |ct $fiel|dNames $|
|00003260| 66 69 65 6c 64 4e 61 6d | 65 5d 20 3e 3d 20 30 7d |fieldNam|e] >= 0}|
|00003270| 20 7b 0d 09 09 73 65 74 | 20 6e 65 65 64 42 72 61 | {...set| needBra|
|00003280| 63 65 73 20 24 75 73 65 | 42 72 61 63 65 28 24 66 |ces $use|Brace($f|
|00003290| 69 65 6c 64 4e 61 6d 65 | 29 0d 09 7d 20 65 6c 73 |ieldName|)..} els|
|000032a0| 65 20 7b 0d 09 09 73 65 | 74 20 6e 65 65 64 42 72 |e {...se|t needBr|
|000032b0| 61 63 65 73 20 31 0d 09 | 7d 0d 09 0d 09 69 66 20 |aces 1..|}....if |
|000032c0| 7b 5b 6c 73 65 61 72 63 | 68 20 2d 65 78 61 63 74 |{[lsearc|h -exact|
|000032d0| 20 24 66 69 65 6c 64 44 | 65 66 73 20 24 66 69 65 | $fieldD|efs $fie|
|000032e0| 6c 64 4e 61 6d 65 5d 20 | 3e 3d 20 30 7d 20 7b 0d |ldName] |>= 0} {.|
|000032f0| 09 09 73 65 74 20 76 61 | 6c 20 24 64 65 66 46 6c |..set va|l $defFl|
|00003300| 64 56 61 6c 28 24 66 69 | 65 6c 64 4e 61 6d 65 29 |dVal($fi|eldName)|
|00003310| 0d 09 7d 20 65 6c 73 65 | 20 7b 0d 09 09 73 65 74 |..} else| {...set|
|00003320| 20 76 61 6c 20 22 a5 22 | 0d 09 7d 0d 0d 09 69 66 | val "."|..}...if|
|00003330| 20 7b 24 6e 65 65 64 42 | 72 61 63 65 73 20 7c 7c | {$needB|races |||
|00003340| 20 24 66 69 65 6c 64 4e | 61 6d 65 20 3d 3d 20 22 | $fieldN|ame == "|
|00003350| 63 75 73 74 6f 6d 46 69 | 65 6c 64 22 7d 20 7b 0d |customFi|eld"} {.|
|00003360| 09 09 73 65 74 20 72 65 | 73 75 6c 74 20 22 24 62 |..set re|sult "$b|
|00003370| 69 62 49 6e 64 65 6e 74 | 24 66 69 65 6c 64 4e 61 |ibIndent|$fieldNa|
|00003380| 6d 65 20 3d 20 20 09 24 | 7b 62 69 62 4f 70 65 6e |me = .$|{bibOpen|
|00003390| 51 75 6f 74 65 7d 24 7b | 76 61 6c 7d 24 7b 62 69 |Quote}${|val}${bi|
|000033a0| 62 43 6c 6f 73 65 51 75 | 6f 74 65 7d 2c 5c 72 22 |bCloseQu|ote},\r"|
|000033b0| 0d 09 7d 20 65 6c 73 65 | 20 7b 0d 09 09 73 65 74 |..} else| {...set|
|000033c0| 20 72 65 73 75 6c 74 20 | 22 24 62 69 62 49 6e 64 | result |"$bibInd|
|000033d0| 65 6e 74 24 66 69 65 6c | 64 4e 61 6d 65 20 3d 20 |ent$fiel|dName = |
|000033e0| 20 09 24 76 61 6c 2c 5c | 72 22 0d 09 7d 09 0d 09 | .$val,\|r"..}...|
|000033f0| 72 65 74 75 72 6e 20 24 | 72 65 73 75 6c 74 0d 7d |return $|result.}|
|00003400| 0d 0d 70 72 6f 63 20 62 | 69 62 46 6f 72 6d 61 74 |..proc b|ibFormat|
|00003410| 53 65 74 75 70 20 7b 7d | 20 7b 0d 09 67 6c 6f 62 |Setup {}| {..glob|
|00003420| 61 6c 20 62 69 62 4f 70 | 65 6e 51 75 6f 74 65 20 |al bibOp|enQuote |
|00003430| 62 69 62 43 6c 6f 73 65 | 51 75 6f 74 65 20 62 69 |bibClose|Quote bi|
|00003440| 62 49 6e 64 65 6e 74 20 | 42 69 62 6d 6f 64 65 56 |bIndent |BibmodeV|
|00003450| 61 72 73 0d 09 67 6c 6f | 62 61 6c 20 62 69 62 4f |ars..glo|bal bibO|
|00003460| 70 65 6e 45 6e 74 72 79 | 20 62 69 62 43 6c 6f 73 |penEntry| bibClos|
|00003470| 65 45 6e 74 72 79 0d 09 | 62 69 62 46 69 65 6c 64 |eEntry..|bibField|
|00003480| 44 65 6c 69 6d 73 0d 09 | 62 69 62 45 6e 74 72 79 |Delims..|bibEntry|
|00003490| 44 65 6c 69 6d 73 0d 09 | 73 65 74 20 62 69 62 49 |Delims..|set bibI|
|000034a0| 6e 64 65 6e 74 20 24 42 | 69 62 6d 6f 64 65 56 61 |ndent $B|ibmodeVa|
|000034b0| 72 73 28 69 6e 64 65 6e | 74 53 74 72 69 6e 67 29 |rs(inden|tString)|
|000034c0| 0d 09 72 65 67 73 75 62 | 20 7b 5c 5c 74 7d 20 24 |..regsub| {\\t} $|
|000034d0| 62 69 62 49 6e 64 65 6e | 74 20 7b 09 7d 20 62 69 |bibInden|t {.} bi|
|000034e0| 62 49 6e 64 65 6e 74 0d | 7d 0d 0d 23 23 23 23 23 |bIndent.|}..#####|
|000034f0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003500| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003510| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003520| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003530| 23 23 23 23 23 23 0d 23 | 20 20 46 69 6e 64 20 61 |######.#| Find a|
|00003540| 6c 6c 20 65 6e 74 72 69 | 65 73 20 74 68 61 74 20 |ll entri|es that |
|00003550| 6d 61 74 63 68 20 61 20 | 67 69 76 65 6e 20 72 65 |match a |given re|
|00003560| 67 75 6c 61 72 20 65 78 | 70 72 65 73 73 69 6f 6e |gular ex|pression|
|00003570| 20 61 6e 64 20 63 6f 70 | 79 20 74 68 65 6d 20 74 | and cop|y them t|
|00003580| 6f 20 0d 23 20 20 61 20 | 6e 65 77 20 62 75 66 66 |o .# a |new buff|
|00003590| 65 72 2e 0d 23 0d 70 72 | 6f 63 20 73 65 61 72 63 |er..#.pr|oc searc|
|000035a0| 68 45 6e 74 72 69 65 73 | 20 7b 7d 20 7b 0d 09 69 |hEntries| {} {..i|
|000035b0| 66 20 5b 63 61 74 63 68 | 20 7b 70 72 6f 6d 70 74 |f [catch| {prompt|
|000035c0| 20 22 52 65 67 75 6c 61 | 72 20 65 78 70 72 65 73 | "Regula|r expres|
|000035d0| 73 69 6f 6e 3a 22 20 22 | 22 7d 20 72 65 67 5d 20 |sion:" "|"} reg] |
|000035e0| 72 65 74 75 72 6e 0d 09 | 69 66 20 7b 21 5b 73 74 |return..|if {![st|
|000035f0| 72 69 6e 67 20 6c 65 6e | 67 74 68 20 24 72 65 67 |ring len|gth $reg|
|00003600| 5d 7d 20 72 65 74 75 72 | 6e 0d 09 73 65 74 20 72 |]} retur|n..set r|
|00003610| 65 67 20 5e 2e 2a 24 72 | 65 67 2e 2a 24 0d 09 0d |eg ^.*$r|eg.*$...|
|00003620| 09 73 65 74 20 6d 61 74 | 63 68 65 73 20 5b 66 69 |.set mat|ches [fi|
|00003630| 6e 64 45 6e 74 72 69 65 | 73 20 24 72 65 67 5d 0d |ndEntrie|s $reg].|
|00003640| 09 69 66 20 7b 5b 6c 6c | 65 6e 67 74 68 20 24 6d |.if {[ll|ength $m|
|00003650| 61 74 63 68 65 73 5d 20 | 3e 30 7d 20 7b 0d 09 09 |atches] |>0} {...|
|00003660| 77 72 69 74 65 45 6e 74 | 72 69 65 73 20 24 6d 61 |writeEnt|ries $ma|
|00003670| 74 63 68 65 73 20 30 0d | 09 7d 20 65 6c 73 65 20 |tches 0.|.} else |
|00003680| 7b 0d 09 09 6d 65 73 73 | 61 67 65 20 22 4e 6f 20 |{...mess|age "No |
|00003690| 6d 61 74 63 68 69 6e 67 | 20 65 6e 74 72 69 65 73 |matching| entries|
|000036a0| 20 77 65 72 65 20 66 6f | 75 6e 64 22 0d 09 7d 0d | were fo|und"..}.|
|000036b0| 7d 0d 0d 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |}..#####|########|
|000036c0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000036d0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000036e0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000036f0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 0d 23 |########|######.#|
|00003700| 20 20 46 69 6e 64 20 61 | 6c 6c 20 65 6e 74 72 69 | Find a|ll entri|
|00003710| 65 73 20 69 6e 20 77 68 | 69 63 68 20 74 68 65 20 |es in wh|ich the |
|00003720| 69 6e 64 69 63 61 74 65 | 64 20 66 69 65 6c 64 20 |indicate|d field |
|00003730| 6d 61 74 63 68 65 73 20 | 61 20 67 69 76 65 6e 20 |matches |a given |
|00003740| 72 65 67 75 6c 61 72 20 | 0d 23 20 20 65 78 70 72 |regular |.# expr|
|00003750| 65 73 73 69 6f 6e 20 61 | 6e 64 20 63 6f 70 79 20 |ession a|nd copy |
|00003760| 74 68 65 6d 20 74 6f 20 | 61 20 6e 65 77 20 62 75 |them to |a new bu|
|00003770| 66 66 65 72 2e 20 20 0d | 23 0d 70 72 6f 63 20 73 |ffer. .|#.proc s|
|00003780| 65 61 72 63 68 46 69 65 | 6c 64 73 20 7b 7d 20 7b |earchFie|lds {} {|
|00003790| 0d 09 67 6c 6f 62 61 6c | 20 66 69 65 6c 64 4e 61 |..global| fieldNa|
|000037a0| 6d 65 73 0d 09 69 66 20 | 7b 5b 63 61 74 63 68 20 |mes..if |{[catch |
|000037b0| 7b 65 76 61 6c 20 70 72 | 6f 6d 70 74 20 7b 7b 46 |{eval pr|ompt {{F|
|000037c0| 69 65 6c 64 20 6e 61 6d | 65 3a 7d 7d 20 22 61 75 |ield nam|e:}} "au|
|000037d0| 74 68 6f 72 22 20 7b 46 | 69 65 6c 64 73 7d 20 24 |thor" {F|ields} $|
|000037e0| 66 69 65 6c 64 4e 61 6d | 65 73 7d 20 66 6c 64 5d |fieldNam|es} fld]|
|000037f0| 7d 20 72 65 74 75 72 6e | 0d 09 69 66 20 7b 21 5b |} return|..if {![|
|00003800| 73 74 72 69 6e 67 20 6c | 65 6e 67 74 68 20 24 66 |string l|ength $f|
|00003810| 6c 64 5d 7d 20 72 65 74 | 75 72 6e 0d 0d 09 69 66 |ld]} ret|urn...if|
|00003820| 20 7b 5b 63 61 74 63 68 | 20 7b 70 72 6f 6d 70 74 | {[catch| {prompt|
|00003830| 20 22 52 65 67 75 6c 61 | 72 20 65 78 70 72 65 73 | "Regula|r expres|
|00003840| 73 69 6f 6e 3a 22 20 22 | 22 7d 20 72 65 67 5d 7d |sion:" "|"} reg]}|
|00003850| 20 72 65 74 75 72 6e 0d | 09 69 66 20 7b 21 5b 73 | return.|.if {![s|
|00003860| 74 72 69 6e 67 20 6c 65 | 6e 67 74 68 20 24 72 65 |tring le|ngth $re|
|00003870| 67 5d 7d 20 72 65 74 75 | 72 6e 0d 0d 09 73 65 74 |g]} retu|rn...set|
|00003880| 20 6d 61 74 63 68 65 73 | 20 5b 66 69 6e 64 45 6e | matches| [findEn|
|00003890| 74 72 69 65 73 20 24 72 | 65 67 5d 0d 09 69 66 20 |tries $r|eg]..if |
|000038a0| 7b 5b 6c 6c 65 6e 67 74 | 68 20 24 6d 61 74 63 68 |{[llengt|h $match|
|000038b0| 65 73 5d 20 3d 3d 20 30 | 7d 20 7b 0d 09 09 72 65 |es] == 0|} {...re|
|000038c0| 74 75 72 6e 20 22 4e 6f | 20 6d 61 74 63 68 69 6e |turn "No| matchin|
|000038d0| 67 20 65 6e 74 72 69 65 | 73 20 77 65 72 65 20 66 |g entrie|s were f|
|000038e0| 6f 75 6e 64 22 0d 09 7d | 0d 09 0d 09 73 65 74 20 |ound"..}|....set |
|000038f0| 76 61 6c 73 20 7b 7d 0d | 09 66 6f 72 65 61 63 68 |vals {}.|.foreach|
|00003900| 20 68 69 74 20 24 6d 61 | 74 63 68 65 73 20 7b 0d | hit $ma|tches {.|
|00003910| 09 09 73 65 74 20 70 6f | 73 20 5b 6c 69 6e 64 65 |..set po|s [linde|
|00003920| 78 20 24 68 69 74 20 20 | 31 5d 0d 09 09 73 65 74 |x $hit |1]...set|
|00003930| 20 74 6f 70 20 5b 6c 69 | 6e 64 65 78 20 24 68 69 | top [li|ndex $hi|
|00003940| 74 20 32 5d 20 0d 09 09 | 73 65 74 20 62 6f 74 74 |t 2] ...|set bott|
|00003950| 6f 6d 20 5b 6c 69 6e 64 | 65 78 20 24 68 69 74 20 |om [lind|ex $hit |
|00003960| 33 5d 0d 09 09 69 66 20 | 7b 5b 67 65 74 46 6c 64 |3]...if |{[getFld|
|00003970| 4e 61 6d 65 20 24 70 6f | 73 20 24 74 6f 70 5d 20 |Name $po|s $top] |
|00003980| 3d 3d 20 24 66 6c 64 7d | 20 7b 0d 09 09 09 6c 61 |== $fld}| {....la|
|00003990| 70 70 65 6e 64 20 76 61 | 6c 73 20 5b 6c 69 73 74 |ppend va|ls [list|
|000039a0| 20 24 74 6f 70 20 24 62 | 6f 74 74 6f 6d 5d 0d 09 | $top $b|ottom]..|
|000039b0| 09 7d 0d 09 7d 0d 09 0d | 09 69 66 20 7b 5b 6c 6c |.}..}...|.if {[ll|
|000039c0| 65 6e 67 74 68 20 24 76 | 61 6c 73 5d 20 3e 30 7d |ength $v|als] >0}|
|000039d0| 20 7b 0d 09 09 77 72 69 | 74 65 45 6e 74 72 69 65 | {...wri|teEntrie|
|000039e0| 73 20 24 76 61 6c 73 20 | 30 0d 09 7d 20 65 6c 73 |s $vals |0..} els|
|000039f0| 65 20 7b 0d 09 09 6d 65 | 73 73 61 67 65 20 22 4e |e {...me|ssage "N|
|00003a00| 6f 20 6d 61 74 63 68 69 | 6e 67 20 65 6e 74 72 69 |o matchi|ng entri|
|00003a10| 65 73 20 77 65 72 65 20 | 66 6f 75 6e 64 22 0d 09 |es were |found"..|
|00003a20| 7d 0d 09 0d 7d 0d 0d 23 | 23 23 23 23 23 23 23 23 |}...}..#|########|
|00003a30| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003a40| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003a50| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003a60| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003a70| 23 23 0d 23 20 53 6f 72 | 74 20 61 6c 6c 20 6f 66 |##.# Sor|t all of|
|00003a80| 20 74 68 65 20 65 6e 74 | 72 69 65 73 20 6f 6e 65 | the ent|ries one|
|00003a90| 20 6f 66 20 76 61 72 69 | 6f 75 73 20 63 72 69 74 | of vari|ous crit|
|00003aa0| 65 72 69 61 2e 0d 23 0d | 70 72 6f 63 20 62 69 62 |eria..#.|proc bib|
|00003ab0| 53 6f 72 74 50 72 6f 63 | 20 7b 6d 65 6e 75 20 69 |SortProc| {menu i|
|00003ac0| 74 65 6d 7d 20 7b 0d 09 | 69 66 20 7b 24 69 74 65 |tem} {..|if {$ite|
|00003ad0| 6d 20 3d 3d 20 22 63 69 | 74 65 4b 65 79 22 7d 20 |m == "ci|teKey"} |
|00003ae0| 7b 0d 09 09 73 6f 72 74 | 42 79 43 69 74 65 4b 65 |{...sort|ByCiteKe|
|00003af0| 79 0d 09 7d 20 65 6c 73 | 65 69 66 20 20 7b 24 69 |y..} els|eif {$i|
|00003b00| 74 65 6d 20 3d 3d 20 22 | 66 69 72 73 74 41 75 74 |tem == "|firstAut|
|00003b10| 68 6f 72 22 7d 20 7b 0d | 09 09 73 6f 72 74 42 79 |hor"} {.|..sortBy|
|00003b20| 41 75 74 68 6f 72 73 20 | 30 0d 09 7d 20 65 6c 73 |Authors |0..} els|
|00003b30| 65 69 66 20 20 7b 24 69 | 74 65 6d 20 3d 3d 20 22 |eif {$i|tem == "|
|00003b40| 6c 61 73 74 41 75 74 68 | 6f 72 22 7d 20 7b 0d 09 |lastAuth|or"} {..|
|00003b50| 09 73 6f 72 74 42 79 41 | 75 74 68 6f 72 73 20 31 |.sortByA|uthors 1|
|00003b60| 0d 09 7d 0d 7d 0d 0d 23 | 23 23 23 23 23 23 23 23 |..}.}..#|########|
|00003b70| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003b80| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003b90| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003ba0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003bb0| 23 23 0d 23 20 53 6f 72 | 74 20 61 6c 6c 20 6f 66 |##.# Sor|t all of|
|00003bc0| 20 74 68 65 20 65 6e 74 | 72 69 65 73 20 69 6e 20 | the ent|ries in |
|00003bd0| 74 68 65 20 66 69 6c 65 | 20 61 6c 70 68 61 62 65 |the file| alphabe|
|00003be0| 74 69 63 61 6c 6c 79 20 | 62 79 20 61 75 74 68 6f |tically |by autho|
|00003bf0| 72 2e 0d 23 0d 70 72 6f | 63 20 73 6f 72 74 42 79 |r..#.pro|c sortBy|
|00003c00| 41 75 74 68 6f 72 73 20 | 7b 6c 61 73 74 41 75 74 |Authors |{lastAut|
|00003c10| 68 6f 72 46 69 72 73 74 | 7d 20 7b 0d 09 73 65 74 |horFirst|} {..set|
|00003c20| 20 6d 61 74 63 68 65 73 | 20 5b 66 69 6e 64 45 6e | matches| [findEn|
|00003c30| 74 72 69 65 73 20 7b 5e | 5b 09 5d 2a 40 5b 5e 5c |tries {^|[.]*@[^\|
|00003c40| 7b 5c 28 5d 2b 5b 5c 7b | 5c 28 5d 28 5b 2d 41 2d |{\(]+[\{|\(]([-A-|
|00003c50| 5a 61 2d 7a 30 2d 39 5f | 3a 5c 2e 5d 2b 29 7d 20 |Za-z0-9_|:\.]+)} |
|00003c60| 5d 0d 09 73 65 74 20 76 | 61 6c 73 20 7b 7d 0d 09 |]..set v|als {}..|
|00003c70| 73 65 74 20 6f 74 68 65 | 72 73 20 7b 7d 0d 09 73 |set othe|rs {}..s|
|00003c80| 65 74 20 62 65 67 20 5b | 6d 61 78 50 6f 73 5d 0d |et beg [|maxPos].|
|00003c90| 09 73 65 74 20 65 6e 64 | 20 30 0d 09 66 6f 72 65 |.set end| 0..fore|
|00003ca0| 61 63 68 20 68 69 74 20 | 24 6d 61 74 63 68 65 73 |ach hit |$matches|
|00003cb0| 20 7b 0d 09 09 73 65 74 | 20 70 6f 73 20 5b 6c 69 | {...set| pos [li|
|00003cc0| 6e 64 65 78 20 24 68 69 | 74 20 31 5d 0d 09 09 73 |ndex $hi|t 1]...s|
|00003cd0| 65 74 20 74 6f 70 20 5b | 6c 69 6e 64 65 78 20 24 |et top [|lindex $|
|00003ce0| 68 69 74 20 32 5d 20 0d | 09 09 73 65 74 20 62 6f |hit 2] .|..set bo|
|00003cf0| 74 74 6f 6d 20 5b 6c 69 | 6e 64 65 78 20 24 68 69 |ttom [li|ndex $hi|
|00003d00| 74 20 33 5d 0d 09 09 73 | 65 74 20 65 6e 74 72 79 |t 3]...s|et entry|
|00003d10| 20 5b 67 65 74 54 65 78 | 74 20 24 74 6f 70 20 24 | [getTex|t $top $|
|00003d20| 62 6f 74 74 6f 6d 5d 0d | 09 09 72 65 67 73 75 62 |bottom].|..regsub|
|00003d30| 20 2d 61 6c 6c 20 22 5c | 5b 5c 6e 5c 72 5c 5d 2b | -all "\|[\n\r\]+|
|00003d40| 22 20 24 65 6e 74 72 79 | 20 7b 20 7d 20 65 6e 74 |" $entry| { } ent|
|00003d50| 72 79 0d 09 09 72 65 67 | 73 75 62 20 2d 61 6c 6c |ry...reg|sub -all|
|00003d60| 20 22 5c 5b 20 5c 74 5c | 5d 5c 5b 20 5c 74 5c 5d | "\[ \t\|]\[ \t\]|
|00003d70| 2b 22 20 24 65 6e 74 72 | 79 20 7b 20 7d 20 65 6e |+" $entr|y { } en|
|00003d80| 74 72 79 0d 09 09 69 66 | 20 7b 21 5b 63 61 74 63 |try...if| {![catc|
|00003d90| 68 20 7b 67 65 74 46 6c | 64 56 61 6c 75 65 20 24 |h {getFl|dValue $|
|00003da0| 65 6e 74 72 79 20 61 75 | 74 68 6f 72 7d 20 66 6c |entry au|thor} fl|
|00003db0| 64 76 61 6c 5d 7d 20 7b | 0d 09 09 09 6c 61 70 70 |dval]} {|....lapp|
|00003dc0| 65 6e 64 20 76 61 6c 73 | 20 5b 6c 69 73 74 20 5b |end vals| [list [|
|00003dd0| 61 75 74 68 53 6f 72 74 | 4b 65 79 20 24 66 6c 64 |authSort|Key $fld|
|00003de0| 76 61 6c 20 24 6c 61 73 | 74 41 75 74 68 6f 72 46 |val $las|tAuthorF|
|00003df0| 69 72 73 74 5d 20 24 74 | 6f 70 20 24 62 6f 74 74 |irst] $t|op $bott|
|00003e00| 6f 6d 5d 0d 09 09 7d 20 | 65 6c 73 65 20 7b 0d 09 |om]...} |else {..|
|00003e10| 09 09 6c 61 70 70 65 6e | 64 20 6f 74 68 65 72 73 |..lappen|d others|
|00003e20| 20 5b 6c 69 73 74 20 24 | 70 6f 73 20 24 74 6f 70 | [list $|pos $top|
|00003e30| 20 24 62 6f 74 74 6f 6d | 5d 0d 09 09 7d 0d 09 09 | $bottom|]...}...|
|00003e40| 69 66 20 7b 24 74 6f 70 | 20 3c 20 24 62 65 67 7d |if {$top| < $beg}|
|00003e50| 20 7b 73 65 74 20 62 65 | 67 20 24 74 6f 70 7d 0d | {set be|g $top}.|
|00003e60| 09 09 69 66 20 7b 24 62 | 6f 74 74 6f 6d 20 3e 20 |..if {$b|ottom > |
|00003e70| 24 65 6e 64 7d 20 7b 73 | 65 74 20 65 6e 64 20 24 |$end} {s|et end $|
|00003e80| 62 6f 74 74 6f 6d 7d 0d | 09 7d 0d 09 73 65 74 20 |bottom}.|.}..set |
|00003e90| 72 65 73 75 6c 74 20 5b | 63 6f 6e 63 61 74 20 24 |result [|concat $|
|00003ea0| 6f 74 68 65 72 73 20 5b | 6c 73 6f 72 74 20 24 76 |others [|lsort $v|
|00003eb0| 61 6c 73 5d 5d 0d 09 69 | 66 20 7b 5b 6c 6c 65 6e |als]]..i|f {[llen|
|00003ec0| 67 74 68 20 24 72 65 73 | 75 6c 74 5d 20 3e 30 7d |gth $res|ult] >0}|
|00003ed0| 20 7b 0d 09 09 77 72 69 | 74 65 45 6e 74 72 69 65 | {...wri|teEntrie|
|00003ee0| 73 20 24 72 65 73 75 6c | 74 20 31 20 24 62 65 67 |s $resul|t 1 $beg|
|00003ef0| 20 24 65 6e 64 0d 09 7d | 20 65 6c 73 65 20 7b 0d | $end..}| else {.|
|00003f00| 09 09 6d 65 73 73 61 67 | 65 20 22 4e 6f 20 72 65 |..messag|e "No re|
|00003f10| 73 75 6c 74 73 20 6f 66 | 20 61 75 74 68 6f 72 20 |sults of| author |
|00003f20| 73 6f 72 74 20 21 21 3f | 3f 22 0d 09 7d 0d 7d 0d |sort !!?|?"..}.}.|
|00003f30| 0d 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |.#######|########|
|00003f40| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003f50| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003f60| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003f70| 23 23 23 23 23 23 23 23 | 23 23 23 23 0d 23 20 43 |########|####.# C|
|00003f80| 72 65 61 74 65 20 61 20 | 73 6f 72 74 20 6b 65 79 |reate a |sort key|
|00003f90| 20 66 72 6f 6d 20 61 6e | 20 61 75 74 68 6f 72 20 | from an| author |
|00003fa0| 6c 69 73 74 2e 20 20 57 | 68 65 6e 20 73 6f 72 74 |list. W|hen sort|
|00003fb0| 69 6e 67 20 65 6e 74 72 | 69 65 73 20 62 79 20 61 |ing entr|ies by a|
|00003fc0| 75 74 68 6f 72 2c 20 0d | 23 20 70 65 72 66 6f 72 |uthor, .|# perfor|
|00003fd0| 6d 69 6e 67 20 74 68 65 | 20 73 6f 72 74 20 75 73 |ming the| sort us|
|00003fe0| 69 6e 67 20 6b 65 79 73 | 20 73 68 6f 75 6c 64 20 |ing keys| should |
|00003ff0| 62 65 20 66 61 73 74 65 | 72 20 74 68 61 6e 20 72 |be faste|r than r|
|00004000| 65 70 61 72 73 69 6e 67 | 20 74 68 65 20 61 75 74 |eparsing| the aut|
|00004010| 68 6f 72 20 0d 23 20 6c | 69 73 74 73 20 66 6f 72 |hor .# l|ists for|
|00004020| 20 65 76 65 72 79 20 63 | 6f 6d 70 61 72 69 73 6f | every c|ompariso|
|00004030| 6e 20 28 74 68 65 20 6f | 6c 64 20 6d 65 74 68 6f |n (the o|ld metho|
|00004040| 64 20 3a 2d 28 20 29 2e | 0d 23 0d 70 72 6f 63 20 |d :-( ).|.#.proc |
|00004050| 61 75 74 68 53 6f 72 74 | 4b 65 79 20 7b 61 75 74 |authSort|Key {aut|
|00004060| 68 4c 69 73 74 20 6c 61 | 73 74 41 75 74 68 6f 72 |hList la|stAuthor|
|00004070| 46 69 72 73 74 7d 20 7b | 0d 09 73 65 74 20 70 61 |First} {|..set pa|
|00004080| 74 31 20 7b 5c 5c 2e 5c | 7b 28 5b 41 2d 5a 61 2d |t1 {\\.\|{([A-Za-|
|00004090| 7a 5d 29 5c 7d 7d 0d 09 | 73 65 74 20 70 61 74 32 |z])\}}..|set pat2|
|000040a0| 20 7b 5c 7b 28 5b 5e 5c | 7b 5c 7d 5d 2b 29 20 28 | {\{([^\|{\}]+) (|
|000040b0| 5b 5e 5c 7b 5c 7d 5d 2b | 29 5c 7d 7d 0d 0d 23 20 |[^\{\}]+|)\}}..# |
|000040c0| 52 65 6d 6f 76 65 20 65 | 6e 63 6c 6f 73 69 6e 67 |Remove e|nclosing|
|000040d0| 20 62 72 61 63 65 73 2c | 20 71 75 6f 74 65 73 2c | braces,| quotes,|
|000040e0| 20 6f 72 20 77 68 69 74 | 65 73 70 61 63 65 0d 09 | or whit|espace..|
|000040f0| 73 65 74 20 61 75 74 68 | 73 20 25 5b 73 74 72 69 |set auth|s %[stri|
|00004100| 6e 67 20 74 72 69 6d 20 | 24 61 75 74 68 4c 69 73 |ng trim |$authLis|
|00004110| 74 20 7b 7b 7d 22 20 09 | 7d 5d 26 0d 23 20 52 65 |t {{}" .|}]&.# Re|
|00004120| 6d 6f 76 65 20 54 65 58 | 20 63 6f 64 65 73 20 66 |move TeX| codes f|
|00004130| 6f 72 20 61 63 63 65 6e | 74 65 64 20 63 68 61 72 |or accen|ted char|
|00004140| 61 63 74 65 72 73 0d 09 | 72 65 67 73 75 62 20 2d |acters..|regsub -|
|00004150| 61 6c 6c 20 24 70 61 74 | 31 20 24 61 75 74 68 73 |all $pat|1 $auths|
|00004160| 20 7b 5c 31 7d 20 61 75 | 74 68 73 0d 23 20 43 6f | {\1} au|ths.# Co|
|00004170| 6e 63 61 74 65 6e 61 74 | 65 20 73 74 72 69 6e 67 |ncatenat|e string|
|00004180| 73 20 65 6e 63 6c 6f 73 | 65 64 20 69 6e 20 62 72 |s enclos|ed in br|
|00004190| 61 63 65 73 0d 09 77 68 | 69 6c 65 20 7b 5b 72 65 |aces..wh|ile {[re|
|000041a0| 67 73 75 62 20 2d 61 6c | 6c 20 24 70 61 74 32 20 |gsub -al|l $pat2 |
|000041b0| 24 61 75 74 68 73 20 7b | 7b 5c 31 5c 32 7d 7d 20 |$auths {|{\1\2}} |
|000041c0| 61 75 74 68 73 5d 7d 20 | 7b 7d 0d 23 20 52 65 6d |auths]} |{}.# Rem|
|000041d0| 6f 76 65 20 62 72 61 63 | 65 73 20 28 63 75 72 6c |ove brac|es (curl|
|000041e0| 79 20 61 6e 64 20 73 71 | 75 61 72 65 29 0d 09 72 |y and sq|uare)..r|
|000041f0| 65 67 73 75 62 20 2d 61 | 6c 6c 20 7b 5b 5d 5b 5c |egsub -a|ll {[][\|
|00004200| 7b 5c 7d 5d 7d 20 24 61 | 75 74 68 73 20 7b 7d 20 |{\}]} $a|uths {} |
|00004210| 61 75 74 68 73 0d 23 09 | 72 65 67 73 75 62 20 2d |auths.#.|regsub -|
|00004220| 61 6c 6c 20 7b 2c 7d 20 | 24 61 75 74 68 73 20 7b |all {,} |$auths {|
|00004230| 20 2c 7d 20 61 75 74 68 | 73 0d 23 20 52 65 70 6c | ,} auth|s.# Repl|
|00004240| 61 63 65 20 27 61 6e 64 | 27 73 20 77 69 74 68 20 |ace 'and|'s with |
|00004250| 62 65 67 69 6e 2d 6e 61 | 6d 65 2f 65 6e 64 2d 6e |begin-na|me/end-n|
|00004260| 61 6d 65 20 64 65 6c 69 | 6d 69 74 65 72 73 0d 09 |ame deli|miters..|
|00004270| 72 65 67 73 75 62 20 2d | 61 6c 6c 20 7b 5b 20 5c |regsub -|all {[ \|
|00004280| 74 5d 61 6e 64 5b 20 5c | 74 5d 7d 20 24 61 75 74 |t]and[ \|t]} $aut|
|00004290| 68 73 20 7b 20 5c 26 25 | 20 7d 20 61 75 74 68 73 |hs { \&%| } auths|
|000042a0| 0d 23 20 50 75 74 20 6c | 61 73 74 20 6e 61 6d 65 |.# Put l|ast name|
|000042b0| 20 66 69 72 73 74 20 69 | 6e 20 6e 61 6d 65 20 66 | first i|n name f|
|000042c0| 69 65 6c 64 73 20 77 69 | 74 68 6f 75 74 20 63 6f |ields wi|thout co|
|000042d0| 6d 6d 61 73 0d 09 72 65 | 67 73 75 62 20 2d 61 6c |mmas..re|gsub -al|
|000042e0| 6c 20 7b 25 28 5b 5e 5c | 26 2c 5d 2b 29 20 28 5b |l {%([^\|&,]+) ([|
|000042f0| 5e 5c 26 2c 20 5d 2b 29 | 20 2a 5c 26 7d 20 24 61 |^\&, ]+)| *\&} $a|
|00004300| 75 74 68 73 20 7b 25 5c | 32 2c 5c 31 5c 26 7d 20 |uths {%\|2,\1\&} |
|00004310| 61 75 74 68 73 0d 23 20 | 52 65 6d 6f 76 65 20 62 |auths.# |Remove b|
|00004320| 65 67 69 6e 2d 6e 61 6d | 65 20 64 65 6c 69 6d 69 |egin-nam|e delimi|
|00004330| 74 65 72 73 0d 09 72 65 | 67 73 75 62 20 2d 61 6c |ters..re|gsub -al|
|00004340| 6c 20 7b 25 7d 20 24 61 | 75 74 68 73 20 7b 7d 20 |l {%} $a|uths {} |
|00004350| 61 75 74 68 73 0d 23 20 | 52 65 6d 6f 76 65 20 77 |auths.# |Remove w|
|00004360| 68 69 74 65 73 70 61 63 | 65 20 73 75 72 72 6f 75 |hitespac|e surrou|
|00004370| 6e 64 69 6e 67 20 6e 61 | 6d 65 20 73 65 70 61 72 |nding na|me separ|
|00004380| 61 74 6f 72 73 0d 09 72 | 65 67 73 75 62 20 2d 61 |ators..r|egsub -a|
|00004390| 6c 6c 20 7b 5b 20 5c 74 | 5d 2a 5c 26 5b 20 5c 74 |ll {[ \t|]*\&[ \t|
|000043a0| 5d 2a 7d 20 24 61 75 74 | 68 73 20 7b 5c 26 7d 20 |]*} $aut|hs {\&} |
|000043b0| 61 75 74 68 73 0d 23 20 | 52 65 70 6c 61 63 65 20 |auths.# |Replace |
|000043c0| 77 68 69 74 65 73 70 61 | 63 65 20 73 65 70 61 72 |whitespa|ce separ|
|000043d0| 61 74 69 6e 67 20 77 6f | 72 64 73 20 77 69 74 68 |ating wo|rds with|
|000043e0| 20 73 68 72 69 65 6b 73 | 20 0d 09 72 65 67 73 75 | shrieks| ..regsu|
|000043f0| 62 20 2d 61 6c 6c 20 7b | 5b 20 5c 74 2c 5d 2b 7d |b -all {|[ \t,]+}|
|00004400| 20 24 61 75 74 68 73 20 | 7b 21 7d 20 61 75 74 68 | $auths |{!} auth|
|00004410| 73 0d 23 20 49 66 20 64 | 65 73 69 72 65 64 2c 20 |s.# If d|esired, |
|00004420| 6d 6f 76 65 20 6c 61 73 | 74 20 61 75 74 68 6f 72 |move las|t author|
|00004430| 20 74 6f 20 68 65 61 64 | 20 6f 66 20 73 6f 72 74 | to head| of sort|
|00004440| 20 6b 65 79 0d 09 69 66 | 20 7b 24 6c 61 73 74 41 | key..if| {$lastA|
|00004450| 75 74 68 6f 72 46 69 72 | 73 74 7d 20 7b 0d 09 09 |uthorFir|st} {...|
|00004460| 72 65 67 73 75 62 20 7b | 28 2e 2a 29 26 28 5b 5e |regsub {|(.*)&([^|
|00004470| 26 5d 2b 29 7d 20 24 61 | 75 74 68 73 20 7b 5c 32 |&]+)} $a|uths {\2|
|00004480| 21 5c 31 7d 20 61 75 74 | 68 73 0d 09 7d 0d 09 09 |!\1} aut|hs..}...|
|00004490| 0d 09 72 65 74 75 72 6e | 20 24 61 75 74 68 73 0d |..return| $auths.|
|000044a0| 7d 0d 0d 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |}..#####|########|
|000044b0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000044c0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000044d0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000044e0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 0d 23 |########|######.#|
|000044f0| 20 53 6f 72 74 20 61 6c | 6c 20 6f 66 20 74 68 65 | Sort al|l of the|
|00004500| 20 65 6e 74 72 69 65 73 | 20 69 6e 20 74 68 65 20 | entries| in the |
|00004510| 66 69 6c 65 20 61 6c 70 | 68 61 62 65 74 69 63 61 |file alp|habetica|
|00004520| 6c 6c 79 20 62 79 20 74 | 68 65 69 72 20 63 69 74 |lly by t|heir cit|
|00004530| 65 2d 6b 65 79 73 2e 0d | 23 0d 70 72 6f 63 20 73 |e-keys..|#.proc s|
|00004540| 6f 72 74 42 79 43 69 74 | 65 4b 65 79 20 7b 7d 20 |ortByCit|eKey {} |
|00004550| 7b 0d 0d 09 73 65 74 20 | 6d 61 74 63 68 65 73 20 |{...set |matches |
|00004560| 5b 66 69 6e 64 45 6e 74 | 72 69 65 73 20 7b 5e 5b |[findEnt|ries {^[|
|00004570| 09 5d 2a 40 5b 5e 5c 7b | 5c 28 5d 2b 5b 5c 7b 5c |.]*@[^\{|\(]+[\{\|
|00004580| 28 5d 28 5b 2d 41 2d 5a | 61 2d 7a 30 2d 39 5f 3a |(]([-A-Z|a-z0-9_:|
|00004590| 5c 2e 5d 2b 29 7d 20 5d | 0d 09 73 65 74 20 62 65 |\.]+)} ]|..set be|
|000045a0| 67 45 6e 74 72 69 65 73 | 20 5b 6d 61 78 50 6f 73 |gEntries| [maxPos|
|000045b0| 5d 0d 09 73 65 74 20 65 | 6e 64 45 6e 74 72 69 65 |]..set e|ndEntrie|
|000045c0| 73 20 30 0d 09 66 6f 72 | 65 61 63 68 20 68 69 74 |s 0..for|each hit|
|000045d0| 20 24 6d 61 74 63 68 65 | 73 20 7b 0d 09 09 73 65 | $matche|s {...se|
|000045e0| 74 20 62 65 67 20 5b 6c | 69 6e 64 65 78 20 24 68 |t beg [l|index $h|
|000045f0| 69 74 20 30 5d 0d 09 09 | 73 65 74 20 65 6e 64 20 |it 0]...|set end |
|00004600| 5b 6c 69 6e 64 65 78 20 | 24 68 69 74 20 31 5d 0d |[lindex |$hit 1].|
|00004610| 09 09 73 65 74 20 74 6f | 70 20 5b 6c 69 6e 64 65 |..set to|p [linde|
|00004620| 78 20 24 68 69 74 20 32 | 5d 20 0d 09 09 73 65 74 |x $hit 2|] ...set|
|00004630| 20 62 6f 74 74 6f 6d 20 | 5b 6c 69 6e 64 65 78 20 | bottom |[lindex |
|00004640| 24 68 69 74 20 33 5d 0d | 09 09 72 65 67 65 78 70 |$hit 3].|..regexp|
|00004650| 20 7b 5b 5c 7b 5c 28 5d | 28 5b 2d 41 2d 5a 61 2d | {[\{\(]|([-A-Za-|
|00004660| 7a 30 2d 39 5f 3a 5c 2e | 5d 2b 29 7d 20 5b 67 65 |z0-9_:\.|]+)} [ge|
|00004670| 74 54 65 78 74 20 24 62 | 65 67 20 24 65 6e 64 5d |tText $b|eg $end]|
|00004680| 20 61 6c 6c 6f 66 69 74 | 20 63 69 74 65 6b 65 79 | allofit| citekey|
|00004690| 0d 09 09 6c 61 70 70 65 | 6e 64 20 76 61 6c 73 20 |...lappe|nd vals |
|000046a0| 5b 6c 69 73 74 20 24 63 | 69 74 65 6b 65 79 20 24 |[list $c|itekey $|
|000046b0| 74 6f 70 20 24 62 6f 74 | 74 6f 6d 5d 5d 0d 09 09 |top $bot|tom]]...|
|000046c0| 69 66 20 7b 24 74 6f 70 | 20 3c 20 24 62 65 67 45 |if {$top| < $begE|
|000046d0| 6e 74 72 69 65 73 7d 20 | 7b 73 65 74 20 62 65 67 |ntries} |{set beg|
|000046e0| 45 6e 74 72 69 65 73 20 | 24 74 6f 70 7d 0d 09 09 |Entries |$top}...|
|000046f0| 69 66 20 7b 24 62 6f 74 | 74 6f 6d 20 3e 20 24 65 |if {$bot|tom > $e|
|00004700| 6e 64 45 6e 74 72 69 65 | 73 7d 20 7b 73 65 74 20 |ndEntrie|s} {set |
|00004710| 65 6e 64 45 6e 74 72 69 | 65 73 20 24 62 6f 74 74 |endEntri|es $bott|
|00004720| 6f 6d 7d 0d 09 7d 0d 0d | 09 73 65 74 20 72 65 73 |om}..}..|.set res|
|00004730| 75 6c 74 20 5b 6c 73 6f | 72 74 20 24 76 61 6c 73 |ult [lso|rt $vals|
|00004740| 5d 0d 09 69 66 20 7b 5b | 6c 6c 65 6e 67 74 68 20 |]..if {[|llength |
|00004750| 24 72 65 73 75 6c 74 5d | 20 3e 30 7d 20 7b 0d 09 |$result]| >0} {..|
|00004760| 09 77 72 69 74 65 45 6e | 74 72 69 65 73 20 24 72 |.writeEn|tries $r|
|00004770| 65 73 75 6c 74 20 31 20 | 24 62 65 67 45 6e 74 72 |esult 1 |$begEntr|
|00004780| 69 65 73 20 24 65 6e 64 | 45 6e 74 72 69 65 73 0d |ies $end|Entries.|
|00004790| 09 7d 20 65 6c 73 65 20 | 7b 0d 09 09 6d 65 73 73 |.} else |{...mess|
|000047a0| 61 67 65 20 22 4e 6f 20 | 72 65 73 75 6c 74 73 20 |age "No |results |
|000047b0| 6f 66 20 63 69 74 65 2d | 6b 65 79 20 73 6f 72 74 |of cite-|key sort|
|000047c0| 20 21 21 3f 3f 22 0d 09 | 7d 0d 7d 0d 0d 23 23 23 | !!??"..|}.}..###|
|000047d0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000047e0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000047f0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00004800| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00004810| 23 23 23 23 23 23 23 23 | 0d 23 20 53 65 61 72 63 |########|.# Searc|
|00004820| 68 20 66 6f 72 20 61 6c | 6c 20 65 6e 74 72 69 65 |h for al|l entrie|
|00004830| 73 20 6d 61 74 63 68 69 | 6e 67 20 61 20 67 69 76 |s matchi|ng a giv|
|00004840| 65 6e 20 72 65 67 75 6c | 61 72 20 65 78 70 72 65 |en regul|ar expre|
|00004850| 73 73 69 6f 6e 2e 20 20 | 54 68 65 20 72 65 73 75 |ssion. |The resu|
|00004860| 6c 74 73 0d 23 20 61 72 | 65 20 72 65 74 75 72 6e |lts.# ar|e return|
|00004870| 65 64 20 69 6e 20 61 20 | 6c 69 73 74 2c 20 65 61 |ed in a |list, ea|
|00004880| 63 68 20 65 6c 65 6d 65 | 6e 74 20 6f 66 20 77 68 |ch eleme|nt of wh|
|00004890| 69 63 68 20 69 73 20 61 | 20 6c 69 73 74 20 6f 66 |ich is a| list of|
|000048a0| 20 66 6f 75 72 20 69 6e | 74 65 67 65 72 73 3a 0d | four in|tegers:.|
|000048b0| 23 20 74 68 65 20 62 65 | 67 69 6e 6e 69 6e 67 20 |# the be|ginning |
|000048c0| 61 6e 64 20 65 6e 64 20 | 6f 66 20 74 68 65 20 6d |and end |of the m|
|000048d0| 61 74 63 68 69 6e 67 20 | 65 6e 74 72 79 20 61 6e |atching |entry an|
|000048e0| 64 20 74 68 65 20 62 65 | 67 69 6e 6e 69 6e 67 20 |d the be|ginning |
|000048f0| 61 6e 64 20 65 6e 64 20 | 6f 66 0d 23 20 74 68 65 |and end |of.# the|
|00004900| 20 6d 61 74 63 68 69 6e | 67 20 73 74 72 69 6e 67 | matchin|g string|
|00004910| 2e 20 20 41 64 61 70 74 | 65 64 20 66 72 6f 6d 20 |. Adapt|ed from |
|00004920| 22 6d 61 74 63 68 69 6e | 67 4c 69 6e 65 73 22 20 |"matchin|gLines" |
|00004930| 69 6e 20 22 6d 69 73 63 | 2e 74 63 6c 22 2e 0d 23 |in "misc|.tcl"..#|
|00004940| 0d 70 72 6f 63 20 66 69 | 6e 64 45 6e 74 72 69 65 |.proc fi|ndEntrie|
|00004950| 73 20 7b 72 65 67 7d 20 | 7b 0d 09 69 66 20 7b 21 |s {reg} |{..if {!|
|00004960| 5b 73 74 72 69 6e 67 20 | 6c 65 6e 67 74 68 20 24 |[string |length $|
|00004970| 72 65 67 5d 7d 20 72 65 | 74 75 72 6e 0d 09 0d 09 |reg]} re|turn....|
|00004980| 73 65 74 20 70 6f 73 20 | 30 20 20 20 0d 09 73 65 |set pos |0 ..se|
|00004990| 74 20 72 65 73 75 6c 74 | 20 7b 7d 20 20 20 20 20 |t result| {} |
|000049a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000049b0| 20 20 20 20 20 20 20 20 | 0d 09 77 68 69 6c 65 20 | |..while |
|000049c0| 7b 21 5b 63 61 74 63 68 | 20 7b 73 65 61 72 63 68 |{![catch| {search|
|000049d0| 20 2d 66 20 31 20 2d 72 | 20 31 20 2d 6d 20 30 20 | -f 1 -r| 1 -m 0 |
|000049e0| 2d 69 20 31 20 24 72 65 | 67 20 24 70 6f 73 7d 20 |-i 1 $re|g $pos} |
|000049f0| 6d 74 63 68 5d 7d 20 7b | 0d 09 09 6c 61 70 70 65 |mtch]} {|...lappe|
|00004a00| 6e 64 20 72 65 73 75 6c | 74 20 5b 63 6f 6e 63 61 |nd resul|t [conca|
|00004a10| 74 20 20 24 6d 74 63 68 | 20 5b 67 65 74 45 6e 74 |t $mtch| [getEnt|
|00004a20| 72 79 20 5b 6c 69 6e 64 | 65 78 20 24 6d 74 63 68 |ry [lind|ex $mtch|
|00004a30| 20 30 5d 5d 5d 0d 09 09 | 73 65 74 20 70 6f 73 20 | 0]]]...|set pos |
|00004a40| 5b 6c 69 6e 64 65 78 20 | 24 6d 74 63 68 20 31 5d |[lindex |$mtch 1]|
|00004a50| 0d 09 7d 0d 09 72 65 74 | 75 72 6e 20 24 72 65 73 |..}..ret|urn $res|
|00004a60| 75 6c 74 0d 7d 0d 0d 23 | 23 23 23 23 23 23 23 23 |ult.}..#|########|
|00004a70| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00004a80| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00004a90| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00004aa0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00004ab0| 23 23 0d 23 20 20 52 65 | 74 75 72 6e 20 61 20 6c |##.# Re|turn a l|
|00004ac0| 69 73 74 20 63 6f 6e 74 | 61 69 6e 69 6e 67 20 74 |ist cont|aining t|
|00004ad0| 68 65 20 64 61 74 61 20 | 66 6f 72 20 74 68 65 20 |he data |for the |
|00004ae0| 63 75 72 72 65 6e 74 20 | 65 6e 74 72 79 2c 20 69 |current |entry, i|
|00004af0| 6e 64 65 78 65 64 20 62 | 79 0d 23 20 20 74 68 65 |ndexed b|y.# the|
|00004b00| 20 70 61 72 61 6d 65 74 | 65 72 20 6e 61 6d 65 73 | paramet|er names|
|00004b10| 2c 20 65 2e 67 2e 2c 20 | 22 61 75 74 68 6f 72 22 |, e.g., |"author"|
|00004b20| 2c 20 22 79 65 61 72 22 | 2c 20 65 74 63 2e 20 20 |, "year"|, etc. |
|00004b30| 49 6e 64 65 78 20 6e 61 | 6d 65 73 20 66 6f 72 20 |Index na|mes for |
|00004b40| 74 68 65 20 0d 23 20 20 | 65 6e 74 72 79 20 74 79 |the .# |entry ty|
|00004b50| 70 65 20 61 6e 64 20 63 | 69 74 65 2d 6b 65 79 20 |pe and c|ite-key |
|00004b60| 61 72 65 20 22 74 79 70 | 65 22 20 61 6e 64 20 22 |are "typ|e" and "|
|00004b70| 63 69 74 65 6b 65 79 22 | 2e 20 0d 23 0d 70 72 6f |citekey"|. .#.pro|
|00004b80| 63 20 67 65 74 46 69 65 | 6c 64 73 20 7b 70 6f 73 |c getFie|lds {pos|
|00004b90| 7d 20 7b 0d 23 09 73 65 | 74 20 74 6f 70 50 61 74 |} {.#.se|t topPat|
|00004ba0| 20 7b 40 28 5b 61 2d 7a | 41 2d 5a 5d 2b 29 5c 7b | {@([a-z|A-Z]+)\{|
|00004bb0| 28 5b 41 2d 5a 61 2d 7a | 30 2d 39 5d 2b 29 2c 7d |([A-Za-z|0-9]+),}|
|00004bc0| 0d 09 73 65 74 20 74 6f | 70 50 61 74 20 7b 5b 20 |..set to|pPat {[ |
|00004bd0| 09 5d 2a 40 28 5b 61 2d | 7a 41 2d 5a 5d 2b 29 5b |.]*@([a-|zA-Z]+)[|
|00004be0| 5c 7b 5c 28 5d 28 5b 2d | 41 2d 5a 61 2d 7a 30 2d |\{\(]([-|A-Za-z0-|
|00004bf0| 39 5f 3a 5c 2e 5d 2b 29 | 5b 20 09 5d 2a 2c 7d 0d |9_:\.]+)|[ .]*,}.|
|00004c00| 09 73 65 74 20 66 6c 64 | 50 61 74 20 7b 5b 20 09 |.set fld|Pat {[ .|
|00004c10| 5d 2a 28 5b 61 2d 7a 41 | 2d 5a 5d 2b 29 5b 20 09 |]*([a-zA|-Z]+)[ .|
|00004c20| 5d 2a 3d 5b 20 09 5d 2a | 7d 0d 0d 09 73 65 74 20 |]*=[ .]*|}...set |
|00004c30| 6c 69 6d 69 74 73 20 5b | 67 65 74 45 6e 74 72 79 |limits [|getEntry|
|00004c40| 20 24 70 6f 73 5d 0d 09 | 73 65 74 20 74 6f 70 20 | $pos]..|set top |
|00004c50| 5b 6c 69 6e 64 65 78 20 | 24 6c 69 6d 69 74 73 20 |[lindex |$limits |
|00004c60| 30 5d 0d 09 73 65 74 20 | 62 6f 74 74 6f 6d 20 5b |0]..set |bottom [|
|00004c70| 6c 69 6e 64 65 78 20 24 | 6c 69 6d 69 74 73 20 31 |lindex $|limits 1|
|00004c80| 5d 0d 09 0d 09 73 65 74 | 20 65 6e 74 72 79 20 5b |]....set| entry [|
|00004c90| 67 65 74 54 65 78 74 20 | 24 74 6f 70 20 24 62 6f |getText |$top $bo|
|00004ca0| 74 74 6f 6d 5d 0d 09 72 | 65 67 73 75 62 20 2d 61 |ttom]..r|egsub -a|
|00004cb0| 6c 6c 20 22 5c 5b 5c 6e | 5c 72 5c 5d 2b 22 20 24 |ll "\[\n|\r\]+" $|
|00004cc0| 65 6e 74 72 79 20 7b 20 | 7d 20 65 6e 74 72 79 0d |entry { |} entry.|
|00004cd0| 09 72 65 67 73 75 62 20 | 2d 61 6c 6c 20 22 5c 5b |.regsub |-all "\[|
|00004ce0| 20 5c 74 5c 5d 5c 5b 20 | 5c 74 5c 5d 2b 22 20 24 | \t\]\[ |\t\]+" $|
|00004cf0| 65 6e 74 72 79 20 7b 20 | 7d 20 65 6e 74 72 79 0d |entry { |} entry.|
|00004d00| 0d 09 69 66 20 7b 5b 72 | 65 67 65 78 70 20 20 2d |..if {[r|egexp -|
|00004d10| 69 6e 64 69 63 65 73 20 | 24 74 6f 70 50 61 74 20 |indices |$topPat |
|00004d20| 24 65 6e 74 72 79 20 6d | 74 63 68 20 74 68 65 54 |$entry m|tch theT|
|00004d30| 79 70 65 20 74 68 65 4b | 65 79 20 5d 7d 20 7b 0d |ype theK|ey ]} {.|
|00004d40| 09 09 6c 61 70 70 65 6e | 64 20 6e 61 6d 65 73 20 |..lappen|d names |
|00004d50| 74 79 70 65 0d 09 09 73 | 65 74 20 74 79 70 65 20 |type...s|et type |
|00004d60| 5b 73 74 72 69 6e 67 20 | 74 6f 6c 6f 77 65 72 20 |[string |tolower |
|00004d70| 5b 73 74 72 69 6e 67 20 | 72 61 6e 67 65 20 24 65 |[string |range $e|
|00004d80| 6e 74 72 79 20 5b 6c 69 | 6e 64 65 78 20 24 74 68 |ntry [li|ndex $th|
|00004d90| 65 54 79 70 65 20 30 5d | 20 5b 6c 69 6e 64 65 78 |eType 0]| [lindex|
|00004da0| 20 24 74 68 65 54 79 70 | 65 20 31 5d 5d 5d 0d 09 | $theTyp|e 1]]]..|
|00004db0| 09 6c 61 70 70 65 6e 64 | 20 64 61 74 61 20 5b 6c |.lappend| data [l|
|00004dc0| 69 73 74 20 24 74 79 70 | 65 5d 0d 09 09 6c 61 70 |ist $typ|e]...lap|
|00004dd0| 70 65 6e 64 20 6e 61 6d | 65 73 20 63 69 74 65 6b |pend nam|es citek|
|00004de0| 65 79 0d 09 09 73 65 74 | 20 6b 65 79 20 5b 73 74 |ey...set| key [st|
|00004df0| 72 69 6e 67 20 72 61 6e | 67 65 20 24 65 6e 74 72 |ring ran|ge $entr|
|00004e00| 79 20 5b 6c 69 6e 64 65 | 78 20 24 74 68 65 4b 65 |y [linde|x $theKe|
|00004e10| 79 20 30 5d 20 5b 6c 69 | 6e 64 65 78 20 24 74 68 |y 0] [li|ndex $th|
|00004e20| 65 4b 65 79 20 31 5d 5d | 0d 09 09 6c 61 70 70 65 |eKey 1]]|...lappe|
|00004e30| 6e 64 20 64 61 74 61 20 | 24 6b 65 79 0d 09 09 0d |nd data |$key....|
|00004e40| 09 09 73 65 74 20 65 6e | 74 72 79 20 5b 73 74 72 |..set en|try [str|
|00004e50| 69 6e 67 20 72 61 6e 67 | 65 20 24 65 6e 74 72 79 |ing rang|e $entry|
|00004e60| 20 5b 65 78 70 72 20 31 | 20 2b 20 5b 6c 69 6e 64 | [expr 1| + [lind|
|00004e70| 65 78 20 24 6d 74 63 68 | 20 31 5d 5d 20 65 6e 64 |ex $mtch| 1]] end|
|00004e80| 5d 0d 09 09 77 68 69 6c | 65 20 7b 21 5b 63 61 74 |]...whil|e {![cat|
|00004e90| 63 68 20 7b 67 65 74 46 | 69 65 6c 64 20 24 65 6e |ch {getF|ield $en|
|00004ea0| 74 72 79 7d 20 72 65 73 | 5d 7d 20 7b 0d 09 09 09 |try} res|]} {....|
|00004eb0| 6c 61 70 70 65 6e 64 20 | 6e 61 6d 65 73 20 5b 73 |lappend |names [s|
|00004ec0| 74 72 69 6e 67 20 74 6f | 6c 6f 77 65 72 20 5b 6c |tring to|lower [l|
|00004ed0| 69 6e 64 65 78 20 24 72 | 65 73 20 30 5d 5d 0d 09 |index $r|es 0]]..|
|00004ee0| 09 09 6c 61 70 70 65 6e | 64 20 64 61 74 61 20 5b |..lappen|d data [|
|00004ef0| 62 72 65 61 6b 49 6e 74 | 6f 4c 69 6e 65 73 20 5b |breakInt|oLines [|
|00004f00| 6c 69 6e 64 65 78 20 24 | 72 65 73 20 31 5d 5d 0d |lindex $|res 1]].|
|00004f10| 09 09 09 73 65 74 20 65 | 6e 74 72 79 20 5b 6c 69 |...set e|ntry [li|
|00004f20| 6e 64 65 78 20 24 72 65 | 73 20 32 5d 0d 09 09 7d |ndex $re|s 2]...}|
|00004f30| 0d 09 09 72 65 74 75 72 | 6e 20 5b 6c 69 73 74 20 |...retur|n [list |
|00004f40| 24 6e 61 6d 65 73 20 24 | 64 61 74 61 5d 0d 09 7d |$names $|data]..}|
|00004f50| 20 65 6c 73 65 20 7b 0d | 09 09 65 72 72 6f 72 20 | else {.|..error |
|00004f60| 22 49 6e 76 61 6c 69 64 | 20 65 6e 74 72 79 22 0d |"Invalid| entry".|
|00004f70| 09 7d 0d 7d 0d 0d 23 23 | 23 23 23 23 23 23 23 23 |.}.}..##|########|
|00004f80| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00004f90| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00004fa0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00004fb0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00004fc0| 23 0d 23 20 20 45 78 74 | 72 61 63 74 20 74 68 65 |#.# Ext|ract the|
|00004fd0| 20 6e 65 78 74 20 64 61 | 74 61 20 66 69 65 6c 64 | next da|ta field|
|00004fe0| 20 66 72 6f 6d 20 74 68 | 65 20 65 6e 74 72 79 2c | from th|e entry,|
|00004ff0| 20 70 61 73 73 65 64 20 | 61 73 20 61 20 73 69 6e | passed |as a sin|
|00005000| 67 6c 65 20 73 74 72 69 | 6e 67 2e 0d 23 20 20 54 |gle stri|ng..# T|
|00005010| 68 69 73 20 76 65 72 73 | 69 6f 6e 20 74 72 69 65 |his vers|ion trie|
|00005020| 73 20 74 6f 20 62 65 20 | 63 6f 6d 70 6c 65 74 65 |s to be |complete|
|00005030| 6c 79 20 67 65 6e 65 72 | 61 6c 2c 20 61 6c 6c 6f |ly gener|al, allo|
|00005040| 77 69 6e 67 20 6e 65 73 | 74 65 64 20 62 72 61 63 |wing nes|ted brac|
|00005050| 65 73 0d 23 20 20 77 69 | 74 68 69 6e 20 64 61 74 |es.# wi|thin dat|
|00005060| 61 20 66 69 65 6c 64 73 | 20 61 6e 64 20 69 67 6e |a fields| and ign|
|00005070| 6f 72 69 6e 67 20 65 73 | 63 61 70 65 64 20 64 65 |oring es|caped de|
|00005080| 6c 69 6d 69 74 65 72 73 | 20 28 6d 61 69 6e 6c 79 |limiters| (mainly|
|00005090| 20 5c 22 29 2e 20 20 49 | 74 27 73 0d 23 20 20 70 | \"). I|t's.# p|
|000050a0| 72 6f 62 61 62 6c 79 20 | 75 6e 6e 65 63 65 73 73 |robably |unnecess|
|000050b0| 61 72 69 6c 79 20 73 6c | 6f 77 20 61 73 20 61 20 |arily sl|ow as a |
|000050c0| 72 65 73 75 6c 74 20 3a | 2d 28 0d 23 0d 70 72 6f |result :|-(.#.pro|
|000050d0| 63 20 67 65 74 46 69 65 | 6c 64 20 7b 65 6e 74 72 |c getFie|ld {entr|
|000050e0| 79 7d 20 7b 0d 09 73 65 | 74 20 66 6c 64 50 61 74 |y} {..se|t fldPat|
|000050f0| 20 7b 5b 20 09 5d 2a 28 | 5b 5e 20 3d 2c 5d 2b 29 | {[ .]*(|[^ =,]+)|
|00005100| 5b 20 09 5d 2a 3d 5b 20 | 09 5d 2a 7d 0d 09 73 65 |[ .]*=[ |.]*}..se|
|00005110| 74 20 73 6c 61 73 68 20 | 22 5c 5c 22 0d 09 73 65 |t slash |"\\"..se|
|00005120| 74 20 71 73 6c 61 73 68 | 20 22 5c 5c 5c 5c 22 0d |t qslash| "\\\\".|
|00005130| 09 0d 09 73 65 74 20 6f | 6b 20 5b 72 65 67 65 78 |...set o|k [regex|
|00005140| 70 20 2d 69 6e 64 69 63 | 65 73 20 2d 6e 6f 63 61 |p -indic|es -noca|
|00005150| 73 65 20 24 66 6c 64 50 | 61 74 20 24 65 6e 74 72 |se $fldP|at $entr|
|00005160| 79 20 6d 74 63 68 20 73 | 75 62 31 5d 0d 09 69 66 |y mtch s|ub1]..if|
|00005170| 20 7b 24 6f 6b 7d 20 7b | 0d 09 09 73 65 74 20 6e | {$ok} {|...set n|
|00005180| 61 6d 65 20 5b 73 74 72 | 69 6e 67 20 72 61 6e 67 |ame [str|ing rang|
|00005190| 65 20 24 65 6e 74 72 79 | 20 5b 6c 69 6e 64 65 78 |e $entry| [lindex|
|000051a0| 20 24 73 75 62 31 20 30 | 5d 20 5b 6c 69 6e 64 65 | $sub1 0|] [linde|
|000051b0| 78 20 24 73 75 62 31 20 | 31 5d 5d 0d 09 20 20 20 |x $sub1 |1]].. |
|000051c0| 20 73 65 74 20 70 6f 73 | 20 5b 65 78 70 72 20 5b | set pos| [expr [|
|000051d0| 6c 69 6e 64 65 78 20 24 | 6d 74 63 68 20 31 5d 20 |lindex $|mtch 1] |
|000051e0| 2b 20 31 5d 0d 09 20 20 | 20 20 73 65 74 20 64 65 |+ 1].. | set de|
|000051f0| 6c 69 6d 20 5b 73 74 72 | 69 6e 67 20 72 61 6e 67 |lim [str|ing rang|
|00005200| 65 20 24 65 6e 74 72 79 | 20 24 70 6f 73 20 24 70 |e $entry| $pos $p|
|00005210| 6f 73 5d 0d 09 20 20 20 | 20 73 65 74 20 65 6e 74 |os].. | set ent|
|00005220| 72 79 20 5b 73 74 72 69 | 6e 67 20 72 61 6e 67 65 |ry [stri|ng range|
|00005230| 20 24 65 6e 74 72 79 20 | 5b 65 78 70 72 20 31 20 | $entry |[expr 1 |
|00005240| 2b 20 24 70 6f 73 5d 20 | 65 6e 64 5d 0d 09 20 20 |+ $pos] |end].. |
|00005250| 20 20 0d 09 20 20 20 20 | 69 66 20 7b 24 64 65 6c | .. |if {$del|
|00005260| 69 6d 20 3d 3d 20 7b 22 | 7d 7d 20 7b 0d 09 20 20 |im == {"|}} {.. |
|00005270| 20 20 09 73 65 74 20 63 | 6b 20 24 71 73 6c 61 73 | .set c|k $qslas|
|00005280| 68 0d 09 20 20 20 20 09 | 73 65 74 20 66 6c 64 20 |h.. .|set fld |
|00005290| 22 22 0d 09 20 20 20 20 | 09 77 68 69 6c 65 20 7b |"".. |.while {|
|000052a0| 24 63 6b 20 3d 3d 20 24 | 71 73 6c 61 73 68 7d 20 |$ck == $|qslash} |
|000052b0| 7b 0d 09 09 20 20 20 20 | 09 73 65 74 20 6f 6b 20 |{... |.set ok |
|000052c0| 5b 72 65 67 65 78 70 20 | 2d 69 6e 64 69 63 65 73 |[regexp |-indices|
|000052d0| 20 7b 5e 28 5b 5e 22 5d | 2a 29 22 7d 20 24 65 6e | {^([^"]|*)"} $en|
|000052e0| 74 72 79 20 6d 74 63 68 | 20 73 75 62 31 5d 0d 09 |try mtch| sub1]..|
|000052f0| 09 20 20 20 20 20 20 20 | 20 69 66 20 7b 24 6f 6b |. | if {$ok|
|00005300| 7d 20 7b 0d 09 09 20 20 | 20 20 09 09 61 70 70 65 |} {... | ..appe|
|00005310| 6e 64 20 66 6c 64 20 5b | 73 74 72 69 6e 67 20 72 |nd fld [|string r|
|00005320| 61 6e 67 65 20 24 65 6e | 74 72 79 20 5b 6c 69 6e |ange $en|try [lin|
|00005330| 64 65 78 20 24 6d 74 63 | 68 20 30 5d 20 5b 6c 69 |dex $mtc|h 0] [li|
|00005340| 6e 64 65 78 20 24 6d 74 | 63 68 20 31 5d 5d 0d 09 |ndex $mt|ch 1]]..|
|00005350| 09 20 20 20 20 09 09 73 | 65 74 20 63 6b 20 24 73 |. ..s|et ck $s|
|00005360| 6c 61 73 68 5b 73 74 72 | 69 6e 67 20 72 61 6e 67 |lash[str|ing rang|
|00005370| 65 20 24 65 6e 74 72 79 | 20 5b 6c 69 6e 64 65 78 |e $entry| [lindex|
|00005380| 20 24 73 75 62 31 20 31 | 5d 20 5b 6c 69 6e 64 65 | $sub1 1|] [linde|
|00005390| 78 20 24 73 75 62 31 20 | 31 5d 5d 0d 09 09 20 20 |x $sub1 |1]]... |
|000053a0| 20 20 09 09 73 65 74 20 | 70 6f 73 20 5b 65 78 70 | ..set |pos [exp|
|000053b0| 72 20 31 20 2b 20 5b 6c | 69 6e 64 65 78 20 24 6d |r 1 + [l|index $m|
|000053c0| 74 63 68 20 31 5d 5d 0d | 09 09 20 20 20 20 09 09 |tch 1]].|.. ..|
|000053d0| 73 65 74 20 65 6e 74 72 | 79 20 5b 73 74 72 69 6e |set entr|y [strin|
|000053e0| 67 20 72 61 6e 67 65 20 | 24 65 6e 74 72 79 20 24 |g range |$entry $|
|000053f0| 70 6f 73 20 65 6e 64 5d | 0d 09 09 20 20 20 20 09 |pos end]|... .|
|00005400| 7d 20 65 6c 73 65 20 7b | 0d 09 09 20 20 20 20 09 |} else {|... .|
|00005410| 09 65 72 72 6f 72 20 22 | 43 6f 75 6c 64 6e 27 74 |.error "|Couldn't|
|00005420| 20 6d 61 74 63 68 20 71 | 75 6f 74 65 20 61 73 20 | match q|uote as |
|00005430| 66 69 65 6c 64 20 64 65 | 6c 69 6d 69 74 65 72 22 |field de|limiter"|
|00005440| 0d 09 09 20 20 20 20 09 | 7d 0d 09 20 20 20 20 09 |... .|}.. .|
|00005450| 7d 0d 09 20 20 20 20 09 | 73 65 74 20 70 6f 73 20 |}.. .|set pos |
|00005460| 5b 65 78 70 72 20 5b 73 | 74 72 69 6e 67 20 6c 65 |[expr [s|tring le|
|00005470| 6e 67 74 68 20 24 66 6c | 64 5d 20 2d 20 32 5d 0d |ngth $fl|d] - 2].|
|00005480| 09 20 20 20 20 09 73 65 | 74 20 66 6c 64 20 5b 73 |. .se|t fld [s|
|00005490| 74 72 69 6e 67 20 72 61 | 6e 67 65 20 24 66 6c 64 |tring ra|nge $fld|
|000054a0| 20 30 20 24 70 6f 73 5d | 0d 09 20 20 20 20 09 73 | 0 $pos]|.. .s|
|000054b0| 65 74 20 6f 6b 20 5b 72 | 65 67 65 78 70 20 2d 69 |et ok [r|egexp -i|
|000054c0| 6e 64 69 63 65 73 20 7b | 5e 28 5b 5e 2c 5d 2a 29 |ndices {|^([^,]*)|
|000054d0| 2c 7d 20 24 65 6e 74 72 | 79 20 6d 74 63 68 20 73 |,} $entr|y mtch s|
|000054e0| 75 62 31 5d 0d 09 20 20 | 20 20 09 69 66 20 7b 24 |ub1].. | .if {$|
|000054f0| 6f 6b 7d 20 7b 0d 09 09 | 20 20 20 20 09 73 65 74 |ok} {...| .set|
|00005500| 20 65 6e 74 72 79 20 5b | 73 74 72 69 6e 67 20 72 | entry [|string r|
|00005510| 61 6e 67 65 20 24 65 6e | 74 72 79 20 5b 65 78 70 |ange $en|try [exp|
|00005520| 72 20 31 20 2b 20 5b 6c | 69 6e 64 65 78 20 24 6d |r 1 + [l|index $m|
|00005530| 74 63 68 20 31 5d 5d 20 | 65 6e 64 5d 0d 09 20 20 |tch 1]] |end].. |
|00005540| 20 20 09 7d 0d 09 20 20 | 20 20 09 0d 09 20 20 20 | .}.. | ... |
|00005550| 20 7d 20 65 6c 73 65 69 | 66 20 7b 24 64 65 6c 69 | } elsei|f {$deli|
|00005560| 6d 20 3d 3d 20 22 5c 7b | 22 7d 20 7b 0d 09 20 20 |m == "\{|"} {.. |
|00005570| 20 20 0d 09 20 20 20 20 | 09 73 65 74 20 6e 6f 70 | .. |.set nop|
|00005580| 65 6e 20 31 0d 09 20 20 | 20 20 09 73 65 74 20 6e |en 1.. | .set n|
|00005590| 63 6c 6f 73 65 20 30 0d | 09 20 20 20 20 09 73 65 |close 0.|. .se|
|000055a0| 74 20 66 6c 64 20 22 22 | 0d 09 20 20 20 20 09 77 |t fld ""|.. .w|
|000055b0| 68 69 6c 65 20 7b 24 6e | 6f 70 65 6e 20 2d 20 24 |hile {$n|open - $|
|000055c0| 6e 63 6c 6f 73 65 20 21 | 3d 20 30 7d 20 7b 0d 09 |nclose !|= 0} {..|
|000055d0| 20 20 20 20 09 09 73 65 | 74 20 6f 6b 20 5b 72 65 | ..se|t ok [re|
|000055e0| 67 65 78 70 20 2d 69 6e | 64 69 63 65 73 20 22 5e |gexp -in|dices "^|
|000055f0| 5c 5b 5e 5c 7d 5c 5d 2a | 5c 7d 22 20 24 65 6e 74 |\[^\}\]*|\}" $ent|
|00005600| 72 79 20 6d 74 63 68 5d | 0d 09 20 20 20 20 09 09 |ry mtch]|.. ..|
|00005610| 69 66 20 7b 24 6f 6b 7d | 20 7b 0d 09 09 20 20 20 |if {$ok}| {... |
|00005620| 20 09 09 61 70 70 65 6e | 64 20 66 6c 64 20 5b 73 | ..appen|d fld [s|
|00005630| 74 72 69 6e 67 20 72 61 | 6e 67 65 20 24 65 6e 74 |tring ra|nge $ent|
|00005640| 72 79 20 5b 6c 69 6e 64 | 65 78 20 24 6d 74 63 68 |ry [lind|ex $mtch|
|00005650| 20 30 5d 20 5b 6c 69 6e | 64 65 78 20 24 6d 74 63 | 0] [lin|dex $mtc|
|00005660| 68 20 31 5d 5d 0d 09 09 | 20 20 20 20 09 09 73 65 |h 1]]...| ..se|
|00005670| 74 20 65 6e 74 72 79 20 | 5b 73 74 72 69 6e 67 20 |t entry |[string |
|00005680| 72 61 6e 67 65 20 24 65 | 6e 74 72 79 20 5b 65 78 |range $e|ntry [ex|
|00005690| 70 72 20 31 20 2b 20 5b | 6c 69 6e 64 65 78 20 24 |pr 1 + [|lindex $|
|000056a0| 6d 74 63 68 20 31 5d 5d | 20 65 6e 64 5d 0d 09 09 |mtch 1]]| end]...|
|000056b0| 20 20 20 20 09 09 73 65 | 74 20 6e 6f 70 65 6e 20 | ..se|t nopen |
|000056c0| 5b 6c 6c 65 6e 67 74 68 | 20 5b 73 70 6c 69 74 20 |[llength| [split |
|000056d0| 24 66 6c 64 20 22 5c 7b | 22 5d 5d 0d 09 09 20 20 |$fld "\{|"]]... |
|000056e0| 20 20 09 09 69 6e 63 72 | 20 6e 63 6c 6f 73 65 0d | ..incr| nclose.|
|000056f0| 09 09 20 20 20 20 09 7d | 20 65 6c 73 65 20 7b 0d |.. .}| else {.|
|00005700| 09 09 20 20 20 20 09 09 | 65 72 72 6f 72 20 22 43 |.. ..|error "C|
|00005710| 6f 75 6c 64 6e 27 74 20 | 6d 61 74 63 68 20 62 72 |ouldn't |match br|
|00005720| 61 63 65 20 61 73 20 66 | 69 65 6c 64 20 64 65 6c |ace as f|ield del|
|00005730| 69 6d 69 74 65 72 22 0d | 09 09 20 20 20 20 09 7d |imiter".|.. .}|
|00005740| 20 0d 09 20 20 20 20 09 | 7d 0d 09 20 20 20 20 09 | .. .|}.. .|
|00005750| 73 65 74 20 70 6f 73 20 | 5b 65 78 70 72 20 5b 73 |set pos |[expr [s|
|00005760| 74 72 69 6e 67 20 6c 65 | 6e 67 74 68 20 24 66 6c |tring le|ngth $fl|
|00005770| 64 5d 20 2d 20 32 5d 0d | 09 20 20 20 20 09 73 65 |d] - 2].|. .se|
|00005780| 74 20 66 6c 64 20 5b 73 | 74 72 69 6e 67 20 72 61 |t fld [s|tring ra|
|00005790| 6e 67 65 20 24 66 6c 64 | 20 30 20 24 70 6f 73 5d |nge $fld| 0 $pos]|
|000057a0| 0d 09 20 20 20 20 09 73 | 65 74 20 6f 6b 20 5b 72 |.. .s|et ok [r|
|000057b0| 65 67 65 78 70 20 2d 69 | 6e 64 69 63 65 73 20 7b |egexp -i|ndices {|
|000057c0| 5e 28 5b 5e 2c 5d 2a 29 | 2c 7d 20 24 65 6e 74 72 |^([^,]*)|,} $entr|
|000057d0| 79 20 6d 74 63 68 20 73 | 75 62 31 5d 0d 09 20 20 |y mtch s|ub1].. |
|000057e0| 20 20 09 69 66 20 7b 24 | 6f 6b 7d 20 7b 0d 09 09 | .if {$|ok} {...|
|000057f0| 20 20 20 20 09 73 65 74 | 20 65 6e 74 72 79 20 5b | .set| entry [|
|00005800| 73 74 72 69 6e 67 20 72 | 61 6e 67 65 20 24 65 6e |string r|ange $en|
|00005810| 74 72 79 20 5b 65 78 70 | 72 20 31 20 2b 20 5b 6c |try [exp|r 1 + [l|
|00005820| 69 6e 64 65 78 20 24 6d | 74 63 68 20 31 5d 5d 20 |index $m|tch 1]] |
|00005830| 65 6e 64 5d 0d 09 20 20 | 20 20 09 7d 0d 09 20 20 |end].. | .}.. |
|00005840| 20 20 09 0d 09 20 20 20 | 20 7d 20 65 6c 73 65 20 | ... | } else |
|00005850| 7b 0d 09 20 20 20 20 0d | 09 20 20 20 20 09 73 65 |{.. .|. .se|
|00005860| 74 20 65 6e 74 72 79 20 | 24 7b 64 65 6c 69 6d 7d |t entry |${delim}|
|00005870| 24 7b 65 6e 74 72 79 7d | 0d 09 20 20 20 20 09 73 |${entry}|.. .s|
|00005880| 65 74 20 6f 6b 20 5b 72 | 65 67 65 78 70 20 2d 69 |et ok [r|egexp -i|
|00005890| 6e 64 69 63 65 73 20 7b | 5e 28 5b 5e 2c 5d 2a 29 |ndices {|^([^,]*)|
|000058a0| 2c 3f 7d 20 24 65 6e 74 | 72 79 20 6d 74 63 68 20 |,?} $ent|ry mtch |
|000058b0| 73 75 62 31 5d 0d 09 20 | 20 20 20 20 20 20 20 69 |sub1].. | i|
|000058c0| 66 20 7b 24 6f 6b 7d 20 | 7b 0d 09 20 20 20 20 09 |f {$ok} |{.. .|
|000058d0| 09 73 65 74 20 66 6c 64 | 20 5b 73 74 72 69 6e 67 |.set fld| [string|
|000058e0| 20 72 61 6e 67 65 20 24 | 65 6e 74 72 79 20 5b 6c | range $|entry [l|
|000058f0| 69 6e 64 65 78 20 24 73 | 75 62 31 20 30 5d 20 5b |index $s|ub1 0] [|
|00005900| 6c 69 6e 64 65 78 20 24 | 73 75 62 31 20 31 5d 5d |lindex $|sub1 1]]|
|00005910| 0d 09 20 20 20 20 09 09 | 73 65 74 20 70 6f 73 20 |.. ..|set pos |
|00005920| 5b 65 78 70 72 20 31 20 | 2b 20 5b 6c 69 6e 64 65 |[expr 1 |+ [linde|
|00005930| 78 20 24 6d 74 63 68 20 | 31 5d 5d 0d 09 20 20 20 |x $mtch |1]].. |
|00005940| 20 09 09 73 65 74 20 65 | 6e 74 72 79 20 5b 73 74 | ..set e|ntry [st|
|00005950| 72 69 6e 67 20 72 61 6e | 67 65 20 24 65 6e 74 72 |ring ran|ge $entr|
|00005960| 79 20 24 70 6f 73 20 65 | 6e 64 5d 0d 09 20 20 20 |y $pos e|nd].. |
|00005970| 20 09 09 73 65 74 20 65 | 6e 74 72 79 20 5b 73 74 | ..set e|ntry [st|
|00005980| 72 69 6e 67 20 74 72 69 | 6d 6c 65 66 74 20 24 65 |ring tri|mleft $e|
|00005990| 6e 74 72 79 20 22 2c 22 | 5d 0d 09 20 20 20 20 09 |ntry ","|].. .|
|000059a0| 7d 20 65 6c 73 65 20 7b | 0d 09 20 20 20 20 09 09 |} else {|.. ..|
|000059b0| 73 65 74 20 66 6c 64 20 | 5b 73 74 72 69 6e 67 20 |set fld |[string |
|000059c0| 74 72 69 6d 72 69 67 68 | 74 20 24 65 6e 74 72 79 |trimrigh|t $entry|
|000059d0| 5d 0d 09 20 20 20 20 09 | 09 73 65 74 20 65 6e 74 |].. .|.set ent|
|000059e0| 72 79 20 22 22 0d 09 20 | 20 20 20 09 7d 0d 09 20 |ry "".. | .}.. |
|000059f0| 20 20 20 7d 0d 09 09 72 | 65 74 75 72 6e 20 5b 6c | }...r|eturn [l|
|00005a00| 69 73 74 20 24 6e 61 6d | 65 20 24 66 6c 64 20 24 |ist $nam|e $fld $|
|00005a10| 65 6e 74 72 79 5d 0d 09 | 7d 20 65 6c 73 65 20 7b |entry]..|} else {|
|00005a20| 0d 09 09 65 72 72 6f 72 | 20 22 4e 6f 20 6d 6f 72 |...error| "No mor|
|00005a30| 65 20 66 69 65 6c 64 73 | 20 69 6e 20 74 68 69 73 |e fields| in this|
|00005a40| 20 65 6e 74 72 79 22 0d | 09 7d 0d 7d 0d 0d 23 23 | entry".|.}.}..##|
|00005a50| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00005a60| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00005a70| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00005a80| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00005a90| 23 23 23 23 23 23 23 23 | 23 0d 23 20 45 78 74 72 |########|#.# Extr|
|00005aa0| 61 63 74 20 74 68 65 20 | 64 61 74 61 20 66 72 6f |act the |data fro|
|00005ab0| 6d 20 74 68 65 20 69 6e | 64 69 63 61 74 65 64 20 |m the in|dicated |
|00005ac0| 66 69 65 6c 64 20 6f 66 | 20 61 6e 20 65 6e 74 72 |field of| an entr|
|00005ad0| 79 2c 20 77 68 69 63 68 | 20 69 73 20 70 61 73 73 |y, which| is pass|
|00005ae0| 65 64 20 0d 23 20 61 73 | 20 61 20 73 69 6e 67 6c |ed .# as| a singl|
|00005af0| 65 20 73 74 72 69 6e 67 | 2e 20 20 54 68 69 73 20 |e string|. This |
|00005b00| 76 65 72 73 69 6f 6e 20 | 74 72 69 65 73 20 74 6f |version |tries to|
|00005b10| 20 62 65 20 63 6f 6d 70 | 6c 65 74 65 6c 79 20 67 | be comp|letely g|
|00005b20| 65 6e 65 72 61 6c 2c 20 | 0d 23 20 61 6c 6c 6f 77 |eneral, |.# allow|
|00005b30| 69 6e 67 20 6e 65 73 74 | 65 64 20 62 72 61 63 65 |ing nest|ed brace|
|00005b40| 73 20 77 69 74 68 69 6e | 20 64 61 74 61 20 66 69 |s within| data fi|
|00005b50| 65 6c 64 73 20 61 6e 64 | 20 69 67 6e 6f 72 69 6e |elds and| ignorin|
|00005b60| 67 20 65 73 63 61 70 65 | 64 20 0d 23 20 64 65 6c |g escape|d .# del|
|00005b70| 69 6d 69 74 65 72 73 2e | 20 20 28 64 65 72 69 76 |imiters.| (deriv|
|00005b80| 65 64 20 66 72 6f 6d 20 | 70 72 6f 63 20 67 65 74 |ed from |proc get|
|00005b90| 46 69 65 6c 64 29 2e 0d | 23 0d 70 72 6f 63 20 67 |Field)..|#.proc g|
|00005ba0| 65 74 46 6c 64 56 61 6c | 75 65 20 7b 65 6e 74 72 |etFldVal|ue {entr|
|00005bb0| 79 20 66 6c 64 6e 61 6d | 65 7d 20 7b 0d 09 73 65 |y fldnam|e} {..se|
|00005bc0| 74 20 66 6c 64 50 61 74 | 20 22 5c 5b 20 09 5c 5d |t fldPat| "\[ .\]|
|00005bd0| 2a 24 7b 66 6c 64 6e 61 | 6d 65 7d 5c 5b 20 09 5c |*${fldna|me}\[ .\|
|00005be0| 5d 2a 3d 5c 5b 20 09 5c | 5d 2a 22 0d 09 73 65 74 |]*=\[ .\|]*"..set|
|00005bf0| 20 73 6c 61 73 68 20 22 | 5c 5c 22 0d 09 73 65 74 | slash "|\\"..set|
|00005c00| 20 71 73 6c 61 73 68 20 | 22 5c 5c 5c 5c 22 0d 09 | qslash |"\\\\"..|
|00005c10| 0d 09 73 65 74 20 6f 6b | 20 5b 72 65 67 65 78 70 |..set ok| [regexp|
|00005c20| 20 2d 69 6e 64 69 63 65 | 73 20 2d 6e 6f 63 61 73 | -indice|s -nocas|
|00005c30| 65 20 24 66 6c 64 50 61 | 74 20 24 65 6e 74 72 79 |e $fldPa|t $entry|
|00005c40| 20 6d 74 63 68 5d 0d 09 | 69 66 20 7b 24 6f 6b 7d | mtch]..|if {$ok}|
|00005c50| 20 7b 0d 09 20 20 20 20 | 73 65 74 20 70 6f 73 20 | {.. |set pos |
|00005c60| 5b 65 78 70 72 20 5b 6c | 69 6e 64 65 78 20 24 6d |[expr [l|index $m|
|00005c70| 74 63 68 20 31 5d 20 2b | 20 31 5d 0d 09 20 20 20 |tch 1] +| 1].. |
|00005c80| 20 73 65 74 20 64 65 6c | 69 6d 20 5b 73 74 72 69 | set del|im [stri|
|00005c90| 6e 67 20 72 61 6e 67 65 | 20 24 65 6e 74 72 79 20 |ng range| $entry |
|00005ca0| 24 70 6f 73 20 24 70 6f | 73 5d 0d 09 20 20 20 20 |$pos $po|s].. |
|00005cb0| 73 65 74 20 65 6e 74 72 | 79 20 5b 73 74 72 69 6e |set entr|y [strin|
|00005cc0| 67 20 72 61 6e 67 65 20 | 24 65 6e 74 72 79 20 5b |g range |$entry [|
|00005cd0| 65 78 70 72 20 31 20 2b | 20 24 70 6f 73 5d 20 65 |expr 1 +| $pos] e|
|00005ce0| 6e 64 5d 0d 09 20 20 20 | 20 0d 09 20 20 20 20 69 |nd].. | .. i|
|00005cf0| 66 20 7b 24 64 65 6c 69 | 6d 20 3d 3d 20 7b 22 7d |f {$deli|m == {"}|
|00005d00| 7d 20 7b 0d 09 20 20 20 | 20 09 73 65 74 20 63 6b |} {.. | .set ck|
|00005d10| 20 24 71 73 6c 61 73 68 | 0d 09 20 20 20 20 09 73 | $qslash|.. .s|
|00005d20| 65 74 20 66 6c 64 20 22 | 22 0d 09 20 20 20 20 09 |et fld "|".. .|
|00005d30| 77 68 69 6c 65 20 7b 24 | 63 6b 20 3d 3d 20 24 71 |while {$|ck == $q|
|00005d40| 73 6c 61 73 68 7d 20 7b | 0d 09 09 20 20 20 20 09 |slash} {|... .|
|00005d50| 73 65 74 20 6f 6b 20 5b | 72 65 67 65 78 70 20 2d |set ok [|regexp -|
|00005d60| 69 6e 64 69 63 65 73 20 | 7b 5e 28 5b 5e 22 5d 2a |indices |{^([^"]*|
|00005d70| 29 22 7d 20 24 65 6e 74 | 72 79 20 6d 74 63 68 20 |)"} $ent|ry mtch |
|00005d80| 73 75 62 31 5d 0d 09 09 | 20 20 20 20 20 20 20 20 |sub1]...| |
|00005d90| 69 66 20 7b 24 6f 6b 7d | 20 7b 0d 09 09 20 20 20 |if {$ok}| {... |
|00005da0| 20 09 09 61 70 70 65 6e | 64 20 66 6c 64 20 5b 73 | ..appen|d fld [s|
|00005db0| 74 72 69 6e 67 20 72 61 | 6e 67 65 20 24 65 6e 74 |tring ra|nge $ent|
|00005dc0| 72 79 20 5b 6c 69 6e 64 | 65 78 20 24 6d 74 63 68 |ry [lind|ex $mtch|
|00005dd0| 20 30 5d 20 5b 6c 69 6e | 64 65 78 20 24 6d 74 63 | 0] [lin|dex $mtc|
|00005de0| 68 20 31 5d 5d 0d 09 09 | 20 20 20 20 09 09 73 65 |h 1]]...| ..se|
|00005df0| 74 20 63 6b 20 24 73 6c | 61 73 68 5b 73 74 72 69 |t ck $sl|ash[stri|
|00005e00| 6e 67 20 72 61 6e 67 65 | 20 24 65 6e 74 72 79 20 |ng range| $entry |
|00005e10| 5b 6c 69 6e 64 65 78 20 | 24 73 75 62 31 20 31 5d |[lindex |$sub1 1]|
|00005e20| 20 5b 6c 69 6e 64 65 78 | 20 24 73 75 62 31 20 31 | [lindex| $sub1 1|
|00005e30| 5d 5d 0d 09 09 20 20 20 | 20 09 09 73 65 74 20 70 |]]... | ..set p|
|00005e40| 6f 73 20 5b 65 78 70 72 | 20 31 20 2b 20 5b 6c 69 |os [expr| 1 + [li|
|00005e50| 6e 64 65 78 20 24 6d 74 | 63 68 20 31 5d 5d 0d 09 |ndex $mt|ch 1]]..|
|00005e60| 09 20 20 20 20 09 09 73 | 65 74 20 65 6e 74 72 79 |. ..s|et entry|
|00005e70| 20 5b 73 74 72 69 6e 67 | 20 72 61 6e 67 65 20 24 | [string| range $|
|00005e80| 65 6e 74 72 79 20 24 70 | 6f 73 20 65 6e 64 5d 0d |entry $p|os end].|
|00005e90| 09 09 20 20 20 20 09 7d | 20 65 6c 73 65 20 7b 0d |.. .}| else {.|
|00005ea0| 09 09 20 20 20 20 09 09 | 65 72 72 6f 72 20 22 43 |.. ..|error "C|
|00005eb0| 6f 75 6c 64 6e 27 74 20 | 6d 61 74 63 68 20 71 75 |ouldn't |match qu|
|00005ec0| 6f 74 65 20 61 73 20 66 | 69 65 6c 64 20 64 65 6c |ote as f|ield del|
|00005ed0| 69 6d 69 74 65 72 22 0d | 09 09 20 20 20 20 09 7d |imiter".|.. .}|
|00005ee0| 0d 09 20 20 20 20 09 7d | 0d 09 20 20 20 20 09 73 |.. .}|.. .s|
|00005ef0| 65 74 20 66 6c 64 20 5b | 73 74 72 69 6e 67 20 74 |et fld [|string t|
|00005f00| 72 69 6d 72 69 67 68 74 | 20 24 66 6c 64 20 7b 5c |rimright| $fld {\|
|00005f10| 22 7d 5d 0d 09 20 20 20 | 20 09 09 20 20 20 20 09 |"}].. | .. .|
|00005f20| 0d 09 20 20 20 20 7d 20 | 65 6c 73 65 69 66 20 7b |.. } |elseif {|
|00005f30| 24 64 65 6c 69 6d 20 3d | 3d 20 22 5c 7b 22 7d 20 |$delim =|= "\{"} |
|00005f40| 7b 0d 09 20 20 20 20 0d | 09 20 20 20 20 09 73 65 |{.. .|. .se|
|00005f50| 74 20 6e 6f 70 65 6e 20 | 31 0d 09 20 20 20 20 09 |t nopen |1.. .|
|00005f60| 73 65 74 20 6e 63 6c 6f | 73 65 20 30 0d 09 20 20 |set nclo|se 0.. |
|00005f70| 20 20 09 73 65 74 20 66 | 6c 64 20 22 22 0d 09 20 | .set f|ld "".. |
|00005f80| 20 20 20 09 77 68 69 6c | 65 20 7b 24 6e 6f 70 65 | .whil|e {$nope|
|00005f90| 6e 20 2d 20 24 6e 63 6c | 6f 73 65 20 21 3d 20 30 |n - $ncl|ose != 0|
|00005fa0| 7d 20 7b 0d 09 20 20 20 | 20 09 09 73 65 74 20 6f |} {.. | ..set o|
|00005fb0| 6b 20 5b 72 65 67 65 78 | 70 20 2d 69 6e 64 69 63 |k [regex|p -indic|
|00005fc0| 65 73 20 22 5e 5c 5b 5e | 5c 7d 5c 5d 2a 5c 7d 22 |es "^\[^|\}\]*\}"|
|00005fd0| 20 24 65 6e 74 72 79 20 | 6d 74 63 68 5d 0d 09 20 | $entry |mtch].. |
|00005fe0| 20 20 20 09 09 69 66 20 | 7b 24 6f 6b 7d 20 7b 0d | ..if |{$ok} {.|
|00005ff0| 09 09 20 20 20 20 09 09 | 61 70 70 65 6e 64 20 66 |.. ..|append f|
|00006000| 6c 64 20 5b 73 74 72 69 | 6e 67 20 72 61 6e 67 65 |ld [stri|ng range|
|00006010| 20 24 65 6e 74 72 79 20 | 5b 6c 69 6e 64 65 78 20 | $entry |[lindex |
|00006020| 24 6d 74 63 68 20 30 5d | 20 5b 6c 69 6e 64 65 78 |$mtch 0]| [lindex|
|00006030| 20 24 6d 74 63 68 20 31 | 5d 5d 0d 09 09 20 20 20 | $mtch 1|]]... |
|00006040| 20 09 09 73 65 74 20 65 | 6e 74 72 79 20 5b 73 74 | ..set e|ntry [st|
|00006050| 72 69 6e 67 20 72 61 6e | 67 65 20 24 65 6e 74 72 |ring ran|ge $entr|
|00006060| 79 20 5b 65 78 70 72 20 | 31 20 2b 20 5b 6c 69 6e |y [expr |1 + [lin|
|00006070| 64 65 78 20 24 6d 74 63 | 68 20 31 5d 5d 20 65 6e |dex $mtc|h 1]] en|
|00006080| 64 5d 0d 09 09 20 20 20 | 20 09 09 73 65 74 20 6e |d]... | ..set n|
|00006090| 6f 70 65 6e 20 5b 6c 6c | 65 6e 67 74 68 20 5b 73 |open [ll|ength [s|
|000060a0| 70 6c 69 74 20 24 66 6c | 64 20 22 5c 7b 22 5d 5d |plit $fl|d "\{"]]|
|000060b0| 0d 09 09 20 20 20 20 09 | 09 69 6e 63 72 20 6e 63 |... .|.incr nc|
|000060c0| 6c 6f 73 65 0d 09 09 20 | 20 20 20 09 7d 20 65 6c |lose... | .} el|
|000060d0| 73 65 20 7b 0d 09 09 20 | 20 20 20 09 09 65 72 72 |se {... | ..err|
|000060e0| 6f 72 20 22 43 6f 75 6c | 64 6e 27 74 20 6d 61 74 |or "Coul|dn't mat|
|000060f0| 63 68 20 62 72 61 63 65 | 20 61 73 20 66 69 65 6c |ch brace| as fiel|
|00006100| 64 20 64 65 6c 69 6d 69 | 74 65 72 22 0d 09 09 20 |d delimi|ter"... |
|00006110| 20 20 20 09 7d 20 0d 09 | 20 20 20 20 09 7d 0d 09 | .} ..| .}..|
|00006120| 20 20 20 20 09 73 65 74 | 20 66 6c 64 20 5b 73 74 | .set| fld [st|
|00006130| 72 69 6e 67 20 74 72 69 | 6d 72 69 67 68 74 20 24 |ring tri|mright $|
|00006140| 66 6c 64 20 22 5c 7d 22 | 5d 0d 09 20 20 20 20 09 |fld "\}"|].. .|
|00006150| 0d 09 20 20 20 20 7d 20 | 65 6c 73 65 20 7b 0d 09 |.. } |else {..|
|00006160| 20 20 20 20 0d 09 20 20 | 20 20 09 73 65 74 20 65 | .. | .set e|
|00006170| 6e 74 72 79 20 24 7b 64 | 65 6c 69 6d 7d 24 7b 65 |ntry ${d|elim}${e|
|00006180| 6e 74 72 79 7d 0d 09 20 | 20 20 20 09 73 65 74 20 |ntry}.. | .set |
|00006190| 6f 6b 20 5b 72 65 67 65 | 78 70 20 2d 69 6e 64 69 |ok [rege|xp -indi|
|000061a0| 63 65 73 20 7b 5e 28 5b | 5e 2c 5d 2a 29 2c 3f 7d |ces {^([|^,]*),?}|
|000061b0| 20 24 65 6e 74 72 79 20 | 6d 74 63 68 20 73 75 62 | $entry |mtch sub|
|000061c0| 31 5d 0d 09 20 20 20 20 | 20 20 20 20 69 66 20 7b |1].. | if {|
|000061d0| 24 6f 6b 7d 20 7b 0d 09 | 20 20 20 20 09 09 73 65 |$ok} {..| ..se|
|000061e0| 74 20 66 6c 64 20 5b 73 | 74 72 69 6e 67 20 72 61 |t fld [s|tring ra|
|000061f0| 6e 67 65 20 24 65 6e 74 | 72 79 20 5b 6c 69 6e 64 |nge $ent|ry [lind|
|00006200| 65 78 20 24 73 75 62 31 | 20 30 5d 20 5b 6c 69 6e |ex $sub1| 0] [lin|
|00006210| 64 65 78 20 24 73 75 62 | 31 20 31 5d 5d 0d 09 20 |dex $sub|1 1]].. |
|00006220| 20 20 20 09 09 73 65 74 | 20 70 6f 73 20 5b 65 78 | ..set| pos [ex|
|00006230| 70 72 20 31 20 2b 20 5b | 6c 69 6e 64 65 78 20 24 |pr 1 + [|lindex $|
|00006240| 6d 74 63 68 20 31 5d 5d | 0d 09 20 20 20 20 09 09 |mtch 1]]|.. ..|
|00006250| 73 65 74 20 65 6e 74 72 | 79 20 5b 73 74 72 69 6e |set entr|y [strin|
|00006260| 67 20 72 61 6e 67 65 20 | 24 65 6e 74 72 79 20 24 |g range |$entry $|
|00006270| 70 6f 73 20 65 6e 64 5d | 0d 09 20 20 20 20 09 7d |pos end]|.. .}|
|00006280| 20 65 6c 73 65 20 7b 0d | 09 20 20 20 20 09 09 73 | else {.|. ..s|
|00006290| 65 74 20 66 6c 64 20 5b | 73 74 72 69 6e 67 20 74 |et fld [|string t|
|000062a0| 72 69 6d 72 69 67 68 74 | 20 24 65 6e 74 72 79 5d |rimright| $entry]|
|000062b0| 0d 09 20 20 20 20 09 7d | 0d 09 20 20 20 20 7d 0d |.. .}|.. }.|
|000062c0| 0d 09 09 72 65 74 75 72 | 6e 20 24 66 6c 64 0d 09 |...retur|n $fld..|
|000062d0| 09 0d 09 7d 20 65 6c 73 | 65 20 7b 0d 09 09 65 72 |...} els|e {...er|
|000062e0| 72 6f 72 20 22 66 69 65 | 6c 64 20 6e 6f 74 20 66 |ror "fie|ld not f|
|000062f0| 6f 75 6e 64 22 0d 09 7d | 0d 7d 0d 0d 23 23 23 23 |ound"..}|.}..####|
|00006300| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00006310| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00006320| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00006330| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00006340| 23 23 23 23 23 23 23 0d | 23 20 50 61 72 73 65 20 |#######.|# Parse |
|00006350| 74 68 65 20 65 6e 74 72 | 79 20 61 72 6f 75 6e 64 |the entr|y around|
|00006360| 20 70 6f 73 69 74 69 6f | 6e 20 22 70 6f 73 22 20 | positio|n "pos" |
|00006370| 61 6e 64 20 72 65 77 72 | 69 74 65 20 69 74 20 74 |and rewr|ite it t|
|00006380| 6f 20 74 68 65 20 6f 72 | 69 67 69 6e 61 6c 20 0d |o the or|iginal .|
|00006390| 23 20 62 75 66 66 65 72 | 20 69 6e 20 61 20 63 61 |# buffer| in a ca|
|000063a0| 6e 6f 6e 69 63 61 6c 20 | 66 6f 72 6d 61 74 0d 23 |nonical |format.#|
|000063b0| 0d 70 72 6f 63 20 66 6f | 72 6d 61 74 45 6e 74 72 |.proc fo|rmatEntr|
|000063c0| 79 20 7b 7d 20 7b 0d 09 | 67 6c 6f 62 61 6c 20 75 |y {} {..|global u|
|000063d0| 73 65 42 72 61 63 65 20 | 62 69 62 4f 70 65 6e 51 |seBrace |bibOpenQ|
|000063e0| 75 6f 74 65 20 62 69 62 | 43 6c 6f 73 65 51 75 6f |uote bib|CloseQuo|
|000063f0| 74 65 20 0d 09 67 6c 6f | 62 61 6c 20 62 69 62 4f |te ..glo|bal bibO|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.