home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1994-12-22 | 14.3 KB | [TEXT/TOPC] |
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
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Thu Dec 22 21:26:23 1994, modified Thu Dec 22 21:26:23 1994, creator 'TOPC', type ASCII, 13495 bytes "FIELD.C" , at 0x3537 788 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [TOPC] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 07 46 49 45 4c 44 2e | 43 00 00 00 00 00 00 00 |..FIELD.|C.......|
|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 54 4f 50 | 43 01 00 00 00 00 00 00 |.TEXTTOP|C.......|
|00000050| 00 00 00 00 00 34 b7 00 | 00 03 14 ab 1f e5 cf ab |.....4..|........|
|00000060| 1f e5 cf 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 57 69 00 00 |........|....Wi..|
|00000080| 2f 2a 0d 20 2a 20 66 69 | 65 6c 64 2e 63 20 2d 20 |/*. * fi|eld.c - |
|00000090| 72 6f 75 74 69 6e 65 73 | 20 66 6f 72 20 64 65 61 |routines| for dea|
|000000a0| 6c 69 6e 67 20 77 69 74 | 68 20 66 69 65 6c 64 73 |ling wit|h fields|
|000000b0| 20 61 6e 64 20 72 65 63 | 6f 72 64 20 70 61 72 73 | and rec|ord pars|
|000000c0| 69 6e 67 0d 20 2a 2f 0d | 0d 2f 2a 20 43 6f 70 79 |ing. */.|./* Copy|
|000000d0| 72 69 67 68 74 20 a9 20 | 31 39 38 36 2c 20 31 39 |right . |1986, 19|
|000000e0| 38 38 2c 20 31 39 38 39 | 20 31 39 39 31 20 74 68 |88, 1989| 1991 th|
|000000f0| 65 20 46 72 65 65 20 53 | 6f 66 74 77 61 72 65 20 |e Free S|oftware |
|00000100| 46 6f 75 6e 64 61 74 69 | 6f 6e 2c 20 49 6e 63 2e |Foundati|on, Inc.|
|00000110| 0d 20 2a 20 09 09 54 68 | 69 73 20 66 69 6c 65 20 |. * ..Th|is file |
|00000120| 69 73 20 70 61 72 74 20 | 6f 66 20 47 41 57 4b 2c |is part |of GAWK,|
|00000130| 20 74 68 65 20 47 4e 55 | 20 69 6d 70 6c 65 6d 65 | the GNU| impleme|
|00000140| 6e 74 61 74 69 6f 6e 20 | 6f 66 20 74 68 65 0d 20 |ntation |of the. |
|00000150| 2a 20 41 57 4b 20 50 72 | 6f 67 61 6d 6d 69 6e 67 |* AWK Pr|ogamming|
|00000160| 20 4c 61 6e 67 75 61 67 | 65 2c 20 6d 6f 64 69 66 | Languag|e, modif|
|00000170| 69 65 64 20 66 6f 72 20 | 74 68 65 20 4d 61 63 69 |ied for |the Maci|
|00000180| 6e 74 6f 73 68 20 28 61 | 6c 73 6f 20 63 61 6c 6c |ntosh (a|lso call|
|00000190| 65 64 20 68 41 57 4b 29 | 2e 0d 20 2a 20 09 09 47 |ed hAWK)|.. * ..G|
|000001a0| 41 57 4b 20 69 73 20 66 | 72 65 65 20 73 6f 66 74 |AWK is f|ree soft|
|000001b0| 77 61 72 65 3b 20 79 6f | 75 20 63 61 6e 20 72 65 |ware; yo|u can re|
|000001c0| 64 69 73 74 72 69 62 75 | 74 65 20 6f 72 20 6d 6f |distribu|te or mo|
|000001d0| 64 69 66 79 0d 20 2a 20 | 69 74 20 75 6e 64 65 72 |dify. * |it under|
|000001e0| 20 74 68 65 20 74 65 72 | 6d 73 20 6f 66 20 74 68 | the ter|ms of th|
|000001f0| 65 20 47 4e 55 20 47 65 | 6e 65 72 61 6c 20 50 75 |e GNU Ge|neral Pu|
|00000200| 62 6c 69 63 20 4c 69 63 | 65 6e 73 65 20 61 73 20 |blic Lic|ense as |
|00000210| 70 75 62 6c 69 73 68 65 | 64 20 62 79 0d 20 2a 20 |publishe|d by. * |
|00000220| 74 68 65 20 46 72 65 65 | 20 53 6f 66 74 77 61 72 |the Free| Softwar|
|00000230| 65 20 46 6f 75 6e 64 61 | 74 69 6f 6e 3b 20 65 69 |e Founda|tion; ei|
|00000240| 74 68 65 72 20 76 65 72 | 73 69 6f 6e 20 31 2c 20 |ther ver|sion 1, |
|00000250| 6f 72 20 61 6e 79 20 6c | 61 74 65 72 20 76 65 72 |or any l|ater ver|
|00000260| 73 69 6f 6e 2e 0d 20 2a | 20 09 09 47 41 57 4b 20 |sion.. *| ..GAWK |
|00000270| 69 73 20 64 69 73 74 72 | 69 62 75 74 65 64 20 69 |is distr|ibuted i|
|00000280| 6e 20 74 68 65 20 68 6f | 70 65 20 74 68 61 74 20 |n the ho|pe that |
|00000290| 69 74 20 77 69 6c 6c 20 | 62 65 20 75 73 65 66 75 |it will |be usefu|
|000002a0| 6c 2c 0d 20 2a 20 62 75 | 74 20 57 49 54 48 4f 55 |l,. * bu|t WITHOU|
|000002b0| 54 20 41 4e 59 20 57 41 | 52 52 41 4e 54 59 3b 20 |T ANY WA|RRANTY; |
|000002c0| 77 69 74 68 6f 75 74 20 | 65 76 65 6e 20 74 68 65 |without |even the|
|000002d0| 20 69 6d 70 6c 69 65 64 | 20 77 61 72 72 61 6e 74 | implied| warrant|
|000002e0| 79 20 6f 66 0d 20 2a 20 | 4d 45 52 43 48 41 4e 54 |y of. * |MERCHANT|
|000002f0| 41 42 49 4c 49 54 59 20 | 6f 72 20 46 49 54 4e 45 |ABILITY |or FITNE|
|00000300| 53 53 20 46 4f 52 20 41 | 20 50 41 52 54 49 43 55 |SS FOR A| PARTICU|
|00000310| 4c 41 52 20 50 55 52 50 | 4f 53 45 2e 20 53 65 65 |LAR PURP|OSE. See|
|00000320| 20 74 68 65 0d 20 2a 20 | 47 4e 55 20 47 65 6e 65 | the. * |GNU Gene|
|00000330| 72 61 6c 20 50 75 62 6c | 69 63 20 4c 69 63 65 6e |ral Publ|ic Licen|
|00000340| 73 65 20 66 6f 72 20 6d | 6f 72 65 20 64 65 74 61 |se for m|ore deta|
|00000350| 69 6c 73 2e 0d 20 2a 20 | 09 09 59 6f 75 20 73 68 |ils.. * |..You sh|
|00000360| 6f 75 6c 64 20 68 61 76 | 65 20 72 65 63 65 69 76 |ould hav|e receiv|
|00000370| 65 64 20 61 20 63 6f 70 | 79 20 6f 66 20 74 68 65 |ed a cop|y of the|
|00000380| 20 47 4e 55 20 47 65 6e | 65 72 61 6c 20 50 75 62 | GNU Gen|eral Pub|
|00000390| 6c 69 63 20 4c 69 63 65 | 6e 73 65 0d 20 2a 20 61 |lic Lice|nse. * a|
|000003a0| 6c 6f 6e 67 20 77 69 74 | 68 20 47 41 57 4b 3b 20 |long wit|h GAWK; |
|000003b0| 73 65 65 20 74 68 65 20 | 66 69 6c 65 20 22 43 4f |see the |file "CO|
|000003c0| 50 59 49 4e 47 20 68 41 | 57 4b 22 2e 20 49 66 20 |PYING hA|WK". If |
|000003d0| 6e 6f 74 2c 20 77 72 69 | 74 65 20 74 6f 0d 20 2a |not, wri|te to. *|
|000003e0| 20 74 68 65 20 46 72 65 | 65 20 53 6f 66 74 77 61 | the Fre|e Softwa|
|000003f0| 72 65 20 46 6f 75 6e 64 | 61 74 69 6f 6e 2c 20 36 |re Found|ation, 6|
|00000400| 37 35 20 4d 61 73 73 20 | 41 76 65 2c 20 43 61 6d |75 Mass |Ave, Cam|
|00000410| 62 72 69 64 67 65 2c 20 | 4d 41 20 30 32 31 33 39 |bridge, |MA 02139|
|00000420| 2c 20 55 53 41 2e 0d 20 | 2a 20 4d 6f 64 69 66 69 |, USA.. |* Modifi|
|00000430| 65 64 20 66 6f 72 20 54 | 48 49 4e 4b 20 43 20 34 |ed for T|HINK C 4|
|00000440| 20 6f 6e 20 74 68 65 20 | 4d 61 63 69 6e 74 6f 73 | on the |Macintos|
|00000450| 68 20 62 79 20 4b 65 6e | 20 45 61 72 6c 65 20 28 |h by Ken| Earle (|
|00000460| 44 79 6e 61 62 79 74 65 | 29 20 41 75 67 20 31 39 |Dynabyte|) Aug 19|
|00000470| 39 31 2e 0d 20 2a 2f 0d | 0d 23 69 6e 63 6c 75 64 |91.. */.|.#includ|
|00000480| 65 20 22 41 57 4b 2e 48 | 22 0d 0d 2f 2a 20 41 20 |e "AWK.H|"../* A |
|00000490| 67 65 6e 65 72 61 6c 69 | 73 65 64 20 22 63 61 72 |generali|sed "car|
|000004a0| 72 69 61 67 65 20 72 65 | 74 75 72 6e 22 20 66 6f |riage re|turn" fo|
|000004b0| 72 20 74 68 65 20 4d 61 | 63 20 76 65 72 73 69 6f |r the Ma|c versio|
|000004c0| 6e 20 2d 20 69 74 73 20 | 64 65 66 69 6e 69 74 69 |n - its |definiti|
|000004d0| 6f 6e 0d 76 61 72 69 65 | 73 20 6e 6f 77 20 61 6e |on.varie|s now an|
|000004e0| 64 20 74 68 65 6e 2c 20 | 74 72 61 63 6b 69 6e 67 |d then, |tracking|
|000004f0| 20 64 6f 77 6e 20 61 6c | 6c 20 74 68 65 20 76 61 | down al|l the va|
|00000500| 72 69 61 74 69 6f 6e 73 | 20 6c 65 66 74 20 61 73 |riations| left as|
|00000510| 20 61 6e 20 65 78 65 72 | 63 69 73 65 2e 2e 2e 2a | an exer|cise...*|
|00000520| 2f 0d 23 64 65 66 69 6e | 65 20 43 52 20 27 5c 6e |/.#defin|e CR '\n|
|00000530| 27 0d 0d 65 78 74 65 72 | 6e 20 76 6f 69 64 20 61 |'..exter|n void a|
|00000540| 73 73 6f 63 5f 63 6c 65 | 61 72 28 4e 4f 44 45 20 |ssoc_cle|ar(NODE |
|00000550| 2a 73 79 6d 62 6f 6c 29 | 3b 0d 65 78 74 65 72 6e |*symbol)|;.extern|
|00000560| 20 73 68 6f 72 74 20 61 | 5f 67 65 74 5f 74 68 72 | short a|_get_thr|
|00000570| 65 65 28 4e 4f 44 45 20 | 2a 74 72 65 65 2c 20 4e |ee(NODE |*tree, N|
|00000580| 4f 44 45 20 2a 2a 72 65 | 73 31 2c 20 4e 4f 44 45 |ODE **re|s1, NODE|
|00000590| 20 2a 2a 72 65 73 32 2c | 20 4e 4f 44 45 20 2a 2a | **res2,| NODE **|
|000005a0| 72 65 73 33 29 3b 0d 65 | 78 74 65 72 6e 20 63 68 |res3);.e|xtern ch|
|000005b0| 61 72 20 67 65 74 5f 72 | 73 28 76 6f 69 64 29 3b |ar get_r|s(void);|
|000005c0| 0d 0d 2f 2a 46 49 45 4c | 44 2e 43 2a 2f 0d 76 6f |../*FIEL|D.C*/.vo|
|000005d0| 69 64 20 69 6e 69 74 5f | 66 69 65 6c 64 73 28 76 |id init_|fields(v|
|000005e0| 6f 69 64 29 3b 0d 73 74 | 61 74 69 63 20 76 6f 69 |oid);.st|atic voi|
|000005f0| 64 20 73 65 74 5f 66 69 | 65 6c 64 28 73 68 6f 72 |d set_fi|eld(shor|
|00000600| 74 20 6e 75 6d 2c 20 63 | 68 61 72 20 2a 73 74 72 |t num, c|har *str|
|00000610| 2c 20 73 68 6f 72 74 20 | 6c 65 6e 2c 20 4e 4f 44 |, short |len, NOD|
|00000620| 45 20 2a 64 75 6d 6d 79 | 29 3b 0d 73 74 61 74 69 |E *dummy|);.stati|
|00000630| 63 20 76 6f 69 64 20 72 | 65 62 75 69 6c 64 5f 72 |c void r|ebuild_r|
|00000640| 65 63 6f 72 64 28 76 6f | 69 64 29 3b 0d 76 6f 69 |ecord(vo|id);.voi|
|00000650| 64 20 73 65 74 5f 72 65 | 63 6f 72 64 28 63 68 61 |d set_re|cord(cha|
|00000660| 72 20 2a 62 75 66 2c 20 | 73 68 6f 72 74 20 63 6e |r *buf, |short cn|
|00000670| 74 29 3b 0d 4e 4f 44 45 | 20 2a 2a 67 65 74 5f 66 |t);.NODE| **get_f|
|00000680| 69 65 6c 64 28 73 68 6f | 72 74 20 6e 75 6d 2c 20 |ield(sho|rt num, |
|00000690| 73 68 6f 72 74 20 61 73 | 73 69 67 6e 29 3b 0d 73 |short as|sign);.s|
|000006a0| 74 61 74 69 63 20 73 68 | 6f 72 74 20 70 61 72 73 |tatic sh|ort pars|
|000006b0| 65 5f 66 69 65 6c 64 73 | 28 73 68 6f 72 74 20 75 |e_fields|(short u|
|000006c0| 70 5f 74 6f 2c 20 63 68 | 61 72 20 2a 2a 62 75 66 |p_to, ch|ar **buf|
|000006d0| 2c 20 73 68 6f 72 74 20 | 6c 65 6e 2c 20 0d 09 72 |, short |len, ..r|
|000006e0| 65 67 69 73 74 65 72 20 | 63 68 61 72 20 2a 66 73 |egister |char *fs|
|000006f0| 2c 20 76 6f 69 64 20 28 | 2a 73 65 74 29 20 28 73 |, void (|*set) (s|
|00000700| 68 6f 72 74 2c 20 63 68 | 61 72 20 2a 2c 20 73 68 |hort, ch|ar *, sh|
|00000710| 6f 72 74 2c 20 4e 4f 44 | 45 20 2a 29 2c 20 4e 4f |ort, NOD|E *), NO|
|00000720| 44 45 20 2a 6e 29 3b 0d | 73 74 61 74 69 63 20 73 |DE *n);.|static s|
|00000730| 68 6f 72 74 20 72 65 5f | 73 70 6c 69 74 28 63 68 |hort re_|split(ch|
|00000740| 61 72 20 2a 62 75 66 2c | 20 73 68 6f 72 74 20 6c |ar *buf,| short l|
|00000750| 65 6e 2c 20 63 68 61 72 | 20 2a 66 73 2c 20 0d 09 |en, char| *fs, ..|
|00000760| 73 74 72 75 63 74 20 72 | 65 5f 72 65 67 69 73 74 |struct r|e_regist|
|00000770| 65 72 73 20 2a 72 65 72 | 65 67 73 70 29 3b 0d 4e |ers *rer|egsp);.N|
|00000780| 4f 44 45 20 2a 64 6f 5f | 73 70 6c 69 74 28 4e 4f |ODE *do_|split(NO|
|00000790| 44 45 20 2a 74 72 65 65 | 29 3b 0d 73 74 61 74 69 |DE *tree|);.stati|
|000007a0| 63 20 63 68 61 72 20 2a | 67 65 74 5f 66 73 28 76 |c char *|get_fs(v|
|000007b0| 6f 69 64 29 3b 0d 73 74 | 61 74 69 63 20 76 6f 69 |oid);.st|atic voi|
|000007c0| 64 20 73 65 74 5f 65 6c | 65 6d 65 6e 74 28 73 68 |d set_el|ement(sh|
|000007d0| 6f 72 74 20 6e 75 6d 2c | 20 63 68 61 72 20 2a 73 |ort num,| char *s|
|000007e0| 2c 20 73 68 6f 72 74 20 | 6c 65 6e 2c 20 4e 4f 44 |, short |len, NOD|
|000007f0| 45 20 2a 6e 29 3b 0d 0d | 63 68 61 72 20 2a 6c 69 |E *n);..|char *li|
|00000800| 6e 65 5f 62 75 66 20 3d | 20 4e 55 4c 4c 3b 09 2f |ne_buf =| NULL;./|
|00000810| 2a 20 68 6f 6c 64 73 20 | 63 75 72 72 65 6e 74 20 |* holds |current |
|00000820| 69 6e 70 75 74 20 6c 69 | 6e 65 20 2a 2f 0d 0d 73 |input li|ne */..s|
|00000830| 74 61 74 69 63 20 63 68 | 61 72 20 2a 70 61 72 73 |tatic ch|ar *pars|
|00000840| 65 5f 65 78 74 65 6e 74 | 3b 09 2f 2a 20 6d 61 72 |e_extent|;./* mar|
|00000850| 6b 73 20 77 68 65 72 65 | 20 74 6f 20 72 65 73 74 |ks where| to rest|
|00000860| 61 72 74 20 70 61 72 73 | 65 20 6f 66 20 72 65 63 |art pars|e of rec|
|00000870| 6f 72 64 20 2a 2f 0d 73 | 74 61 74 69 63 20 73 68 |ord */.s|tatic sh|
|00000880| 6f 72 74 20 70 61 72 73 | 65 5f 68 69 67 68 5f 77 |ort pars|e_high_w|
|00000890| 61 74 65 72 3d 30 3b 09 | 2f 2a 20 66 69 65 6c 64 |ater=0;.|/* field|
|000008a0| 20 6e 75 6d 62 65 72 20 | 74 68 61 74 20 77 65 20 | number |that we |
|000008b0| 68 61 76 65 20 70 61 72 | 73 65 64 20 73 6f 20 66 |have par|sed so f|
|000008c0| 61 72 20 2a 2f 0d 73 74 | 61 74 69 63 20 63 68 61 |ar */.st|atic cha|
|000008d0| 72 20 66 5f 65 6d 70 74 | 79 5b 31 5d 20 2f 2a 3d |r f_empt|y[1] /*=|
|000008e0| 20 22 22 2a 2f 3b 0d 73 | 74 61 74 69 63 20 63 68 | ""*/;.s|tatic ch|
|000008f0| 61 72 20 2a 73 61 76 65 | 5f 66 73 20 2f 2a 3d 20 |ar *save|_fs /*= |
|00000900| 22 20 22 2a 2f 3b 09 2f | 2a 20 73 61 76 65 20 63 |" "*/;./|* save c|
|00000910| 75 72 72 65 6e 74 20 76 | 61 6c 75 65 20 6f 66 20 |urrent v|alue of |
|00000920| 46 53 20 77 68 65 6e 20 | 6c 69 6e 65 20 69 73 20 |FS when |line is |
|00000930| 72 65 61 64 2c 0d 09 09 | 09 09 20 2a 20 74 6f 20 |read,...|.. * to |
|00000940| 62 65 20 75 73 65 64 20 | 69 6e 20 64 65 66 65 72 |be used |in defer|
|00000950| 72 65 64 20 70 61 72 73 | 69 6e 67 0d 09 09 09 09 |red pars|ing.....|
|00000960| 20 2a 2f 0d 0d 0d 4e 4f | 44 45 20 2a 2a 66 69 65 | */...NO|DE **fie|
|00000970| 6c 64 73 5f 61 72 72 3b | 09 09 2f 2a 20 61 72 72 |lds_arr;|../* arr|
|00000980| 61 79 20 6f 66 20 70 6f | 69 6e 74 65 72 73 20 74 |ay of po|inters t|
|00000990| 6f 20 74 68 65 20 66 69 | 65 6c 64 20 6e 6f 64 65 |o the fi|eld node|
|000009a0| 73 20 2a 2f 0d 4e 4f 44 | 45 20 6e 6f 64 65 30 3b |s */.NOD|E node0;|
|000009b0| 09 09 09 2f 2a 20 6e 6f | 64 65 20 66 6f 72 20 24 |.../* no|de for $|
|000009c0| 30 20 77 68 69 63 68 20 | 6e 65 76 65 72 20 67 65 |0 which |never ge|
|000009d0| 74 73 20 66 72 65 65 27 | 64 20 2a 2f 0d 73 68 6f |ts free'|d */.sho|
|000009e0| 72 74 20 6e 6f 64 65 30 | 5f 76 61 6c 69 64 20 3d |rt node0|_valid =|
|000009f0| 20 31 3b 09 09 2f 2a 20 | 24 28 3e 30 29 20 68 61 | 1;../* |$(>0) ha|
|00000a00| 73 20 6e 6f 74 20 62 65 | 65 6e 20 63 68 61 6e 67 |s not be|en chang|
|00000a10| 65 64 20 79 65 74 20 2a | 2f 0d 0d 76 6f 69 64 20 |ed yet *|/..void |
|00000a20| 69 6e 69 74 5f 66 69 65 | 6c 64 73 28 29 0d 7b 0d |init_fie|lds().{.|
|00000a30| 09 65 6d 61 6c 6c 6f 63 | 28 66 69 65 6c 64 73 5f |.emalloc|(fields_|
|00000a40| 61 72 72 2c 20 4e 4f 44 | 45 20 2a 2a 2c 20 73 69 |arr, NOD|E **, si|
|00000a50| 7a 65 6f 66 28 4e 4f 44 | 45 20 2a 29 2c 20 22 69 |zeof(NOD|E *), "i|
|00000a60| 6e 69 74 5f 66 69 65 6c | 64 73 22 29 3b 0d 09 6e |nit_fiel|ds");..n|
|00000a70| 6f 64 65 30 2e 74 79 70 | 65 20 3d 20 4e 6f 64 65 |ode0.typ|e = Node|
|00000a80| 5f 76 61 6c 3b 0d 09 6e | 6f 64 65 30 2e 73 74 72 |_val;..n|ode0.str|
|00000a90| 65 66 20 3d 20 30 3b 0d | 09 6e 6f 64 65 30 2e 73 |ef = 0;.|.node0.s|
|00000aa0| 74 70 74 72 20 3d 20 22 | 22 3b 0d 09 6e 6f 64 65 |tptr = "|";..node|
|00000ab0| 30 2e 66 6c 61 67 73 20 | 3d 20 28 53 54 52 7c 50 |0.flags |= (STR|P|
|00000ac0| 45 52 4d 29 3b 09 2f 2a | 20 6e 65 76 65 72 20 66 |ERM);./*| never f|
|00000ad0| 72 65 65 20 62 75 66 20 | 2a 2f 0d 09 66 69 65 6c |ree buf |*/..fiel|
|00000ae0| 64 73 5f 61 72 72 5b 30 | 5d 20 3d 20 26 6e 6f 64 |ds_arr[0|] = &nod|
|00000af0| 65 30 3b 0d 7d 0d 0d 2f | 2a 0d 20 2a 20 44 61 6e |e0;.}../|*. * Dan|
|00000b00| 67 65 72 21 20 20 4d 75 | 73 74 20 6f 6e 6c 79 20 |ger! Mu|st only |
|00000b10| 62 65 20 63 61 6c 6c 65 | 64 20 66 6f 72 20 66 69 |be calle|d for fi|
|00000b20| 65 6c 64 73 20 77 65 20 | 6b 6e 6f 77 20 68 61 76 |elds we |know hav|
|00000b30| 65 20 6a 75 73 74 20 62 | 65 65 6e 20 62 6c 61 6e |e just b|een blan|
|00000b40| 6b 65 64 2c 20 6f 72 0d | 20 2a 20 66 69 65 6c 64 |ked, or.| * field|
|00000b50| 73 20 77 65 20 6b 6e 6f | 77 20 64 6f 6e 27 74 20 |s we kno|w don't |
|00000b60| 65 78 69 73 74 20 79 65 | 74 2e 20 20 0d 20 2a 2f |exist ye|t. . */|
|00000b70| 0d 73 74 61 74 69 63 20 | 73 68 6f 72 74 20 6e 66 |.static |short nf|
|00000b80| 5f 68 69 67 68 5f 77 61 | 74 65 72 20 3d 20 30 3b |_high_wa|ter = 0;|
|00000b90| 0d 2f 2a 41 52 47 53 55 | 53 45 44 2a 2f 0d 73 74 |./*ARGSU|SED*/.st|
|00000ba0| 61 74 69 63 20 76 6f 69 | 64 20 73 65 74 5f 66 69 |atic voi|d set_fi|
|00000bb0| 65 6c 64 28 73 68 6f 72 | 74 20 6e 75 6d 2c 20 63 |eld(shor|t num, c|
|00000bc0| 68 61 72 20 2a 73 74 72 | 2c 20 73 68 6f 72 74 20 |har *str|, short |
|00000bd0| 6c 65 6e 2c 20 4e 4f 44 | 45 20 2a 64 75 6d 6d 79 |len, NOD|E *dummy|
|00000be0| 29 0d 2f 2a 4e 4f 44 45 | 20 2a 64 75 6d 6d 79 3b |)./*NODE| *dummy;|
|00000bf0| 09 20 6e 6f 74 20 75 73 | 65 64 20 2d 2d 20 6a 75 |. not us|ed -- ju|
|00000c00| 73 74 20 74 6f 20 6d 61 | 6b 65 20 69 6e 74 65 72 |st to ma|ke inter|
|00000c10| 66 61 63 65 20 73 61 6d | 65 20 61 73 20 73 65 74 |face sam|e as set|
|00000c20| 5f 65 6c 65 6d 65 6e 74 | 20 2a 2f 0d 7b 0d 09 4e |_element| */.{..N|
|00000c30| 4f 44 45 20 2a 6e 3b 0d | 09 73 68 6f 72 74 20 74 |ODE *n;.|.short t|
|00000c40| 3b 0d 09 0d 0d 09 69 66 | 20 28 6e 75 6d 20 3e 20 |;.....if| (num > |
|00000c50| 6e 66 5f 68 69 67 68 5f | 77 61 74 65 72 29 20 7b |nf_high_|water) {|
|00000c60| 0d 09 09 65 72 65 61 6c | 6c 6f 63 28 66 69 65 6c |...ereal|loc(fiel|
|00000c70| 64 73 5f 61 72 72 2c 20 | 4e 4f 44 45 20 2a 2a 2c |ds_arr, |NODE **,|
|00000c80| 20 28 6e 75 6d 20 2b 20 | 31 29 20 2a 20 73 69 7a | (num + |1) * siz|
|00000c90| 65 6f 66 28 4e 4f 44 45 | 20 2a 29 2c 20 22 73 65 |eof(NODE| *), "se|
|00000ca0| 74 5f 66 69 65 6c 64 22 | 29 3b 0d 09 09 6e 66 5f |t_field"|);...nf_|
|00000cb0| 68 69 67 68 5f 77 61 74 | 65 72 20 3d 20 6e 75 6d |high_wat|er = num|
|00000cc0| 3b 0d 09 7d 0d 09 2f 2a | 20 66 69 6c 6c 20 69 6e |;..}../*| fill in|
|00000cd0| 20 66 69 65 6c 64 73 20 | 74 68 61 74 20 64 6f 6e | fields |that don|
|00000ce0| 27 74 20 65 78 69 73 74 | 20 2a 2f 0d 09 66 6f 72 |'t exist| */..for|
|00000cf0| 20 28 74 20 3d 20 70 61 | 72 73 65 5f 68 69 67 68 | (t = pa|rse_high|
|00000d00| 5f 77 61 74 65 72 20 2b | 20 31 3b 20 74 20 3c 20 |_water +| 1; t < |
|00000d10| 6e 75 6d 3b 20 74 2b 2b | 29 0d 09 09 66 69 65 6c |num; t++|)...fiel|
|00000d20| 64 73 5f 61 72 72 5b 74 | 5d 20 3d 20 4e 6e 75 6c |ds_arr[t|] = Nnul|
|00000d30| 6c 5f 73 74 72 69 6e 67 | 3b 0d 09 6e 20 3d 20 6d |l_string|;..n = m|
|00000d40| 61 6b 65 5f 73 74 72 69 | 6e 67 28 73 74 72 2c 20 |ake_stri|ng(str, |
|00000d50| 6c 65 6e 29 3b 0d 09 28 | 76 6f 69 64 29 20 66 6f |len);..(|void) fo|
|00000d60| 72 63 65 5f 6e 75 6d 62 | 65 72 28 6e 29 3b 0d 09 |rce_numb|er(n);..|
|00000d70| 66 69 65 6c 64 73 5f 61 | 72 72 5b 6e 75 6d 5d 20 |fields_a|rr[num] |
|00000d80| 3d 20 6e 3b 0d 09 70 61 | 72 73 65 5f 68 69 67 68 |= n;..pa|rse_high|
|00000d90| 5f 77 61 74 65 72 20 3d | 20 6e 75 6d 3b 0d 7d 0d |_water =| num;.}.|
|00000da0| 0d 2f 2a 20 53 6f 6d 65 | 6f 6e 65 20 61 73 73 69 |./* Some|one assi|
|00000db0| 67 6e 65 64 20 61 20 76 | 61 6c 75 65 20 74 6f 20 |gned a v|alue to |
|00000dc0| 24 28 73 6f 6d 65 74 68 | 69 6e 67 29 2e 20 20 46 |$(someth|ing). F|
|00000dd0| 69 78 20 75 70 20 24 30 | 20 74 6f 20 62 65 20 72 |ix up $0| to be r|
|00000de0| 69 67 68 74 20 2a 2f 0d | 73 74 61 74 69 63 20 76 |ight */.|static v|
|00000df0| 6f 69 64 20 72 65 62 75 | 69 6c 64 5f 72 65 63 6f |oid rebu|ild_reco|
|00000e00| 72 64 28 29 0d 7b 0d 09 | 72 65 67 69 73 74 65 72 |rd().{..|register|
|00000e10| 20 73 68 6f 72 74 20 74 | 6c 65 6e 3b 0d 09 72 65 | short t|len;..re|
|00000e20| 67 69 73 74 65 72 20 4e | 4f 44 45 20 2a 74 6d 70 |gister N|ODE *tmp|
|00000e30| 3b 0d 09 4e 4f 44 45 20 | 2a 6f 66 73 3b 0d 09 63 |;..NODE |*ofs;..c|
|00000e40| 68 61 72 20 2a 6f 70 73 | 3b 0d 09 72 65 67 69 73 |har *ops|;..regis|
|00000e50| 74 65 72 20 63 68 61 72 | 20 2a 63 6f 70 73 3b 0d |ter char| *cops;.|
|00000e60| 09 72 65 67 69 73 74 65 | 72 20 4e 4f 44 45 20 2a |.registe|r NODE *|
|00000e70| 2a 70 74 72 3b 0d 09 72 | 65 67 69 73 74 65 72 20 |*ptr;..r|egister |
|00000e80| 73 68 6f 72 74 20 6f 66 | 73 6c 65 6e 3b 0d 0d 09 |short of|slen;...|
|00000e90| 74 6c 65 6e 20 3d 20 30 | 3b 0d 09 6f 66 73 20 3d |tlen = 0|;..ofs =|
|00000ea0| 20 66 6f 72 63 65 5f 73 | 74 72 69 6e 67 28 4f 46 | force_s|tring(OF|
|00000eb0| 53 5f 6e 6f 64 65 2d 3e | 76 61 72 5f 76 61 6c 75 |S_node->|var_valu|
|00000ec0| 65 29 3b 0d 09 6f 66 73 | 6c 65 6e 20 3d 20 6f 66 |e);..ofs|len = of|
|00000ed0| 73 2d 3e 73 74 6c 65 6e | 3b 0d 09 70 74 72 20 3d |s->stlen|;..ptr =|
|00000ee0| 20 26 66 69 65 6c 64 73 | 5f 61 72 72 5b 70 61 72 | &fields|_arr[par|
|00000ef0| 73 65 5f 68 69 67 68 5f | 77 61 74 65 72 5d 3b 0d |se_high_|water];.|
|00000f00| 09 77 68 69 6c 65 20 28 | 70 74 72 20 3e 20 26 66 |.while (|ptr > &f|
|00000f10| 69 65 6c 64 73 5f 61 72 | 72 5b 30 5d 29 20 7b 0d |ields_ar|r[0]) {.|
|00000f20| 09 09 74 6d 70 20 3d 20 | 66 6f 72 63 65 5f 73 74 |..tmp = |force_st|
|00000f30| 72 69 6e 67 28 2a 70 74 | 72 29 3b 0d 09 09 74 6c |ring(*pt|r);...tl|
|00000f40| 65 6e 20 2b 3d 20 74 6d | 70 2d 3e 73 74 6c 65 6e |en += tm|p->stlen|
|00000f50| 3b 0d 09 09 70 74 72 2d | 2d 3b 0d 09 7d 0d 09 74 |;...ptr-|-;..}..t|
|00000f60| 6c 65 6e 20 2b 3d 20 28 | 70 61 72 73 65 5f 68 69 |len += (|parse_hi|
|00000f70| 67 68 5f 77 61 74 65 72 | 20 2d 20 31 29 20 2a 20 |gh_water| - 1) * |
|00000f80| 6f 66 73 6c 65 6e 3b 0d | 09 65 6d 61 6c 6c 6f 63 |ofslen;.|.emalloc|
|00000f90| 28 6f 70 73 2c 20 63 68 | 61 72 20 2a 2c 20 74 6c |(ops, ch|ar *, tl|
|00000fa0| 65 6e 20 2b 20 31 2c 20 | 22 66 69 78 5f 66 69 65 |en + 1, |"fix_fie|
|00000fb0| 6c 64 73 22 29 3b 0d 09 | 63 6f 70 73 20 3d 20 6f |lds");..|cops = o|
|00000fc0| 70 73 3b 0d 09 6f 70 73 | 5b 30 5d 20 3d 20 27 5c |ps;..ops|[0] = '\|
|00000fd0| 30 27 3b 0d 09 66 6f 72 | 20 28 70 74 72 20 3d 20 |0';..for| (ptr = |
|00000fe0| 26 66 69 65 6c 64 73 5f | 61 72 72 5b 31 5d 3b 20 |&fields_|arr[1]; |
|00000ff0| 70 74 72 20 3c 3d 20 26 | 66 69 65 6c 64 73 5f 61 |ptr <= &|fields_a|
|00001000| 72 72 5b 70 61 72 73 65 | 5f 68 69 67 68 5f 77 61 |rr[parse|_high_wa|
|00001010| 74 65 72 5d 3b 20 70 74 | 72 2b 2b 29 20 7b 0d 09 |ter]; pt|r++) {..|
|00001020| 09 74 6d 70 20 3d 20 2a | 70 74 72 3b 0d 09 09 69 |.tmp = *|ptr;...i|
|00001030| 66 20 28 74 6d 70 2d 3e | 73 74 6c 65 6e 20 3d 3d |f (tmp->|stlen ==|
|00001040| 20 31 29 0d 09 09 09 2a | 63 6f 70 73 2b 2b 20 3d | 1)....*|cops++ =|
|00001050| 20 74 6d 70 2d 3e 73 74 | 70 74 72 5b 30 5d 3b 0d | tmp->st|ptr[0];.|
|00001060| 09 09 65 6c 73 65 20 69 | 66 20 28 74 6d 70 2d 3e |..else i|f (tmp->|
|00001070| 73 74 6c 65 6e 20 21 3d | 20 30 29 20 7b 0d 09 09 |stlen !=| 0) {...|
|00001080| 09 6d 65 6d 63 70 79 28 | 63 6f 70 73 2c 20 74 6d |.memcpy(|cops, tm|
|00001090| 70 2d 3e 73 74 70 74 72 | 2c 20 74 6d 70 2d 3e 73 |p->stptr|, tmp->s|
|000010a0| 74 6c 65 6e 29 3b 0d 09 | 09 09 63 6f 70 73 20 2b |tlen);..|..cops +|
|000010b0| 3d 20 74 6d 70 2d 3e 73 | 74 6c 65 6e 3b 0d 09 09 |= tmp->s|tlen;...|
|000010c0| 7d 0d 09 09 69 66 20 28 | 70 74 72 20 21 3d 20 26 |}...if (|ptr != &|
|000010d0| 66 69 65 6c 64 73 5f 61 | 72 72 5b 70 61 72 73 65 |fields_a|rr[parse|
|000010e0| 5f 68 69 67 68 5f 77 61 | 74 65 72 5d 29 20 7b 0d |_high_wa|ter]) {.|
|000010f0| 09 09 09 69 66 20 28 6f | 66 73 6c 65 6e 20 3d 3d |...if (o|fslen ==|
|00001100| 20 31 29 0d 09 09 09 09 | 2a 63 6f 70 73 2b 2b 20 | 1).....|*cops++ |
|00001110| 3d 20 6f 66 73 2d 3e 73 | 74 70 74 72 5b 30 5d 3b |= ofs->s|tptr[0];|
|00001120| 0d 09 09 09 65 6c 73 65 | 20 69 66 20 28 6f 66 73 |....else| if (ofs|
|00001130| 6c 65 6e 20 21 3d 20 30 | 29 20 7b 0d 09 09 09 09 |len != 0|) {.....|
|00001140| 6d 65 6d 63 70 79 28 63 | 6f 70 73 2c 20 6f 66 73 |memcpy(c|ops, ofs|
|00001150| 2d 3e 73 74 70 74 72 2c | 20 6f 66 73 6c 65 6e 29 |->stptr,| ofslen)|
|00001160| 3b 0d 09 09 09 09 63 6f | 70 73 20 2b 3d 20 6f 66 |;.....co|ps += of|
|00001170| 73 6c 65 6e 3b 0d 09 09 | 09 7d 0d 09 09 7d 0d 09 |slen;...|.}...}..|
|00001180| 7d 0d 09 74 6d 70 20 3d | 20 6d 61 6b 65 5f 73 74 |}..tmp =| make_st|
|00001190| 72 69 6e 67 28 6f 70 73 | 2c 20 74 6c 65 6e 29 3b |ring(ops|, tlen);|
|000011a0| 0d 09 66 72 65 65 28 6f | 70 73 29 3b 0d 09 64 65 |..free(o|ps);..de|
|000011b0| 72 65 66 20 3d 20 66 69 | 65 6c 64 73 5f 61 72 72 |ref = fi|elds_arr|
|000011c0| 5b 30 5d 3b 0d 09 64 6f | 5f 64 65 72 65 66 28 29 |[0];..do|_deref()|
|000011d0| 3b 0d 09 66 69 65 6c 64 | 73 5f 61 72 72 5b 30 5d |;..field|s_arr[0]|
|000011e0| 20 3d 20 74 6d 70 3b 0d | 7d 0d 0d 2f 2a 0d 20 2a | = tmp;.|}../*. *|
|000011f0| 20 73 65 74 75 70 20 24 | 30 2c 20 62 75 74 20 64 | setup $|0, but d|
|00001200| 65 66 65 72 20 70 61 72 | 73 69 6e 67 20 72 65 73 |efer par|sing res|
|00001210| 74 20 6f 66 20 6c 69 6e | 65 20 75 6e 74 69 6c 20 |t of lin|e until |
|00001220| 72 65 66 65 72 65 6e 63 | 65 20 69 73 20 6d 61 64 |referenc|e is mad|
|00001230| 65 20 74 6f 20 24 28 3e | 30 29 0d 20 2a 20 6f 72 |e to $(>|0). * or|
|00001240| 20 74 6f 20 4e 46 2e 20 | 20 41 74 20 74 68 61 74 | to NF. | At that|
|00001250| 20 70 6f 69 6e 74 2c 20 | 70 61 72 73 65 20 6f 6e | point, |parse on|
|00001260| 6c 79 20 61 73 20 6d 75 | 63 68 20 61 73 20 6e 65 |ly as mu|ch as ne|
|00001270| 63 65 73 73 61 72 79 2e | 0d 20 2a 2f 0d 76 6f 69 |cessary.|. */.voi|
|00001280| 64 20 73 65 74 5f 72 65 | 63 6f 72 64 28 63 68 61 |d set_re|cord(cha|
|00001290| 72 20 2a 62 75 66 2c 20 | 73 68 6f 72 74 20 63 6e |r *buf, |short cn|
|000012a0| 74 29 0d 7b 0d 09 72 65 | 67 69 73 74 65 72 20 73 |t).{..re|gister s|
|000012b0| 68 6f 72 74 20 69 3b 0d | 0d 09 61 73 73 69 67 6e |hort i;.|..assign|
|000012c0| 5f 6e 75 6d 62 65 72 28 | 26 4e 46 5f 6e 6f 64 65 |_number(|&NF_node|
|000012d0| 2d 3e 76 61 72 5f 76 61 | 6c 75 65 2c 20 28 41 57 |->var_va|lue, (AW|
|000012e0| 4b 4e 55 4d 29 2d 31 29 | 3b 0d 09 66 6f 72 20 28 |KNUM)-1)|;..for (|
|000012f0| 69 20 3d 20 31 3b 20 69 | 20 3c 3d 20 70 61 72 73 |i = 1; i| <= pars|
|00001300| 65 5f 68 69 67 68 5f 77 | 61 74 65 72 3b 20 69 2b |e_high_w|ater; i+|
|00001310| 2b 29 20 7b 0d 09 09 64 | 65 72 65 66 20 3d 20 66 |+) {...d|eref = f|
|00001320| 69 65 6c 64 73 5f 61 72 | 72 5b 69 5d 3b 0d 09 09 |ields_ar|r[i];...|
|00001330| 64 6f 5f 64 65 72 65 66 | 28 29 3b 0d 09 7d 0d 09 |do_deref|();..}..|
|00001340| 70 61 72 73 65 5f 68 69 | 67 68 5f 77 61 74 65 72 |parse_hi|gh_water|
|00001350| 20 3d 20 30 3b 0d 09 6e | 6f 64 65 30 5f 76 61 6c | = 0;..n|ode0_val|
|00001360| 69 64 20 3d 20 31 3b 0d | 09 69 66 20 28 62 75 66 |id = 1;.|.if (buf|
|00001370| 20 3d 3d 20 6c 69 6e 65 | 5f 62 75 66 29 20 7b 0d | == line|_buf) {.|
|00001380| 09 09 64 65 72 65 66 20 | 3d 20 66 69 65 6c 64 73 |..deref |= fields|
|00001390| 5f 61 72 72 5b 30 5d 3b | 0d 09 09 64 6f 5f 64 65 |_arr[0];|...do_de|
|000013a0| 72 65 66 28 29 3b 0d 09 | 09 73 61 76 65 5f 66 73 |ref();..|.save_fs|
|000013b0| 20 3d 20 67 65 74 5f 66 | 73 28 29 3b 0d 09 09 6e | = get_f|s();...n|
|000013c0| 6f 64 65 30 2e 74 79 70 | 65 20 3d 20 4e 6f 64 65 |ode0.typ|e = Node|
|000013d0| 5f 76 61 6c 3b 0d 09 09 | 6e 6f 64 65 30 2e 73 74 |_val;...|node0.st|
|000013e0| 70 74 72 20 3d 20 62 75 | 66 3b 0d 09 09 6e 6f 64 |ptr = bu|f;...nod|
|000013f0| 65 30 2e 73 74 6c 65 6e | 20 3d 20 63 6e 74 3b 0d |e0.stlen| = cnt;.|
|00001400| 09 09 6e 6f 64 65 30 2e | 73 74 72 65 66 20 3d 20 |..node0.|stref = |
|00001410| 31 3b 0d 09 09 6e 6f 64 | 65 30 2e 66 6c 61 67 73 |1;...nod|e0.flags|
|00001420| 20 3d 20 28 53 54 52 7c | 50 45 52 4d 29 3b 09 2f | = (STR||PERM);./|
|00001430| 2a 20 6e 65 76 65 72 20 | 66 72 65 65 20 62 75 66 |* never |free buf|
|00001440| 20 2a 2f 0d 09 09 66 69 | 65 6c 64 73 5f 61 72 72 | */...fi|elds_arr|
|00001450| 5b 30 5d 20 3d 20 26 6e | 6f 64 65 30 3b 0d 09 7d |[0] = &n|ode0;..}|
|00001460| 0d 7d 0d 0d 4e 4f 44 45 | 20 2a 2a 67 65 74 5f 66 |.}..NODE| **get_f|
|00001470| 69 65 6c 64 28 73 68 6f | 72 74 20 6e 75 6d 2c 20 |ield(sho|rt num, |
|00001480| 73 68 6f 72 74 20 61 73 | 73 69 67 6e 29 0d 2f 2a |short as|sign)./*|
|00001490| 73 68 6f 72 74 20 61 73 | 73 69 67 6e 3b 09 20 74 |short as|sign;. t|
|000014a0| 68 69 73 20 66 69 65 6c | 64 20 69 73 20 6f 6e 20 |his fiel|d is on |
|000014b0| 74 68 65 20 4c 48 53 20 | 6f 66 20 61 6e 20 61 73 |the LHS |of an as|
|000014c0| 73 69 67 6e 20 2a 2f 0d | 7b 0d 09 73 68 6f 72 74 |sign */.|{..short|
|000014d0| 20 6e 3b 0d 0d 09 2f 2a | 0d 09 20 2a 20 69 66 20 | n;.../*|.. * if |
|000014e0| 72 65 71 75 65 73 74 69 | 6e 67 20 77 68 6f 6c 65 |requesti|ng whole|
|000014f0| 20 6c 69 6e 65 20 62 75 | 74 20 73 6f 6d 65 20 6f | line bu|t some o|
|00001500| 74 68 65 72 20 66 69 65 | 6c 64 20 68 61 73 20 62 |ther fie|ld has b|
|00001510| 65 65 6e 20 61 6c 74 65 | 72 65 64 2c 0d 09 20 2a |een alte|red,.. *|
|00001520| 20 74 68 65 6e 20 74 68 | 65 20 77 68 6f 6c 65 20 | then th|e whole |
|00001530| 6c 69 6e 65 20 6d 75 73 | 74 20 62 65 20 72 65 62 |line mus|t be reb|
|00001540| 75 69 6c 74 0d 09 20 2a | 2f 0d 09 69 66 20 28 6e |uilt.. *|/..if (n|
|00001550| 75 6d 20 3d 3d 20 30 20 | 26 26 20 28 6e 6f 64 65 |um == 0 |&& (node|
|00001560| 30 5f 76 61 6c 69 64 20 | 3d 3d 20 30 20 7c 7c 20 |0_valid |== 0 || |
|00001570| 61 73 73 69 67 6e 29 29 | 20 7b 0d 09 09 2f 2a 20 |assign))| {.../* |
|00001580| 66 69 72 73 74 2c 20 70 | 61 72 73 65 20 72 65 6d |first, p|arse rem|
|00001590| 61 69 6e 64 65 72 20 6f | 66 20 69 6e 70 75 74 20 |ainder o|f input |
|000015a0| 72 65 63 6f 72 64 20 2a | 2f 0d 09 09 69 66 20 28 |record *|/...if (|
|000015b0| 4e 46 5f 6e 6f 64 65 2d | 3e 76 61 72 5f 76 61 6c |NF_node-|>var_val|
|000015c0| 75 65 2d 3e 6e 75 6d 62 | 72 20 3d 3d 20 2d 31 29 |ue->numb|r == -1)|
|000015d0| 20 7b 0d 09 09 09 69 66 | 20 28 70 61 72 73 65 5f | {....if| (parse_|
|000015e0| 68 69 67 68 5f 77 61 74 | 65 72 20 3d 3d 20 30 29 |high_wat|er == 0)|
|000015f0| 0d 09 09 09 09 70 61 72 | 73 65 5f 65 78 74 65 6e |.....par|se_exten|
|00001600| 74 20 3d 20 6e 6f 64 65 | 30 2e 73 74 70 74 72 3b |t = node|0.stptr;|
|00001610| 0d 09 09 09 6e 20 3d 20 | 70 61 72 73 65 5f 66 69 |....n = |parse_fi|
|00001620| 65 6c 64 73 28 48 55 47 | 45 2d 31 2c 20 26 70 61 |elds(HUG|E-1, &pa|
|00001630| 72 73 65 5f 65 78 74 65 | 6e 74 2c 0d 09 09 20 20 |rse_exte|nt,... |
|00001640| 20 20 09 09 6e 6f 64 65 | 30 2e 73 74 6c 65 6e 20 | ..node|0.stlen |
|00001650| 2d 20 28 70 61 72 73 65 | 5f 65 78 74 65 6e 74 20 |- (parse|_extent |
|00001660| 2d 20 6e 6f 64 65 30 2e | 73 74 70 74 72 29 2c 0d |- node0.|stptr),.|
|00001670| 09 09 20 20 20 20 09 09 | 73 61 76 65 5f 66 73 2c |.. ..|save_fs,|
|00001680| 20 73 65 74 5f 66 69 65 | 6c 64 2c 20 28 4e 4f 44 | set_fie|ld, (NOD|
|00001690| 45 20 2a 29 4e 55 4c 4c | 29 3b 0d 09 09 09 61 73 |E *)NULL|);....as|
|000016a0| 73 69 67 6e 5f 6e 75 6d | 62 65 72 28 26 4e 46 5f |sign_num|ber(&NF_|
|000016b0| 6e 6f 64 65 2d 3e 76 61 | 72 5f 76 61 6c 75 65 2c |node->va|r_value,|
|000016c0| 20 28 41 57 4b 4e 55 4d | 29 6e 29 3b 0d 09 09 7d | (AWKNUM|)n);...}|
|000016d0| 0d 09 09 69 66 20 28 6e | 6f 64 65 30 5f 76 61 6c |...if (n|ode0_val|
|000016e0| 69 64 20 3d 3d 20 30 29 | 0d 09 09 09 72 65 62 75 |id == 0)|....rebu|
|000016f0| 69 6c 64 5f 72 65 63 6f | 72 64 28 29 3b 0d 09 09 |ild_reco|rd();...|
|00001700| 72 65 74 75 72 6e 20 26 | 66 69 65 6c 64 73 5f 61 |return &|fields_a|
|00001710| 72 72 5b 30 5d 3b 0d 09 | 7d 0d 09 69 66 20 28 6e |rr[0];..|}..if (n|
|00001720| 75 6d 20 3e 20 30 20 26 | 26 20 61 73 73 69 67 6e |um > 0 &|& assign|
|00001730| 29 0d 09 09 6e 6f 64 65 | 30 5f 76 61 6c 69 64 20 |)...node|0_valid |
|00001740| 3d 20 30 3b 0d 09 69 66 | 20 28 6e 75 6d 20 3c 3d |= 0;..if| (num <=|
|00001750| 20 70 61 72 73 65 5f 68 | 69 67 68 5f 77 61 74 65 | parse_h|igh_wate|
|00001760| 72 29 09 2f 2a 20 77 65 | 20 68 61 76 65 20 61 6c |r)./* we| have al|
|00001770| 72 65 61 64 79 20 70 61 | 72 73 65 64 20 74 68 69 |ready pa|rsed thi|
|00001780| 73 20 66 69 65 6c 64 20 | 2a 2f 0d 09 09 72 65 74 |s field |*/...ret|
|00001790| 75 72 6e 20 26 66 69 65 | 6c 64 73 5f 61 72 72 5b |urn &fie|lds_arr[|
|000017a0| 6e 75 6d 5d 3b 0d 09 69 | 66 20 28 70 61 72 73 65 |num];..i|f (parse|
|000017b0| 5f 68 69 67 68 5f 77 61 | 74 65 72 20 3d 3d 20 30 |_high_wa|ter == 0|
|000017c0| 20 26 26 20 6e 75 6d 20 | 3e 20 30 29 09 2f 2a 20 | && num |> 0)./* |
|000017d0| 73 74 61 72 74 69 6e 67 | 20 61 74 20 74 68 65 20 |starting| at the |
|000017e0| 62 65 67 69 6e 6e 69 6e | 67 20 2a 2f 0d 09 09 70 |beginnin|g */...p|
|000017f0| 61 72 73 65 5f 65 78 74 | 65 6e 74 20 3d 20 66 69 |arse_ext|ent = fi|
|00001800| 65 6c 64 73 5f 61 72 72 | 5b 30 5d 2d 3e 73 74 70 |elds_arr|[0]->stp|
|00001810| 74 72 3b 0d 09 2f 2a 0d | 09 20 2a 20 70 61 72 73 |tr;../*.|. * pars|
|00001820| 65 20 75 70 20 74 6f 20 | 6e 75 6d 20 66 69 65 6c |e up to |num fiel|
|00001830| 64 73 2c 20 63 61 6c 6c | 69 6e 67 20 73 65 74 5f |ds, call|ing set_|
|00001840| 66 69 65 6c 64 28 29 20 | 66 6f 72 20 65 61 63 68 |field() |for each|
|00001850| 2c 20 61 6e 64 20 73 61 | 76 69 6e 67 0d 09 20 2a |, and sa|ving.. *|
|00001860| 20 69 6e 20 70 61 72 73 | 65 5f 65 78 74 65 6e 74 | in pars|e_extent|
|00001870| 20 74 68 65 20 70 6f 69 | 6e 74 20 77 68 65 72 65 | the poi|nt where|
|00001880| 20 74 68 65 20 70 61 72 | 73 65 20 6c 65 66 74 20 | the par|se left |
|00001890| 6f 66 66 0d 09 20 2a 2f | 0d 09 6e 20 3d 20 70 61 |off.. */|..n = pa|
|000018a0| 72 73 65 5f 66 69 65 6c | 64 73 28 6e 75 6d 2c 20 |rse_fiel|ds(num, |
|000018b0| 26 70 61 72 73 65 5f 65 | 78 74 65 6e 74 2c 0d 09 |&parse_e|xtent,..|
|000018c0| 09 66 69 65 6c 64 73 5f | 61 72 72 5b 30 5d 2d 3e |.fields_|arr[0]->|
|000018d0| 73 74 6c 65 6e 20 2d 20 | 28 73 68 6f 72 74 29 28 |stlen - |(short)(|
|000018e0| 70 61 72 73 65 5f 65 78 | 74 65 6e 74 2d 66 69 65 |parse_ex|tent-fie|
|000018f0| 6c 64 73 5f 61 72 72 5b | 30 5d 2d 3e 73 74 70 74 |lds_arr[|0]->stpt|
|00001900| 72 29 2c 0d 09 09 73 61 | 76 65 5f 66 73 2c 20 73 |r),...sa|ve_fs, s|
|00001910| 65 74 5f 66 69 65 6c 64 | 2c 20 28 4e 4f 44 45 20 |et_field|, (NODE |
|00001920| 2a 29 4e 55 4c 4c 29 3b | 0d 09 69 66 20 28 6e 75 |*)NULL);|..if (nu|
|00001930| 6d 20 3d 3d 20 48 55 47 | 45 2d 31 29 0d 09 09 6e |m == HUG|E-1)...n|
|00001940| 75 6d 20 3d 20 6e 3b 0d | 09 69 66 20 28 6e 20 3c |um = n;.|.if (n <|
|00001950| 20 6e 75 6d 29 20 7b 09 | 2f 2a 20 72 65 71 75 65 | num) {.|/* reque|
|00001960| 73 74 65 64 20 66 69 65 | 6c 64 20 6e 75 6d 62 65 |sted fie|ld numbe|
|00001970| 72 20 62 65 79 6f 6e 64 | 20 65 6e 64 20 6f 66 20 |r beyond| end of |
|00001980| 72 65 63 6f 72 64 3b 0d | 09 09 09 20 2a 20 73 65 |record;.|... * se|
|00001990| 74 5f 66 69 65 6c 64 20 | 77 69 6c 6c 20 6a 75 73 |t_field |will jus|
|000019a0| 74 20 65 78 74 65 6e 64 | 20 74 68 65 20 6e 75 6d |t extend| the num|
|000019b0| 62 65 72 20 6f 66 20 66 | 69 65 6c 64 73 2c 0d 09 |ber of f|ields,..|
|000019c0| 09 09 20 2a 20 77 69 74 | 68 20 65 6d 70 74 79 20 |.. * wit|h empty |
|000019d0| 66 69 65 6c 64 73 0d 09 | 09 09 20 2a 2f 0d 09 09 |fields..|.. */...|
|000019e0| 73 65 74 5f 66 69 65 6c | 64 28 6e 75 6d 2c 20 66 |set_fiel|d(num, f|
|000019f0| 5f 65 6d 70 74 79 2c 20 | 30 2c 20 28 4e 4f 44 45 |_empty, |0, (NODE|
|00001a00| 20 2a 29 20 4e 55 4c 4c | 29 3b 0d 09 09 2f 2a 0d | *) NULL|);.../*.|
|00001a10| 09 09 20 2a 20 69 66 20 | 74 68 69 73 20 66 69 65 |.. * if |this fie|
|00001a20| 6c 64 20 69 73 20 6f 6e | 74 68 65 20 4c 48 53 20 |ld is on|the LHS |
|00001a30| 6f 66 20 61 6e 20 61 73 | 73 69 67 6e 6d 65 6e 74 |of an as|signment|
|00001a40| 2c 20 74 68 65 6e 20 77 | 65 20 77 61 6e 74 20 74 |, then w|e want t|
|00001a50| 6f 0d 09 09 20 2a 20 73 | 65 74 20 4e 46 20 74 6f |o... * s|et NF to|
|00001a60| 20 74 68 69 73 20 76 61 | 6c 75 65 2c 20 62 65 6c | this va|lue, bel|
|00001a70| 6f 77 0d 09 09 20 2a 2f | 0d 09 09 69 66 20 28 61 |ow... */|...if (a|
|00001a80| 73 73 69 67 6e 29 0d 09 | 09 09 6e 20 3d 20 6e 75 |ssign)..|..n = nu|
|00001a90| 6d 3b 0d 09 7d 0d 09 2f | 2a 0d 09 20 2a 20 69 66 |m;..}../|*.. * if|
|00001aa0| 20 77 65 20 72 65 61 63 | 68 65 64 20 74 68 65 20 | we reac|hed the |
|00001ab0| 65 6e 64 20 6f 66 20 74 | 68 65 20 72 65 63 6f 72 |end of t|he recor|
|00001ac0| 64 2c 20 73 65 74 20 4e | 46 20 74 6f 20 74 68 65 |d, set N|F to the|
|00001ad0| 20 6e 75 6d 62 65 72 20 | 6f 66 20 66 69 65 6c 64 | number |of field|
|00001ae0| 73 0d 09 20 2a 20 73 6f | 20 66 61 72 2e 20 20 4e |s.. * so| far. N|
|00001af0| 6f 74 65 20 74 68 61 74 | 20 6e 75 6d 20 6d 69 67 |ote that| num mig|
|00001b00| 68 74 20 61 63 74 75 61 | 6c 6c 79 20 72 65 66 65 |ht actua|lly refe|
|00001b10| 72 20 74 6f 20 61 20 66 | 69 65 6c 64 20 74 68 61 |r to a f|ield tha|
|00001b20| 74 0d 09 20 2a 20 69 73 | 20 62 65 79 6f 6e 64 20 |t.. * is| beyond |
|00001b30| 74 68 65 20 65 6e 64 20 | 6f 66 20 74 68 65 20 72 |the end |of the r|
|00001b40| 65 63 6f 72 64 2c 20 62 | 75 74 20 77 65 20 77 6f |ecord, b|ut we wo|
|00001b50| 6e 27 74 20 73 65 74 20 | 4e 46 20 74 6f 20 74 68 |n't set |NF to th|
|00001b60| 61 74 20 76 61 6c 75 65 | 20 61 74 0d 09 20 2a 20 |at value| at.. * |
|00001b70| 74 68 69 73 20 70 6f 69 | 6e 74 2c 20 73 69 6e 63 |this poi|nt, sinc|
|00001b80| 65 20 74 68 69 73 20 69 | 73 20 6f 6e 6c 79 20 61 |e this i|s only a|
|00001b90| 20 72 65 66 65 72 65 6e | 63 65 20 74 6f 20 74 68 | referen|ce to th|
|00001ba0| 65 20 66 69 65 6c 64 20 | 61 6e 64 20 4e 46 0d 09 |e field |and NF..|
|00001bb0| 20 2a 20 6f 6e 6c 79 20 | 67 65 74 73 20 73 65 74 | * only |gets set|
|00001bc0| 20 69 66 20 74 68 65 20 | 66 69 65 6c 64 20 69 73 | if the |field is|
|00001bd0| 20 61 73 73 69 67 6e 65 | 64 20 74 6f 20 2d 2d 20 | assigne|d to -- |
|00001be0| 69 6e 20 74 68 69 73 20 | 63 61 73 65 20 6e 20 68 |in this |case n h|
|00001bf0| 61 73 0d 09 20 2a 20 62 | 65 65 6e 20 73 65 74 20 |as.. * b|een set |
|00001c00| 74 6f 20 6e 75 6d 20 61 | 62 6f 76 65 0d 09 20 2a |to num a|bove.. *|
|00001c10| 2f 0d 09 69 66 20 28 2a | 70 61 72 73 65 5f 65 78 |/..if (*|parse_ex|
|00001c20| 74 65 6e 74 20 3d 3d 20 | 27 5c 30 27 29 0d 09 09 |tent == |'\0')...|
|00001c30| 61 73 73 69 67 6e 5f 6e | 75 6d 62 65 72 28 26 4e |assign_n|umber(&N|
|00001c40| 46 5f 6e 6f 64 65 2d 3e | 76 61 72 5f 76 61 6c 75 |F_node->|var_valu|
|00001c50| 65 2c 20 28 41 57 4b 4e | 55 4d 29 6e 29 3b 0d 0d |e, (AWKN|UM)n);..|
|00001c60| 09 72 65 74 75 72 6e 20 | 26 66 69 65 6c 64 73 5f |.return |&fields_|
|00001c70| 61 72 72 5b 6e 75 6d 5d | 3b 0d 7d 0d 0d 2f 2a 0d |arr[num]|;.}../*.|
|00001c80| 20 2a 20 74 68 69 73 20 | 69 73 20 63 61 6c 6c 65 | * this |is calle|
|00001c90| 64 20 62 6f 74 68 20 66 | 72 6f 6d 20 67 65 74 5f |d both f|rom get_|
|00001ca0| 66 69 65 6c 64 28 29 20 | 61 6e 64 20 66 72 6f 6d |field() |and from|
|00001cb0| 20 64 6f 5f 73 70 6c 69 | 74 28 29 0d 20 2a 2f 0d | do_spli|t(). */.|
|00001cc0| 73 74 61 74 69 63 20 73 | 68 6f 72 74 20 70 61 72 |static s|hort par|
|00001cd0| 73 65 5f 66 69 65 6c 64 | 73 28 73 68 6f 72 74 20 |se_field|s(short |
|00001ce0| 75 70 5f 74 6f 2c 20 63 | 68 61 72 20 2a 2a 62 75 |up_to, c|har **bu|
|00001cf0| 66 2c 20 73 68 6f 72 74 | 20 6c 65 6e 2c 20 0d 09 |f, short| len, ..|
|00001d00| 72 65 67 69 73 74 65 72 | 20 63 68 61 72 20 2a 66 |register| char *f|
|00001d10| 73 2c 20 76 6f 69 64 20 | 28 2a 73 65 74 29 20 28 |s, void |(*set) (|
|00001d20| 73 68 6f 72 74 2c 20 63 | 68 61 72 20 2a 2c 20 73 |short, c|har *, s|
|00001d30| 68 6f 72 74 2c 20 4e 4f | 44 45 20 2a 29 2c 20 4e |hort, NO|DE *), N|
|00001d40| 4f 44 45 20 2a 6e 29 0d | 2f 2a 73 68 6f 72 74 20 |ODE *n).|/*short |
|00001d50| 75 70 5f 74 6f 3b 09 20 | 70 61 72 73 65 20 6f 6e |up_to;. |parse on|
|00001d60| 6c 79 20 75 70 20 74 6f | 20 74 68 69 73 20 66 69 |ly up to| this fi|
|00001d70| 65 6c 64 20 6e 75 6d 62 | 65 72 20 2a 2f 0d 2f 2a |eld numb|er */./*|
|00001d80| 63 68 61 72 20 2a 2a 62 | 75 66 3b 09 20 6f 6e 20 |char **b|uf;. on |
|00001d90| 69 6e 70 75 74 3a 20 73 | 74 72 69 6e 67 20 74 6f |input: s|tring to|
|00001da0| 20 70 61 72 73 65 3b 20 | 6f 6e 20 6f 75 74 70 75 | parse; |on outpu|
|00001db0| 74 3a 20 70 6f 69 6e 74 | 20 74 6f 20 73 74 61 72 |t: point| to star|
|00001dc0| 74 20 6e 65 78 74 20 2a | 2f 0d 2f 2a 76 6f 69 64 |t next *|/./*void|
|00001dd0| 20 28 2a 73 65 74 29 20 | 28 29 3b 09 20 72 6f 75 | (*set) |();. rou|
|00001de0| 74 69 6e 65 20 74 6f 20 | 73 65 74 20 74 68 65 20 |tine to |set the |
|00001df0| 76 61 6c 75 65 20 6f 66 | 20 74 68 65 20 70 61 72 |value of| the par|
|00001e00| 73 65 64 20 66 69 65 6c | 64 20 2a 2f 0d 7b 0d 09 |sed fiel|d */.{..|
|00001e10| 63 68 61 72 20 2a 73 20 | 3d 20 2a 62 75 66 3b 0d |char *s |= *buf;.|
|00001e20| 09 72 65 67 69 73 74 65 | 72 20 63 68 61 72 20 2a |.registe|r char *|
|00001e30| 66 69 65 6c 64 3b 0d 09 | 72 65 67 69 73 74 65 72 |field;..|register|
|00001e40| 20 63 68 61 72 20 2a 73 | 63 61 6e 3b 0d 09 72 65 | char *s|can;..re|
|00001e50| 67 69 73 74 65 72 20 63 | 68 61 72 20 2a 65 6e 64 |gister c|har *end|
|00001e60| 20 3d 20 73 20 2b 20 6c | 65 6e 3b 0d 09 73 68 6f | = s + l|en;..sho|
|00001e70| 72 74 20 4e 46 20 3d 20 | 70 61 72 73 65 5f 68 69 |rt NF = |parse_hi|
|00001e80| 67 68 5f 77 61 74 65 72 | 3b 0d 09 63 68 61 72 20 |gh_water|;..char |
|00001e90| 72 73 20 3d 20 67 65 74 | 5f 72 73 28 29 3b 0d 0d |rs = get|_rs();..|
|00001ea0| 0d 09 69 66 20 28 75 70 | 5f 74 6f 20 3d 3d 20 48 |..if (up|_to == H|
|00001eb0| 55 47 45 29 0d 09 09 4e | 46 20 3d 20 30 3b 0d 09 |UGE)...N|F = 0;..|
|00001ec0| 69 66 20 28 2a 66 73 20 | 26 26 20 2a 28 66 73 20 |if (*fs |&& *(fs |
|00001ed0| 2b 20 31 29 20 21 3d 20 | 27 5c 30 27 29 20 7b 09 |+ 1) != |'\0') {.|
|00001ee0| 2f 2a 20 66 73 20 69 73 | 20 61 20 72 65 67 65 78 |/* fs is| a regex|
|00001ef0| 70 20 2a 2f 0d 09 09 73 | 74 72 75 63 74 20 72 65 |p */...s|truct re|
|00001f00| 5f 72 65 67 69 73 74 65 | 72 73 20 72 65 72 65 67 |_registe|rs rereg|
|00001f10| 73 3b 0d 09 09 0d 09 09 | 2f 2a 20 54 45 53 54 20 |s;......|/* TEST |
|00001f20| 4f 4e 4c 59 20 0d 09 09 | 53 79 73 42 65 65 70 28 |ONLY ...|SysBeep(|
|00001f30| 32 29 3b 0d 09 09 2a 2f | 0d 09 09 73 63 61 6e 20 |2);...*/|...scan |
|00001f40| 3d 20 73 3b 0d 09 09 69 | 66 20 28 72 73 20 3d 3d |= s;...i|f (rs ==|
|00001f50| 20 30 20 26 26 20 53 54 | 52 45 51 28 46 53 5f 6e | 0 && ST|REQ(FS_n|
|00001f60| 6f 64 65 2d 3e 76 61 72 | 5f 76 61 6c 75 65 2d 3e |ode->var|_value->|
|00001f70| 73 74 70 74 72 2c 20 22 | 20 22 29 29 20 7b 0d 09 |stptr, "| ")) {..|
|00001f80| 09 09 77 68 69 6c 65 20 | 28 28 2a 73 63 61 6e 20 |..while |((*scan |
|00001f90| 3d 3d 20 43 52 20 7c 7c | 20 2a 73 63 61 6e 20 3d |== CR ||| *scan =|
|00001fa0| 3d 20 27 20 27 20 7c 7c | 20 2a 73 63 61 6e 20 3d |= ' ' ||| *scan =|
|00001fb0| 3d 20 27 5c 74 27 29 0d | 09 09 09 20 20 20 20 26 |= '\t').|... &|
|00001fc0| 26 20 73 63 61 6e 20 3c | 20 65 6e 64 29 0d 09 09 |& scan <| end)...|
|00001fd0| 09 09 73 63 61 6e 2b 2b | 3b 0d 09 09 7d 0d 09 09 |..scan++|;...}...|
|00001fe0| 73 20 3d 20 73 63 61 6e | 3b 0d 09 09 77 68 69 6c |s = scan|;...whil|
|00001ff0| 65 20 28 73 63 61 6e 20 | 3c 20 65 6e 64 0d 09 09 |e (scan |< end...|
|00002000| 20 20 20 20 26 26 20 72 | 65 5f 73 70 6c 69 74 28 | && r|e_split(|
|00002010| 73 63 61 6e 2c 20 28 73 | 68 6f 72 74 29 28 65 6e |scan, (s|hort)(en|
|00002020| 64 20 2d 20 73 63 61 6e | 29 2c 20 66 73 2c 20 26 |d - scan|), fs, &|
|00002030| 72 65 72 65 67 73 29 20 | 21 3d 20 2d 31 0d 09 09 |reregs) |!= -1...|
|00002040| 20 20 20 20 26 26 20 4e | 46 20 3c 20 75 70 5f 74 | && N|F < up_t|
|00002050| 6f 29 20 7b 0d 09 09 09 | 69 66 20 28 72 65 72 65 |o) {....|if (rere|
|00002060| 67 73 2e 65 6e 64 5b 30 | 5d 20 3d 3d 20 30 29 20 |gs.end[0|] == 0) |
|00002070| 7b 09 2f 2a 20 6e 75 6c | 6c 20 6d 61 74 63 68 20 |{./* nul|l match |
|00002080| 2a 2f 0d 09 09 09 09 73 | 63 61 6e 2b 2b 3b 0d 09 |*/.....s|can++;..|
|00002090| 09 09 09 69 66 20 28 73 | 63 61 6e 20 3d 3d 20 65 |...if (s|can == e|
|000020a0| 6e 64 29 20 7b 0d 09 09 | 09 09 09 28 2a 73 65 74 |nd) {...|...(*set|
|000020b0| 29 28 2b 2b 4e 46 2c 20 | 73 2c 20 28 73 68 6f 72 |)(++NF, |s, (shor|
|000020c0| 74 29 28 73 63 61 6e 20 | 2d 20 73 29 2c 20 6e 29 |t)(scan |- s), n)|
|000020d0| 3b 0d 09 09 09 09 09 75 | 70 5f 74 6f 20 3d 20 4e |;......u|p_to = N|
|000020e0| 46 3b 0d 09 09 09 09 09 | 62 72 65 61 6b 3b 0d 09 |F;......|break;..|
|000020f0| 09 09 09 7d 0d 09 09 09 | 09 63 6f 6e 74 69 6e 75 |...}....|.continu|
|00002100| 65 3b 0d 09 09 09 7d 0d | 09 09 09 28 2a 73 65 74 |e;....}.|...(*set|
|00002110| 29 28 2b 2b 4e 46 2c 20 | 73 2c 20 28 73 68 6f 72 |)(++NF, |s, (shor|
|00002120| 74 29 28 73 63 61 6e 20 | 2d 20 73 29 20 2b 20 72 |t)(scan |- s) + r|
|00002130| 65 72 65 67 73 2e 73 74 | 61 72 74 5b 30 5d 2c 20 |eregs.st|art[0], |
|00002140| 6e 29 3b 0d 09 09 09 73 | 63 61 6e 20 2b 3d 20 72 |n);....s|can += r|
|00002150| 65 72 65 67 73 2e 65 6e | 64 5b 30 5d 3b 0d 09 09 |eregs.en|d[0];...|
|00002160| 09 73 20 3d 20 73 63 61 | 6e 3b 0d 09 09 7d 0d 09 |.s = sca|n;...}..|
|00002170| 09 69 66 20 28 4e 46 20 | 21 3d 20 75 70 5f 74 6f |.if (NF |!= up_to|
|00002180| 20 26 26 20 73 63 61 6e | 20 3c 3d 20 65 6e 64 29 | && scan| <= end)|
|00002190| 20 7b 0d 09 09 09 69 66 | 20 28 21 28 72 73 20 3d | {....if| (!(rs =|
|000021a0| 3d 20 30 20 26 26 20 73 | 63 61 6e 20 3d 3d 20 65 |= 0 && s|can == e|
|000021b0| 6e 64 29 29 20 7b 0d 09 | 09 09 09 28 2a 73 65 74 |nd)) {..|...(*set|
|000021c0| 29 28 2b 2b 4e 46 2c 20 | 73 63 61 6e 2c 20 28 73 |)(++NF, |scan, (s|
|000021d0| 68 6f 72 74 29 28 65 6e | 64 20 2d 20 73 63 61 6e |hort)(en|d - scan|
|000021e0| 29 2c 20 6e 29 3b 0d 09 | 09 09 09 73 63 61 6e 20 |), n);..|...scan |
|000021f0| 3d 20 65 6e 64 3b 0d 09 | 09 09 7d 0d 09 09 7d 0d |= end;..|..}...}.|
|00002200| 09 09 2a 62 75 66 20 3d | 20 73 63 61 6e 3b 0d 09 |..*buf =| scan;..|
|00002210| 09 72 65 74 75 72 6e 20 | 28 4e 46 29 3b 0d 09 7d |.return |(NF);..}|
|00002220| 0d 09 66 6f 72 20 28 73 | 63 61 6e 20 3d 20 73 3b |..for (s|can = s;|
|00002230| 20 73 63 61 6e 20 3c 20 | 65 6e 64 20 26 26 20 4e | scan < |end && N|
|00002240| 46 20 3c 20 75 70 5f 74 | 6f 3b 20 73 63 61 6e 2b |F < up_t|o; scan+|
|00002250| 2b 29 20 7b 0d 09 09 2f | 2a 0d 09 09 20 2a 20 73 |+) {.../|*... * s|
|00002260| 70 65 63 69 61 6c 20 63 | 61 73 65 3a 20 20 66 73 |pecial c|ase: fs|
|00002270| 20 69 73 20 73 69 6e 67 | 6c 65 20 73 70 61 63 65 | is sing|le space|
|00002280| 2c 20 73 74 72 69 70 20 | 6c 65 61 64 69 6e 67 0d |, strip |leading.|
|00002290| 09 09 20 2a 20 77 68 69 | 74 65 73 70 61 63 65 20 |.. * whi|tespace |
|000022a0| 0d 09 09 20 2a 2f 0d 09 | 09 69 66 20 28 2a 66 73 |... */..|.if (*fs|
|000022b0| 20 3d 3d 20 27 20 27 29 | 20 7b 0d 09 09 09 77 68 | == ' ')| {....wh|
|000022c0| 69 6c 65 20 28 28 2a 73 | 63 61 6e 20 3d 3d 20 27 |ile ((*s|can == '|
|000022d0| 20 27 20 7c 7c 20 2a 73 | 63 61 6e 20 3d 3d 20 27 | ' || *s|can == '|
|000022e0| 5c 74 27 29 20 26 26 20 | 73 63 61 6e 20 3c 20 65 |\t') && |scan < e|
|000022f0| 6e 64 29 0d 09 09 09 09 | 73 63 61 6e 2b 2b 3b 0d |nd).....|scan++;.|
|00002300| 09 09 09 69 66 20 28 73 | 63 61 6e 20 3e 3d 20 65 |...if (s|can >= e|
|00002310| 6e 64 29 0d 09 09 09 09 | 62 72 65 61 6b 3b 0d 09 |nd).....|break;..|
|00002320| 09 7d 0d 09 09 66 69 65 | 6c 64 20 3d 20 73 63 61 |.}...fie|ld = sca|
|00002330| 6e 3b 0d 09 09 69 66 20 | 28 2a 66 73 20 3d 3d 20 |n;...if |(*fs == |
|00002340| 27 20 27 29 0d 09 09 09 | 77 68 69 6c 65 20 28 2a |' ')....|while (*|
|00002350| 73 63 61 6e 20 21 3d 20 | 27 20 27 20 26 26 20 2a |scan != |' ' && *|
|00002360| 73 63 61 6e 20 21 3d 20 | 27 5c 74 27 20 26 26 20 |scan != |'\t' && |
|00002370| 73 63 61 6e 20 3c 20 65 | 6e 64 29 0d 09 09 09 09 |scan < e|nd).....|
|00002380| 73 63 61 6e 2b 2b 3b 0d | 09 09 65 6c 73 65 20 7b |scan++;.|..else {|
|00002390| 0d 09 09 09 77 68 69 6c | 65 20 28 2a 73 63 61 6e |....whil|e (*scan|
|000023a0| 20 21 3d 20 2a 66 73 20 | 26 26 20 73 63 61 6e 20 | != *fs |&& scan |
|000023b0| 3c 20 65 6e 64 29 0d 09 | 09 09 09 73 63 61 6e 2b |< end)..|...scan+|
|000023c0| 2b 3b 0d 09 09 09 69 66 | 20 28 72 73 20 26 26 20 |+;....if| (rs && |
|000023d0| 73 63 61 6e 20 3d 3d 20 | 65 6e 64 2d 31 20 26 26 |scan == |end-1 &&|
|000023e0| 20 2a 73 63 61 6e 20 3d | 3d 20 2a 66 73 29 20 7b | *scan =|= *fs) {|
|000023f0| 0d 09 09 09 09 28 2a 73 | 65 74 29 28 2b 2b 4e 46 |.....(*s|et)(++NF|
|00002400| 2c 20 66 69 65 6c 64 2c | 20 28 73 68 6f 72 74 29 |, field,| (short)|
|00002410| 28 73 63 61 6e 20 2d 20 | 66 69 65 6c 64 29 2c 20 |(scan - |field), |
|00002420| 6e 29 3b 0d 09 09 09 09 | 2f 2a 20 4d 61 63 20 6e |n);.....|/* Mac n|
|00002430| 6f 74 65 20 2d 20 63 61 | 73 74 20 74 6f 20 73 68 |ote - ca|st to sh|
|00002440| 6f 72 74 20 6a 75 73 74 | 20 61 62 6f 76 65 20 61 |ort just| above a|
|00002450| 64 64 65 64 20 66 6f 72 | 20 54 48 49 4e 4b 20 43 |dded for| THINK C|
|00002460| 2c 0d 09 09 09 09 77 68 | 61 74 20 74 68 65 20 68 |,.....wh|at the h|
|00002470| 65 63 6b 20 69 74 20 77 | 6f 72 6b 73 2e 20 47 65 |eck it w|orks. Ge|
|00002480| 74 74 69 6e 67 20 72 65 | 61 6c 20 61 6e 6e 6f 79 |tting re|al annoy|
|00002490| 65 64 20 62 79 20 6e 6f | 77 20 61 74 0d 09 09 09 |ed by no|w at....|
|000024a0| 09 54 48 49 4e 4b 20 43 | 27 73 20 63 68 61 72 6d |.THINK C|'s charm|
|000024b0| 69 6e 67 20 6c 69 74 74 | 6c 65 20 65 63 63 65 6e |ing litt|le eccen|
|000024c0| 74 72 69 63 69 74 69 65 | 73 20 63 6f 6e 63 65 72 |tricitie|s concer|
|000024d0| 6e 69 6e 67 0d 09 09 09 | 09 63 6f 6e 76 65 72 73 |ning....|.convers|
|000024e0| 69 6f 6e 20 62 65 74 77 | 65 65 6e 20 64 69 66 66 |ion betw|een diff|
|000024f0| 65 72 65 6e 74 20 73 70 | 65 63 69 65 73 20 6f 66 |erent sp|ecies of|
|00002500| 20 69 6e 74 65 67 65 72 | 2e 2e 2e 2a 2f 0d 09 09 | integer|...*/...|
|00002510| 09 09 66 69 65 6c 64 20 | 3d 20 73 63 61 6e 3b 0d |..field |= scan;.|
|00002520| 09 09 09 7d 0d 09 09 7d | 0d 09 09 28 2a 73 65 74 |...}...}|...(*set|
|00002530| 29 28 2b 2b 4e 46 2c 20 | 66 69 65 6c 64 2c 20 28 |)(++NF, |field, (|
|00002540| 73 68 6f 72 74 29 28 73 | 63 61 6e 20 2d 20 66 69 |short)(s|can - fi|
|00002550| 65 6c 64 29 2c 20 6e 29 | 3b 0d 09 09 69 66 20 28 |eld), n)|;...if (|
|00002560| 73 63 61 6e 20 3d 3d 20 | 65 6e 64 29 0d 09 09 09 |scan == |end)....|
|00002570| 62 72 65 61 6b 3b 0d 09 | 7d 0d 09 2a 62 75 66 20 |break;..|}..*buf |
|00002580| 3d 20 73 63 61 6e 3b 0d | 09 72 65 74 75 72 6e 20 |= scan;.|.return |
|00002590| 4e 46 3b 0d 7d 0d 0d 74 | 79 70 65 64 65 66 20 73 |NF;.}..t|ypedef s|
|000025a0| 74 72 75 63 74 20 72 65 | 5f 70 61 74 74 65 72 6e |truct re|_pattern|
|000025b0| 5f 62 75 66 66 65 72 20 | 52 50 41 54 3b 0d 73 74 |_buffer |RPAT;.st|
|000025c0| 61 74 69 63 20 52 50 41 | 54 20 2a 72 70 3b 0d 73 |atic RPA|T *rp;.s|
|000025d0| 74 61 74 69 63 20 63 68 | 61 72 20 2a 6c 61 73 74 |tatic ch|ar *last|
|000025e0| 5f 66 73 20 3d 20 4e 55 | 4c 4c 3b 0d 73 74 61 74 |_fs = NU|LL;.stat|
|000025f0| 69 63 20 73 68 6f 72 74 | 20 72 65 5f 73 70 6c 69 |ic short| re_spli|
|00002600| 74 28 63 68 61 72 20 2a | 62 75 66 2c 20 73 68 6f |t(char *|buf, sho|
|00002610| 72 74 20 6c 65 6e 2c 20 | 63 68 61 72 20 2a 66 73 |rt len, |char *fs|
|00002620| 2c 20 0d 09 73 74 72 75 | 63 74 20 72 65 5f 72 65 |, ..stru|ct re_re|
|00002630| 67 69 73 74 65 72 73 20 | 2a 72 65 72 65 67 73 70 |gisters |*reregsp|
|00002640| 29 0d 7b 0d 09 0d 09 0d | 0d 09 69 66 20 28 28 6c |).{.....|..if ((l|
|00002650| 61 73 74 5f 66 73 20 21 | 3d 20 4e 55 4c 4c 20 26 |ast_fs !|= NULL &|
|00002660| 26 20 21 53 54 52 45 51 | 28 66 73 2c 20 6c 61 73 |& !STREQ|(fs, las|
|00002670| 74 5f 66 73 29 29 0d 09 | 20 20 20 20 7c 7c 20 28 |t_fs))..| || (|
|00002680| 72 70 20 26 26 20 2f 2a | 20 21 20 73 74 72 69 63 |rp && /*| ! stric|
|00002690| 74 20 26 26 20 2a 2f 20 | 28 28 49 47 4e 4f 52 45 |t && */ |((IGNORE|
|000026a0| 43 41 53 45 5f 6e 6f 64 | 65 2d 3e 76 61 72 5f 76 |CASE_nod|e->var_v|
|000026b0| 61 6c 75 65 2d 3e 6e 75 | 6d 62 72 20 21 3d 20 30 |alue->nu|mbr != 0|
|000026c0| 29 0d 09 09 09 20 5e 20 | 28 72 70 2d 3e 74 72 61 |).... ^ |(rp->tra|
|000026d0| 6e 73 6c 61 74 65 20 21 | 3d 20 4e 55 4c 4c 29 29 |nslate !|= NULL))|
|000026e0| 29 29 0d 09 7b 0d 09 09 | 2f 2a 20 66 73 20 68 61 |))..{...|/* fs ha|
|000026f0| 73 20 63 68 61 6e 67 65 | 64 20 6f 72 20 49 47 4e |s change|d or IGN|
|00002700| 4f 52 45 43 41 53 45 20 | 68 61 73 20 63 68 61 6e |ORECASE |has chan|
|00002710| 67 65 64 20 2a 2f 0d 09 | 09 66 72 65 65 28 72 70 |ged */..|.free(rp|
|00002720| 2d 3e 62 75 66 66 65 72 | 29 3b 0d 09 09 66 72 65 |->buffer|);...fre|
|00002730| 65 28 72 70 2d 3e 66 61 | 73 74 6d 61 70 29 3b 0d |e(rp->fa|stmap);.|
|00002740| 09 09 66 72 65 65 28 28 | 63 68 61 72 20 2a 29 20 |..free((|char *) |
|00002750| 72 70 29 3b 0d 09 09 66 | 72 65 65 28 6c 61 73 74 |rp);...f|ree(last|
|00002760| 5f 66 73 29 3b 0d 09 09 | 6c 61 73 74 5f 66 73 20 |_fs);...|last_fs |
|00002770| 3d 20 4e 55 4c 4c 3b 0d | 09 7d 0d 09 69 66 20 28 |= NULL;.|.}..if (|
|00002780| 6c 61 73 74 5f 66 73 20 | 3d 3d 20 4e 55 4c 4c 29 |last_fs |== NULL)|
|00002790| 20 7b 09 2f 2a 20 66 69 | 72 73 74 20 74 69 6d 65 | {./* fi|rst time|
|000027a0| 20 2a 2f 0d 09 09 65 6d | 61 6c 6c 6f 63 28 72 70 | */...em|alloc(rp|
|000027b0| 2c 20 52 50 41 54 20 2a | 2c 20 73 69 7a 65 6f 66 |, RPAT *|, sizeof|
|000027c0| 28 52 50 41 54 29 2c 20 | 22 72 65 5f 73 70 6c 69 |(RPAT), |"re_spli|
|000027d0| 74 22 29 3b 0d 09 09 6d | 65 6d 73 65 74 28 28 63 |t");...m|emset((c|
|000027e0| 68 61 72 20 2a 29 20 72 | 70 2c 20 30 2c 20 73 69 |har *) r|p, 0, si|
|000027f0| 7a 65 6f 66 28 52 50 41 | 54 29 29 3b 0d 09 09 65 |zeof(RPA|T));...e|
|00002800| 6d 61 6c 6c 6f 63 28 72 | 70 2d 3e 62 75 66 66 65 |malloc(r|p->buffe|
|00002810| 72 2c 20 63 68 61 72 20 | 2a 2c 20 31 36 2c 20 22 |r, char |*, 16, "|
|00002820| 72 65 5f 73 70 6c 69 74 | 22 29 3b 0d 09 09 72 70 |re_split|");...rp|
|00002830| 2d 3e 61 6c 6c 6f 63 61 | 74 65 64 20 3d 20 31 36 |->alloca|ted = 16|
|00002840| 3b 0d 09 09 65 6d 61 6c | 6c 6f 63 28 72 70 2d 3e |;...emal|loc(rp->|
|00002850| 66 61 73 74 6d 61 70 2c | 20 63 68 61 72 20 2a 2c |fastmap,| char *,|
|00002860| 20 32 35 36 2c 20 22 72 | 65 5f 73 70 6c 69 74 22 | 256, "r|e_split"|
|00002870| 29 3b 0d 09 09 65 6d 61 | 6c 6c 6f 63 28 6c 61 73 |);...ema|lloc(las|
|00002880| 74 5f 66 73 2c 20 63 68 | 61 72 20 2a 2c 20 73 74 |t_fs, ch|ar *, st|
|00002890| 72 6c 65 6e 28 66 73 29 | 20 2b 20 31 2c 20 22 72 |rlen(fs)| + 1, "r|
|000028a0| 65 5f 73 70 6c 69 74 22 | 29 3b 0d 09 09 28 76 6f |e_split"|);...(vo|
|000028b0| 69 64 29 20 73 74 72 63 | 70 79 28 6c 61 73 74 5f |id) strc|py(last_|
|000028c0| 66 73 2c 20 66 73 29 3b | 0d 09 09 69 66 20 28 2f |fs, fs);|...if (/|
|000028d0| 2a 20 21 20 73 74 72 69 | 63 74 20 26 26 20 2a 2f |* ! stri|ct && */|
|000028e0| 20 49 47 4e 4f 52 45 43 | 41 53 45 5f 6e 6f 64 65 | IGNOREC|ASE_node|
|000028f0| 2d 3e 76 61 72 5f 76 61 | 6c 75 65 2d 3e 6e 75 6d |->var_va|lue->num|
|00002900| 62 72 20 21 3d 20 30 2e | 30 29 0d 09 09 09 72 70 |br != 0.|0)....rp|
|00002910| 2d 3e 74 72 61 6e 73 6c | 61 74 65 20 3d 20 63 61 |->transl|ate = ca|
|00002920| 73 65 74 61 62 6c 65 3b | 0d 09 09 65 6c 73 65 0d |setable;|...else.|
|00002930| 09 09 09 72 70 2d 3e 74 | 72 61 6e 73 6c 61 74 65 |...rp->t|ranslate|
|00002940| 20 3d 20 4e 55 4c 4c 3b | 0d 09 09 69 66 20 28 72 | = NULL;|...if (r|
|00002950| 65 5f 63 6f 6d 70 69 6c | 65 5f 70 61 74 74 65 72 |e_compil|e_patter|
|00002960| 6e 28 66 73 2c 20 73 74 | 72 6c 65 6e 28 66 73 29 |n(fs, st|rlen(fs)|
|00002970| 2c 20 72 70 29 20 21 3d | 20 4e 55 4c 4c 29 0d 09 |, rp) !=| NULL)..|
|00002980| 09 09 66 61 74 61 6c 28 | 22 69 6c 6c 65 67 61 6c |..fatal(|"illegal|
|00002990| 20 72 65 67 75 6c 61 72 | 20 65 78 70 72 65 73 73 | regular| express|
|000029a0| 69 6f 6e 20 66 6f 72 20 | 46 53 3a 20 60 25 73 27 |ion for |FS: `%s'|
|000029b0| 22 2c 20 66 73 29 3b 0d | 09 7d 0d 09 72 65 74 75 |", fs);.|.}..retu|
|000029c0| 72 6e 20 72 65 5f 73 65 | 61 72 63 68 28 72 70 2c |rn re_se|arch(rp,|
|000029d0| 20 62 75 66 2c 20 6c 65 | 6e 2c 20 30 2c 20 6c 65 | buf, le|n, 0, le|
|000029e0| 6e 2c 20 72 65 72 65 67 | 73 70 29 3b 0d 7d 0d 0d |n, rereg|sp);.}..|
|000029f0| 4e 4f 44 45 20 2a 64 6f | 5f 73 70 6c 69 74 28 4e |NODE *do|_split(N|
|00002a00| 4f 44 45 20 2a 74 72 65 | 65 29 0d 7b 0d 09 4e 4f |ODE *tre|e).{..NO|
|00002a10| 44 45 20 2a 74 31 2c 20 | 2a 74 32 2c 20 2a 74 33 |DE *t1, |*t2, *t3|
|00002a20| 3b 0d 09 72 65 67 69 73 | 74 65 72 20 63 68 61 72 |;..regis|ter char|
|00002a30| 20 2a 73 70 6c 69 74 63 | 3b 0d 09 63 68 61 72 20 | *splitc|;..char |
|00002a40| 2a 73 3b 0d 09 4e 4f 44 | 45 20 2a 6e 3b 0d 0d 09 |*s;..NOD|E *n;...|
|00002a50| 69 66 20 28 61 5f 67 65 | 74 5f 74 68 72 65 65 28 |if (a_ge|t_three(|
|00002a60| 74 72 65 65 2c 20 26 74 | 31 2c 20 26 74 32 2c 20 |tree, &t|1, &t2, |
|00002a70| 26 74 33 29 20 3c 20 33 | 29 0d 09 09 73 70 6c 69 |&t3) < 3|)...spli|
|00002a80| 74 63 20 3d 20 67 65 74 | 5f 66 73 28 29 3b 0d 09 |tc = get|_fs();..|
|00002a90| 65 6c 73 65 0d 09 09 73 | 70 6c 69 74 63 20 3d 20 |else...s|plitc = |
|00002aa0| 66 6f 72 63 65 5f 73 74 | 72 69 6e 67 28 74 33 29 |force_st|ring(t3)|
|00002ab0| 2d 3e 73 74 70 74 72 3b | 0d 0d 09 6e 20 3d 20 74 |->stptr;|...n = t|
|00002ac0| 32 3b 0d 09 69 66 20 28 | 74 32 2d 3e 74 79 70 65 |2;..if (|t2->type|
|00002ad0| 20 3d 3d 20 4e 6f 64 65 | 5f 70 61 72 61 6d 5f 6c | == Node|_param_l|
|00002ae0| 69 73 74 29 0d 09 09 6e | 20 3d 20 73 74 61 63 6b |ist)...n| = stack|
|00002af0| 5f 70 74 72 5b 74 32 2d | 3e 70 61 72 61 6d 5f 63 |_ptr[t2-|>param_c|
|00002b00| 6e 74 5d 3b 0d 09 69 66 | 20 28 6e 2d 3e 74 79 70 |nt];..if| (n->typ|
|00002b10| 65 20 21 3d 20 4e 6f 64 | 65 5f 76 61 72 20 26 26 |e != Nod|e_var &&|
|00002b20| 20 6e 2d 3e 74 79 70 65 | 20 21 3d 20 4e 6f 64 65 | n->type| != Node|
|00002b30| 5f 76 61 72 5f 61 72 72 | 61 79 29 0d 09 09 66 61 |_var_arr|ay)...fa|
|00002b40| 74 61 6c 28 22 73 65 63 | 6f 6e 64 20 61 72 67 75 |tal("sec|ond argu|
|00002b50| 6d 65 6e 74 20 6f 66 20 | 73 70 6c 69 74 20 69 73 |ment of |split is|
|00002b60| 20 6e 6f 74 20 61 20 76 | 61 72 69 61 62 6c 65 22 | not a v|ariable"|
|00002b70| 29 3b 0d 09 61 73 73 6f | 63 5f 63 6c 65 61 72 28 |);..asso|c_clear(|
|00002b80| 6e 29 3b 0d 0d 09 74 72 | 65 65 20 3d 20 66 6f 72 |n);...tr|ee = for|
|00002b90| 63 65 5f 73 74 72 69 6e | 67 28 74 31 29 3b 0d 0d |ce_strin|g(t1);..|
|00002ba0| 09 73 20 3d 20 74 72 65 | 65 2d 3e 73 74 70 74 72 |.s = tre|e->stptr|
|00002bb0| 3b 0d 09 72 65 74 75 72 | 6e 20 74 6d 70 5f 6e 75 |;..retur|n tmp_nu|
|00002bc0| 6d 62 65 72 28 28 41 57 | 4b 4e 55 4d 29 0d 09 09 |mber((AW|KNUM)...|
|00002bd0| 70 61 72 73 65 5f 66 69 | 65 6c 64 73 28 48 55 47 |parse_fi|elds(HUG|
|00002be0| 45 2c 20 26 73 2c 20 74 | 72 65 65 2d 3e 73 74 6c |E, &s, t|ree->stl|
|00002bf0| 65 6e 2c 20 73 70 6c 69 | 74 63 2c 20 73 65 74 5f |en, spli|tc, set_|
|00002c00| 65 6c 65 6d 65 6e 74 2c | 20 6e 29 29 3b 0d 7d 0d |element,| n));.}.|
|00002c10| 0d 73 74 61 74 69 63 20 | 63 68 61 72 20 62 75 66 |.static |char buf|
|00002c20| 5b 31 30 5d 3b 0d 73 74 | 61 74 69 63 20 63 68 61 |[10];.st|atic cha|
|00002c30| 72 20 2a 67 65 74 5f 66 | 73 28 29 0d 7b 0d 09 72 |r *get_f|s().{..r|
|00002c40| 65 67 69 73 74 65 72 20 | 4e 4f 44 45 20 2a 74 6d |egister |NODE *tm|
|00002c50| 70 3b 0d 09 0d 0d 09 74 | 6d 70 20 3d 20 66 6f 72 |p;.....t|mp = for|
|00002c60| 63 65 5f 73 74 72 69 6e | 67 28 46 53 5f 6e 6f 64 |ce_strin|g(FS_nod|
|00002c70| 65 2d 3e 76 61 72 5f 76 | 61 6c 75 65 29 3b 0d 09 |e->var_v|alue);..|
|00002c80| 69 66 20 28 67 65 74 5f | 72 73 28 29 20 3d 3d 20 |if (get_|rs() == |
|00002c90| 30 29 20 7b 0d 09 09 69 | 66 20 28 74 6d 70 2d 3e |0) {...i|f (tmp->|
|00002ca0| 73 74 6c 65 6e 20 3d 3d | 20 31 29 20 7b 0d 09 09 |stlen ==| 1) {...|
|00002cb0| 09 69 66 20 28 74 6d 70 | 2d 3e 73 74 70 74 72 5b |.if (tmp|->stptr[|
|00002cc0| 30 5d 20 3d 3d 20 27 20 | 27 29 0d 09 09 09 09 28 |0] == ' |').....(|
|00002cd0| 76 6f 69 64 29 20 73 74 | 72 63 70 79 28 62 75 66 |void) st|rcpy(buf|
|00002ce0| 2c 20 22 5b 20 09 5c 6e | 5d 2b 22 29 3b 0d 09 09 |, "[ .\n|]+");...|
|00002cf0| 09 65 6c 73 65 0d 09 09 | 09 09 73 70 72 69 6e 74 |.else...|..sprint|
|00002d00| 66 28 62 75 66 2c 20 22 | 5b 25 63 5c 6e 5d 22 2c |f(buf, "|[%c\n]",|
|00002d10| 20 74 6d 70 2d 3e 73 74 | 70 74 72 5b 30 5d 29 3b | tmp->st|ptr[0]);|
|00002d20| 0d 09 09 7d 20 65 6c 73 | 65 20 69 66 20 28 74 6d |...} els|e if (tm|
|00002d30| 70 2d 3e 73 74 6c 65 6e | 20 3d 3d 20 30 29 20 7b |p->stlen| == 0) {|
|00002d40| 0d 09 09 09 62 75 66 5b | 30 5d 20 3d 20 43 52 3b |....buf[|0] = CR;|
|00002d50| 0d 09 09 09 62 75 66 5b | 31 5d 20 3d 20 27 5c 30 |....buf[|1] = '\0|
|00002d60| 27 3b 0d 09 09 7d 20 65 | 6c 73 65 0d 09 09 09 72 |';...} e|lse....r|
|00002d70| 65 74 75 72 6e 20 74 6d | 70 2d 3e 73 74 70 74 72 |eturn tm|p->stptr|
|00002d80| 3b 0d 09 09 72 65 74 75 | 72 6e 20 62 75 66 3b 0d |;...retu|rn buf;.|
|00002d90| 09 7d 0d 09 72 65 74 75 | 72 6e 20 74 6d 70 2d 3e |.}..retu|rn tmp->|
|00002da0| 73 74 70 74 72 3b 0d 7d | 0d 0d 73 74 61 74 69 63 |stptr;.}|..static|
|00002db0| 20 76 6f 69 64 20 73 65 | 74 5f 65 6c 65 6d 65 6e | void se|t_elemen|
|00002dc0| 74 28 73 68 6f 72 74 20 | 6e 75 6d 2c 20 63 68 61 |t(short |num, cha|
|00002dd0| 72 20 2a 73 2c 20 73 68 | 6f 72 74 20 6c 65 6e 2c |r *s, sh|ort len,|
|00002de0| 20 4e 4f 44 45 20 2a 6e | 29 0d 7b 0d 09 2a 61 73 | NODE *n|).{..*as|
|00002df0| 73 6f 63 5f 6c 6f 6f 6b | 75 70 28 6e 2c 20 74 6d |soc_look|up(n, tm|
|00002e00| 70 5f 6e 75 6d 62 65 72 | 28 28 41 57 4b 4e 55 4d |p_number|((AWKNUM|
|00002e10| 29 20 28 6e 75 6d 29 29 | 29 20 3d 20 6d 61 6b 65 |) (num))|) = make|
|00002e20| 5f 73 74 72 69 6e 67 28 | 73 2c 20 6c 65 6e 29 3b |_string(|s, len);|
|00002e30| 0d 7d 0d 0d 2f 2a 20 53 | 6f 6d 65 20 69 6e 69 74 |.}../* S|ome init|
|00002e40| 73 3b 20 68 41 57 4b 20 | 69 73 20 73 65 74 20 75 |s; hAWK |is set u|
|00002e50| 70 20 61 73 20 61 20 43 | 4f 44 45 20 72 65 73 6f |p as a C|ODE reso|
|00002e60| 75 72 63 65 2c 20 72 65 | 71 75 69 72 69 6e 67 20 |urce, re|quiring |
|00002e70| 74 68 61 74 0d 73 6f 6d | 65 20 69 6e 69 74 69 61 |that.som|e initia|
|00002e80| 6c 69 7a 61 74 69 6f 6e | 73 20 64 65 61 6c 69 6e |lization|s dealin|
|00002e90| 67 20 77 69 74 68 20 61 | 64 64 72 65 73 73 65 73 |g with a|ddresses|
|00002ea0| 20 62 65 20 64 6f 6e 65 | 20 72 61 74 68 65 72 20 | be done| rather |
|00002eb0| 61 77 6b 77 61 72 64 6c | 79 0d 64 75 65 20 74 6f |awkwardl|y.due to|
|00002ec0| 20 74 68 69 73 20 72 65 | 66 65 72 65 6e 63 69 6e | this re|ferencin|
|00002ed0| 67 20 67 6c 6f 62 61 6c | 73 20 6f 66 66 20 61 34 |g global|s off a4|
|00002ee0| 20 6a 61 7a 7a 2e 20 49 | 20 6d 61 79 20 6e 6f 74 | jazz. I| may not|
|00002ef0| 20 68 61 76 65 20 6e 6f | 74 65 64 20 74 68 69 73 | have no|ted this|
|00002f00| 0d 65 6c 73 65 77 68 65 | 72 65 2c 20 62 75 74 20 |.elsewhe|re, but |
|00002f10| 74 68 65 20 69 6e 69 74 | 73 20 66 6f 72 20 68 41 |the init|s for hA|
|00002f20| 57 4b 20 61 72 65 20 73 | 75 66 66 69 63 69 65 6e |WK are s|ufficien|
|00002f30| 74 20 74 68 61 74 20 68 | 41 57 4b 20 63 6f 75 6c |t that h|AWK coul|
|00002f40| 64 20 62 65 0d 72 65 63 | 61 73 74 20 61 73 20 61 |d be.rec|ast as a|
|00002f50| 20 73 74 61 6e 64 61 6c | 6f 6e 65 20 61 70 70 6c | standal|one appl|
|00002f60| 69 63 61 74 69 6f 6e 2c | 20 6a 75 73 74 20 63 61 |ication,| just ca|
|00002f70| 6c 6c 20 61 6c 6c 20 74 | 68 65 20 69 6e 69 74 20 |ll all t|he init |
|00002f80| 66 75 6e 63 74 69 6f 6e | 73 0d 62 65 66 6f 72 65 |function|s.before|
|00002f90| 20 65 61 63 68 20 72 75 | 6e 20 61 73 20 64 6f 6e | each ru|n as don|
|00002fa0| 65 20 61 74 20 74 68 65 | 20 74 6f 70 20 6f 66 20 |e at the| top of |
|00002fb0| 41 57 4b 6d 61 69 6e 28 | 29 2e 20 4a 75 73 74 20 |AWKmain(|). Just |
|00002fc0| 61 20 74 68 6f 75 67 68 | 74 2e 20 2a 2f 0d 0d 65 |a though|t. */..e|
|00002fd0| 78 74 65 72 6e 20 76 6f | 69 64 20 4e 75 6c 6c 4f |xtern vo|id NullO|
|00002fe0| 75 74 28 63 68 61 72 20 | 2a 73 74 72 2c 20 6c 6f |ut(char |*str, lo|
|00002ff0| 6e 67 20 6e 42 79 74 65 | 73 29 3b 0d 0d 76 6f 69 |ng nByte|s);..voi|
|00003000| 64 20 49 6e 69 74 46 69 | 65 6c 64 28 76 6f 69 64 |d InitFi|eld(void|
|00003010| 29 3b 0d 0d 76 6f 69 64 | 20 49 6e 69 74 46 69 65 |);..void| InitFie|
|00003020| 6c 64 28 29 0d 09 7b 0d | 09 6c 69 6e 65 5f 62 75 |ld()..{.|.line_bu|
|00003030| 66 20 3d 20 4e 55 4c 4c | 3b 09 2f 2a 20 68 6f 6c |f = NULL|;./* hol|
|00003040| 64 73 20 63 75 72 72 65 | 6e 74 20 69 6e 70 75 74 |ds curre|nt input|
|00003050| 20 6c 69 6e 65 20 2a 2f | 0d 09 0d 09 70 61 72 73 | line */|....pars|
|00003060| 65 5f 65 78 74 65 6e 74 | 20 3d 20 4e 55 4c 4c 3b |e_extent| = NULL;|
|00003070| 09 2f 2a 20 6d 61 72 6b | 73 20 77 68 65 72 65 20 |./* mark|s where |
|00003080| 74 6f 20 72 65 73 74 61 | 72 74 20 70 61 72 73 65 |to resta|rt parse|
|00003090| 20 6f 66 20 72 65 63 6f | 72 64 20 2a 2f 0d 09 70 | of reco|rd */..p|
|000030a0| 61 72 73 65 5f 68 69 67 | 68 5f 77 61 74 65 72 3d |arse_hig|h_water=|
|000030b0| 30 3b 09 2f 2a 20 66 69 | 65 6c 64 20 6e 75 6d 62 |0;./* fi|eld numb|
|000030c0| 65 72 20 74 68 61 74 20 | 77 65 20 68 61 76 65 20 |er that |we have |
|000030d0| 70 61 72 73 65 64 20 73 | 6f 20 66 61 72 20 2a 2f |parsed s|o far */|
|000030e0| 0d 09 66 5f 65 6d 70 74 | 79 5b 30 5d 20 3d 20 30 |..f_empt|y[0] = 0|
|000030f0| 3b 0d 09 73 61 76 65 5f | 66 73 20 3d 20 22 20 22 |;..save_|fs = " "|
|00003100| 3b 09 2f 2a 20 73 61 76 | 65 20 63 75 72 72 65 6e |;./* sav|e curren|
|00003110| 74 20 76 61 6c 75 65 20 | 6f 66 20 46 53 20 77 68 |t value |of FS wh|
|00003120| 65 6e 20 6c 69 6e 65 20 | 69 73 20 72 65 61 64 2c |en line |is read,|
|00003130| 0d 09 09 09 09 09 20 2a | 20 74 6f 20 62 65 20 75 |...... *| to be u|
|00003140| 73 65 64 20 69 6e 20 64 | 65 66 65 72 72 65 64 20 |sed in d|eferred |
|00003150| 70 61 72 73 69 6e 67 0d | 09 09 09 09 09 20 2a 2f |parsing.|..... */|
|00003160| 0d 09 66 69 65 6c 64 73 | 5f 61 72 72 20 3d 20 4e |..fields|_arr = N|
|00003170| 55 4c 4c 3b 09 09 2f 2a | 20 61 72 72 61 79 20 6f |ULL;../*| array o|
|00003180| 66 20 70 6f 69 6e 74 65 | 72 73 20 74 6f 20 74 68 |f pointe|rs to th|
|00003190| 65 20 66 69 65 6c 64 20 | 6e 6f 64 65 73 20 2a 2f |e field |nodes */|
|000031a0| 0d 09 4e 75 6c 6c 4f 75 | 74 28 28 50 74 72 29 28 |..NullOu|t((Ptr)(|
|000031b0| 26 6e 6f 64 65 30 29 2c | 20 73 69 7a 65 6f 66 28 |&node0),| sizeof(|
|000031c0| 4e 4f 44 45 29 29 3b 0d | 09 6e 6f 64 65 30 5f 76 |NODE));.|.node0_v|
|000031d0| 61 6c 69 64 20 3d 20 31 | 3b 09 09 2f 2a 20 24 28 |alid = 1|;../* $(|
|000031e0| 3e 30 29 20 68 61 73 20 | 6e 6f 74 20 62 65 65 6e |>0) has |not been|
|000031f0| 20 63 68 61 6e 67 65 64 | 20 79 65 74 20 2a 2f 0d | changed| yet */.|
|00003200| 09 2f 2a 20 69 6e 20 73 | 65 74 5f 66 69 65 6c 64 |./* in s|et_field|
|00003210| 3a 20 2a 2f 0d 09 09 6e | 66 5f 68 69 67 68 5f 77 |: */...n|f_high_w|
|00003220| 61 74 65 72 20 3d 20 30 | 3b 0d 09 2f 2a 20 69 6e |ater = 0|;../* in|
|00003230| 20 72 65 5f 73 70 6c 69 | 74 20 2a 2f 0d 09 09 72 | re_spli|t */...r|
|00003240| 70 20 3d 20 4e 55 4c 4c | 3b 0d 09 09 6c 61 73 74 |p = NULL|;...last|
|00003250| 5f 66 73 20 3d 20 4e 55 | 4c 4c 3b 0d 09 2f 2a 20 |_fs = NU|LL;../* |
|00003260| 69 6e 20 67 65 74 5f 66 | 73 3a 20 2a 2f 0d 09 4e |in get_f|s: */..N|
|00003270| 75 6c 6c 4f 75 74 28 28 | 50 74 72 29 62 75 66 2c |ullOut((|Ptr)buf,|
|00003280| 20 73 69 7a 65 6f 66 28 | 62 75 66 29 29 3b 0d 09 | sizeof(|buf));..|
|00003290| 7d 0d 0d 76 6f 69 64 20 | 53 61 76 65 46 69 65 6c |}..void |SaveFiel|
|000032a0| 64 28 76 6f 69 64 29 3b | 0d 76 6f 69 64 20 52 65 |d(void);|.void Re|
|000032b0| 73 74 6f 72 65 46 69 65 | 6c 64 28 76 6f 69 64 29 |storeFie|ld(void)|
|000032c0| 3b 0d 76 6f 69 64 20 53 | 61 76 65 46 69 65 6c 64 |;.void S|aveField|
|000032d0| 28 29 0d 09 7b 0d 09 68 | 73 2d 3e 6c 69 6e 65 5f |()..{..h|s->line_|
|000032e0| 62 75 66 20 3d 20 6c 69 | 6e 65 5f 62 75 66 3b 0d |buf = li|ne_buf;.|
|000032f0| 09 68 73 2d 3e 70 61 72 | 73 65 5f 65 78 74 65 6e |.hs->par|se_exten|
|00003300| 74 20 3d 20 70 61 72 73 | 65 5f 65 78 74 65 6e 74 |t = pars|e_extent|
|00003310| 3b 0d 09 68 73 2d 3e 70 | 61 72 73 65 5f 68 69 67 |;..hs->p|arse_hig|
|00003320| 68 5f 77 61 74 65 72 20 | 3d 20 70 61 72 73 65 5f |h_water |= parse_|
|00003330| 68 69 67 68 5f 77 61 74 | 65 72 3b 0d 09 68 73 2d |high_wat|er;..hs-|
|00003340| 3e 73 61 76 65 5f 66 73 | 20 3d 20 73 61 76 65 5f |>save_fs| = save_|
|00003350| 66 73 3b 0d 09 68 73 2d | 3e 6e 6f 64 65 30 20 3d |fs;..hs-|>node0 =|
|00003360| 20 6e 6f 64 65 30 3b 0d | 09 68 73 2d 3e 6e 66 5f | node0;.|.hs->nf_|
|00003370| 68 69 67 68 5f 77 61 74 | 65 72 20 3d 20 6e 66 5f |high_wat|er = nf_|
|00003380| 68 69 67 68 5f 77 61 74 | 65 72 3b 0d 09 68 73 2d |high_wat|er;..hs-|
|00003390| 3e 72 70 20 3d 20 28 73 | 74 72 75 63 74 20 72 65 |>rp = (s|truct re|
|000033a0| 5f 70 61 74 74 65 72 6e | 5f 62 75 66 66 65 72 2a |_pattern|_buffer*|
|000033b0| 29 72 70 3b 0d 09 68 73 | 2d 3e 6c 61 73 74 5f 66 |)rp;..hs|->last_f|
|000033c0| 73 20 3d 20 6c 61 73 74 | 5f 66 73 3b 0d 09 42 6c |s = last|_fs;..Bl|
|000033d0| 6f 63 6b 4d 6f 76 65 28 | 28 50 74 72 29 62 75 66 |ockMove(|(Ptr)buf|
|000033e0| 2c 20 28 50 74 72 29 28 | 68 73 2d 3e 62 75 66 29 |, (Ptr)(|hs->buf)|
|000033f0| 2c 20 73 69 7a 65 6f 66 | 28 62 75 66 29 29 3b 0d |, sizeof|(buf));.|
|00003400| 09 7d 0d 0d 76 6f 69 64 | 20 52 65 73 74 6f 72 65 |.}..void| Restore|
|00003410| 46 69 65 6c 64 28 29 0d | 09 7b 0d 09 6c 69 6e 65 |Field().|.{..line|
|00003420| 5f 62 75 66 20 3d 20 68 | 73 2d 3e 6c 69 6e 65 5f |_buf = h|s->line_|
|00003430| 62 75 66 3b 0d 09 70 61 | 72 73 65 5f 65 78 74 65 |buf;..pa|rse_exte|
|00003440| 6e 74 20 3d 20 68 73 2d | 3e 70 61 72 73 65 5f 65 |nt = hs-|>parse_e|
|00003450| 78 74 65 6e 74 3b 0d 09 | 70 61 72 73 65 5f 68 69 |xtent;..|parse_hi|
|00003460| 67 68 5f 77 61 74 65 72 | 20 3d 20 68 73 2d 3e 70 |gh_water| = hs->p|
|00003470| 61 72 73 65 5f 68 69 67 | 68 5f 77 61 74 65 72 3b |arse_hig|h_water;|
|00003480| 0d 09 73 61 76 65 5f 66 | 73 20 3d 20 68 73 2d 3e |..save_f|s = hs->|
|00003490| 73 61 76 65 5f 66 73 3b | 0d 09 6e 6f 64 65 30 20 |save_fs;|..node0 |
|000034a0| 3d 20 68 73 2d 3e 6e 6f | 64 65 30 3b 0d 09 6e 66 |= hs->no|de0;..nf|
|000034b0| 5f 68 69 67 68 5f 77 61 | 74 65 72 20 3d 20 68 73 |_high_wa|ter = hs|
|000034c0| 2d 3e 6e 66 5f 68 69 67 | 68 5f 77 61 74 65 72 3b |->nf_hig|h_water;|
|000034d0| 0d 09 72 70 20 3d 20 28 | 52 50 41 54 20 2a 29 28 |..rp = (|RPAT *)(|
|000034e0| 68 73 2d 3e 72 70 29 3b | 0d 09 6c 61 73 74 5f 66 |hs->rp);|..last_f|
|000034f0| 73 20 3d 20 68 73 2d 3e | 6c 61 73 74 5f 66 73 3b |s = hs->|last_fs;|
|00003500| 0d 09 42 6c 6f 63 6b 4d | 6f 76 65 28 28 50 74 72 |..BlockM|ove((Ptr|
|00003510| 29 28 68 73 2d 3e 62 75 | 66 29 2c 20 28 50 74 72 |)(hs->bu|f), (Ptr|
|00003520| 29 62 75 66 2c 20 73 69 | 7a 65 6f 66 28 62 75 66 |)buf, si|zeof(buf|
|00003530| 29 29 3b 0d 09 7d 0d 00 | 00 00 00 00 00 00 00 00 |));..}..|........|
|00003540| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003550| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003560| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003570| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003580| 00 00 01 00 00 00 02 5e | 00 00 01 5e 00 00 00 b6 |.......^|...^....|
|00003590| 73 74 70 74 72 5b 30 5d | 29 3b 0d 09 09 7d 20 65 |stptr[0]|);...} e|
|000035a0| 6c 73 65 20 69 66 20 28 | 74 6d 70 2d 3e 73 74 6c |lse if (|tmp->stl|
|000035b0| 07 46 49 45 4c 44 2e 43 | 02 00 00 00 54 45 58 54 |.FIELD.C|....TEXT|
|000035c0| 54 4f 50 43 01 00 00 46 | 00 92 00 00 00 00 2e b9 |TOPC...F|........|
|000035d0| 00 00 54 45 58 54 54 4f | 50 43 01 00 00 46 00 92 |..TEXTTO|PC...F..|
|000035e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000035f0| 00 00 a4 3c af 7b 00 00 | 34 b7 00 00 03 14 09 09 |...<.{..|4.......|
|00003600| 72 65 74 75 72 6e 20 62 | 75 66 3b 0d 09 7d 0d 09 |return b|uf;..}..|
|00003610| 72 65 74 75 72 6e 20 74 | 6d 70 2d 3e 73 74 70 74 |return t|mp->stpt|
|00003620| 72 3b 0d 7d 0d 0d 73 74 | 61 74 69 63 20 76 6f 69 |r;.}..st|atic voi|
|00003630| 64 0d 73 65 74 5f 65 6c | 65 6d 65 6e 74 28 6e 75 |d.set_el|ement(nu|
|00003640| 6d 2c 20 73 2c 20 6c 65 | 6e 2c 20 6e 29 0d 69 6e |m, s, le|n, n).in|
|00003650| 74 20 6e 75 6d 3b 0d 63 | 68 61 72 20 2a 73 3b 0d |t num;.c|har *s;.|
|00003660| 69 6e 74 20 6c 65 6e 3b | 0d 4e 4f 44 45 20 2a 6e |int len;|.NODE *n|
|00003670| 3b 0d 7b 0d 09 2a 61 73 | 73 6f 63 5f 6c 6f 6f 6b |;.{..*as|soc_look|
|00003680| 00 00 00 02 00 00 00 00 | 00 04 00 06 00 04 00 00 |........|........|
|00003690| 00 d6 00 0b 00 00 29 76 | 00 00 29 7e 09 64 6f 5f |......)v|..)~.do_|
|000036a0| 73 70 6c 69 74 00 00 00 | 13 eb 00 00 13 f4 09 67 |split...|.......g|
|000036b0| 65 74 5f 66 69 65 6c 64 | 00 00 2b b3 00 00 2b b9 |et_field|..+...+.|
|000036c0| 07 67 65 74 5f 66 73 00 | 00 00 2f 99 00 00 2f a2 |.get_fs.|../.../.|
|000036d0| 09 49 6e 69 74 46 69 65 | 6c 64 00 00 09 a0 00 00 |.InitFie|ld......|
|000036e0| 09 ab 0b 69 6e 69 74 5f | 66 69 65 6c 64 73 00 00 |...init_|fields..|
|000036f0| 1c 4d 00 00 1c 59 0d 70 | 61 72 73 65 5f 66 69 65 |.M...Y.p|arse_fie|
|00003700| 6c 64 73 00 00 00 0d 74 | 00 00 0d 82 0f 72 65 62 |lds....t|.....reb|
|00003710| 75 69 6c 64 5f 72 65 63 | 6f 72 64 00 00 00 25 79 |uild_rec|ord...%y|
|00003720| 00 00 25 81 09 72 65 5f | 73 70 6c 69 74 00 00 00 |..%..re_|split...|
|00003730| 2d 36 00 00 2d 41 0b 73 | 65 74 5f 65 6c 65 6d 65 |-6..-A.s|et_eleme|
|00003740| 6e 74 00 00 0b 2a 00 00 | 0b 33 09 73 65 74 5f 66 |nt...*..|.3.set_f|
|00003750| 69 65 6c 64 00 00 12 02 | 00 00 12 0c 0b 73 65 74 |ield....|.....set|
|00003760| 5f 72 65 63 6f 72 64 00 | 00 00 00 0a 00 09 06 4d |_record.|.......M|
|00003770| 6f 6e 61 63 6f 00 00 00 | 00 04 ab 1f 9f 7f 00 00 |onaco...|........|
|00003780| 00 08 00 32 00 1e 01 c2 | 02 07 00 00 00 48 00 09 |...2....|.....H..|
|00003790| 4d 6f 6e 61 63 6f 00 00 | 00 00 00 00 00 00 00 00 |Monaco..|........|
|000037a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000037b0| 00 03 00 04 00 57 00 0a | 01 f1 02 80 00 57 00 0a |.....W..|.....W..|
|000037c0| 01 f1 02 80 ab a3 72 f1 | 00 00 24 21 00 00 24 26 |......r.|..$!..$&|
|000037d0| 00 00 22 21 01 00 00 00 | 00 04 00 01 00 01 00 00 |.."!....|........|
|000037e0| 01 00 00 00 02 5e 00 00 | 01 5e 00 00 00 b6 00 cd |.....^..|.^......|
|000037f0| 1e 78 13 78 00 00 00 1c | 00 b6 00 06 45 51 45 44 |.x.x....|....EQED|
|00003800| 00 00 00 3a 45 54 41 42 | 00 00 00 46 4d 50 53 52 |...:ETAB|...FMPSR|
|00003810| 00 01 00 52 45 46 4e 54 | 00 00 00 6a 4a 41 47 5a |...REFNT|...jJAGZ|
|00003820| 00 00 00 76 57 53 49 5a | 00 00 00 82 4d 57 42 42 |...vWSIZ|....MWBB|
|00003830| 00 00 00 8e 03 eb ff ff | 00 00 00 00 00 00 00 00 |........|........|
|00003840| 03 ec ff ff 00 00 00 06 | 00 00 00 00 03 ef ff ff |........|........|
|00003850| 00 00 00 0e 00 00 00 00 | 03 ed ff ff 00 00 01 0a |........|........|
|00003860| 00 00 00 00 03 eb ff ff | 00 00 00 e8 00 00 00 00 |........|........|
|00003870| 03 ed ff ff 00 00 00 f6 | 00 00 00 00 03 ee ff ff |........|........|
|00003880| 00 00 00 fe 00 00 00 00 | 03 f0 ff ff 00 00 01 56 |........|.......V|
|00003890| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000038a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000038b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000038c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000038d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000038e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000038f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+