home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume22 / gawk2.11 / part16 < prev    next >
SHell self-extracting ARchive  |  1990-06-07  |  22.9 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: SHell self-extracting ARchive (archive/shar).

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Newsgroup Content (archive/news) magic Supported
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file news or mail, ASCII text default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/329 Shell Archive Format default
100% detectItEasy Format: plain text[LF] default (weak)
100% xdgMime message/rfc822 default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 53 75 62 6a 65 63 74 3a | 20 20 76 32 32 69 31 30 |Subject:| v22i10|
|00000010| 32 3a 20 20 47 4e 55 20 | 41 57 4b 2c 20 76 65 72 |2: GNU |AWK, ver|
|00000020| 73 69 6f 6e 20 32 2e 31 | 31 2c 20 50 61 72 74 31 |sion 2.1|1, Part1|
|00000030| 36 2f 31 36 0a 4e 65 77 | 73 67 72 6f 75 70 73 3a |6/16.New|sgroups:|
|00000040| 20 63 6f 6d 70 2e 73 6f | 75 72 63 65 73 2e 75 6e | comp.so|urces.un|
|00000050| 69 78 0a 41 70 70 72 6f | 76 65 64 3a 20 72 73 61 |ix.Appro|ved: rsa|
|00000060| 6c 7a 40 75 75 6e 65 74 | 2e 55 55 2e 4e 45 54 0a |lz@uunet|.UU.NET.|
|00000070| 58 2d 43 68 65 63 6b 73 | 75 6d 2d 53 6e 65 66 72 |X-Checks|um-Snefr|
|00000080| 75 3a 20 32 64 37 66 63 | 62 39 35 20 39 37 63 31 |u: 2d7fc|b95 97c1|
|00000090| 65 66 32 36 20 62 31 39 | 62 65 61 61 34 20 33 31 |ef26 b19|beaa4 31|
|000000a0| 66 66 39 62 30 62 0a 0a | 53 75 62 6d 69 74 74 65 |ff9b0b..|Submitte|
|000000b0| 64 2d 62 79 3a 20 22 41 | 72 6e 6f 6c 64 20 44 2e |d-by: "A|rnold D.|
|000000c0| 20 52 6f 62 62 69 6e 73 | 22 20 3c 61 72 6e 6f 6c | Robbins|" <arnol|
|000000d0| 64 40 75 6e 69 78 2e 63 | 63 2e 65 6d 6f 72 79 2e |d@unix.c|c.emory.|
|000000e0| 65 64 75 3e 0a 50 6f 73 | 74 69 6e 67 2d 6e 75 6d |edu>.Pos|ting-num|
|000000f0| 62 65 72 3a 20 56 6f 6c | 75 6d 65 20 32 32 2c 20 |ber: Vol|ume 22, |
|00000100| 49 73 73 75 65 20 31 30 | 32 0a 41 72 63 68 69 76 |Issue 10|2.Archiv|
|00000110| 65 2d 6e 61 6d 65 3a 20 | 67 61 77 6b 32 2e 31 31 |e-name: |gawk2.11|
|00000120| 2f 70 61 72 74 31 36 0a | 0a 23 21 20 2f 62 69 6e |/part16.|.#! /bin|
|00000130| 2f 73 68 0a 23 20 54 68 | 69 73 20 69 73 20 61 20 |/sh.# Th|is is a |
|00000140| 73 68 65 6c 6c 20 61 72 | 63 68 69 76 65 2e 20 20 |shell ar|chive. |
|00000150| 52 65 6d 6f 76 65 20 61 | 6e 79 74 68 69 6e 67 20 |Remove a|nything |
|00000160| 62 65 66 6f 72 65 20 74 | 68 69 73 20 6c 69 6e 65 |before t|his line|
|00000170| 2c 20 74 68 65 6e 20 66 | 65 65 64 20 69 74 0a 23 |, then f|eed it.#|
|00000180| 20 69 6e 74 6f 20 61 20 | 73 68 65 6c 6c 20 76 69 | into a |shell vi|
|00000190| 61 20 22 73 68 20 66 69 | 6c 65 22 20 6f 72 20 73 |a "sh fi|le" or s|
|000001a0| 69 6d 69 6c 61 72 2e 20 | 20 54 6f 20 6f 76 65 72 |imilar. | To over|
|000001b0| 77 72 69 74 65 20 65 78 | 69 73 74 69 6e 67 20 66 |write ex|isting f|
|000001c0| 69 6c 65 73 2c 0a 23 20 | 74 79 70 65 20 22 73 68 |iles,.# |type "sh|
|000001d0| 20 66 69 6c 65 20 2d 63 | 22 2e 0a 23 20 54 68 65 | file -c|"..# The|
|000001e0| 20 74 6f 6f 6c 20 74 68 | 61 74 20 67 65 6e 65 72 | tool th|at gener|
|000001f0| 61 74 65 64 20 74 68 69 | 73 20 61 70 70 65 61 72 |ated thi|s appear|
|00000200| 65 64 20 69 6e 20 74 68 | 65 20 63 6f 6d 70 2e 73 |ed in th|e comp.s|
|00000210| 6f 75 72 63 65 73 2e 75 | 6e 69 78 20 6e 65 77 73 |ources.u|nix news|
|00000220| 67 72 6f 75 70 3b 0a 23 | 20 73 65 6e 64 20 6d 61 |group;.#| send ma|
|00000230| 69 6c 20 74 6f 20 63 6f | 6d 70 2d 73 6f 75 72 63 |il to co|mp-sourc|
|00000240| 65 73 2d 75 6e 69 78 40 | 75 75 6e 65 74 2e 75 75 |es-unix@|uunet.uu|
|00000250| 2e 6e 65 74 20 69 66 20 | 79 6f 75 20 77 61 6e 74 |.net if |you want|
|00000260| 20 74 68 61 74 20 74 6f | 6f 6c 2e 0a 23 20 43 6f | that to|ol..# Co|
|00000270| 6e 74 65 6e 74 73 3a 20 | 20 2e 2f 52 45 41 44 4d |ntents: | ./READM|
|00000280| 45 20 2e 2f 61 6c 6c 6f | 63 61 2e 63 20 2e 2f 61 |E ./allo|ca.c ./a|
|00000290| 72 72 61 79 2e 63 20 2e | 2f 6d 69 73 73 69 6e 67 |rray.c .|/missing|
|000002a0| 2e 64 2f 73 74 72 63 61 | 73 65 2e 63 0a 23 20 57 |.d/strca|se.c.# W|
|000002b0| 72 61 70 70 65 64 20 62 | 79 20 72 73 61 6c 7a 40 |rapped b|y rsalz@|
|000002c0| 6c 69 74 63 68 69 2e 62 | 62 6e 2e 63 6f 6d 20 6f |litchi.b|bn.com o|
|000002d0| 6e 20 57 65 64 20 4a 75 | 6e 20 20 36 20 31 32 3a |n Wed Ju|n 6 12:|
|000002e0| 32 35 3a 30 32 20 31 39 | 39 30 0a 50 41 54 48 3d |25:02 19|90.PATH=|
|000002f0| 2f 62 69 6e 3a 2f 75 73 | 72 2f 62 69 6e 3a 2f 75 |/bin:/us|r/bin:/u|
|00000300| 73 72 2f 75 63 62 20 3b | 20 65 78 70 6f 72 74 20 |sr/ucb ;| export |
|00000310| 50 41 54 48 0a 65 63 68 | 6f 20 49 66 20 74 68 69 |PATH.ech|o If thi|
|00000320| 73 20 61 72 63 68 69 76 | 65 20 69 73 20 63 6f 6d |s archiv|e is com|
|00000330| 70 6c 65 74 65 2c 20 79 | 6f 75 20 77 69 6c 6c 20 |plete, y|ou will |
|00000340| 73 65 65 20 74 68 65 20 | 66 6f 6c 6c 6f 77 69 6e |see the |followin|
|00000350| 67 20 6d 65 73 73 61 67 | 65 3a 0a 65 63 68 6f 20 |g messag|e:.echo |
|00000360| 27 20 20 20 20 20 20 20 | 20 20 20 22 73 68 61 72 |' | "shar|
|00000370| 3a 20 45 6e 64 20 6f 66 | 20 61 72 63 68 69 76 65 |: End of| archive|
|00000380| 20 31 36 20 28 6f 66 20 | 31 36 29 2e 22 27 0a 69 | 16 (of |16)."'.i|
|00000390| 66 20 74 65 73 74 20 2d | 66 20 27 2e 2f 52 45 41 |f test -|f './REA|
|000003a0| 44 4d 45 27 20 2d 61 20 | 22 24 7b 31 7d 22 20 21 |DME' -a |"${1}" !|
|000003b0| 3d 20 22 2d 63 22 20 3b | 20 74 68 65 6e 20 0a 20 |= "-c" ;| then . |
|000003c0| 20 65 63 68 6f 20 73 68 | 61 72 3a 20 57 69 6c 6c | echo sh|ar: Will|
|000003d0| 20 6e 6f 74 20 63 6c 6f | 62 62 65 72 20 65 78 69 | not clo|bber exi|
|000003e0| 73 74 69 6e 67 20 66 69 | 6c 65 20 5c 22 27 2e 2f |sting fi|le \"'./|
|000003f0| 52 45 41 44 4d 45 27 5c | 22 0a 65 6c 73 65 0a 20 |README'\|".else. |
|00000400| 20 65 63 68 6f 20 73 68 | 61 72 3a 20 45 78 74 72 | echo sh|ar: Extr|
|00000410| 61 63 74 69 6e 67 20 5c | 22 27 2e 2f 52 45 41 44 |acting \|"'./READ|
|00000420| 4d 45 27 5c 22 20 5c 28 | 34 35 30 36 20 63 68 61 |ME'\" \(|4506 cha|
|00000430| 72 61 63 74 65 72 73 5c | 29 0a 20 20 73 65 64 20 |racters\|). sed |
|00000440| 22 73 2f 5e 58 2f 2f 22 | 20 3e 27 2e 2f 52 45 41 |"s/^X//"| >'./REA|
|00000450| 44 4d 45 27 20 3c 3c 27 | 45 4e 44 5f 4f 46 5f 46 |DME' <<'|END_OF_F|
|00000460| 49 4c 45 27 0a 58 52 45 | 41 44 4d 45 3a 0a 58 0a |ILE'.XRE|ADME:.X.|
|00000470| 58 54 68 69 73 20 69 73 | 20 47 4e 55 20 41 77 6b |XThis is| GNU Awk|
|00000480| 20 32 2e 31 31 2e 20 49 | 74 20 73 68 6f 75 6c 64 | 2.11. I|t should|
|00000490| 20 62 65 20 75 70 77 61 | 72 64 6c 79 20 63 6f 6d | be upwa|rdly com|
|000004a0| 70 61 74 69 62 6c 65 20 | 77 69 74 68 20 74 68 65 |patible |with the|
|000004b0| 0a 58 53 79 73 74 65 6d | 20 56 20 52 65 6c 65 61 |.XSystem| V Relea|
|000004c0| 73 65 20 34 20 61 77 6b | 2e 0a 58 0a 58 54 68 69 |se 4 awk|..X.XThi|
|000004d0| 73 20 72 65 6c 65 61 73 | 65 20 69 73 20 65 73 73 |s releas|e is ess|
|000004e0| 65 6e 74 69 61 6c 6c 79 | 20 61 20 62 75 67 20 66 |entially| a bug f|
|000004f0| 69 78 20 72 65 6c 65 61 | 73 65 2e 20 20 54 68 65 |ix relea|se. The|
|00000500| 20 66 69 6c 65 73 20 68 | 61 76 65 20 62 65 65 6e | files h|ave been|
|00000510| 0a 58 72 65 6e 61 6d 65 | 64 20 61 6e 64 20 63 6f |.Xrename|d and co|
|00000520| 64 65 20 6d 6f 76 65 64 | 20 61 72 6f 75 6e 64 20 |de moved| around |
|00000530| 74 6f 20 6f 72 67 61 6e | 69 7a 65 20 74 68 69 6e |to organ|ize thin|
|00000540| 67 73 20 62 79 20 66 75 | 6e 63 74 69 6f 6e 2e 20 |gs by fu|nction. |
|00000550| 20 47 61 77 6b 20 73 68 | 6f 75 6c 64 0a 58 61 6c | Gawk sh|ould.Xal|
|00000560| 73 6f 20 62 65 20 73 6f | 6d 65 77 68 61 74 20 66 |so be so|mewhat f|
|00000570| 61 73 74 65 72 20 6e 6f | 77 2e 20 20 4d 6f 72 65 |aster no|w. More|
|00000580| 20 63 61 72 65 20 68 61 | 73 20 62 65 65 6e 20 67 | care ha|s been g|
|00000590| 69 76 65 6e 20 74 6f 77 | 61 72 64 73 20 70 6f 72 |iven tow|ards por|
|000005a0| 74 61 62 69 6c 69 74 79 | 0a 58 61 63 72 6f 73 73 |tability|.Xacross|
|000005b0| 20 64 69 66 66 65 72 65 | 6e 74 20 55 6e 69 78 20 | differe|nt Unix |
|000005c0| 73 79 73 74 65 6d 73 2e | 20 20 53 65 65 20 74 68 |systems.| See th|
|000005d0| 65 20 69 6e 73 74 61 6c | 6c 61 74 69 6f 6e 20 69 |e instal|lation i|
|000005e0| 6e 73 74 72 75 63 74 69 | 6f 6e 73 2c 20 62 65 6c |nstructi|ons, bel|
|000005f0| 6f 77 2e 0a 58 0a 58 4b | 6e 6f 77 6e 20 70 72 6f |ow..X.XK|nown pro|
|00000600| 62 6c 65 6d 73 20 61 72 | 65 20 67 69 76 65 6e 20 |blems ar|e given |
|00000610| 69 6e 20 74 68 65 20 50 | 52 4f 42 4c 45 4d 53 20 |in the P|ROBLEMS |
|00000620| 66 69 6c 65 2e 20 20 57 | 6f 72 6b 20 74 6f 20 62 |file. W|ork to b|
|00000630| 65 20 64 6f 6e 65 20 69 | 73 0a 58 64 65 73 63 72 |e done i|s.Xdescr|
|00000640| 69 62 65 64 20 62 72 69 | 65 66 6c 79 20 69 6e 20 |ibed bri|efly in |
|00000650| 74 68 65 20 46 55 54 55 | 52 45 53 20 66 69 6c 65 |the FUTU|RES file|
|00000660| 2e 0a 58 0a 58 54 68 65 | 20 67 61 77 6b 2e 74 65 |..X.XThe| gawk.te|
|00000670| 78 69 6e 66 6f 20 69 6e | 63 6c 75 64 65 64 20 69 |xinfo in|cluded i|
|00000680| 6e 20 74 68 69 73 20 72 | 65 6c 65 61 73 65 20 68 |n this r|elease h|
|00000690| 61 73 20 62 65 65 6e 20 | 72 65 76 69 73 65 64 3b |as been |revised;|
|000006a0| 20 69 74 20 73 68 6f 75 | 6c 64 0a 58 62 65 20 69 | it shou|ld.Xbe i|
|000006b0| 6e 20 73 79 6e 63 20 77 | 69 74 68 20 77 68 61 74 |n sync w|ith what|
|000006c0| 20 74 68 65 20 63 6f 64 | 65 20 64 6f 65 73 2e 20 | the cod|e does. |
|000006d0| 20 54 68 65 20 6d 61 6e | 20 70 61 67 65 20 73 68 | The man| page sh|
|000006e0| 6f 75 6c 64 20 61 6c 73 | 6f 20 62 65 20 61 63 63 |ould als|o be acc|
|000006f0| 75 72 61 74 65 2c 0a 58 | 62 75 74 20 6e 6f 20 70 |urate,.X|but no p|
|00000700| 72 6f 6d 69 73 65 73 20 | 74 68 65 72 65 2e 0a 58 |romises |there..X|
|00000710| 0a 58 43 48 41 4e 47 45 | 53 20 46 52 4f 4d 20 32 |.XCHANGE|S FROM 2|
|00000720| 2e 31 30 0a 58 0a 58 55 | 73 65 72 20 76 69 73 69 |.10.X.XU|ser visi|
|00000730| 62 6c 65 20 63 68 61 6e | 67 65 73 3a 0a 58 09 43 |ble chan|ges:.X.C|
|00000740| 6f 6d 70 61 74 69 62 69 | 6c 69 74 79 20 6d 6f 64 |ompatibi|lity mod|
|00000750| 65 20 69 73 20 6e 6f 77 | 20 6f 62 74 61 69 6e 65 |e is now| obtaine|
|00000760| 64 20 76 69 61 20 6e 65 | 77 20 2d 63 20 6f 70 74 |d via ne|w -c opt|
|00000770| 69 6f 6e 2e 0a 58 09 54 | 68 65 20 6e 65 77 20 41 |ion..X.T|he new A|
|00000780| 4e 53 49 20 43 20 5c 61 | 20 61 6e 64 20 5c 78 20 |NSI C \a| and \x |
|00000790| 65 73 63 61 70 65 73 20 | 61 72 65 20 6e 6f 77 20 |escapes |are now |
|000007a0| 61 20 73 74 61 6e 64 61 | 72 64 20 70 61 72 74 20 |a standa|rd part |
|000007b0| 6f 66 20 67 61 77 6b 0a | 58 09 09 61 73 20 55 6e |of gawk.|X..as Un|
|000007c0| 69 78 20 6e 61 77 6b 20 | 68 61 73 20 70 69 63 6b |ix nawk |has pick|
|000007d0| 65 64 20 74 68 65 6d 20 | 75 70 2e 0a 58 09 54 68 |ed them |up..X.Th|
|000007e0| 65 20 6e 65 77 20 74 6f | 6c 6f 77 65 72 28 29 20 |e new to|lower() |
|000007f0| 61 6e 64 20 74 6f 75 70 | 70 65 72 28 29 20 66 75 |and toup|per() fu|
|00000800| 6e 63 74 69 6f 6e 73 20 | 61 72 65 20 61 6c 73 6f |nctions |are also|
|00000810| 20 73 74 61 6e 64 61 72 | 64 2e 0a 58 09 41 20 6e | standar|d..X.A n|
|00000820| 65 77 20 75 6e 64 6f 63 | 75 6d 65 6e 74 65 64 20 |ew undoc|umented |
|00000830| 6f 70 74 69 6f 6e 2c 20 | 2d 6e 6f 73 74 61 6c 67 |option, |-nostalg|
|00000840| 69 61 2c 20 68 61 73 20 | 62 65 65 6e 20 61 64 64 |ia, has |been add|
|00000850| 65 64 2e 0a 58 09 43 6f | 6d 6d 61 6e 64 20 6c 69 |ed..X.Co|mmand li|
|00000860| 6e 65 20 6f 70 74 69 6f | 6e 73 20 68 61 76 65 20 |ne optio|ns have |
|00000870| 63 68 61 6e 67 65 64 20 | 73 6f 6d 65 77 68 61 74 |changed |somewhat|
|00000880| 20 66 72 6f 6d 20 32 2e | 31 30 2e 0a 58 09 09 2d | from 2.|10..X..-|
|00000890| 76 09 69 73 20 6e 6f 77 | 09 2d 56 0a 58 09 09 2d |v.is now|.-V.X..-|
|000008a0| 56 09 69 73 20 6e 6f 77 | 09 2d 43 0a 58 09 09 6e |V.is now|.-C.X..n|
|000008b0| 65 77 20 2d 76 20 66 6f | 72 20 64 6f 69 6e 67 20 |ew -v fo|r doing |
|000008c0| 76 61 72 69 61 62 6c 65 | 20 61 73 73 69 67 6e 6d |variable| assignm|
|000008d0| 65 6e 74 73 20 62 65 66 | 6f 72 65 20 74 68 65 20 |ents bef|ore the |
|000008e0| 42 45 47 49 4e 20 62 6c | 6f 63 6b 2e 0a 58 09 09 |BEGIN bl|ock..X..|
|000008f0| 6e 65 77 20 2d 63 20 66 | 6f 72 20 63 6f 6d 70 61 |new -c f|or compa|
|00000900| 74 69 62 69 6c 69 74 79 | 20 6d 6f 64 65 2e 0a 58 |tibility| mode..X|
|00000910| 09 09 6e 65 77 20 2d 61 | 20 66 6f 72 20 61 77 6b |..new -a| for awk|
|00000920| 20 73 74 79 6c 65 20 72 | 65 67 65 78 70 73 20 28 | style r|egexps (|
|00000930| 64 65 66 61 75 6c 74 29 | 0a 58 09 09 6e 65 77 20 |default)|.X..new |
|00000940| 2d 65 20 66 6f 72 20 65 | 67 72 65 70 20 73 74 79 |-e for e|grep sty|
|00000950| 6c 65 20 72 65 67 65 78 | 70 73 2c 20 70 65 72 20 |le regex|ps, per |
|00000960| 74 68 65 20 50 4f 53 49 | 58 20 64 72 61 66 74 20 |the POSI|X draft |
|00000970| 73 70 65 63 2e 0a 58 09 | 53 6f 6d 65 20 6d 6f 72 |spec..X.|Some mor|
|00000980| 65 20 66 6f 72 6d 61 74 | 73 20 68 61 76 65 20 62 |e format|s have b|
|00000990| 65 65 6e 20 61 64 64 65 | 64 20 74 6f 20 70 72 69 |een adde|d to pri|
|000009a0| 6e 74 66 2c 20 61 6c 61 | 20 6e 61 77 6b 20 61 6e |ntf, ala| nawk an|
|000009b0| 64 20 41 4e 53 49 20 43 | 2e 0a 58 0a 58 4f 74 68 |d ANSI C|..X.XOth|
|000009c0| 65 72 20 63 68 61 6e 67 | 65 73 20 28 74 68 65 20 |er chang|es (the |
|000009d0| 68 61 72 64 20 73 74 75 | 66 66 29 3a 0a 58 09 41 |hard stu|ff):.X.A|
|000009e0| 6c 6c 20 6b 6e 6f 77 6e | 20 62 75 67 73 20 66 69 |ll known| bugs fi|
|000009f0| 78 65 64 2e 0a 58 09 53 | 74 69 6c 6c 20 6d 6f 72 |xed..X.S|till mor|
|00000a00| 65 20 6d 65 6d 6f 72 79 | 20 6c 65 61 6b 73 20 70 |e memory| leaks p|
|00000a10| 6c 75 67 67 65 64 2e 0a | 58 09 4c 6f 74 73 20 6f |lugged..|X.Lots o|
|00000a20| 66 20 63 68 61 6e 67 65 | 73 20 74 6f 20 69 6d 70 |f change|s to imp|
|00000a30| 72 6f 76 65 20 70 65 72 | 66 6f 72 6d 61 6e 63 65 |rove per|formance|
|00000a40| 20 61 6e 64 20 70 6f 72 | 74 61 62 69 6c 69 74 79 | and por|tability|
|00000a50| 2e 0a 58 0a 58 50 43 20 | 75 73 65 72 73 2c 20 79 |..X.XPC |users, y|
|00000a60| 6f 75 27 76 65 20 62 65 | 65 6e 20 73 61 76 65 64 |ou've be|en saved|
|00000a70| 21 0a 58 09 41 73 20 6f | 66 20 70 61 74 63 68 6c |!.X.As o|f patchl|
|00000a80| 65 76 65 6c 20 31 2c 20 | 77 65 20 61 72 65 20 6e |evel 1, |we are n|
|00000a90| 6f 77 20 73 75 70 70 6c | 79 69 6e 67 20 4d 53 2d |ow suppl|ying MS-|
|00000aa0| 44 4f 53 20 22 73 75 70 | 70 6f 72 74 2e 22 20 20 |DOS "sup|port." |
|00000ab0| 53 61 69 64 0a 58 09 73 | 75 70 70 6f 72 74 20 77 |Said.X.s|upport w|
|00000ac0| 61 73 20 67 65 6e 65 72 | 6f 75 73 6c 79 20 70 72 |as gener|ously pr|
|00000ad0| 6f 76 69 64 65 64 20 62 | 79 20 4b 65 6e 74 20 57 |ovided b|y Kent W|
|00000ae0| 69 6c 6c 69 61 6d 73 2c | 20 77 68 6f 20 69 73 20 |illiams,| who is |
|00000af0| 6e 6f 77 0a 58 09 74 68 | 65 20 63 6f 6e 74 61 63 |now.X.th|e contac|
|00000b00| 74 20 70 65 72 73 6f 6e | 20 66 6f 72 20 69 74 2e |t person| for it.|
|00000b10| 20 20 53 65 65 20 62 65 | 6c 6f 77 20 66 6f 72 20 | See be|low for |
|00000b20| 68 69 73 20 61 64 64 72 | 65 73 73 2e 0a 58 0a 58 |his addr|ess..X.X|
|00000b30| 49 4e 53 54 41 4c 4c 41 | 54 49 4f 4e 3a 0a 58 0a |INSTALLA|TION:.X.|
|00000b40| 58 54 68 65 20 4d 61 6b | 65 66 69 6c 65 20 77 69 |XThe Mak|efile wi|
|00000b50| 6c 6c 20 6e 65 65 64 20 | 73 6f 6d 65 20 74 61 69 |ll need |some tai|
|00000b60| 6c 6f 72 69 6e 67 2e 20 | 20 43 75 72 72 65 6e 74 |loring. | Current|
|00000b70| 6c 79 20 69 74 20 69 73 | 20 73 65 74 20 75 70 20 |ly it is| set up |
|00000b80| 66 6f 72 0a 58 61 20 53 | 75 6e 20 72 75 6e 6e 69 |for.Xa S|un runni|
|00000b90| 6e 67 20 53 75 6e 4f 53 | 20 34 2e 78 20 61 6e 64 |ng SunOS| 4.x and|
|00000ba0| 20 67 63 63 2e 20 20 54 | 68 65 20 63 68 61 6e 67 | gcc. T|he chang|
|00000bb0| 65 73 20 74 6f 20 6d 61 | 6b 65 20 69 6e 20 74 68 |es to ma|ke in th|
|00000bc0| 65 20 4d 61 6b 65 66 69 | 6c 65 20 61 72 65 0a 58 |e Makefi|le are.X|
|00000bd0| 63 6f 6d 6d 65 6e 74 65 | 64 20 61 6e 64 20 73 68 |commente|d and sh|
|00000be0| 6f 75 6c 64 20 62 65 20 | 6f 62 76 69 6f 75 73 2e |ould be |obvious.|
|00000bf0| 20 20 53 74 61 72 74 69 | 6e 67 20 77 69 74 68 20 | Starti|ng with |
|00000c00| 32 2e 31 31 2c 20 6f 75 | 72 20 69 6e 74 65 6e 74 |2.11, ou|r intent|
|00000c10| 20 68 61 73 20 62 65 65 | 6e 0a 58 74 6f 20 6d 61 | has bee|n.Xto ma|
|00000c20| 6b 65 20 74 68 65 20 63 | 6f 64 65 20 63 6f 6e 66 |ke the c|ode conf|
|00000c30| 6f 72 6d 20 74 6f 20 73 | 74 61 6e 64 61 72 64 73 |orm to s|tandards|
|00000c40| 20 28 41 4e 53 49 2c 20 | 50 4f 53 49 58 2c 20 53 | (ANSI, |POSIX, S|
|00000c50| 56 49 44 2c 20 69 6e 20 | 74 68 61 74 20 6f 72 64 |VID, in |that ord|
|00000c60| 65 72 29 0a 58 77 68 65 | 6e 65 76 65 72 20 70 6f |er).Xwhe|never po|
|00000c70| 73 73 69 62 6c 65 2c 20 | 61 6e 64 20 74 6f 20 6e |ssible, |and to n|
|00000c80| 6f 74 20 70 65 6e 61 6c | 69 7a 65 20 73 74 61 6e |ot penal|ize stan|
|00000c90| 64 61 72 64 20 63 6f 6e | 66 6f 72 6d 69 6e 67 20 |dard con|forming |
|00000ca0| 73 79 73 74 65 6d 73 2e | 0a 58 57 65 20 68 61 76 |systems.|.XWe hav|
|00000cb0| 65 20 69 6e 63 6c 75 64 | 65 64 20 73 75 62 73 74 |e includ|ed subst|
|00000cc0| 69 74 75 74 65 20 76 65 | 72 73 69 6f 6e 73 20 6f |itute ve|rsions o|
|00000cd0| 66 20 72 6f 75 74 69 6e | 65 73 20 6e 6f 74 20 75 |f routin|es not u|
|00000ce0| 6e 69 76 65 72 73 61 6c | 6c 79 20 61 76 61 69 6c |niversal|ly avail|
|00000cf0| 61 62 6c 65 2e 0a 58 53 | 69 6d 70 6c 79 20 61 64 |able..XS|imply ad|
|00000d00| 64 20 74 68 65 20 61 70 | 70 72 6f 70 72 69 61 74 |d the ap|propriat|
|00000d10| 65 20 64 65 66 69 6e 65 | 20 66 6f 72 20 74 68 65 |e define| for the|
|00000d20| 20 6d 69 73 73 69 6e 67 | 20 66 65 61 74 75 72 65 | missing| feature|
|00000d30| 28 73 29 20 6f 6e 20 79 | 6f 75 72 20 73 79 73 74 |(s) on y|our syst|
|00000d40| 65 6d 2e 0a 58 0a 58 49 | 66 20 79 6f 75 20 68 61 |em..X.XI|f you ha|
|00000d50| 76 65 20 34 2e 32 20 6f | 72 20 34 2e 33 20 42 53 |ve 4.2 o|r 4.3 BS|
|00000d60| 44 2c 20 79 6f 75 20 73 | 68 6f 75 6c 64 20 61 64 |D, you s|hould ad|
|00000d70| 64 20 2d 44 54 4d 50 4e | 41 4d 5f 4d 49 53 53 49 |d -DTMPN|AM_MISSI|
|00000d80| 4e 47 20 73 69 6e 63 65 | 20 74 68 65 0a 58 76 65 |NG since| the.Xve|
|00000d90| 72 73 69 6f 6e 20 6f 66 | 20 74 6d 70 6e 61 6d 20 |rsion of| tmpnam |
|00000da0| 6f 6e 20 74 68 65 73 65 | 20 73 79 73 74 65 6d 73 |on these| systems|
|00000db0| 20 77 6f 6e 27 74 20 61 | 63 63 65 70 74 20 61 20 | won't a|ccept a |
|00000dc0| 4e 55 4c 4c 20 70 6f 69 | 6e 74 65 72 2e 0a 58 54 |NULL poi|nter..XT|
|00000dd0| 68 69 73 20 64 6f 65 73 | 20 6e 6f 74 20 61 70 70 |his does| not app|
|00000de0| 6c 79 20 74 6f 20 34 2e | 33 2d 74 61 68 6f 65 20 |ly to 4.|3-tahoe |
|00000df0| 6f 72 20 74 68 65 20 53 | 35 52 5b 32 33 5d 20 73 |or the S|5R[23] s|
|00000e00| 79 73 74 65 6d 73 20 49 | 20 68 61 76 65 20 61 63 |ystems I| have ac|
|00000e10| 63 65 73 73 20 74 6f 2e | 0a 58 59 6f 75 20 6e 65 |cess to.|.XYou ne|
|00000e20| 65 64 20 74 68 69 73 20 | 69 66 20 67 61 77 6b 20 |ed this |if gawk |
|00000e30| 63 6f 72 65 20 64 75 6d | 70 73 20 6f 6e 20 73 6f |core dum|ps on so|
|00000e40| 6d 65 74 68 69 6e 67 20 | 73 69 6d 70 6c 65 20 6c |mething |simple l|
|00000e50| 69 6b 65 20 27 42 45 47 | 49 4e 20 7b 70 72 69 6e |ike 'BEG|IN {prin|
|00000e60| 74 20 22 68 69 22 7d 27 | 2e 0a 58 0a 58 49 66 20 |t "hi"}'|..X.XIf |
|00000e70| 79 6f 75 20 68 61 76 65 | 20 6e 65 69 74 68 65 72 |you have| neither|
|00000e80| 20 62 69 73 6f 6e 20 6e | 6f 72 20 79 61 63 63 2c | bison n|or yacc,|
|00000e90| 20 75 73 65 20 74 68 65 | 20 61 77 6b 2e 74 61 62 | use the| awk.tab|
|00000ea0| 2e 63 20 66 69 6c 65 20 | 68 65 72 65 2e 20 20 49 |.c file |here. I|
|00000eb0| 74 20 77 61 73 0a 58 67 | 65 6e 65 72 61 74 65 64 |t was.Xg|enerated|
|00000ec0| 20 77 69 74 68 20 62 69 | 73 6f 6e 2c 20 61 6e 64 | with bi|son, and|
|00000ed0| 20 73 68 6f 75 6c 64 20 | 68 61 76 65 20 6e 6f 20 | should |have no |
|00000ee0| 41 54 26 54 20 63 6f 64 | 65 20 69 6e 20 69 74 2e |AT&T cod|e in it.|
|00000ef0| 20 20 28 4e 6f 74 65 20 | 74 68 61 74 0a 58 6d 6f | (Note |that.Xmo|
|00000f00| 64 69 66 79 69 6e 67 20 | 61 77 6b 2e 79 20 77 69 |difying |awk.y wi|
|00000f10| 74 68 6f 75 74 20 62 69 | 73 6f 6e 20 6f 72 20 79 |thout bi|son or y|
|00000f20| 61 63 63 20 77 69 6c 6c | 20 62 65 20 64 69 66 66 |acc will| be diff|
|00000f30| 69 63 75 6c 74 2c 20 61 | 74 20 62 65 73 74 2e 20 |icult, a|t best. |
|00000f40| 20 59 6f 75 20 6d 69 67 | 68 74 0a 58 77 61 6e 74 | You mig|ht.Xwant|
|00000f50| 20 74 6f 20 67 65 74 20 | 61 20 63 6f 70 79 20 6f | to get |a copy o|
|00000f60| 66 20 62 69 73 6f 6e 20 | 66 72 6f 6d 20 74 68 65 |f bison |from the|
|00000f70| 20 46 53 46 20 74 6f 6f | 2e 29 0a 58 0a 58 49 66 | FSF too|.).X.XIf|
|00000f80| 20 79 6f 75 20 68 61 76 | 65 20 61 6e 20 4d 53 2d | you hav|e an MS-|
|00000f90| 44 4f 53 20 73 79 73 74 | 65 6d 2c 20 75 73 65 20 |DOS syst|em, use |
|00000fa0| 74 68 65 20 73 74 75 66 | 66 20 69 6e 20 70 63 2e |the stuf|f in pc.|
|00000fb0| 64 2e 0a 58 0a 58 50 52 | 49 4e 54 49 4e 47 20 54 |d..X.XPR|INTING T|
|00000fc0| 48 45 20 4d 41 4e 55 41 | 4c 0a 58 0a 58 54 68 65 |HE MANUA|L.X.XThe|
|00000fd0| 20 27 73 75 70 70 6f 72 | 74 27 20 64 69 72 65 63 | 'suppor|t' direc|
|00000fe0| 74 6f 72 79 20 63 6f 6e | 74 61 69 6e 73 20 74 65 |tory con|tains te|
|00000ff0| 78 69 6e 66 6f 2e 74 65 | 78 20 32 2e 31 2c 20 77 |xinfo.te|x 2.1, w|
|00001000| 68 69 63 68 20 77 69 6c | 6c 20 62 65 20 6e 65 63 |hich wil|l be nec|
|00001010| 65 73 73 61 72 79 0a 58 | 66 6f 72 20 70 72 69 6e |essary.X|for prin|
|00001020| 74 69 6e 67 20 74 68 65 | 20 6d 61 6e 75 61 6c 2c |ting the| manual,|
|00001030| 20 61 6e 64 20 74 68 65 | 20 74 65 78 69 6e 64 65 | and the| texinde|
|00001040| 78 2e 63 20 70 72 6f 67 | 72 61 6d 20 66 72 6f 6d |x.c prog|ram from|
|00001050| 20 74 68 65 20 65 6d 61 | 63 73 20 64 69 73 74 72 | the ema|cs distr|
|00001060| 69 62 75 74 69 6f 6e 0a | 58 77 68 69 63 68 20 69 |ibution.|Xwhich i|
|00001070| 73 20 61 6c 73 6f 20 6e | 65 63 65 73 73 61 72 79 |s also n|ecessary|
|00001080| 2e 20 20 53 65 65 20 74 | 68 65 20 6d 61 6b 65 66 |. See t|he makef|
|00001090| 69 6c 65 20 66 6f 72 20 | 74 68 65 20 73 74 65 70 |ile for |the step|
|000010a0| 73 20 6e 65 65 64 65 64 | 20 74 6f 20 67 65 74 20 |s needed| to get |
|000010b0| 61 0a 58 44 56 49 20 66 | 69 6c 65 20 66 72 6f 6d |a.XDVI f|ile from|
|000010c0| 20 74 68 65 20 6d 61 6e | 75 61 6c 2e 0a 58 0a 58 | the man|ual..X.X|
|000010d0| 43 41 56 45 41 54 53 0a | 58 0a 58 54 68 65 20 65 |CAVEATS.|X.XThe e|
|000010e0| 78 69 73 74 65 6e 63 65 | 20 6f 66 20 61 20 70 61 |xistence| of a pa|
|000010f0| 74 63 68 6c 65 76 65 6c | 2e 68 20 66 69 6c 65 20 |tchlevel|.h file |
|00001100| 64 6f 65 73 20 2a 4e 2a | 4f 2a 54 2a 20 69 6d 70 |does *N*|O*T* imp|
|00001110| 6c 79 20 61 20 63 6f 6d | 6d 69 74 6d 65 6e 74 20 |ly a com|mitment |
|00001120| 6f 6e 0a 58 6f 75 72 20 | 70 61 72 74 20 74 6f 20 |on.Xour |part to |
|00001130| 69 73 73 75 65 20 62 75 | 67 20 66 69 78 65 73 20 |issue bu|g fixes |
|00001140| 6f 72 20 70 61 74 63 68 | 65 73 2e 20 20 49 74 20 |or patch|es. It |
|00001150| 69 73 20 74 68 65 72 65 | 20 69 6e 20 63 61 73 65 |is there| in case|
|00001160| 20 77 65 20 73 68 6f 75 | 6c 64 0a 58 64 65 63 69 | we shou|ld.Xdeci|
|00001170| 64 65 20 74 6f 20 64 6f | 20 73 6f 2e 0a 58 0a 58 |de to do| so..X.X|
|00001180| 42 55 47 20 52 45 50 4f | 52 54 53 20 41 4e 44 20 |BUG REPO|RTS AND |
|00001190| 46 49 58 45 53 3a 0a 58 | 0a 58 50 6c 65 61 73 65 |FIXES:.X|.XPlease|
|000011a0| 20 63 6f 6f 72 64 69 6e | 61 74 65 20 63 68 61 6e | coordin|ate chan|
|000011b0| 67 65 73 20 74 68 72 6f | 75 67 68 20 44 61 76 69 |ges thro|ugh Davi|
|000011c0| 64 20 54 72 75 65 6d 61 | 6e 20 61 6e 64 2f 6f 72 |d Truema|n and/or|
|000011d0| 20 41 72 6e 6f 6c 64 20 | 52 6f 62 62 69 6e 73 2e | Arnold |Robbins.|
|000011e0| 0a 58 0a 58 44 61 76 69 | 64 20 54 72 75 65 6d 61 |.X.XDavi|d Truema|
|000011f0| 6e 0a 58 44 65 70 61 72 | 74 6d 65 6e 74 20 6f 66 |n.XDepar|tment of|
|00001200| 20 4d 61 74 68 65 6d 61 | 74 69 63 73 2c 20 53 74 | Mathema|tics, St|
|00001210| 61 74 69 73 74 69 63 73 | 20 61 6e 64 20 43 6f 6d |atistics| and Com|
|00001220| 70 75 74 69 6e 67 20 53 | 63 69 65 6e 63 65 2c 0a |puting S|cience,.|
|00001230| 58 44 61 6c 68 6f 75 73 | 69 65 20 55 6e 69 76 65 |XDalhous|ie Unive|
|00001240| 72 73 69 74 79 2c 20 48 | 61 6c 69 66 61 78 2c 20 |rsity, H|alifax, |
|00001250| 4e 6f 76 61 20 53 63 6f | 74 69 61 2c 20 43 61 6e |Nova Sco|tia, Can|
|00001260| 61 64 61 0a 58 0a 58 55 | 55 43 50 09 09 7b 75 75 |ada.X.XU|UCP..{uu|
|00001270| 6e 65 74 20 75 74 61 69 | 20 77 61 74 6d 61 74 68 |net utai| watmath|
|00001280| 7d 21 64 61 6c 63 73 21 | 64 61 76 69 64 0a 58 49 |}!dalcs!|david.XI|
|00001290| 4e 54 45 52 4e 45 54 09 | 64 61 76 69 64 40 63 73 |NTERNET.|david@cs|
|000012a0| 2e 64 61 6c 2e 63 61 0a | 58 0a 58 41 72 6e 6f 6c |.dal.ca.|X.XArnol|
|000012b0| 64 20 52 6f 62 62 69 6e | 73 0a 58 31 33 31 35 20 |d Robbin|s.X1315 |
|000012c0| 4b 69 74 74 72 65 64 67 | 65 20 43 6f 75 72 74 2c |Kittredg|e Court,|
|000012d0| 20 4e 2e 45 2e 0a 58 41 | 74 6c 61 6e 74 61 2c 20 | N.E..XA|tlanta, |
|000012e0| 47 41 2c 20 33 30 33 32 | 39 2d 33 35 33 39 2c 20 |GA, 3032|9-3539, |
|000012f0| 55 53 41 0a 58 0a 58 49 | 4e 54 45 52 4e 45 54 3a |USA.X.XI|NTERNET:|
|00001300| 09 61 72 6e 6f 6c 64 40 | 73 6b 65 65 76 65 2e 61 |.arnold@|skeeve.a|
|00001310| 74 6c 2e 67 61 2e 75 73 | 0a 58 55 55 43 50 3a 09 |tl.ga.us|.XUUCP:.|
|00001320| 09 7b 20 67 61 74 65 63 | 68 2c 20 65 6d 6f 72 79 |.{ gatec|h, emory|
|00001330| 2c 20 65 6d 6f 72 79 75 | 31 20 7d 21 73 6b 65 65 |, emoryu|1 }!skee|
|00001340| 76 65 21 61 72 6e 6f 6c | 64 0a 58 0a 58 49 66 20 |ve!arnol|d.X.XIf |
|00001350| 79 6f 75 20 63 61 6e 27 | 74 20 63 6f 6e 74 61 63 |you can'|t contac|
|00001360| 74 20 65 69 74 68 65 72 | 20 6f 66 20 75 73 2c 20 |t either| of us, |
|00001370| 74 72 79 20 4a 61 79 20 | 46 65 6e 6c 61 73 6f 6e |try Jay |Fenlason|
|00001380| 2c 20 68 61 63 6b 40 70 | 72 65 70 2e 61 69 2e 6d |, hack@p|rep.ai.m|
|00001390| 69 74 2e 65 64 75 0a 58 | 41 4b 41 20 6d 69 74 2d |it.edu.X|AKA mit-|
|000013a0| 65 64 64 69 65 21 70 72 | 65 70 21 68 61 63 6b 2e |eddie!pr|ep!hack.|
|000013b0| 20 20 44 75 72 69 6e 67 | 20 6f 64 64 20 68 6f 75 | During| odd hou|
|000013c0| 72 73 20 68 65 20 63 61 | 6e 20 73 6f 6d 65 74 69 |rs he ca|n someti|
|000013d0| 6d 65 73 20 62 65 20 72 | 65 61 63 68 65 64 20 61 |mes be r|eached a|
|000013e0| 74 0a 58 28 36 31 37 29 | 20 32 35 33 2d 38 39 37 |t.X(617)| 253-897|
|000013f0| 35 2c 20 77 68 69 63 68 | 20 69 73 20 61 6e 20 4d |5, which| is an M|
|00001400| 49 54 20 70 68 6f 6e 65 | 20 69 6e 20 74 68 65 20 |IT phone| in the |
|00001410| 6d 69 64 64 6c 65 20 6f | 66 20 74 68 65 20 63 6f |middle o|f the co|
|00001420| 72 72 69 64 6f 72 2c 20 | 73 6f 20 64 6f 6e 27 74 |rridor, |so don't|
|00001430| 0a 58 62 65 20 73 75 70 | 72 69 73 65 64 20 69 66 |.Xbe sup|rised if|
|00001440| 20 73 6f 6d 65 6f 6e 65 | 20 77 69 65 72 64 20 61 | someone| wierd a|
|00001450| 6e 73 77 65 72 73 2c 20 | 6f 72 20 69 66 20 74 68 |nswers, |or if th|
|00001460| 65 20 70 65 72 73 6f 6e | 20 6f 6e 20 74 68 65 20 |e person| on the |
|00001470| 6f 74 68 65 72 20 65 6e | 64 20 68 61 73 0a 58 6e |other en|d has.Xn|
|00001480| 65 76 65 72 20 68 65 61 | 72 64 20 6f 66 20 68 69 |ever hea|rd of hi|
|00001490| 6d 2e 20 20 28 44 69 72 | 65 63 74 20 74 68 65 6d |m. (Dir|ect them|
|000014a0| 20 74 6f 20 74 68 65 20 | 6d 69 63 72 6f 76 61 78 | to the |microvax|
|000014b0| 20 61 62 6f 75 74 20 31 | 30 20 66 65 65 74 20 74 | about 1|0 feet t|
|000014c0| 6f 20 74 68 65 69 72 20 | 6c 65 66 74 2e 29 0a 58 |o their |left.).X|
|000014d0| 0a 58 4d 53 2d 44 4f 53 | 20 53 55 50 50 4f 52 54 |.XMS-DOS| SUPPORT|
|000014e0| 0a 58 0a 58 53 75 70 70 | 6f 72 74 20 66 6f 72 20 |.X.XSupp|ort for |
|000014f0| 4d 53 43 20 35 2e 31 20 | 77 61 73 20 73 75 70 70 |MSC 5.1 |was supp|
|00001500| 6c 69 65 64 20 66 6f 72 | 20 32 2e 31 31 20 62 79 |lied for| 2.11 by|
|00001510| 20 4b 65 6e 74 20 57 69 | 6c 6c 69 61 6d 73 2c 20 | Kent Wi|lliams, |
|00001520| 77 68 6f 20 63 61 6e 20 | 62 65 0a 58 72 65 61 63 |who can |be.Xreac|
|00001530| 68 65 64 20 61 74 20 77 | 69 6c 6c 69 61 6d 73 40 |hed at w|illiams@|
|00001540| 75 6d 61 78 63 2e 77 65 | 65 67 2e 75 69 6f 77 61 |umaxc.we|eg.uiowa|
|00001550| 2e 65 64 75 2e 20 20 49 | 74 20 72 65 6c 69 65 73 |.edu. I|t relies|
|00001560| 20 68 65 61 76 69 6c 79 | 20 6f 6e 20 74 68 65 0a | heavily| on the.|
|00001570| 58 65 61 72 6c 69 65 72 | 20 77 6f 72 6b 20 64 6f |Xearlier| work do|
|00001580| 6e 65 20 66 6f 72 20 32 | 2e 31 30 20 62 79 20 43 |ne for 2|.10 by C|
|00001590| 6f 6e 72 61 64 20 4b 77 | 6f 6b 20 61 6e 64 20 53 |onrad Kw|ok and S|
|000015a0| 63 6f 74 74 20 47 61 72 | 66 69 6e 6b 6c 65 2e 20 |cott Gar|finkle. |
|000015b0| 20 42 75 67 0a 58 72 65 | 70 6f 72 74 73 20 6f 6e | Bug.Xre|ports on|
|000015c0| 20 74 68 65 20 4d 53 2d | 44 4f 53 20 76 65 72 73 | the MS-|DOS vers|
|000015d0| 69 6f 6e 20 73 68 6f 75 | 6c 64 20 67 6f 20 74 6f |ion shou|ld go to|
|000015e0| 20 4b 65 6e 74 2e 20 20 | 4f 66 20 63 6f 75 72 73 | Kent. |Of cours|
|000015f0| 65 2c 20 69 66 20 69 74 | 27 73 0a 58 61 20 67 65 |e, if it|'s.Xa ge|
|00001600| 6e 65 72 69 63 20 62 75 | 67 2c 20 77 65 20 77 61 |neric bu|g, we wa|
|00001610| 6e 74 20 74 6f 20 68 65 | 61 72 20 61 62 6f 75 74 |nt to he|ar about|
|00001620| 20 69 74 20 74 6f 6f 2c | 20 62 75 74 20 69 66 20 | it too,| but if |
|00001630| 69 74 20 69 73 6e 27 74 | 20 72 65 70 72 6f 64 75 |it isn't| reprodu|
|00001640| 63 69 62 6c 65 0a 58 75 | 6e 64 65 72 20 55 6e 69 |cible.Xu|nder Uni|
|00001650| 78 2c 20 77 65 20 77 6f | 6e 27 74 20 62 65 20 61 |x, we wo|n't be a|
|00001660| 73 20 69 6e 74 65 72 65 | 73 74 65 64 2e 0a 45 4e |s intere|sted..EN|
|00001670| 44 5f 4f 46 5f 46 49 4c | 45 0a 20 20 69 66 20 74 |D_OF_FIL|E. if t|
|00001680| 65 73 74 20 34 35 30 36 | 20 2d 6e 65 20 60 77 63 |est 4506| -ne `wc|
|00001690| 20 2d 63 20 3c 27 2e 2f | 52 45 41 44 4d 45 27 60 | -c <'./|README'`|
|000016a0| 3b 20 74 68 65 6e 0a 20 | 20 20 20 65 63 68 6f 20 |; then. | echo |
|000016b0| 73 68 61 72 3a 20 5c 22 | 27 2e 2f 52 45 41 44 4d |shar: \"|'./READM|
|000016c0| 45 27 5c 22 20 75 6e 70 | 61 63 6b 65 64 20 77 69 |E'\" unp|acked wi|
|000016d0| 74 68 20 77 72 6f 6e 67 | 20 73 69 7a 65 21 0a 20 |th wrong| size!. |
|000016e0| 20 66 69 0a 20 20 23 20 | 65 6e 64 20 6f 66 20 27 | fi. # |end of '|
|000016f0| 2e 2f 52 45 41 44 4d 45 | 27 0a 66 69 0a 69 66 20 |./README|'.fi.if |
|00001700| 74 65 73 74 20 2d 66 20 | 27 2e 2f 61 6c 6c 6f 63 |test -f |'./alloc|
|00001710| 61 2e 63 27 20 2d 61 20 | 22 24 7b 31 7d 22 20 21 |a.c' -a |"${1}" !|
|00001720| 3d 20 22 2d 63 22 20 3b | 20 74 68 65 6e 20 0a 20 |= "-c" ;| then . |
|00001730| 20 65 63 68 6f 20 73 68 | 61 72 3a 20 57 69 6c 6c | echo sh|ar: Will|
|00001740| 20 6e 6f 74 20 63 6c 6f | 62 62 65 72 20 65 78 69 | not clo|bber exi|
|00001750| 73 74 69 6e 67 20 66 69 | 6c 65 20 5c 22 27 2e 2f |sting fi|le \"'./|
|00001760| 61 6c 6c 6f 63 61 2e 63 | 27 5c 22 0a 65 6c 73 65 |alloca.c|'\".else|
|00001770| 0a 20 20 65 63 68 6f 20 | 73 68 61 72 3a 20 45 78 |. echo |shar: Ex|
|00001780| 74 72 61 63 74 69 6e 67 | 20 5c 22 27 2e 2f 61 6c |tracting| \"'./al|
|00001790| 6c 6f 63 61 2e 63 27 5c | 22 20 5c 28 35 34 35 36 |loca.c'\|" \(5456|
|000017a0| 20 63 68 61 72 61 63 74 | 65 72 73 5c 29 0a 20 20 | charact|ers\). |
|000017b0| 73 65 64 20 22 73 2f 5e | 58 2f 2f 22 20 3e 27 2e |sed "s/^|X//" >'.|
|000017c0| 2f 61 6c 6c 6f 63 61 2e | 63 27 20 3c 3c 27 45 4e |/alloca.|c' <<'EN|
|000017d0| 44 5f 4f 46 5f 46 49 4c | 45 27 0a 58 2f 2a 0a 58 |D_OF_FIL|E'.X/*.X|
|000017e0| 09 61 6c 6c 6f 63 61 20 | 2d 2d 20 28 6d 6f 73 74 |.alloca |-- (most|
|000017f0| 6c 79 29 20 70 6f 72 74 | 61 62 6c 65 20 70 75 62 |ly) port|able pub|
|00001800| 6c 69 63 2d 64 6f 6d 61 | 69 6e 20 69 6d 70 6c 65 |lic-doma|in imple|
|00001810| 6d 65 6e 74 61 74 69 6f | 6e 20 2d 2d 20 44 20 41 |mentatio|n -- D A|
|00001820| 20 47 77 79 6e 0a 58 0a | 58 09 6c 61 73 74 20 65 | Gwyn.X.|X.last e|
|00001830| 64 69 74 3a 09 38 36 2f | 30 35 2f 33 30 09 72 6d |dit:.86/|05/30.rm|
|00001840| 73 0a 58 09 20 20 20 69 | 6e 63 6c 75 64 65 20 63 |s.X. i|nclude c|
|00001850| 6f 6e 66 69 67 2e 68 2c | 20 73 69 6e 63 65 20 6f |onfig.h,| since o|
|00001860| 6e 20 56 4d 53 20 69 74 | 20 72 65 6e 61 6d 65 73 |n VMS it| renames|
|00001870| 20 73 6f 6d 65 20 73 79 | 6d 62 6f 6c 73 2e 0a 58 | some sy|mbols..X|
|00001880| 09 20 20 20 55 73 65 20 | 78 6d 61 6c 6c 6f 63 20 |. Use |xmalloc |
|00001890| 69 6e 73 74 65 61 64 20 | 6f 66 20 6d 61 6c 6c 6f |instead |of mallo|
|000018a0| 63 2e 0a 58 0a 58 09 54 | 68 69 73 20 69 6d 70 6c |c..X.X.T|his impl|
|000018b0| 65 6d 65 6e 74 61 74 69 | 6f 6e 20 6f 66 20 74 68 |ementati|on of th|
|000018c0| 65 20 50 57 42 20 6c 69 | 62 72 61 72 79 20 61 6c |e PWB li|brary al|
|000018d0| 6c 6f 63 61 28 29 20 66 | 75 6e 63 74 69 6f 6e 2c |loca() f|unction,|
|000018e0| 0a 58 09 77 68 69 63 68 | 20 69 73 20 75 73 65 64 |.X.which| is used|
|000018f0| 20 74 6f 20 61 6c 6c 6f | 63 61 74 65 20 73 70 61 | to allo|cate spa|
|00001900| 63 65 20 6f 66 66 20 74 | 68 65 20 72 75 6e 2d 74 |ce off t|he run-t|
|00001910| 69 6d 65 20 73 74 61 63 | 6b 20 73 6f 0a 58 09 74 |ime stac|k so.X.t|
|00001920| 68 61 74 20 69 74 20 69 | 73 20 61 75 74 6f 6d 61 |hat it i|s automa|
|00001930| 74 69 63 61 6c 6c 79 20 | 72 65 63 6c 61 69 6d 65 |tically |reclaime|
|00001940| 64 20 75 70 6f 6e 20 70 | 72 6f 63 65 64 75 72 65 |d upon p|rocedure|
|00001950| 20 65 78 69 74 2c 20 0a | 58 09 77 61 73 20 69 6e | exit, .|X.was in|
|00001960| 73 70 69 72 65 64 20 62 | 79 20 64 69 73 63 75 73 |spired b|y discus|
|00001970| 73 69 6f 6e 73 20 77 69 | 74 68 20 4a 2e 20 51 2e |sions wi|th J. Q.|
|00001980| 20 4a 6f 68 6e 73 6f 6e | 20 6f 66 20 43 6f 72 6e | Johnson| of Corn|
|00001990| 65 6c 6c 2e 0a 58 0a 58 | 09 49 74 20 73 68 6f 75 |ell..X.X|.It shou|
|000019a0| 6c 64 20 77 6f 72 6b 20 | 75 6e 64 65 72 20 61 6e |ld work |under an|
|000019b0| 79 20 43 20 69 6d 70 6c | 65 6d 65 6e 74 61 74 69 |y C impl|ementati|
|000019c0| 6f 6e 20 74 68 61 74 20 | 75 73 65 73 20 61 6e 0a |on that |uses an.|
|000019d0| 58 09 61 63 74 75 61 6c | 20 70 72 6f 63 65 64 75 |X.actual| procedu|
|000019e0| 72 65 20 73 74 61 63 6b | 20 28 61 73 20 6f 70 70 |re stack| (as opp|
|000019f0| 6f 73 65 64 20 74 6f 20 | 61 20 6c 69 6e 6b 65 64 |osed to |a linked|
|00001a00| 20 6c 69 73 74 20 6f 66 | 0a 58 09 66 72 61 6d 65 | list of|.X.frame|
|00001a10| 73 29 2e 20 20 54 68 65 | 72 65 20 61 72 65 20 73 |s). The|re are s|
|00001a20| 6f 6d 65 20 70 72 65 70 | 72 6f 63 65 73 73 6f 72 |ome prep|rocessor|
|00001a30| 20 63 6f 6e 73 74 61 6e | 74 73 20 74 68 61 74 20 | constan|ts that |
|00001a40| 63 61 6e 0a 58 09 62 65 | 20 64 65 66 69 6e 65 64 |can.X.be| defined|
|00001a50| 20 77 68 65 6e 20 63 6f | 6d 70 69 6c 69 6e 67 20 | when co|mpiling |
|00001a60| 66 6f 72 20 79 6f 75 72 | 20 73 70 65 63 69 66 69 |for your| specifi|
|00001a70| 63 20 73 79 73 74 65 6d | 2c 20 66 6f 72 0a 58 09 |c system|, for.X.|
|00001a80| 69 6d 70 72 6f 76 65 64 | 20 65 66 66 69 63 69 65 |improved| efficie|
|00001a90| 6e 63 79 3b 20 68 6f 77 | 65 76 65 72 2c 20 74 68 |ncy; how|ever, th|
|00001aa0| 65 20 64 65 66 61 75 6c | 74 73 20 73 68 6f 75 6c |e defaul|ts shoul|
|00001ab0| 64 20 62 65 20 6f 6b 61 | 79 2e 0a 58 0a 58 09 54 |d be oka|y..X.X.T|
|00001ac0| 68 65 20 67 65 6e 65 72 | 61 6c 20 63 6f 6e 63 65 |he gener|al conce|
|00001ad0| 70 74 20 6f 66 20 74 68 | 69 73 20 69 6d 70 6c 65 |pt of th|is imple|
|00001ae0| 6d 65 6e 74 61 74 69 6f | 6e 20 69 73 20 74 6f 20 |mentatio|n is to |
|00001af0| 6b 65 65 70 0a 58 09 74 | 72 61 63 6b 20 6f 66 20 |keep.X.t|rack of |
|00001b00| 61 6c 6c 20 61 6c 6c 6f | 63 61 28 29 2d 61 6c 6c |all allo|ca()-all|
|00001b10| 6f 63 61 74 65 64 20 62 | 6c 6f 63 6b 73 2c 20 61 |ocated b|locks, a|
|00001b20| 6e 64 20 72 65 63 6c 61 | 69 6d 20 61 6e 79 0a 58 |nd recla|im any.X|
|00001b30| 09 74 68 61 74 20 61 72 | 65 20 66 6f 75 6e 64 20 |.that ar|e found |
|00001b40| 74 6f 20 62 65 20 64 65 | 65 70 65 72 20 69 6e 20 |to be de|eper in |
|00001b50| 74 68 65 20 73 74 61 63 | 6b 20 74 68 61 6e 20 74 |the stac|k than t|
|00001b60| 68 65 20 63 75 72 72 65 | 6e 74 0a 58 09 69 6e 76 |he curre|nt.X.inv|
|00001b70| 6f 63 61 74 69 6f 6e 2e | 20 20 54 68 69 73 20 68 |ocation.| This h|
|00001b80| 65 75 72 69 73 74 69 63 | 20 64 6f 65 73 20 6e 6f |euristic| does no|
|00001b90| 74 20 72 65 63 6c 61 69 | 6d 20 73 74 6f 72 61 67 |t reclai|m storag|
|00001ba0| 65 20 61 73 0a 58 09 73 | 6f 6f 6e 20 61 73 20 69 |e as.X.s|oon as i|
|00001bb0| 74 20 62 65 63 6f 6d 65 | 73 20 69 6e 76 61 6c 69 |t become|s invali|
|00001bc0| 64 2c 20 62 75 74 20 69 | 74 20 77 69 6c 6c 20 64 |d, but i|t will d|
|00001bd0| 6f 20 73 6f 20 65 76 65 | 6e 74 75 61 6c 6c 79 2e |o so eve|ntually.|
|00001be0| 0a 58 0a 58 09 41 73 20 | 61 20 73 70 65 63 69 61 |.X.X.As |a specia|
|00001bf0| 6c 20 63 61 73 65 2c 20 | 61 6c 6c 6f 63 61 28 30 |l case, |alloca(0|
|00001c00| 29 20 72 65 63 6c 61 69 | 6d 73 20 73 74 6f 72 61 |) reclai|ms stora|
|00001c10| 67 65 20 77 69 74 68 6f | 75 74 0a 58 09 61 6c 6c |ge witho|ut.X.all|
|00001c20| 6f 63 61 74 69 6e 67 20 | 61 6e 79 2e 20 20 49 74 |ocating |any. It|
|00001c30| 20 69 73 20 61 20 67 6f | 6f 64 20 69 64 65 61 20 | is a go|od idea |
|00001c40| 74 6f 20 75 73 65 20 61 | 6c 6c 6f 63 61 28 30 29 |to use a|lloca(0)|
|00001c50| 20 69 6e 0a 58 09 79 6f | 75 72 20 6d 61 69 6e 20 | in.X.yo|ur main |
|00001c60| 63 6f 6e 74 72 6f 6c 20 | 6c 6f 6f 70 2c 20 65 74 |control |loop, et|
|00001c70| 63 2e 20 74 6f 20 66 6f | 72 63 65 20 67 61 72 62 |c. to fo|rce garb|
|00001c80| 61 67 65 20 63 6f 6c 6c | 65 63 74 69 6f 6e 2e 0a |age coll|ection..|
|00001c90| 58 2a 2f 0a 58 23 69 66 | 6e 64 65 66 20 6c 69 6e |X*/.X#if|ndef lin|
|00001ca0| 74 0a 58 73 74 61 74 69 | 63 20 63 68 61 72 09 53 |t.Xstati|c char.S|
|00001cb0| 43 43 53 69 64 5b 5d 20 | 3d 20 22 40 28 23 29 61 |CCSid[] |= "@(#)a|
|00001cc0| 6c 6c 6f 63 61 2e 63 09 | 31 2e 31 22 3b 09 2f 2a |lloca.c.|1.1";./*|
|00001cd0| 20 66 6f 72 20 74 68 65 | 20 22 77 68 61 74 22 20 | for the| "what" |
|00001ce0| 75 74 69 6c 69 74 79 20 | 2a 2f 0a 58 23 65 6e 64 |utility |*/.X#end|
|00001cf0| 69 66 0a 58 0a 58 23 69 | 66 64 65 66 20 65 6d 61 |if.X.X#i|fdef ema|
|00001d00| 63 73 0a 58 23 69 6e 63 | 6c 75 64 65 20 22 63 6f |cs.X#inc|lude "co|
|00001d10| 6e 66 69 67 2e 68 22 0a | 58 23 69 66 64 65 66 20 |nfig.h".|X#ifdef |
|00001d20| 73 74 61 74 69 63 0a 58 | 2f 2a 20 61 63 74 75 61 |static.X|/* actua|
|00001d30| 6c 6c 79 2c 20 6f 6e 6c | 79 20 77 61 6e 74 20 74 |lly, onl|y want t|
|00001d40| 68 69 73 20 69 66 20 73 | 74 61 74 69 63 20 69 73 |his if s|tatic is|
|00001d50| 20 64 65 66 69 6e 65 64 | 20 61 73 20 22 22 0a 58 | defined| as "".X|
|00001d60| 20 20 20 2d 2d 20 74 68 | 69 73 20 69 73 20 66 6f | -- th|is is fo|
|00001d70| 72 20 75 73 67 2c 20 69 | 6e 20 77 68 69 63 68 20 |r usg, i|n which |
|00001d80| 65 6d 61 63 73 20 6d 75 | 73 74 20 75 6e 64 65 66 |emacs mu|st undef|
|00001d90| 69 6e 65 20 73 74 61 74 | 69 63 0a 58 20 20 20 69 |ine stat|ic.X i|
|00001da0| 6e 20 6f 72 64 65 72 20 | 74 6f 20 6d 61 6b 65 20 |n order |to make |
|00001db0| 75 6e 65 78 65 63 20 77 | 6f 72 6b 61 62 6c 65 0a |unexec w|orkable.|
|00001dc0| 58 20 20 20 2a 2f 0a 58 | 23 69 66 6e 64 65 66 20 |X */.X|#ifndef |
|00001dd0| 53 54 41 43 4b 5f 44 49 | 52 45 43 54 49 4f 4e 0a |STACK_DI|RECTION.|
|00001de0| 58 79 6f 75 0a 58 6c 6f | 73 65 0a 58 2d 2d 20 6d |Xyou.Xlo|se.X-- m|
|00001df0| 75 73 74 20 6b 6e 6f 77 | 20 53 54 41 43 4b 5f 44 |ust know| STACK_D|
|00001e00| 49 52 45 43 54 49 4f 4e | 20 61 74 20 63 6f 6d 70 |IRECTION| at comp|
|00001e10| 69 6c 65 2d 74 69 6d 65 | 0a 58 23 65 6e 64 69 66 |ile-time|.X#endif|
|00001e20| 20 2f 2a 20 53 54 41 43 | 4b 5f 44 49 52 45 43 54 | /* STAC|K_DIRECT|
|00001e30| 49 4f 4e 20 75 6e 64 65 | 66 69 6e 65 64 20 2a 2f |ION unde|fined */|
|00001e40| 0a 58 23 65 6e 64 69 66 | 20 2f 2a 20 73 74 61 74 |.X#endif| /* stat|
|00001e50| 69 63 20 2a 2f 0a 58 23 | 65 6e 64 69 66 20 2f 2a |ic */.X#|endif /*|
|00001e60| 20 65 6d 61 63 73 20 2a | 2f 0a 58 0a 58 23 69 66 | emacs *|/.X.X#if|
|00001e70| 64 65 66 20 58 33 4a 31 | 31 0a 58 74 79 70 65 64 |def X3J1|1.Xtyped|
|00001e80| 65 66 20 76 6f 69 64 09 | 2a 70 6f 69 6e 74 65 72 |ef void.|*pointer|
|00001e90| 3b 09 09 2f 2a 20 67 65 | 6e 65 72 69 63 20 70 6f |;../* ge|neric po|
|00001ea0| 69 6e 74 65 72 20 74 79 | 70 65 20 2a 2f 0a 58 23 |inter ty|pe */.X#|
|00001eb0| 65 6c 73 65 0a 58 74 79 | 70 65 64 65 66 20 63 68 |else.Xty|pedef ch|
|00001ec0| 61 72 09 2a 70 6f 69 6e | 74 65 72 3b 09 09 2f 2a |ar.*poin|ter;../*|
|00001ed0| 20 67 65 6e 65 72 69 63 | 20 70 6f 69 6e 74 65 72 | generic| pointer|
|00001ee0| 20 74 79 70 65 20 2a 2f | 0a 58 23 65 6e 64 69 66 | type */|.X#endif|
|00001ef0| 0a 58 0a 58 23 64 65 66 | 69 6e 65 09 4e 55 4c 4c |.X.X#def|ine.NULL|
|00001f00| 09 30 09 09 09 2f 2a 20 | 6e 75 6c 6c 20 70 6f 69 |.0.../* |null poi|
|00001f10| 6e 74 65 72 20 63 6f 6e | 73 74 61 6e 74 20 2a 2f |nter con|stant */|
|00001f20| 0a 58 0a 58 65 78 74 65 | 72 6e 20 76 6f 69 64 09 |.X.Xexte|rn void.|
|00001f30| 66 72 65 65 28 29 3b 0a | 58 65 78 74 65 72 6e 20 |free();.|Xextern |
|00001f40| 70 6f 69 6e 74 65 72 09 | 78 6d 61 6c 6c 6f 63 28 |pointer.|xmalloc(|
|00001f50| 29 3b 0a 58 0a 58 2f 2a | 0a 58 09 44 65 66 69 6e |);.X.X/*|.X.Defin|
|00001f60| 65 20 53 54 41 43 4b 5f | 44 49 52 45 43 54 49 4f |e STACK_|DIRECTIO|
|00001f70| 4e 20 69 66 20 79 6f 75 | 20 6b 6e 6f 77 20 74 68 |N if you| know th|
|00001f80| 65 20 64 69 72 65 63 74 | 69 6f 6e 20 6f 66 20 73 |e direct|ion of s|
|00001f90| 74 61 63 6b 0a 58 09 67 | 72 6f 77 74 68 20 66 6f |tack.X.g|rowth fo|
|00001fa0| 72 20 79 6f 75 72 20 73 | 79 73 74 65 6d 3b 20 6f |r your s|ystem; o|
|00001fb0| 74 68 65 72 77 69 73 65 | 20 69 74 20 77 69 6c 6c |therwise| it will|
|00001fc0| 20 62 65 20 61 75 74 6f | 6d 61 74 69 63 61 6c 6c | be auto|maticall|
|00001fd0| 79 0a 58 09 64 65 64 75 | 63 65 64 20 61 74 20 72 |y.X.dedu|ced at r|
|00001fe0| 75 6e 2d 74 69 6d 65 2e | 0a 58 0a 58 09 53 54 41 |un-time.|.X.X.STA|
|00001ff0| 43 4b 5f 44 49 52 45 43 | 54 49 4f 4e 20 3e 20 30 |CK_DIREC|TION > 0|
|00002000| 20 3d 3e 20 67 72 6f 77 | 73 20 74 6f 77 61 72 64 | => grow|s toward|
|00002010| 20 68 69 67 68 65 72 20 | 61 64 64 72 65 73 73 65 | higher |addresse|
|00002020| 73 0a 58 09 53 54 41 43 | 4b 5f 44 49 52 45 43 54 |s.X.STAC|K_DIRECT|
|00002030| 49 4f 4e 20 3c 20 30 20 | 3d 3e 20 67 72 6f 77 73 |ION < 0 |=> grows|
|00002040| 20 74 6f 77 61 72 64 20 | 6c 6f 77 65 72 20 61 64 | toward |lower ad|
|00002050| 64 72 65 73 73 65 73 0a | 58 09 53 54 41 43 4b 5f |dresses.|X.STACK_|
|00002060| 44 49 52 45 43 54 49 4f | 4e 20 3d 20 30 20 3d 3e |DIRECTIO|N = 0 =>|
|00002070| 20 64 69 72 65 63 74 69 | 6f 6e 20 6f 66 20 67 72 | directi|on of gr|
|00002080| 6f 77 74 68 20 75 6e 6b | 6e 6f 77 6e 0a 58 2a 2f |owth unk|nown.X*/|
|00002090| 0a 58 0a 58 23 69 66 6e | 64 65 66 20 53 54 41 43 |.X.X#ifn|def STAC|
|000020a0| 4b 5f 44 49 52 45 43 54 | 49 4f 4e 0a 58 23 64 65 |K_DIRECT|ION.X#de|
|000020b0| 66 69 6e 65 09 53 54 41 | 43 4b 5f 44 49 52 45 43 |fine.STA|CK_DIREC|
|000020c0| 54 49 4f 4e 09 30 09 09 | 2f 2a 20 64 69 72 65 63 |TION.0..|/* direc|
|000020d0| 74 69 6f 6e 20 75 6e 6b | 6e 6f 77 6e 20 2a 2f 0a |tion unk|nown */.|
|000020e0| 58 23 65 6e 64 69 66 0a | 58 0a 58 23 69 66 20 53 |X#endif.|X.X#if S|
|000020f0| 54 41 43 4b 5f 44 49 52 | 45 43 54 49 4f 4e 20 21 |TACK_DIR|ECTION !|
|00002100| 3d 20 30 0a 58 0a 58 23 | 64 65 66 69 6e 65 09 53 |= 0.X.X#|define.S|
|00002110| 54 41 43 4b 5f 44 49 52 | 09 53 54 41 43 4b 5f 44 |TACK_DIR|.STACK_D|
|00002120| 49 52 45 43 54 49 4f 4e | 09 2f 2a 20 6b 6e 6f 77 |IRECTION|./* know|
|00002130| 6e 20 61 74 20 63 6f 6d | 70 69 6c 65 2d 74 69 6d |n at com|pile-tim|
|00002140| 65 20 2a 2f 0a 58 0a 58 | 23 65 6c 73 65 09 2f 2a |e */.X.X|#else./*|
|00002150| 20 53 54 41 43 4b 5f 44 | 49 52 45 43 54 49 4f 4e | STACK_D|IRECTION|
|00002160| 20 3d 3d 20 30 3b 20 6e | 65 65 64 20 72 75 6e 2d | == 0; n|eed run-|
|00002170| 74 69 6d 65 20 63 6f 64 | 65 20 2a 2f 0a 58 0a 58 |time cod|e */.X.X|
|00002180| 73 74 61 74 69 63 20 69 | 6e 74 09 73 74 61 63 6b |static i|nt.stack|
|00002190| 5f 64 69 72 3b 09 09 2f | 2a 20 31 20 6f 72 20 2d |_dir;../|* 1 or -|
|000021a0| 31 20 6f 6e 63 65 20 6b | 6e 6f 77 6e 20 2a 2f 0a |1 once k|nown */.|
|000021b0| 58 23 64 65 66 69 6e 65 | 09 53 54 41 43 4b 5f 44 |X#define|.STACK_D|
|000021c0| 49 52 09 73 74 61 63 6b | 5f 64 69 72 0a 58 0a 58 |IR.stack|_dir.X.X|
|000021d0| 73 74 61 74 69 63 20 76 | 6f 69 64 0a 58 66 69 6e |static v|oid.Xfin|
|000021e0| 64 5f 73 74 61 63 6b 5f | 64 69 72 65 63 74 69 6f |d_stack_|directio|
|000021f0| 6e 20 28 2f 2a 20 76 6f | 69 64 20 2a 2f 29 0a 58 |n (/* vo|id */).X|
|00002200| 7b 0a 58 20 20 73 74 61 | 74 69 63 20 63 68 61 72 |{.X sta|tic char|
|00002210| 09 2a 61 64 64 72 20 3d | 20 4e 55 4c 4c 3b 09 2f |.*addr =| NULL;./|
|00002220| 2a 20 61 64 64 72 65 73 | 73 20 6f 66 20 66 69 72 |* addres|s of fir|
|00002230| 73 74 0a 58 09 09 09 09 | 20 20 20 60 64 75 6d 6d |st.X....| `dumm|
|00002240| 79 27 2c 20 6f 6e 63 65 | 20 6b 6e 6f 77 6e 20 2a |y', once| known *|
|00002250| 2f 0a 58 20 20 61 75 74 | 6f 20 63 68 61 72 09 64 |/.X aut|o char.d|
|00002260| 75 6d 6d 79 3b 09 09 2f | 2a 20 74 6f 20 67 65 74 |ummy;../|* to get|
|00002270| 20 73 74 61 63 6b 20 61 | 64 64 72 65 73 73 20 2a | stack a|ddress *|
|00002280| 2f 0a 58 0a 58 20 20 69 | 66 20 28 61 64 64 72 20 |/.X.X i|f (addr |
|00002290| 3d 3d 20 4e 55 4c 4c 29 | 0a 58 20 20 20 20 7b 09 |== NULL)|.X {.|
|000022a0| 09 09 09 2f 2a 20 69 6e | 69 74 69 61 6c 20 65 6e |.../* in|itial en|
|000022b0| 74 72 79 20 2a 2f 0a 58 | 20 20 20 20 20 20 61 64 |try */.X| ad|
|000022c0| 64 72 20 3d 20 26 64 75 | 6d 6d 79 3b 0a 58 0a 58 |dr = &du|mmy;.X.X|
|000022d0| 20 20 20 20 20 20 66 69 | 6e 64 5f 73 74 61 63 6b | fi|nd_stack|
|000022e0| 5f 64 69 72 65 63 74 69 | 6f 6e 20 28 29 3b 09 2f |_directi|on ();./|
|000022f0| 2a 20 72 65 63 75 72 73 | 65 20 6f 6e 63 65 20 2a |* recurs|e once *|
|00002300| 2f 0a 58 20 20 20 20 7d | 0a 58 20 20 65 6c 73 65 |/.X }|.X else|
|00002310| 09 09 09 09 2f 2a 20 73 | 65 63 6f 6e 64 20 65 6e |..../* s|econd en|
|00002320| 74 72 79 20 2a 2f 0a 58 | 20 20 20 20 69 66 20 28 |try */.X| if (|
|00002330| 26 64 75 6d 6d 79 20 3e | 20 61 64 64 72 29 0a 58 |&dummy >| addr).X|
|00002340| 20 20 20 20 20 20 73 74 | 61 63 6b 5f 64 69 72 20 | st|ack_dir |
|00002350| 3d 20 31 3b 09 09 2f 2a | 20 73 74 61 63 6b 20 67 |= 1;../*| stack g|
|00002360| 72 65 77 20 75 70 77 61 | 72 64 20 2a 2f 0a 58 20 |rew upwa|rd */.X |
|00002370| 20 20 20 65 6c 73 65 0a | 58 20 20 20 20 20 20 73 | else.|X s|
|00002380| 74 61 63 6b 5f 64 69 72 | 20 3d 20 2d 31 3b 09 09 |tack_dir| = -1;..|
|00002390| 2f 2a 20 73 74 61 63 6b | 20 67 72 65 77 20 64 6f |/* stack| grew do|
|000023a0| 77 6e 77 61 72 64 20 2a | 2f 0a 58 7d 0a 58 0a 58 |wnward *|/.X}.X.X|
|000023b0| 23 65 6e 64 69 66 09 2f | 2a 20 53 54 41 43 4b 5f |#endif./|* STACK_|
|000023c0| 44 49 52 45 43 54 49 4f | 4e 20 3d 3d 20 30 20 2a |DIRECTIO|N == 0 *|
|000023d0| 2f 0a 58 0a 58 2f 2a 0a | 58 09 41 6e 20 22 61 6c |/.X.X/*.|X.An "al|
|000023e0| 6c 6f 63 61 20 68 65 61 | 64 65 72 22 20 69 73 20 |loca hea|der" is |
|000023f0| 75 73 65 64 20 74 6f 3a | 0a 58 09 28 61 29 20 63 |used to:|.X.(a) c|
|00002400| 68 61 69 6e 20 74 6f 67 | 65 74 68 65 72 20 61 6c |hain tog|ether al|
|00002410| 6c 20 61 6c 6c 6f 63 61 | 28 29 65 64 20 62 6c 6f |l alloca|()ed blo|
|00002420| 63 6b 73 3b 0a 58 09 28 | 62 29 20 6b 65 65 70 20 |cks;.X.(|b) keep |
|00002430| 74 72 61 63 6b 20 6f 66 | 20 73 74 61 63 6b 20 64 |track of| stack d|
|00002440| 65 70 74 68 2e 0a 58 0a | 58 09 49 74 20 69 73 20 |epth..X.|X.It is |
|00002450| 76 65 72 79 20 69 6d 70 | 6f 72 74 61 6e 74 20 74 |very imp|ortant t|
|00002460| 68 61 74 20 73 69 7a 65 | 6f 66 28 68 65 61 64 65 |hat size|of(heade|
|00002470| 72 29 20 61 67 72 65 65 | 20 77 69 74 68 20 6d 61 |r) agree| with ma|
|00002480| 6c 6c 6f 63 28 29 0a 58 | 09 61 6c 69 67 6e 6d 65 |lloc().X|.alignme|
|00002490| 6e 74 20 63 68 75 6e 6b | 20 73 69 7a 65 2e 20 20 |nt chunk| size. |
|000024a0| 54 68 65 20 66 6f 6c 6c | 6f 77 69 6e 67 20 64 65 |The foll|owing de|
|000024b0| 66 61 75 6c 74 20 73 68 | 6f 75 6c 64 20 77 6f 72 |fault sh|ould wor|
|000024c0| 6b 20 6f 6b 61 79 2e 0a | 58 2a 2f 0a 58 0a 58 23 |k okay..|X*/.X.X#|
|000024d0| 69 66 6e 64 65 66 09 41 | 4c 49 47 4e 5f 53 49 5a |ifndef.A|LIGN_SIZ|
|000024e0| 45 0a 58 23 64 65 66 69 | 6e 65 09 41 4c 49 47 4e |E.X#defi|ne.ALIGN|
|000024f0| 5f 53 49 5a 45 09 73 69 | 7a 65 6f 66 28 64 6f 75 |_SIZE.si|zeof(dou|
|00002500| 62 6c 65 29 0a 58 23 65 | 6e 64 69 66 0a 58 0a 58 |ble).X#e|ndif.X.X|
|00002510| 74 79 70 65 64 65 66 20 | 75 6e 69 6f 6e 20 68 64 |typedef |union hd|
|00002520| 72 0a 58 7b 0a 58 20 20 | 63 68 61 72 09 61 6c 69 |r.X{.X |char.ali|
|00002530| 67 6e 5b 41 4c 49 47 4e | 5f 53 49 5a 45 5d 3b 09 |gn[ALIGN|_SIZE];.|
|00002540| 2f 2a 20 74 6f 20 66 6f | 72 63 65 20 73 69 7a 65 |/* to fo|rce size|
|00002550| 6f 66 28 68 65 61 64 65 | 72 29 20 2a 2f 0a 58 20 |of(heade|r) */.X |
|00002560| 20 73 74 72 75 63 74 0a | 58 20 20 20 20 7b 0a 58 | struct.|X {.X|
|00002570| 20 20 20 20 20 20 75 6e | 69 6f 6e 20 68 64 72 20 | un|ion hdr |
|00002580| 2a 6e 65 78 74 3b 09 09 | 2f 2a 20 66 6f 72 20 63 |*next;..|/* for c|
|00002590| 68 61 69 6e 69 6e 67 20 | 68 65 61 64 65 72 73 20 |haining |headers |
|000025a0| 2a 2f 0a 58 20 20 20 20 | 20 20 63 68 61 72 20 2a |*/.X | char *|
|000025b0| 64 65 65 70 3b 09 09 2f | 2a 20 66 6f 72 20 73 74 |deep;../|* for st|
|000025c0| 61 63 6b 20 64 65 70 74 | 68 20 6d 65 61 73 75 72 |ack dept|h measur|
|000025d0| 65 20 2a 2f 0a 58 20 20 | 20 20 7d 20 68 3b 0a 58 |e */.X | } h;.X|
|000025e0| 7d 20 68 65 61 64 65 72 | 3b 0a 58 0a 58 2f 2a 0a |} header|;.X.X/*.|
|000025f0| 58 09 61 6c 6c 6f 63 61 | 28 20 73 69 7a 65 20 29 |X.alloca|( size )|
|00002600| 20 72 65 74 75 72 6e 73 | 20 61 20 70 6f 69 6e 74 | returns| a point|
|00002610| 65 72 20 74 6f 20 61 74 | 20 6c 65 61 73 74 20 60 |er to at| least `|
|00002620| 73 69 7a 65 27 20 62 79 | 74 65 73 20 6f 66 0a 58 |size' by|tes of.X|
|00002630| 09 73 74 6f 72 61 67 65 | 20 77 68 69 63 68 20 77 |.storage| which w|
|00002640| 69 6c 6c 20 62 65 20 61 | 75 74 6f 6d 61 74 69 63 |ill be a|utomatic|
|00002650| 61 6c 6c 79 20 72 65 63 | 6c 61 69 6d 65 64 20 75 |ally rec|laimed u|
|00002660| 70 6f 6e 20 65 78 69 74 | 20 66 72 6f 6d 0a 58 09 |pon exit| from.X.|
|00002670| 74 68 65 20 70 72 6f 63 | 65 64 75 72 65 20 74 68 |the proc|edure th|
|00002680| 61 74 20 63 61 6c 6c 65 | 64 20 61 6c 6c 6f 63 61 |at calle|d alloca|
|00002690| 28 29 2e 20 20 4f 72 69 | 67 69 6e 61 6c 6c 79 2c |(). Ori|ginally,|
|000026a0| 20 74 68 69 73 20 73 70 | 61 63 65 0a 58 09 77 61 | this sp|ace.X.wa|
|000026b0| 73 20 73 75 70 70 6f 73 | 65 64 20 74 6f 20 62 65 |s suppos|ed to be|
|000026c0| 20 74 61 6b 65 6e 20 66 | 72 6f 6d 20 74 68 65 20 | taken f|rom the |
|000026d0| 63 75 72 72 65 6e 74 20 | 73 74 61 63 6b 20 66 72 |current |stack fr|
|000026e0| 61 6d 65 20 6f 66 20 74 | 68 65 0a 58 09 63 61 6c |ame of t|he.X.cal|
|000026f0| 6c 65 72 2c 20 62 75 74 | 20 74 68 61 74 20 6d 65 |ler, but| that me|
|00002700| 74 68 6f 64 20 63 61 6e | 6e 6f 74 20 62 65 20 6d |thod can|not be m|
|00002710| 61 64 65 20 74 6f 20 77 | 6f 72 6b 20 66 6f 72 20 |ade to w|ork for |
|00002720| 73 6f 6d 65 0a 58 09 69 | 6d 70 6c 65 6d 65 6e 74 |some.X.i|mplement|
|00002730| 61 74 69 6f 6e 73 20 6f | 66 20 43 2c 20 66 6f 72 |ations o|f C, for|
|00002740| 20 65 78 61 6d 70 6c 65 | 20 75 6e 64 65 72 20 47 | example| under G|
|00002750| 6f 75 6c 64 27 73 20 55 | 54 58 2f 33 32 2e 0a 58 |ould's U|TX/32..X|
|00002760| 2a 2f 0a 58 0a 58 73 74 | 61 74 69 63 20 68 65 61 |*/.X.Xst|atic hea|
|00002770| 64 65 72 20 2a 6c 61 73 | 74 5f 61 6c 6c 6f 63 61 |der *las|t_alloca|
|00002780| 5f 68 65 61 64 65 72 20 | 3d 20 4e 55 4c 4c 3b 20 |_header |= NULL; |
|00002790| 2f 2a 20 2d 3e 20 6c 61 | 73 74 20 61 6c 6c 6f 63 |/* -> la|st alloc|
|000027a0| 61 20 68 65 61 64 65 72 | 20 2a 2f 0a 58 0a 58 70 |a header| */.X.Xp|
|000027b0| 6f 69 6e 74 65 72 0a 58 | 61 6c 6c 6f 63 61 20 28 |ointer.X|alloca (|
|000027c0| 73 69 7a 65 29 09 09 09 | 2f 2a 20 72 65 74 75 72 |size)...|/* retur|
|000027d0| 6e 73 20 70 6f 69 6e 74 | 65 72 20 74 6f 20 73 74 |ns point|er to st|
|000027e0| 6f 72 61 67 65 20 2a 2f | 0a 58 20 20 20 20 20 75 |orage */|.X u|
|000027f0| 6e 73 69 67 6e 65 64 09 | 73 69 7a 65 3b 09 09 2f |nsigned.|size;../|
|00002800| 2a 20 23 20 62 79 74 65 | 73 20 74 6f 20 61 6c 6c |* # byte|s to all|
|00002810| 6f 63 61 74 65 20 2a 2f | 0a 58 7b 0a 58 20 20 61 |ocate */|.X{.X a|
|00002820| 75 74 6f 20 63 68 61 72 | 09 70 72 6f 62 65 3b 09 |uto char|.probe;.|
|00002830| 09 2f 2a 20 70 72 6f 62 | 65 73 20 73 74 61 63 6b |./* prob|es stack|
|00002840| 20 64 65 70 74 68 3a 20 | 2a 2f 0a 58 20 20 72 65 | depth: |*/.X re|
|00002850| 67 69 73 74 65 72 20 63 | 68 61 72 09 2a 64 65 70 |gister c|har.*dep|
|00002860| 74 68 20 3d 20 26 70 72 | 6f 62 65 3b 0a 58 0a 58 |th = &pr|obe;.X.X|
|00002870| 23 69 66 20 53 54 41 43 | 4b 5f 44 49 52 45 43 54 |#if STAC|K_DIRECT|
|00002880| 49 4f 4e 20 3d 3d 20 30 | 0a 58 20 20 69 66 20 28 |ION == 0|.X if (|
|00002890| 53 54 41 43 4b 5f 44 49 | 52 20 3d 3d 20 30 29 09 |STACK_DI|R == 0).|
|000028a0| 09 2f 2a 20 75 6e 6b 6e | 6f 77 6e 20 67 72 6f 77 |./* unkn|own grow|
|000028b0| 74 68 20 64 69 72 65 63 | 74 69 6f 6e 20 2a 2f 0a |th direc|tion */.|
|000028c0| 58 20 20 20 20 66 69 6e | 64 5f 73 74 61 63 6b 5f |X fin|d_stack_|
|000028d0| 64 69 72 65 63 74 69 6f | 6e 20 28 29 3b 0a 58 23 |directio|n ();.X#|
|000028e0| 65 6e 64 69 66 0a 58 0a | 58 09 09 09 09 2f 2a 20 |endif.X.|X..../* |
|000028f0| 52 65 63 6c 61 69 6d 20 | 67 61 72 62 61 67 65 2c |Reclaim |garbage,|
|00002900| 20 64 65 66 69 6e 65 64 | 20 61 73 20 61 6c 6c 20 | defined| as all |
|00002910| 61 6c 6c 6f 63 61 28 29 | 65 64 20 73 74 6f 72 61 |alloca()|ed stora|
|00002920| 67 65 20 74 68 61 74 0a | 58 09 09 09 09 20 20 20 |ge that.|X.... |
|00002930| 77 61 73 20 61 6c 6c 6f | 63 61 74 65 64 20 66 72 |was allo|cated fr|
|00002940| 6f 6d 20 64 65 65 70 65 | 72 20 69 6e 20 74 68 65 |om deepe|r in the|
|00002950| 20 73 74 61 63 6b 20 74 | 68 61 6e 20 63 75 72 72 | stack t|han curr|
|00002960| 65 6e 74 6c 79 2e 20 2a | 2f 0a 58 0a 58 20 20 7b |ently. *|/.X.X {|
|00002970| 0a 58 20 20 20 20 72 65 | 67 69 73 74 65 72 20 68 |.X re|gister h|
|00002980| 65 61 64 65 72 09 2a 68 | 70 3b 09 2f 2a 20 74 72 |eader.*h|p;./* tr|
|00002990| 61 76 65 72 73 65 73 20 | 6c 69 6e 6b 65 64 20 6c |averses |linked l|
|000029a0| 69 73 74 20 2a 2f 0a 58 | 0a 58 20 20 20 20 66 6f |ist */.X|.X fo|
|000029b0| 72 20 28 68 70 20 3d 20 | 6c 61 73 74 5f 61 6c 6c |r (hp = |last_all|
|000029c0| 6f 63 61 5f 68 65 61 64 | 65 72 3b 20 68 70 20 21 |oca_head|er; hp !|
|000029d0| 3d 20 4e 55 4c 4c 3b 29 | 0a 58 20 20 20 20 20 20 |= NULL;)|.X |
|000029e0| 69 66 20 28 53 54 41 43 | 4b 5f 44 49 52 20 3e 20 |if (STAC|K_DIR > |
|000029f0| 30 20 26 26 20 68 70 2d | 3e 68 2e 64 65 65 70 20 |0 && hp-|>h.deep |
|00002a00| 3e 20 64 65 70 74 68 0a | 58 09 20 20 7c 7c 20 53 |> depth.|X. || S|
|00002a10| 54 41 43 4b 5f 44 49 52 | 20 3c 20 30 20 26 26 20 |TACK_DIR| < 0 && |
|00002a20| 68 70 2d 3e 68 2e 64 65 | 65 70 20 3c 20 64 65 70 |hp->h.de|ep < dep|
|00002a30| 74 68 29 0a 58 09 7b 0a | 58 09 20 20 72 65 67 69 |th).X.{.|X. regi|
|00002a40| 73 74 65 72 20 68 65 61 | 64 65 72 09 2a 6e 70 20 |ster hea|der.*np |
|00002a50| 3d 20 68 70 2d 3e 68 2e | 6e 65 78 74 3b 0a 58 0a |= hp->h.|next;.X.|
|00002a60| 58 09 20 20 66 72 65 65 | 20 28 28 70 6f 69 6e 74 |X. free| ((point|
|00002a70| 65 72 29 20 68 70 29 3b | 09 2f 2a 20 63 6f 6c 6c |er) hp);|./* coll|
|00002a80| 65 63 74 20 67 61 72 62 | 61 67 65 20 2a 2f 0a 58 |ect garb|age */.X|
|00002a90| 0a 58 09 20 20 68 70 20 | 3d 20 6e 70 3b 09 09 2f |.X. hp |= np;../|
|00002aa0| 2a 20 2d 3e 20 6e 65 78 | 74 20 68 65 61 64 65 72 |* -> nex|t header|
|00002ab0| 20 2a 2f 0a 58 09 7d 0a | 58 20 20 20 20 20 20 65 | */.X.}.|X e|
|00002ac0| 6c 73 65 0a 58 09 62 72 | 65 61 6b 3b 09 09 09 2f |lse.X.br|eak;.../|
|00002ad0| 2a 20 72 65 73 74 20 61 | 72 65 20 6e 6f 74 20 64 |* rest a|re not d|
|00002ae0| 65 65 70 65 72 20 2a 2f | 0a 58 0a 58 20 20 20 20 |eeper */|.X.X |
|00002af0| 6c 61 73 74 5f 61 6c 6c | 6f 63 61 5f 68 65 61 64 |last_all|oca_head|
|00002b00| 65 72 20 3d 20 68 70 3b | 09 2f 2a 20 2d 3e 20 6c |er = hp;|./* -> l|
|00002b10| 61 73 74 20 76 61 6c 69 | 64 20 73 74 6f 72 61 67 |ast vali|d storag|
|00002b20| 65 20 2a 2f 0a 58 20 20 | 7d 0a 58 0a 58 20 20 69 |e */.X |}.X.X i|
|00002b30| 66 20 28 73 69 7a 65 20 | 3d 3d 20 30 29 0a 58 20 |f (size |== 0).X |
|00002b40| 20 20 20 72 65 74 75 72 | 6e 20 4e 55 4c 4c 3b 09 | retur|n NULL;.|
|00002b50| 09 2f 2a 20 6e 6f 20 61 | 6c 6c 6f 63 61 74 69 6f |./* no a|llocatio|
|00002b60| 6e 20 72 65 71 75 69 72 | 65 64 20 2a 2f 0a 58 0a |n requir|ed */.X.|
|00002b70| 58 20 20 2f 2a 20 41 6c | 6c 6f 63 61 74 65 20 63 |X /* Al|locate c|
|00002b80| 6f 6d 62 69 6e 65 64 20 | 68 65 61 64 65 72 20 2b |ombined |header +|
|00002b90| 20 75 73 65 72 20 64 61 | 74 61 20 73 74 6f 72 61 | user da|ta stora|
|00002ba0| 67 65 2e 20 2a 2f 0a 58 | 0a 58 20 20 7b 0a 58 20 |ge. */.X|.X {.X |
|00002bb0| 20 20 20 72 65 67 69 73 | 74 65 72 20 70 6f 69 6e | regis|ter poin|
|00002bc0| 74 65 72 09 6e 65 77 20 | 3d 20 78 6d 61 6c 6c 6f |ter.new |= xmallo|
|00002bd0| 63 20 28 73 69 7a 65 6f | 66 20 28 68 65 61 64 65 |c (sizeo|f (heade|
|00002be0| 72 29 20 2b 20 73 69 7a | 65 29 3b 0a 58 20 20 20 |r) + siz|e);.X |
|00002bf0| 20 2f 2a 20 61 64 64 72 | 65 73 73 20 6f 66 20 68 | /* addr|ess of h|
|00002c00| 65 61 64 65 72 20 2a 2f | 0a 58 0a 58 20 20 20 20 |eader */|.X.X |
|00002c10| 28 28 68 65 61 64 65 72 | 20 2a 29 6e 65 77 29 2d |((header| *)new)-|
|00002c20| 3e 68 2e 6e 65 78 74 20 | 3d 20 6c 61 73 74 5f 61 |>h.next |= last_a|
|00002c30| 6c 6c 6f 63 61 5f 68 65 | 61 64 65 72 3b 0a 58 20 |lloca_he|ader;.X |
|00002c40| 20 20 20 28 28 68 65 61 | 64 65 72 20 2a 29 6e 65 | ((hea|der *)ne|
|00002c50| 77 29 2d 3e 68 2e 64 65 | 65 70 20 3d 20 64 65 70 |w)->h.de|ep = dep|
|00002c60| 74 68 3b 0a 58 0a 58 20 | 20 20 20 6c 61 73 74 5f |th;.X.X | last_|
|00002c70| 61 6c 6c 6f 63 61 5f 68 | 65 61 64 65 72 20 3d 20 |alloca_h|eader = |
|00002c80| 28 68 65 61 64 65 72 20 | 2a 29 6e 65 77 3b 0a 58 |(header |*)new;.X|
|00002c90| 0a 58 20 20 20 20 2f 2a | 20 55 73 65 72 20 73 74 |.X /*| User st|
|00002ca0| 6f 72 61 67 65 20 62 65 | 67 69 6e 73 20 6a 75 73 |orage be|gins jus|
|00002cb0| 74 20 61 66 74 65 72 20 | 68 65 61 64 65 72 2e 20 |t after |header. |
|00002cc0| 2a 2f 0a 58 0a 58 20 20 | 20 20 72 65 74 75 72 6e |*/.X.X | return|
|00002cd0| 20 28 70 6f 69 6e 74 65 | 72 29 28 28 63 68 61 72 | (pointe|r)((char|
|00002ce0| 20 2a 29 6e 65 77 20 2b | 20 73 69 7a 65 6f 66 28 | *)new +| sizeof(|
|00002cf0| 68 65 61 64 65 72 29 29 | 3b 0a 58 20 20 7d 0a 58 |header))|;.X }.X|
|00002d00| 7d 0a 58 0a 58 70 6f 69 | 6e 74 65 72 20 78 6d 61 |}.X.Xpoi|nter xma|
|00002d10| 6c 6c 6f 63 28 6e 29 0a | 58 75 6e 73 69 67 6e 65 |lloc(n).|Xunsigne|
|00002d20| 64 20 69 6e 74 20 6e 3b | 0a 58 7b 0a 58 20 20 65 |d int n;|.X{.X e|
|00002d30| 78 74 65 72 6e 20 70 6f | 69 6e 74 65 72 20 6d 61 |xtern po|inter ma|
|00002d40| 6c 6c 6f 63 28 29 3b 0a | 58 20 20 70 6f 69 6e 74 |lloc();.|X point|
|00002d50| 65 72 20 63 70 3b 0a 58 | 20 20 73 74 61 74 69 63 |er cp;.X| static|
|00002d60| 20 63 68 61 72 20 6d 65 | 73 67 5b 5d 20 3d 20 22 | char me|sg[] = "|
|00002d70| 78 6d 61 6c 6c 6f 63 3a | 20 6e 6f 20 6d 65 6d 6f |xmalloc:| no memo|
|00002d80| 72 79 21 5c 6e 22 3b 0a | 58 0a 58 20 20 63 70 20 |ry!\n";.|X.X cp |
|00002d90| 3d 20 6d 61 6c 6c 6f 63 | 28 6e 29 3b 0a 58 20 20 |= malloc|(n);.X |
|00002da0| 69 66 20 28 21 20 63 70 | 29 20 7b 0a 58 20 20 20 |if (! cp|) {.X |
|00002db0| 20 77 72 69 74 65 20 28 | 32 2c 20 6d 65 73 67 2c | write (|2, mesg,|
|00002dc0| 20 73 69 7a 65 6f 66 28 | 6d 65 73 67 29 20 2d 20 | sizeof(|mesg) - |
|00002dd0| 31 29 3b 0a 58 20 20 20 | 20 65 78 69 74 28 31 29 |1);.X | exit(1)|
|00002de0| 3b 0a 58 20 20 7d 0a 58 | 20 20 72 65 74 75 72 6e |;.X }.X| return|
|00002df0| 20 63 70 3b 0a 58 7d 0a | 45 4e 44 5f 4f 46 5f 46 | cp;.X}.|END_OF_F|
|00002e00| 49 4c 45 0a 20 20 69 66 | 20 74 65 73 74 20 35 34 |ILE. if| test 54|
|00002e10| 35 36 20 2d 6e 65 20 60 | 77 63 20 2d 63 20 3c 27 |56 -ne `|wc -c <'|
|00002e20| 2e 2f 61 6c 6c 6f 63 61 | 2e 63 27 60 3b 20 74 68 |./alloca|.c'`; th|
|00002e30| 65 6e 0a 20 20 20 20 65 | 63 68 6f 20 73 68 61 72 |en. e|cho shar|
|00002e40| 3a 20 5c 22 27 2e 2f 61 | 6c 6c 6f 63 61 2e 63 27 |: \"'./a|lloca.c'|
|00002e50| 5c 22 20 75 6e 70 61 63 | 6b 65 64 20 77 69 74 68 |\" unpac|ked with|
|00002e60| 20 77 72 6f 6e 67 20 73 | 69 7a 65 21 0a 20 20 66 | wrong s|ize!. f|
|00002e70| 69 0a 20 20 23 20 65 6e | 64 20 6f 66 20 27 2e 2f |i. # en|d of './|
|00002e80| 61 6c 6c 6f 63 61 2e 63 | 27 0a 66 69 0a 69 66 20 |alloca.c|'.fi.if |
|00002e90| 74 65 73 74 20 2d 66 20 | 27 2e 2f 61 72 72 61 79 |test -f |'./array|
|00002ea0| 2e 63 27 20 2d 61 20 22 | 24 7b 31 7d 22 20 21 3d |.c' -a "|${1}" !=|
|00002eb0| 20 22 2d 63 22 20 3b 20 | 74 68 65 6e 20 0a 20 20 | "-c" ; |then . |
|00002ec0| 65 63 68 6f 20 73 68 61 | 72 3a 20 57 69 6c 6c 20 |echo sha|r: Will |
|00002ed0| 6e 6f 74 20 63 6c 6f 62 | 62 65 72 20 65 78 69 73 |not clob|ber exis|
|00002ee0| 74 69 6e 67 20 66 69 6c | 65 20 5c 22 27 2e 2f 61 |ting fil|e \"'./a|
|00002ef0| 72 72 61 79 2e 63 27 5c | 22 0a 65 6c 73 65 0a 20 |rray.c'\|".else. |
|00002f00| 20 65 63 68 6f 20 73 68 | 61 72 3a 20 45 78 74 72 | echo sh|ar: Extr|
|00002f10| 61 63 74 69 6e 67 20 5c | 22 27 2e 2f 61 72 72 61 |acting \|"'./arra|
|00002f20| 79 2e 63 27 5c 22 20 5c | 28 36 31 30 36 20 63 68 |y.c'\" \|(6106 ch|
|00002f30| 61 72 61 63 74 65 72 73 | 5c 29 0a 20 20 73 65 64 |aracters|\). sed|
|00002f40| 20 22 73 2f 5e 58 2f 2f | 22 20 3e 27 2e 2f 61 72 | "s/^X//|" >'./ar|
|00002f50| 72 61 79 2e 63 27 20 3c | 3c 27 45 4e 44 5f 4f 46 |ray.c' <|<'END_OF|
|00002f60| 5f 46 49 4c 45 27 0a 58 | 2f 2a 0a 58 20 2a 20 61 |_FILE'.X|/*.X * a|
|00002f70| 72 72 61 79 2e 63 20 2d | 20 72 6f 75 74 69 6e 65 |rray.c -| routine|
|00002f80| 73 20 66 6f 72 20 61 73 | 73 6f 63 69 61 74 69 76 |s for as|sociativ|
|00002f90| 65 20 61 72 72 61 79 73 | 2e 0a 58 20 2a 2f 0a 58 |e arrays|..X */.X|
|00002fa0| 0a 58 2f 2a 20 0a 58 20 | 2a 20 43 6f 70 79 72 69 |.X/* .X |* Copyri|
|00002fb0| 67 68 74 20 28 43 29 20 | 31 39 38 36 2c 20 31 39 |ght (C) |1986, 19|
|00002fc0| 38 38 2c 20 31 39 38 39 | 20 74 68 65 20 46 72 65 |88, 1989| the Fre|
|00002fd0| 65 20 53 6f 66 74 77 61 | 72 65 20 46 6f 75 6e 64 |e Softwa|re Found|
|00002fe0| 61 74 69 6f 6e 2c 20 49 | 6e 63 2e 0a 58 20 2a 20 |ation, I|nc..X * |
|00002ff0| 0a 58 20 2a 20 54 68 69 | 73 20 66 69 6c 65 20 69 |.X * Thi|s file i|
|00003000| 73 20 70 61 72 74 20 6f | 66 20 47 41 57 4b 2c 20 |s part o|f GAWK, |
|00003010| 74 68 65 20 47 4e 55 20 | 69 6d 70 6c 65 6d 65 6e |the GNU |implemen|
|00003020| 74 61 74 69 6f 6e 20 6f | 66 20 74 68 65 0a 58 20 |tation o|f the.X |
|00003030| 2a 20 41 57 4b 20 50 72 | 6f 67 61 6d 6d 69 6e 67 |* AWK Pr|ogamming|
|00003040| 20 4c 61 6e 67 75 61 67 | 65 2e 0a 58 20 2a 20 0a | Languag|e..X * .|
|00003050| 58 20 2a 20 47 41 57 4b | 20 69 73 20 66 72 65 65 |X * GAWK| is free|
|00003060| 20 73 6f 66 74 77 61 72 | 65 3b 20 79 6f 75 20 63 | softwar|e; you c|
|00003070| 61 6e 20 72 65 64 69 73 | 74 72 69 62 75 74 65 20 |an redis|tribute |
|00003080| 69 74 20 61 6e 64 2f 6f | 72 20 6d 6f 64 69 66 79 |it and/o|r modify|
|00003090| 0a 58 20 2a 20 69 74 20 | 75 6e 64 65 72 20 74 68 |.X * it |under th|
|000030a0| 65 20 74 65 72 6d 73 20 | 6f 66 20 74 68 65 20 47 |e terms |of the G|
|000030b0| 4e 55 20 47 65 6e 65 72 | 61 6c 20 50 75 62 6c 69 |NU Gener|al Publi|
|000030c0| 63 20 4c 69 63 65 6e 73 | 65 20 61 73 20 70 75 62 |c Licens|e as pub|
|000030d0| 6c 69 73 68 65 64 20 62 | 79 0a 58 20 2a 20 74 68 |lished b|y.X * th|
|000030e0| 65 20 46 72 65 65 20 53 | 6f 66 74 77 61 72 65 20 |e Free S|oftware |
|000030f0| 46 6f 75 6e 64 61 74 69 | 6f 6e 3b 20 65 69 74 68 |Foundati|on; eith|
|00003100| 65 72 20 76 65 72 73 69 | 6f 6e 20 31 2c 20 6f 72 |er versi|on 1, or|
|00003110| 20 28 61 74 20 79 6f 75 | 72 20 6f 70 74 69 6f 6e | (at you|r option|
|00003120| 29 0a 58 20 2a 20 61 6e | 79 20 6c 61 74 65 72 20 |).X * an|y later |
|00003130| 76 65 72 73 69 6f 6e 2e | 0a 58 20 2a 20 0a 58 20 |version.|.X * .X |
|00003140| 2a 20 47 41 57 4b 20 69 | 73 20 64 69 73 74 72 69 |* GAWK i|s distri|
|00003150| 62 75 74 65 64 20 69 6e | 20 74 68 65 20 68 6f 70 |buted in| the hop|
|00003160| 65 20 74 68 61 74 20 69 | 74 20 77 69 6c 6c 20 62 |e that i|t will b|
|00003170| 65 20 75 73 65 66 75 6c | 2c 0a 58 20 2a 20 62 75 |e useful|,.X * bu|
|00003180| 74 20 57 49 54 48 4f 55 | 54 20 41 4e 59 20 57 41 |t WITHOU|T ANY WA|
|00003190| 52 52 41 4e 54 59 3b 20 | 77 69 74 68 6f 75 74 20 |RRANTY; |without |
|000031a0| 65 76 65 6e 20 74 68 65 | 20 69 6d 70 6c 69 65 64 |even the| implied|
|000031b0| 20 77 61 72 72 61 6e 74 | 79 20 6f 66 0a 58 20 2a | warrant|y of.X *|
|000031c0| 20 4d 45 52 43 48 41 4e | 54 41 42 49 4c 49 54 59 | MERCHAN|TABILITY|
|000031d0| 20 6f 72 20 46 49 54 4e | 45 53 53 20 46 4f 52 20 | or FITN|ESS FOR |
|000031e0| 41 20 50 41 52 54 49 43 | 55 4c 41 52 20 50 55 52 |A PARTIC|ULAR PUR|
|000031f0| 50 4f 53 45 2e 20 20 53 | 65 65 20 74 68 65 0a 58 |POSE. S|ee the.X|
|00003200| 20 2a 20 47 4e 55 20 47 | 65 6e 65 72 61 6c 20 50 | * GNU G|eneral P|
|00003210| 75 62 6c 69 63 20 4c 69 | 63 65 6e 73 65 20 66 6f |ublic Li|cense fo|
|00003220| 72 20 6d 6f 72 65 20 64 | 65 74 61 69 6c 73 2e 0a |r more d|etails..|
|00003230| 58 20 2a 20 0a 58 20 2a | 20 59 6f 75 20 73 68 6f |X * .X *| You sho|
|00003240| 75 6c 64 20 68 61 76 65 | 20 72 65 63 65 69 76 65 |uld have| receive|
|00003250| 64 20 61 20 63 6f 70 79 | 20 6f 66 20 74 68 65 20 |d a copy| of the |
|00003260| 47 4e 55 20 47 65 6e 65 | 72 61 6c 20 50 75 62 6c |GNU Gene|ral Publ|
|00003270| 69 63 20 4c 69 63 65 6e | 73 65 0a 58 20 2a 20 61 |ic Licen|se.X * a|
|00003280| 6c 6f 6e 67 20 77 69 74 | 68 20 47 41 57 4b 3b 20 |long wit|h GAWK; |
|00003290| 73 65 65 20 74 68 65 20 | 66 69 6c 65 20 43 4f 50 |see the |file COP|
|000032a0| 59 49 4e 47 2e 20 20 49 | 66 20 6e 6f 74 2c 20 77 |YING. I|f not, w|
|000032b0| 72 69 74 65 20 74 6f 0a | 58 20 2a 20 74 68 65 20 |rite to.|X * the |
|000032c0| 46 72 65 65 20 53 6f 66 | 74 77 61 72 65 20 46 6f |Free Sof|tware Fo|
|000032d0| 75 6e 64 61 74 69 6f 6e | 2c 20 36 37 35 20 4d 61 |undation|, 675 Ma|
|000032e0| 73 73 20 41 76 65 2c 20 | 43 61 6d 62 72 69 64 67 |ss Ave, |Cambridg|
|000032f0| 65 2c 20 4d 41 20 30 32 | 31 33 39 2c 20 55 53 41 |e, MA 02|139, USA|
|00003300| 2e 0a 58 20 2a 2f 0a 58 | 0a 58 23 69 6e 63 6c 75 |..X */.X|.X#inclu|
|00003310| 64 65 20 22 61 77 6b 2e | 68 22 0a 58 0a 58 23 69 |de "awk.|h".X.X#i|
|00003320| 66 64 65 66 20 44 4f 4e | 54 44 45 46 0a 58 69 6e |fdef DON|TDEF.Xin|
|00003330| 74 20 70 72 69 6d 65 73 | 5b 5d 20 3d 20 7b 33 31 |t primes|[] = {31|
|00003340| 2c 20 36 31 2c 20 31 32 | 37 2c 20 32 35 37 2c 20 |, 61, 12|7, 257, |
|00003350| 35 30 39 2c 20 31 30 32 | 31 2c 20 32 30 35 33 2c |509, 102|1, 2053,|
|00003360| 20 34 30 39 39 2c 20 38 | 31 39 31 2c 20 31 36 33 | 4099, 8|191, 163|
|00003370| 38 31 7d 3b 0a 58 23 65 | 6e 64 69 66 0a 58 0a 58 |81};.X#e|ndif.X.X|
|00003380| 23 64 65 66 69 6e 65 20 | 41 53 53 4f 43 5f 48 41 |#define |ASSOC_HA|
|00003390| 53 48 53 49 5a 45 20 31 | 32 37 0a 58 23 64 65 66 |SHSIZE 1|27.X#def|
|000033a0| 69 6e 65 20 53 54 49 52 | 5f 42 49 54 53 28 6e 29 |ine STIR|_BITS(n)|
|000033b0| 20 28 28 6e 29 20 3c 3c | 20 35 20 7c 20 28 28 28 | ((n) <<| 5 | (((|
|000033c0| 6e 29 20 3e 3e 20 32 37 | 29 20 26 20 30 78 31 66 |n) >> 27|) & 0x1f|
|000033d0| 29 29 0a 58 23 64 65 66 | 69 6e 65 20 48 41 53 48 |)).X#def|ine HASH|
|000033e0| 53 54 45 50 28 6f 6c 64 | 2c 20 63 29 20 28 28 6f |STEP(old|, c) ((o|
|000033f0| 6c 64 20 3c 3c 20 31 29 | 20 2b 20 63 29 0a 58 23 |ld << 1)| + c).X#|
|00003400| 64 65 66 69 6e 65 20 4d | 41 4b 45 5f 50 4f 53 28 |define M|AKE_POS(|
|00003410| 76 29 20 28 76 20 26 20 | 7e 30 78 38 30 30 30 30 |v) (v & |~0x80000|
|00003420| 30 30 30 29 09 2f 2a 20 | 6d 61 6b 65 20 6e 75 6d |000)./* |make num|
|00003430| 62 65 72 20 70 6f 73 69 | 74 69 76 65 20 2a 2f 0a |ber posi|tive */.|
|00003440| 58 0a 58 4e 4f 44 45 20 | 2a 0a 58 63 6f 6e 63 61 |X.XNODE |*.Xconca|
|00003450| 74 5f 65 78 70 28 74 72 | 65 65 29 0a 58 4e 4f 44 |t_exp(tr|ee).XNOD|
|00003460| 45 20 2a 74 72 65 65 3b | 0a 58 7b 0a 58 09 4e 4f |E *tree;|.X{.X.NO|
|00003470| 44 45 20 2a 72 3b 0a 58 | 09 63 68 61 72 20 2a 73 |DE *r;.X|.char *s|
|00003480| 74 72 3b 0a 58 09 63 68 | 61 72 20 2a 73 3b 0a 58 |tr;.X.ch|ar *s;.X|
|00003490| 09 75 6e 73 69 67 6e 65 | 64 20 6c 65 6e 3b 0a 58 |.unsigne|d len;.X|
|000034a0| 09 69 6e 74 20 6f 66 66 | 73 65 74 3b 0a 58 09 69 |.int off|set;.X.i|
|000034b0| 6e 74 20 73 75 62 73 65 | 70 6c 65 6e 3b 0a 58 09 |nt subse|plen;.X.|
|000034c0| 63 68 61 72 20 2a 73 75 | 62 73 65 70 3b 0a 58 0a |char *su|bsep;.X.|
|000034d0| 58 09 69 66 20 28 74 72 | 65 65 2d 3e 74 79 70 65 |X.if (tr|ee->type|
|000034e0| 20 21 3d 20 4e 6f 64 65 | 5f 65 78 70 72 65 73 73 | != Node|_express|
|000034f0| 69 6f 6e 5f 6c 69 73 74 | 29 0a 58 09 09 72 65 74 |ion_list|).X..ret|
|00003500| 75 72 6e 20 66 6f 72 63 | 65 5f 73 74 72 69 6e 67 |urn forc|e_string|
|00003510| 28 74 72 65 65 5f 65 76 | 61 6c 28 74 72 65 65 29 |(tree_ev|al(tree)|
|00003520| 29 3b 0a 58 09 72 20 3d | 20 66 6f 72 63 65 5f 73 |);.X.r =| force_s|
|00003530| 74 72 69 6e 67 28 74 72 | 65 65 5f 65 76 61 6c 28 |tring(tr|ee_eval(|
|00003540| 74 72 65 65 2d 3e 6c 6e | 6f 64 65 29 29 3b 0a 58 |tree->ln|ode));.X|
|00003550| 09 69 66 20 28 74 72 65 | 65 2d 3e 72 6e 6f 64 65 |.if (tre|e->rnode|
|00003560| 20 3d 3d 20 4e 55 4c 4c | 29 0a 58 09 09 72 65 74 | == NULL|).X..ret|
|00003570| 75 72 6e 20 72 3b 0a 58 | 09 73 75 62 73 65 70 6c |urn r;.X|.subsepl|
|00003580| 65 6e 20 3d 20 53 55 42 | 53 45 50 5f 6e 6f 64 65 |en = SUB|SEP_node|
|00003590| 2d 3e 6c 6e 6f 64 65 2d | 3e 73 74 6c 65 6e 3b 0a |->lnode-|>stlen;.|
|000035a0| 58 09 73 75 62 73 65 70 | 20 3d 20 53 55 42 53 45 |X.subsep| = SUBSE|
|000035b0| 50 5f 6e 6f 64 65 2d 3e | 6c 6e 6f 64 65 2d 3e 73 |P_node->|lnode->s|
|000035c0| 74 70 74 72 3b 0a 58 09 | 6c 65 6e 20 3d 20 72 2d |tptr;.X.|len = r-|
|000035d0| 3e 73 74 6c 65 6e 20 2b | 20 73 75 62 73 65 70 6c |>stlen +| subsepl|
|000035e0| 65 6e 20 2b 20 31 3b 0a | 58 09 65 6d 61 6c 6c 6f |en + 1;.|X.emallo|
|000035f0| 63 28 73 74 72 2c 20 63 | 68 61 72 20 2a 2c 20 6c |c(str, c|har *, l|
|00003600| 65 6e 2c 20 22 63 6f 6e | 63 61 74 5f 65 78 70 22 |en, "con|cat_exp"|
|00003610| 29 3b 0a 58 09 6d 65 6d | 63 70 79 28 73 74 72 2c |);.X.mem|cpy(str,|
|00003620| 20 72 2d 3e 73 74 70 74 | 72 2c 20 72 2d 3e 73 74 | r->stpt|r, r->st|
|00003630| 6c 65 6e 2b 31 29 3b 0a | 58 09 73 20 3d 20 73 74 |len+1);.|X.s = st|
|00003640| 72 20 2b 20 72 2d 3e 73 | 74 6c 65 6e 3b 0a 58 09 |r + r->s|tlen;.X.|
|00003650| 66 72 65 65 5f 74 65 6d | 70 28 72 29 3b 0a 58 09 |free_tem|p(r);.X.|
|00003660| 74 72 65 65 20 3d 20 74 | 72 65 65 2d 3e 72 6e 6f |tree = t|ree->rno|
|00003670| 64 65 3b 0a 58 09 77 68 | 69 6c 65 20 28 74 72 65 |de;.X.wh|ile (tre|
|00003680| 65 29 20 7b 0a 58 09 09 | 69 66 20 28 73 75 62 73 |e) {.X..|if (subs|
|00003690| 65 70 6c 65 6e 20 3d 3d | 20 31 29 0a 58 09 09 09 |eplen ==| 1).X...|
|000036a0| 2a 73 2b 2b 20 3d 20 2a | 73 75 62 73 65 70 3b 0a |*s++ = *|subsep;.|
|000036b0| 58 09 09 65 6c 73 65 20 | 7b 0a 58 09 09 09 6d 65 |X..else |{.X...me|
|000036c0| 6d 63 70 79 28 73 2c 20 | 73 75 62 73 65 70 2c 20 |mcpy(s, |subsep, |
|000036d0| 73 75 62 73 65 70 6c 65 | 6e 2b 31 29 3b 0a 58 09 |subseple|n+1);.X.|
|000036e0| 09 09 73 20 2b 3d 20 73 | 75 62 73 65 70 6c 65 6e |..s += s|ubseplen|
|000036f0| 3b 0a 58 09 09 7d 0a 58 | 09 09 72 20 3d 20 66 6f |;.X..}.X|..r = fo|
|00003700| 72 63 65 5f 73 74 72 69 | 6e 67 28 74 72 65 65 5f |rce_stri|ng(tree_|
|00003710| 65 76 61 6c 28 74 72 65 | 65 2d 3e 6c 6e 6f 64 65 |eval(tre|e->lnode|
|00003720| 29 29 3b 0a 58 09 09 6c | 65 6e 20 2b 3d 20 72 2d |));.X..l|en += r-|
|00003730| 3e 73 74 6c 65 6e 20 2b | 20 73 75 62 73 65 70 6c |>stlen +| subsepl|
|00003740| 65 6e 3b 0a 58 09 09 6f | 66 66 73 65 74 20 3d 20 |en;.X..o|ffset = |
|00003750| 73 20 2d 20 73 74 72 3b | 0a 58 09 09 65 72 65 61 |s - str;|.X..erea|
|00003760| 6c 6c 6f 63 28 73 74 72 | 2c 20 63 68 61 72 20 2a |lloc(str|, char *|
|00003770| 2c 20 6c 65 6e 2c 20 22 | 63 6f 6e 63 61 74 5f 65 |, len, "|concat_e|
|00003780| 78 70 22 29 3b 0a 58 09 | 09 73 20 3d 20 73 74 72 |xp");.X.|.s = str|
|00003790| 20 2b 20 6f 66 66 73 65 | 74 3b 0a 58 09 09 6d 65 | + offse|t;.X..me|
|000037a0| 6d 63 70 79 28 73 2c 20 | 72 2d 3e 73 74 70 74 72 |mcpy(s, |r->stptr|
|000037b0| 2c 20 72 2d 3e 73 74 6c | 65 6e 2b 31 29 3b 0a 58 |, r->stl|en+1);.X|
|000037c0| 09 09 73 20 2b 3d 20 72 | 2d 3e 73 74 6c 65 6e 3b |..s += r|->stlen;|
|000037d0| 0a 58 09 09 66 72 65 65 | 5f 74 65 6d 70 28 72 29 |.X..free|_temp(r)|
|000037e0| 3b 0a 58 09 09 74 72 65 | 65 20 3d 20 74 72 65 65 |;.X..tre|e = tree|
|000037f0| 2d 3e 72 6e 6f 64 65 3b | 0a 58 09 7d 0a 58 09 72 |->rnode;|.X.}.X.r|
|00003800| 20 3d 20 74 6d 70 5f 73 | 74 72 69 6e 67 28 73 74 | = tmp_s|tring(st|
|00003810| 72 2c 20 73 20 2d 20 73 | 74 72 29 3b 0a 58 09 66 |r, s - s|tr);.X.f|
|00003820| 72 65 65 28 73 74 72 29 | 3b 0a 58 09 72 65 74 75 |ree(str)|;.X.retu|
|00003830| 72 6e 20 72 3b 0a 58 7d | 0a 58 0a 58 2f 2a 20 46 |rn r;.X}|.X.X/* F|
|00003840| 6c 75 73 68 20 61 6c 6c | 20 74 68 65 20 76 61 6c |lush all| the val|
|00003850| 75 65 73 20 69 6e 20 73 | 79 6d 62 6f 6c 5b 5d 20 |ues in s|ymbol[] |
|00003860| 62 65 66 6f 72 65 20 64 | 6f 69 6e 67 20 61 20 73 |before d|oing a s|
|00003870| 70 6c 69 74 28 29 20 2a | 2f 0a 58 76 6f 69 64 0a |plit() *|/.Xvoid.|
|00003880| 58 61 73 73 6f 63 5f 63 | 6c 65 61 72 28 73 79 6d |Xassoc_c|lear(sym|
|00003890| 62 6f 6c 29 0a 58 4e 4f | 44 45 20 2a 73 79 6d 62 |bol).XNO|DE *symb|
|000038a0| 6f 6c 3b 0a 58 7b 0a 58 | 09 69 6e 74 20 69 3b 0a |ol;.X{.X|.int i;.|
|000038b0| 58 09 4e 4f 44 45 20 2a | 62 75 63 6b 65 74 2c 20 |X.NODE *|bucket, |
|000038c0| 2a 6e 65 78 74 3b 0a 58 | 0a 58 09 69 66 20 28 73 |*next;.X|.X.if (s|
|000038d0| 79 6d 62 6f 6c 2d 3e 76 | 61 72 5f 61 72 72 61 79 |ymbol->v|ar_array|
|000038e0| 20 3d 3d 20 30 29 0a 58 | 09 09 72 65 74 75 72 6e | == 0).X|..return|
|000038f0| 3b 0a 58 09 66 6f 72 20 | 28 69 20 3d 20 30 3b 20 |;.X.for |(i = 0; |
|00003900| 69 20 3c 20 41 53 53 4f | 43 5f 48 41 53 48 53 49 |i < ASSO|C_HASHSI|
|00003910| 5a 45 3b 20 69 2b 2b 29 | 20 7b 0a 58 09 09 66 6f |ZE; i++)| {.X..fo|
|00003920| 72 20 28 62 75 63 6b 65 | 74 20 3d 20 73 79 6d 62 |r (bucke|t = symb|
|00003930| 6f 6c 2d 3e 76 61 72 5f | 61 72 72 61 79 5b 69 5d |ol->var_|array[i]|
|00003940| 3b 20 62 75 63 6b 65 74 | 3b 20 62 75 63 6b 65 74 |; bucket|; bucket|
|00003950| 20 3d 20 6e 65 78 74 29 | 20 7b 0a 58 09 09 09 6e | = next)| {.X...n|
|00003960| 65 78 74 20 3d 20 62 75 | 63 6b 65 74 2d 3e 61 68 |ext = bu|cket->ah|
|00003970| 6e 65 78 74 3b 0a 58 09 | 09 09 64 65 72 65 66 20 |next;.X.|..deref |
|00003980| 3d 20 62 75 63 6b 65 74 | 2d 3e 61 68 6e 61 6d 65 |= bucket|->ahname|
|00003990| 3b 0a 58 09 09 09 64 6f | 5f 64 65 72 65 66 28 29 |;.X...do|_deref()|
|000039a0| 3b 0a 58 09 09 09 64 65 | 72 65 66 20 3d 20 62 75 |;.X...de|ref = bu|
|000039b0| 63 6b 65 74 2d 3e 61 68 | 76 61 6c 75 65 3b 0a 58 |cket->ah|value;.X|
|000039c0| 09 09 09 64 6f 5f 64 65 | 72 65 66 28 29 3b 0a 58 |...do_de|ref();.X|
|000039d0| 09 09 09 66 72 65 65 6e | 6f 64 65 28 62 75 63 6b |...freen|ode(buck|
|000039e0| 65 74 29 3b 0a 58 09 09 | 7d 0a 58 09 09 73 79 6d |et);.X..|}.X..sym|
|000039f0| 62 6f 6c 2d 3e 76 61 72 | 5f 61 72 72 61 79 5b 69 |bol->var|_array[i|
|00003a00| 5d 20 3d 20 30 3b 0a 58 | 09 7d 0a 58 7d 0a 58 0a |] = 0;.X|.}.X}.X.|
|00003a10| 58 2f 2a 0a 58 20 2a 20 | 63 61 6c 63 75 6c 61 74 |X/*.X * |calculat|
|00003a20| 65 20 74 68 65 20 68 61 | 73 68 20 66 75 6e 63 74 |e the ha|sh funct|
|00003a30| 69 6f 6e 20 6f 66 20 74 | 68 65 20 73 74 72 69 6e |ion of t|he strin|
|00003a40| 67 20 73 75 62 73 2c 20 | 61 6c 73 6f 20 72 65 74 |g subs, |also ret|
|00003a50| 75 72 6e 69 6e 67 20 69 | 6e 20 2a 74 79 70 74 72 |urning i|n *typtr|
|00003a60| 0a 58 20 2a 20 74 68 65 | 20 74 79 70 65 20 28 73 |.X * the| type (s|
|00003a70| 74 72 69 6e 67 20 6f 72 | 20 6e 75 6d 62 65 72 29 |tring or| number)|
|00003a80| 20 0a 58 20 2a 2f 0a 58 | 73 74 61 74 69 63 20 69 | .X */.X|static i|
|00003a90| 6e 74 0a 58 68 61 73 68 | 5f 63 61 6c 63 28 73 75 |nt.Xhash|_calc(su|
|00003aa0| 62 73 29 0a 58 4e 4f 44 | 45 20 2a 73 75 62 73 3b |bs).XNOD|E *subs;|
|00003ab0| 0a 58 7b 0a 58 09 72 65 | 67 69 73 74 65 72 20 69 |.X{.X.re|gister i|
|00003ac0| 6e 74 20 68 61 73 68 31 | 20 3d 20 30 2c 20 69 3b |nt hash1| = 0, i;|
|00003ad0| 0a 58 0a 58 09 73 75 62 | 73 20 3d 20 66 6f 72 63 |.X.X.sub|s = forc|
|00003ae0| 65 5f 73 74 72 69 6e 67 | 28 73 75 62 73 29 3b 0a |e_string|(subs);.|
|00003af0| 58 09 66 6f 72 20 28 69 | 20 3d 20 30 3b 20 69 20 |X.for (i| = 0; i |
|00003b00| 3c 20 73 75 62 73 2d 3e | 73 74 6c 65 6e 3b 20 69 |< subs->|stlen; i|
|00003b10| 2b 2b 29 0a 58 09 09 68 | 61 73 68 31 20 3d 20 48 |++).X..h|ash1 = H|
|00003b20| 41 53 48 53 54 45 50 28 | 68 61 73 68 31 2c 20 73 |ASHSTEP(|hash1, s|
|00003b30| 75 62 73 2d 3e 73 74 70 | 74 72 5b 69 5d 29 3b 0a |ubs->stp|tr[i]);.|
|00003b40| 58 0a 58 09 68 61 73 68 | 31 20 3d 20 4d 41 4b 45 |X.X.hash|1 = MAKE|
|00003b50| 5f 50 4f 53 28 53 54 49 | 52 5f 42 49 54 53 28 28 |_POS(STI|R_BITS((|
|00003b60| 69 6e 74 29 20 68 61 73 | 68 31 29 29 20 25 20 41 |int) has|h1)) % A|
|00003b70| 53 53 4f 43 5f 48 41 53 | 48 53 49 5a 45 3b 0a 58 |SSOC_HAS|HSIZE;.X|
|00003b80| 09 72 65 74 75 72 6e 20 | 28 68 61 73 68 31 29 3b |.return |(hash1);|
|00003b90| 0a 58 7d 0a 58 0a 58 2f | 2a 0a 58 20 2a 20 6c 6f |.X}.X.X/|*.X * lo|
|00003ba0| 63 61 74 65 20 73 79 6d | 62 6f 6c 5b 73 75 62 73 |cate sym|bol[subs|
|00003bb0| 5d 2c 20 67 69 76 65 6e | 20 68 61 73 68 20 6f 66 |], given| hash of|
|00003bc0| 20 73 75 62 73 20 61 6e | 64 20 74 79 70 65 20 0a | subs an|d type .|
|00003bd0| 58 20 2a 2f 0a 58 73 74 | 61 74 69 63 20 4e 4f 44 |X */.Xst|atic NOD|
|00003be0| 45 20 2a 09 09 09 09 2f | 2a 20 4e 55 4c 4c 20 69 |E *..../|* NULL i|
|00003bf0| 66 20 6e 6f 74 20 66 6f | 75 6e 64 20 2a 2f 0a 58 |f not fo|und */.X|
|00003c00| 61 73 73 6f 63 5f 66 69 | 6e 64 28 73 79 6d 62 6f |assoc_fi|nd(symbo|
|00003c10| 6c 2c 20 73 75 62 73 2c | 20 68 61 73 68 31 29 0a |l, subs,| hash1).|
|00003c20| 58 4e 4f 44 45 20 2a 73 | 79 6d 62 6f 6c 2c 20 2a |XNODE *s|ymbol, *|
|00003c30| 73 75 62 73 3b 0a 58 69 | 6e 74 20 68 61 73 68 31 |subs;.Xi|nt hash1|
|00003c40| 3b 0a 58 7b 0a 58 09 72 | 65 67 69 73 74 65 72 20 |;.X{.X.r|egister |
|00003c50| 4e 4f 44 45 20 2a 62 75 | 63 6b 65 74 3b 0a 58 0a |NODE *bu|cket;.X.|
|00003c60| 58 09 66 6f 72 20 28 62 | 75 63 6b 65 74 20 3d 20 |X.for (b|ucket = |
|00003c70| 73 79 6d 62 6f 6c 2d 3e | 76 61 72 5f 61 72 72 61 |symbol->|var_arra|
|00003c80| 79 5b 68 61 73 68 31 5d | 3b 20 62 75 63 6b 65 74 |y[hash1]|; bucket|
|00003c90| 3b 20 62 75 63 6b 65 74 | 20 3d 20 62 75 63 6b 65 |; bucket| = bucke|
|00003ca0| 74 2d 3e 61 68 6e 65 78 | 74 29 20 7b 0a 58 09 09 |t->ahnex|t) {.X..|
|00003cb0| 69 66 20 28 63 6d 70 5f | 6e 6f 64 65 73 28 62 75 |if (cmp_|nodes(bu|
|00003cc0| 63 6b 65 74 2d 3e 61 68 | 6e 61 6d 65 2c 20 73 75 |cket->ah|name, su|
|00003cd0| 62 73 29 29 0a 58 09 09 | 09 63 6f 6e 74 69 6e 75 |bs)).X..|.continu|
|00003ce0| 65 3b 0a 58 09 09 72 65 | 74 75 72 6e 20 62 75 63 |e;.X..re|turn buc|
|00003cf0| 6b 65 74 3b 0a 58 09 7d | 0a 58 09 72 65 74 75 72 |ket;.X.}|.X.retur|
|00003d00| 6e 20 4e 55 4c 4c 3b 0a | 58 7d 0a 58 0a 58 2f 2a |n NULL;.|X}.X.X/*|
|00003d10| 0a 58 20 2a 20 74 65 73 | 74 20 77 68 65 74 68 65 |.X * tes|t whethe|
|00003d20| 72 20 74 68 65 20 61 72 | 72 61 79 20 65 6c 65 6d |r the ar|ray elem|
|00003d30| 65 6e 74 20 73 79 6d 62 | 6f 6c 5b 73 75 62 73 5d |ent symb|ol[subs]|
|00003d40| 20 65 78 69 73 74 73 20 | 6f 72 20 6e 6f 74 20 0a | exists |or not .|
|00003d50| 58 20 2a 2f 0a 58 69 6e | 74 0a 58 69 6e 5f 61 72 |X */.Xin|t.Xin_ar|
|00003d60| 72 61 79 28 73 79 6d 62 | 6f 6c 2c 20 73 75 62 73 |ray(symb|ol, subs|
|00003d70| 29 0a 58 4e 4f 44 45 20 | 2a 73 79 6d 62 6f 6c 2c |).XNODE |*symbol,|
|00003d80| 20 2a 73 75 62 73 3b 0a | 58 7b 0a 58 09 72 65 67 | *subs;.|X{.X.reg|
|00003d90| 69 73 74 65 72 20 69 6e | 74 20 68 61 73 68 31 3b |ister in|t hash1;|
|00003da0| 0a 58 0a 58 09 69 66 20 | 28 73 79 6d 62 6f 6c 2d |.X.X.if |(symbol-|
|00003db0| 3e 74 79 70 65 20 3d 3d | 20 4e 6f 64 65 5f 70 61 |>type ==| Node_pa|
|00003dc0| 72 61 6d 5f 6c 69 73 74 | 29 0a 58 09 09 73 79 6d |ram_list|).X..sym|
|00003dd0| 62 6f 6c 20 3d 20 73 74 | 61 63 6b 5f 70 74 72 5b |bol = st|ack_ptr[|
|00003de0| 73 79 6d 62 6f 6c 2d 3e | 70 61 72 61 6d 5f 63 6e |symbol->|param_cn|
|00003df0| 74 5d 3b 0a 58 09 69 66 | 20 28 73 79 6d 62 6f 6c |t];.X.if| (symbol|
|00003e00| 2d 3e 76 61 72 5f 61 72 | 72 61 79 20 3d 3d 20 30 |->var_ar|ray == 0|
|00003e10| 29 0a 58 09 09 72 65 74 | 75 72 6e 20 30 3b 0a 58 |).X..ret|urn 0;.X|
|00003e20| 09 73 75 62 73 20 3d 20 | 63 6f 6e 63 61 74 5f 65 |.subs = |concat_e|
|00003e30| 78 70 28 73 75 62 73 29 | 3b 0a 58 09 68 61 73 68 |xp(subs)|;.X.hash|
|00003e40| 31 20 3d 20 68 61 73 68 | 5f 63 61 6c 63 28 73 75 |1 = hash|_calc(su|
|00003e50| 62 73 29 3b 0a 58 09 69 | 66 20 28 61 73 73 6f 63 |bs);.X.i|f (assoc|
|00003e60| 5f 66 69 6e 64 28 73 79 | 6d 62 6f 6c 2c 20 73 75 |_find(sy|mbol, su|
|00003e70| 62 73 2c 20 68 61 73 68 | 31 29 20 3d 3d 20 4e 55 |bs, hash|1) == NU|
|00003e80| 4c 4c 29 20 7b 0a 58 09 | 09 66 72 65 65 5f 74 65 |LL) {.X.|.free_te|
|00003e90| 6d 70 28 73 75 62 73 29 | 3b 0a 58 09 09 72 65 74 |mp(subs)|;.X..ret|
|00003ea0| 75 72 6e 20 30 3b 0a 58 | 09 7d 20 65 6c 73 65 20 |urn 0;.X|.} else |
|00003eb0| 7b 0a 58 09 09 66 72 65 | 65 5f 74 65 6d 70 28 73 |{.X..fre|e_temp(s|
|00003ec0| 75 62 73 29 3b 0a 58 09 | 09 72 65 74 75 72 6e 20 |ubs);.X.|.return |
|00003ed0| 31 3b 0a 58 09 7d 0a 58 | 7d 0a 58 0a 58 2f 2a 0a |1;.X.}.X|}.X.X/*.|
|00003ee0| 58 20 2a 20 53 59 4d 42 | 4f 4c 20 69 73 20 74 68 |X * SYMB|OL is th|
|00003ef0| 65 20 61 64 64 72 65 73 | 73 20 6f 66 20 74 68 65 |e addres|s of the|
|00003f00| 20 6e 6f 64 65 20 28 6f | 72 20 6f 74 68 65 72 20 | node (o|r other |
|00003f10| 70 6f 69 6e 74 65 72 29 | 20 62 65 69 6e 67 20 64 |pointer)| being d|
|00003f20| 65 72 65 66 65 72 65 6e | 63 65 64 2e 0a 58 20 2a |ereferen|ced..X *|
|00003f30| 20 53 55 42 53 20 69 73 | 20 61 20 6e 75 6d 62 65 | SUBS is| a numbe|
|00003f40| 72 20 6f 72 20 73 74 72 | 69 6e 67 20 75 73 65 64 |r or str|ing used|
|00003f50| 20 61 73 20 74 68 65 20 | 73 75 62 73 63 72 69 70 | as the |subscrip|
|00003f60| 74 2e 20 0a 58 20 2a 0a | 58 20 2a 20 46 69 6e 64 |t. .X *.|X * Find|
|00003f70| 20 53 59 4d 42 4f 4c 5b | 53 55 42 53 5d 20 69 6e | SYMBOL[|SUBS] in|
|00003f80| 20 74 68 65 20 61 73 73 | 6f 63 20 61 72 72 61 79 | the ass|oc array|
|00003f90| 2e 20 20 49 6e 73 74 61 | 6c 6c 20 69 74 20 77 69 |. Insta|ll it wi|
|00003fa0| 74 68 20 76 61 6c 75 65 | 20 22 22 20 69 66 20 69 |th value| "" if i|
|00003fb0| 74 0a 58 20 2a 20 69 73 | 6e 27 74 20 74 68 65 72 |t.X * is|n't ther|
|00003fc0| 65 2e 20 52 65 74 75 72 | 6e 73 20 61 20 70 6f 69 |e. Retur|ns a poi|
|00003fd0| 6e 74 65 72 20 61 6c 61 | 20 67 65 74 5f 6c 68 73 |nter ala| get_lhs|
|00003fe0| 20 74 6f 20 77 68 65 72 | 65 20 69 74 73 20 76 61 | to wher|e its va|
|00003ff0| 6c 75 65 20 69 73 20 73 | 74 6f 72 65 64 20 0a 58 |lue is s|tored .X|
|00004000| 20 2a 2f 0a 58 4e 4f 44 | 45 20 2a 2a 0a 58 61 73 | */.XNOD|E **.Xas|
|00004010| 73 6f 63 5f 6c 6f 6f 6b | 75 70 28 73 79 6d 62 6f |soc_look|up(symbo|
|00004020| 6c 2c 20 73 75 62 73 29 | 0a 58 4e 4f 44 45 20 2a |l, subs)|.XNODE *|
|00004030| 73 79 6d 62 6f 6c 2c 20 | 2a 73 75 62 73 3b 0a 58 |symbol, |*subs;.X|
|00004040| 7b 0a 58 09 72 65 67 69 | 73 74 65 72 20 69 6e 74 |{.X.regi|ster int|
|00004050| 20 68 61 73 68 31 2c 20 | 69 3b 0a 58 09 72 65 67 | hash1, |i;.X.reg|
|00004060| 69 73 74 65 72 20 4e 4f | 44 45 20 2a 62 75 63 6b |ister NO|DE *buck|
|00004070| 65 74 3b 0a 58 0a 58 09 | 68 61 73 68 31 20 3d 20 |et;.X.X.|hash1 = |
|00004080| 68 61 73 68 5f 63 61 6c | 63 28 73 75 62 73 29 3b |hash_cal|c(subs);|
|00004090| 0a 58 0a 58 09 69 66 20 | 28 73 79 6d 62 6f 6c 2d |.X.X.if |(symbol-|
|000040a0| 3e 76 61 72 5f 61 72 72 | 61 79 20 3d 3d 20 30 29 |>var_arr|ay == 0)|
|000040b0| 20 7b 09 2f 2a 20 74 68 | 69 73 20 74 61 62 6c 65 | {./* th|is table|
|000040c0| 20 72 65 61 6c 6c 79 20 | 73 68 6f 75 6c 64 20 67 | really |should g|
|000040d0| 72 6f 77 0a 58 09 09 09 | 09 09 20 2a 20 64 79 6e |row.X...|.. * dyn|
|000040e0| 61 6d 69 63 61 6c 6c 79 | 20 2a 2f 0a 58 09 09 65 |amically| */.X..e|
|000040f0| 6d 61 6c 6c 6f 63 28 73 | 79 6d 62 6f 6c 2d 3e 76 |malloc(s|ymbol->v|
|00004100| 61 72 5f 61 72 72 61 79 | 2c 20 4e 4f 44 45 20 2a |ar_array|, NODE *|
|00004110| 2a 2c 20 28 73 69 7a 65 | 6f 66 28 4e 4f 44 45 20 |*, (size|of(NODE |
|00004120| 2a 29 20 2a 0a 58 09 09 | 09 41 53 53 4f 43 5f 48 |*) *.X..|.ASSOC_H|
|00004130| 41 53 48 53 49 5a 45 29 | 2c 20 22 61 73 73 6f 63 |ASHSIZE)|, "assoc|
|00004140| 5f 6c 6f 6f 6b 75 70 22 | 29 3b 0a 58 09 09 66 6f |_lookup"|);.X..fo|
|00004150| 72 20 28 69 20 3d 20 30 | 3b 20 69 20 3c 20 41 53 |r (i = 0|; i < AS|
|00004160| 53 4f 43 5f 48 41 53 48 | 53 49 5a 45 3b 20 69 2b |SOC_HASH|SIZE; i+|
|00004170| 2b 29 0a 58 09 09 09 73 | 79 6d 62 6f 6c 2d 3e 76 |+).X...s|ymbol->v|
|00004180| 61 72 5f 61 72 72 61 79 | 5b 69 5d 20 3d 20 30 3b |ar_array|[i] = 0;|
|00004190| 0a 58 09 09 73 79 6d 62 | 6f 6c 2d 3e 74 79 70 65 |.X..symb|ol->type|
|000041a0| 20 3d 20 4e 6f 64 65 5f | 76 61 72 5f 61 72 72 61 | = Node_|var_arra|
|000041b0| 79 3b 0a 58 09 7d 20 65 | 6c 73 65 20 7b 0a 58 09 |y;.X.} e|lse {.X.|
|000041c0| 09 62 75 63 6b 65 74 20 | 3d 20 61 73 73 6f 63 5f |.bucket |= assoc_|
|000041d0| 66 69 6e 64 28 73 79 6d | 62 6f 6c 2c 20 73 75 62 |find(sym|bol, sub|
|000041e0| 73 2c 20 68 61 73 68 31 | 29 3b 0a 58 09 09 69 66 |s, hash1|);.X..if|
|000041f0| 20 28 62 75 63 6b 65 74 | 20 21 3d 20 4e 55 4c 4c | (bucket| != NULL|
|00004200| 29 20 7b 0a 58 09 09 09 | 66 72 65 65 5f 74 65 6d |) {.X...|free_tem|
|00004210| 70 28 73 75 62 73 29 3b | 0a 58 09 09 09 72 65 74 |p(subs);|.X...ret|
|00004220| 75 72 6e 20 26 28 62 75 | 63 6b 65 74 2d 3e 61 68 |urn &(bu|cket->ah|
|00004230| 76 61 6c 75 65 29 3b 0a | 58 09 09 7d 0a 58 09 7d |value);.|X..}.X.}|
|00004240| 0a 58 09 62 75 63 6b 65 | 74 20 3d 20 6e 65 77 6e |.X.bucke|t = newn|
|00004250| 6f 64 65 28 4e 6f 64 65 | 5f 61 68 61 73 68 29 3b |ode(Node|_ahash);|
|00004260| 0a 58 09 62 75 63 6b 65 | 74 2d 3e 61 68 6e 61 6d |.X.bucke|t->ahnam|
|00004270| 65 20 3d 20 64 75 70 6e | 6f 64 65 28 73 75 62 73 |e = dupn|ode(subs|
|00004280| 29 3b 0a 58 09 62 75 63 | 6b 65 74 2d 3e 61 68 76 |);.X.buc|ket->ahv|
|00004290| 61 6c 75 65 20 3d 20 4e | 6e 75 6c 6c 5f 73 74 72 |alue = N|null_str|
|000042a0| 69 6e 67 3b 0a 58 09 62 | 75 63 6b 65 74 2d 3e 61 |ing;.X.b|ucket->a|
|000042b0| 68 6e 65 78 74 20 3d 20 | 73 79 6d 62 6f 6c 2d 3e |hnext = |symbol->|
|000042c0| 76 61 72 5f 61 72 72 61 | 79 5b 68 61 73 68 31 5d |var_arra|y[hash1]|
|000042d0| 3b 0a 58 09 73 79 6d 62 | 6f 6c 2d 3e 76 61 72 5f |;.X.symb|ol->var_|
|000042e0| 61 72 72 61 79 5b 68 61 | 73 68 31 5d 20 3d 20 62 |array[ha|sh1] = b|
|000042f0| 75 63 6b 65 74 3b 0a 58 | 09 72 65 74 75 72 6e 20 |ucket;.X|.return |
|00004300| 26 28 62 75 63 6b 65 74 | 2d 3e 61 68 76 61 6c 75 |&(bucket|->ahvalu|
|00004310| 65 29 3b 0a 58 7d 0a 58 | 0a 58 76 6f 69 64 0a 58 |e);.X}.X|.Xvoid.X|
|00004320| 64 6f 5f 64 65 6c 65 74 | 65 28 73 79 6d 62 6f 6c |do_delet|e(symbol|
|00004330| 2c 20 74 72 65 65 29 0a | 58 4e 4f 44 45 20 2a 73 |, tree).|XNODE *s|
|00004340| 79 6d 62 6f 6c 2c 20 2a | 74 72 65 65 3b 0a 58 7b |ymbol, *|tree;.X{|
|00004350| 0a 58 09 72 65 67 69 73 | 74 65 72 20 69 6e 74 20 |.X.regis|ter int |
|00004360| 68 61 73 68 31 3b 0a 58 | 09 72 65 67 69 73 74 65 |hash1;.X|.registe|
|00004370| 72 20 4e 4f 44 45 20 2a | 62 75 63 6b 65 74 2c 20 |r NODE *|bucket, |
|00004380| 2a 6c 61 73 74 3b 0a 58 | 09 4e 4f 44 45 20 2a 73 |*last;.X|.NODE *s|
|00004390| 75 62 73 3b 0a 58 0a 58 | 09 69 66 20 28 73 79 6d |ubs;.X.X|.if (sym|
|000043a0| 62 6f 6c 2d 3e 76 61 72 | 5f 61 72 72 61 79 20 3d |bol->var|_array =|
|000043b0| 3d 20 30 29 0a 58 09 09 | 72 65 74 75 72 6e 3b 0a |= 0).X..|return;.|
|000043c0| 58 09 73 75 62 73 20 3d | 20 63 6f 6e 63 61 74 5f |X.subs =| concat_|
|000043d0| 65 78 70 28 74 72 65 65 | 29 3b 0a 58 09 68 61 73 |exp(tree|);.X.has|
|000043e0| 68 31 20 3d 20 68 61 73 | 68 5f 63 61 6c 63 28 73 |h1 = has|h_calc(s|
|000043f0| 75 62 73 29 3b 0a 58 0a | 58 09 6c 61 73 74 20 3d |ubs);.X.|X.last =|
|00004400| 20 4e 55 4c 4c 3b 0a 58 | 09 66 6f 72 20 28 62 75 | NULL;.X|.for (bu|
|00004410| 63 6b 65 74 20 3d 20 73 | 79 6d 62 6f 6c 2d 3e 76 |cket = s|ymbol->v|
|00004420| 61 72 5f 61 72 72 61 79 | 5b 68 61 73 68 31 5d 3b |ar_array|[hash1];|
|00004430| 20 62 75 63 6b 65 74 3b | 20 6c 61 73 74 20 3d 20 | bucket;| last = |
|00004440| 62 75 63 6b 65 74 2c 20 | 62 75 63 6b 65 74 20 3d |bucket, |bucket =|
|00004450| 20 62 75 63 6b 65 74 2d | 3e 61 68 6e 65 78 74 29 | bucket-|>ahnext)|
|00004460| 0a 58 09 09 69 66 20 28 | 63 6d 70 5f 6e 6f 64 65 |.X..if (|cmp_node|
|00004470| 73 28 62 75 63 6b 65 74 | 2d 3e 61 68 6e 61 6d 65 |s(bucket|->ahname|
|00004480| 2c 20 73 75 62 73 29 20 | 3d 3d 20 30 29 0a 58 09 |, subs) |== 0).X.|
|00004490| 09 09 62 72 65 61 6b 3b | 0a 58 09 66 72 65 65 5f |..break;|.X.free_|
|000044a0| 74 65 6d 70 28 73 75 62 | 73 29 3b 0a 58 09 69 66 |temp(sub|s);.X.if|
|000044b0| 20 28 62 75 63 6b 65 74 | 20 3d 3d 20 4e 55 4c 4c | (bucket| == NULL|
|000044c0| 29 0a 58 09 09 72 65 74 | 75 72 6e 3b 0a 58 09 69 |).X..ret|urn;.X.i|
|000044d0| 66 20 28 6c 61 73 74 29 | 0a 58 09 09 6c 61 73 74 |f (last)|.X..last|
|000044e0| 2d 3e 61 68 6e 65 78 74 | 20 3d 20 62 75 63 6b 65 |->ahnext| = bucke|
|000044f0| 74 2d 3e 61 68 6e 65 78 | 74 3b 0a 58 09 65 6c 73 |t->ahnex|t;.X.els|
|00004500| 65 0a 58 09 09 73 79 6d | 62 6f 6c 2d 3e 76 61 72 |e.X..sym|bol->var|
|00004510| 5f 61 72 72 61 79 5b 68 | 61 73 68 31 5d 20 3d 20 |_array[h|ash1] = |
|00004520| 62 75 63 6b 65 74 2d 3e | 61 68 6e 65 78 74 3b 0a |bucket->|ahnext;.|
|00004530| 58 09 64 65 72 65 66 20 | 3d 20 62 75 63 6b 65 74 |X.deref |= bucket|
|00004540| 2d 3e 61 68 6e 61 6d 65 | 3b 0a 58 09 64 6f 5f 64 |->ahname|;.X.do_d|
|00004550| 65 72 65 66 28 29 3b 0a | 58 09 64 65 72 65 66 20 |eref();.|X.deref |
|00004560| 3d 20 62 75 63 6b 65 74 | 2d 3e 61 68 76 61 6c 75 |= bucket|->ahvalu|
|00004570| 65 3b 0a 58 09 64 6f 5f | 64 65 72 65 66 28 29 3b |e;.X.do_|deref();|
|00004580| 0a 58 09 66 72 65 65 6e | 6f 64 65 28 62 75 63 6b |.X.freen|ode(buck|
|00004590| 65 74 29 3b 0a 58 7d 0a | 58 0a 58 73 74 72 75 63 |et);.X}.|X.Xstruc|
|000045a0| 74 20 73 65 61 72 63 68 | 20 2a 0a 58 61 73 73 6f |t search| *.Xasso|
|000045b0| 63 5f 73 63 61 6e 28 73 | 79 6d 62 6f 6c 29 0a 58 |c_scan(s|ymbol).X|
|000045c0| 4e 4f 44 45 20 2a 73 79 | 6d 62 6f 6c 3b 0a 58 7b |NODE *sy|mbol;.X{|
|000045d0| 0a 58 09 73 74 72 75 63 | 74 20 73 65 61 72 63 68 |.X.struc|t search|
|000045e0| 20 2a 6c 6f 6f 6b 61 74 | 3b 0a 58 0a 58 09 69 66 | *lookat|;.X.X.if|
|000045f0| 20 28 21 73 79 6d 62 6f | 6c 2d 3e 76 61 72 5f 61 | (!symbo|l->var_a|
|00004600| 72 72 61 79 29 0a 58 09 | 09 72 65 74 75 72 6e 20 |rray).X.|.return |
|00004610| 30 3b 0a 58 09 65 6d 61 | 6c 6c 6f 63 28 6c 6f 6f |0;.X.ema|lloc(loo|
|00004620| 6b 61 74 2c 20 73 74 72 | 75 63 74 20 73 65 61 72 |kat, str|uct sear|
|00004630| 63 68 20 2a 2c 20 73 69 | 7a 65 6f 66 28 73 74 72 |ch *, si|zeof(str|
|00004640| 75 63 74 20 73 65 61 72 | 63 68 29 2c 20 22 61 73 |uct sear|ch), "as|
|00004650| 73 6f 63 5f 73 63 61 6e | 22 29 3b 0a 58 09 6c 6f |soc_scan|");.X.lo|
|00004660| 6f 6b 61 74 2d 3e 6e 75 | 6d 6c 65 66 74 20 3d 20 |okat->nu|mleft = |
|00004670| 41 53 53 4f 43 5f 48 41 | 53 48 53 49 5a 45 3b 0a |ASSOC_HA|SHSIZE;.|
|00004680| 58 09 6c 6f 6f 6b 61 74 | 2d 3e 61 72 72 5f 70 74 |X.lookat|->arr_pt|
|00004690| 72 20 3d 20 73 79 6d 62 | 6f 6c 2d 3e 76 61 72 5f |r = symb|ol->var_|
|000046a0| 61 72 72 61 79 3b 0a 58 | 09 6c 6f 6f 6b 61 74 2d |array;.X|.lookat-|
|000046b0| 3e 62 75 63 6b 65 74 20 | 3d 20 73 79 6d 62 6f 6c |>bucket |= symbol|
|000046c0| 2d 3e 76 61 72 5f 61 72 | 72 61 79 5b 30 5d 3b 0a |->var_ar|ray[0];.|
|000046d0| 58 09 72 65 74 75 72 6e | 20 61 73 73 6f 63 5f 6e |X.return| assoc_n|
|000046e0| 65 78 74 28 6c 6f 6f 6b | 61 74 29 3b 0a 58 7d 0a |ext(look|at);.X}.|
|000046f0| 58 0a 58 73 74 72 75 63 | 74 20 73 65 61 72 63 68 |X.Xstruc|t search|
|00004700| 20 2a 0a 58 61 73 73 6f | 63 5f 6e 65 78 74 28 6c | *.Xasso|c_next(l|
|00004710| 6f 6f 6b 61 74 29 0a 58 | 73 74 72 75 63 74 20 73 |ookat).X|struct s|
|00004720| 65 61 72 63 68 20 2a 6c | 6f 6f 6b 61 74 3b 0a 58 |earch *l|ookat;.X|
|00004730| 7b 0a 58 09 66 6f 72 20 | 28 3b 20 6c 6f 6f 6b 61 |{.X.for |(; looka|
|00004740| 74 2d 3e 6e 75 6d 6c 65 | 66 74 3b 20 6c 6f 6f 6b |t->numle|ft; look|
|00004750| 61 74 2d 3e 6e 75 6d 6c | 65 66 74 2d 2d 29 20 7b |at->numl|eft--) {|
|00004760| 0a 58 09 09 77 68 69 6c | 65 20 28 6c 6f 6f 6b 61 |.X..whil|e (looka|
|00004770| 74 2d 3e 62 75 63 6b 65 | 74 20 21 3d 20 30 29 20 |t->bucke|t != 0) |
|00004780| 7b 0a 58 09 09 09 6c 6f | 6f 6b 61 74 2d 3e 72 65 |{.X...lo|okat->re|
|00004790| 74 76 61 6c 20 3d 20 6c | 6f 6f 6b 61 74 2d 3e 62 |tval = l|ookat->b|
|000047a0| 75 63 6b 65 74 2d 3e 61 | 68 6e 61 6d 65 3b 0a 58 |ucket->a|hname;.X|
|000047b0| 09 09 09 6c 6f 6f 6b 61 | 74 2d 3e 62 75 63 6b 65 |...looka|t->bucke|
|000047c0| 74 20 3d 20 6c 6f 6f 6b | 61 74 2d 3e 62 75 63 6b |t = look|at->buck|
|000047d0| 65 74 2d 3e 61 68 6e 65 | 78 74 3b 0a 58 09 09 09 |et->ahne|xt;.X...|
|000047e0| 72 65 74 75 72 6e 20 6c | 6f 6f 6b 61 74 3b 0a 58 |return l|ookat;.X|
|000047f0| 09 09 7d 0a 58 09 09 6c | 6f 6f 6b 61 74 2d 3e 62 |..}.X..l|ookat->b|
|00004800| 75 63 6b 65 74 20 3d 20 | 2a 2b 2b 28 6c 6f 6f 6b |ucket = |*++(look|
|00004810| 61 74 2d 3e 61 72 72 5f | 70 74 72 29 3b 0a 58 09 |at->arr_|ptr);.X.|
|00004820| 7d 0a 58 09 66 72 65 65 | 28 28 63 68 61 72 20 2a |}.X.free|((char *|
|00004830| 29 20 6c 6f 6f 6b 61 74 | 29 3b 0a 58 09 72 65 74 |) lookat|);.X.ret|
|00004840| 75 72 6e 20 30 3b 0a 58 | 7d 0a 45 4e 44 5f 4f 46 |urn 0;.X|}.END_OF|
|00004850| 5f 46 49 4c 45 0a 20 20 | 69 66 20 74 65 73 74 20 |_FILE. |if test |
|00004860| 36 31 30 36 20 2d 6e 65 | 20 60 77 63 20 2d 63 20 |6106 -ne| `wc -c |
|00004870| 3c 27 2e 2f 61 72 72 61 | 79 2e 63 27 60 3b 20 74 |<'./arra|y.c'`; t|
|00004880| 68 65 6e 0a 20 20 20 20 | 65 63 68 6f 20 73 68 61 |hen. |echo sha|
|00004890| 72 3a 20 5c 22 27 2e 2f | 61 72 72 61 79 2e 63 27 |r: \"'./|array.c'|
|000048a0| 5c 22 20 75 6e 70 61 63 | 6b 65 64 20 77 69 74 68 |\" unpac|ked with|
|000048b0| 20 77 72 6f 6e 67 20 73 | 69 7a 65 21 0a 20 20 66 | wrong s|ize!. f|
|000048c0| 69 0a 20 20 23 20 65 6e | 64 20 6f 66 20 27 2e 2f |i. # en|d of './|
|000048d0| 61 72 72 61 79 2e 63 27 | 0a 66 69 0a 69 66 20 74 |array.c'|.fi.if t|
|000048e0| 65 73 74 20 2d 66 20 27 | 2e 2f 6d 69 73 73 69 6e |est -f '|./missin|
|000048f0| 67 2e 64 2f 73 74 72 63 | 61 73 65 2e 63 27 20 2d |g.d/strc|ase.c' -|
|00004900| 61 20 22 24 7b 31 7d 22 | 20 21 3d 20 22 2d 63 22 |a "${1}"| != "-c"|
|00004910| 20 3b 20 74 68 65 6e 20 | 0a 20 20 65 63 68 6f 20 | ; then |. echo |
|00004920| 73 68 61 72 3a 20 57 69 | 6c 6c 20 6e 6f 74 20 63 |shar: Wi|ll not c|
|00004930| 6c 6f 62 62 65 72 20 65 | 78 69 73 74 69 6e 67 20 |lobber e|xisting |
|00004940| 66 69 6c 65 20 5c 22 27 | 2e 2f 6d 69 73 73 69 6e |file \"'|./missin|
|00004950| 67 2e 64 2f 73 74 72 63 | 61 73 65 2e 63 27 5c 22 |g.d/strc|ase.c'\"|
|00004960| 0a 65 6c 73 65 0a 20 20 | 65 63 68 6f 20 73 68 61 |.else. |echo sha|
|00004970| 72 3a 20 45 78 74 72 61 | 63 74 69 6e 67 20 5c 22 |r: Extra|cting \"|
|00004980| 27 2e 2f 6d 69 73 73 69 | 6e 67 2e 64 2f 73 74 72 |'./missi|ng.d/str|
|00004990| 63 61 73 65 2e 63 27 5c | 22 20 5c 28 33 38 32 31 |case.c'\|" \(3821|
|000049a0| 20 63 68 61 72 61 63 74 | 65 72 73 5c 29 0a 20 20 | charact|ers\). |
|000049b0| 73 65 64 20 22 73 2f 5e | 58 2f 2f 22 20 3e 27 2e |sed "s/^|X//" >'.|
|000049c0| 2f 6d 69 73 73 69 6e 67 | 2e 64 2f 73 74 72 63 61 |/missing|.d/strca|
|000049d0| 73 65 2e 63 27 20 3c 3c | 27 45 4e 44 5f 4f 46 5f |se.c' <<|'END_OF_|
|000049e0| 46 49 4c 45 27 0a 58 2f | 2a 0a 58 20 2a 20 43 6f |FILE'.X/|*.X * Co|
|000049f0| 70 79 72 69 67 68 74 20 | 28 63 29 20 31 39 38 37 |pyright |(c) 1987|
|00004a00| 20 52 65 67 65 6e 74 73 | 20 6f 66 20 74 68 65 20 | Regents| of the |
|00004a10| 55 6e 69 76 65 72 73 69 | 74 79 20 6f 66 20 43 61 |Universi|ty of Ca|
|00004a20| 6c 69 66 6f 72 6e 69 61 | 2e 0a 58 20 2a 20 41 6c |lifornia|..X * Al|
|00004a30| 6c 20 72 69 67 68 74 73 | 20 72 65 73 65 72 76 65 |l rights| reserve|
|00004a40| 64 2e 0a 58 20 2a 0a 58 | 20 2a 20 52 65 64 69 73 |d..X *.X| * Redis|
|00004a50| 74 72 69 62 75 74 69 6f | 6e 20 61 6e 64 20 75 73 |tributio|n and us|
|00004a60| 65 20 69 6e 20 73 6f 75 | 72 63 65 20 61 6e 64 20 |e in sou|rce and |
|00004a70| 62 69 6e 61 72 79 20 66 | 6f 72 6d 73 20 61 72 65 |binary f|orms are|
|00004a80| 20 70 65 72 6d 69 74 74 | 65 64 0a 58 20 2a 20 70 | permitt|ed.X * p|
|00004a90| 72 6f 76 69 64 65 64 20 | 74 68 61 74 20 74 68 65 |rovided |that the|
|00004aa0| 20 61 62 6f 76 65 20 63 | 6f 70 79 72 69 67 68 74 | above c|opyright|
|00004ab0| 20 6e 6f 74 69 63 65 20 | 61 6e 64 20 74 68 69 73 | notice |and this|
|00004ac0| 20 70 61 72 61 67 72 61 | 70 68 20 61 72 65 0a 58 | paragra|ph are.X|
|00004ad0| 20 2a 20 64 75 70 6c 69 | 63 61 74 65 64 20 69 6e | * dupli|cated in|
|00004ae0| 20 61 6c 6c 20 73 75 63 | 68 20 66 6f 72 6d 73 20 | all suc|h forms |
|00004af0| 61 6e 64 20 74 68 61 74 | 20 61 6e 79 20 64 6f 63 |and that| any doc|
|00004b00| 75 6d 65 6e 74 61 74 69 | 6f 6e 2c 0a 58 20 2a 20 |umentati|on,.X * |
|00004b10| 61 64 76 65 72 74 69 73 | 69 6e 67 20 6d 61 74 65 |advertis|ing mate|
|00004b20| 72 69 61 6c 73 2c 20 61 | 6e 64 20 6f 74 68 65 72 |rials, a|nd other|
|00004b30| 20 6d 61 74 65 72 69 61 | 6c 73 20 72 65 6c 61 74 | materia|ls relat|
|00004b40| 65 64 20 74 6f 20 73 75 | 63 68 0a 58 20 2a 20 64 |ed to su|ch.X * d|
|00004b50| 69 73 74 72 69 62 75 74 | 69 6f 6e 20 61 6e 64 20 |istribut|ion and |
|00004b60| 75 73 65 20 61 63 6b 6e | 6f 77 6c 65 64 67 65 20 |use ackn|owledge |
|00004b70| 74 68 61 74 20 74 68 65 | 20 73 6f 66 74 77 61 72 |that the| softwar|
|00004b80| 65 20 77 61 73 20 64 65 | 76 65 6c 6f 70 65 64 0a |e was de|veloped.|
|00004b90| 58 20 2a 20 62 79 20 74 | 68 65 20 55 6e 69 76 65 |X * by t|he Unive|
|00004ba0| 72 73 69 74 79 20 6f 66 | 20 43 61 6c 69 66 6f 72 |rsity of| Califor|
|00004bb0| 6e 69 61 2c 20 42 65 72 | 6b 65 6c 65 79 2e 20 20 |nia, Ber|keley. |
|00004bc0| 54 68 65 20 6e 61 6d 65 | 20 6f 66 20 74 68 65 0a |The name| of the.|
|00004bd0| 58 20 2a 20 55 6e 69 76 | 65 72 73 69 74 79 20 6d |X * Univ|ersity m|
|00004be0| 61 79 20 6e 6f 74 20 62 | 65 20 75 73 65 64 20 74 |ay not b|e used t|
|00004bf0| 6f 20 65 6e 64 6f 72 73 | 65 20 6f 72 20 70 72 6f |o endors|e or pro|
|00004c00| 6d 6f 74 65 20 70 72 6f | 64 75 63 74 73 20 64 65 |mote pro|ducts de|
|00004c10| 72 69 76 65 64 0a 58 20 | 2a 20 66 72 6f 6d 20 74 |rived.X |* from t|
|00004c20| 68 69 73 20 73 6f 66 74 | 77 61 72 65 20 77 69 74 |his soft|ware wit|
|00004c30| 68 6f 75 74 20 73 70 65 | 63 69 66 69 63 20 70 72 |hout spe|cific pr|
|00004c40| 69 6f 72 20 77 72 69 74 | 74 65 6e 20 70 65 72 6d |ior writ|ten perm|
|00004c50| 69 73 73 69 6f 6e 2e 0a | 58 20 2a 20 54 48 49 53 |ission..|X * THIS|
|00004c60| 20 53 4f 46 54 57 41 52 | 45 20 49 53 20 50 52 4f | SOFTWAR|E IS PRO|
|00004c70| 56 49 44 45 44 20 60 60 | 41 53 20 49 53 27 27 20 |VIDED ``|AS IS'' |
|00004c80| 41 4e 44 20 57 49 54 48 | 4f 55 54 20 41 4e 59 20 |AND WITH|OUT ANY |
|00004c90| 45 58 50 52 45 53 53 20 | 4f 52 0a 58 20 2a 20 49 |EXPRESS |OR.X * I|
|00004ca0| 4d 50 4c 49 45 44 20 57 | 41 52 52 41 4e 54 49 45 |MPLIED W|ARRANTIE|
|00004cb0| 53 2c 20 49 4e 43 4c 55 | 44 49 4e 47 2c 20 57 49 |S, INCLU|DING, WI|
|00004cc0| 54 48 4f 55 54 20 4c 49 | 4d 49 54 41 54 49 4f 4e |THOUT LI|MITATION|
|00004cd0| 2c 20 54 48 45 20 49 4d | 50 4c 49 45 44 0a 58 20 |, THE IM|PLIED.X |
|00004ce0| 2a 20 57 41 52 52 41 4e | 54 49 45 53 20 4f 46 20 |* WARRAN|TIES OF |
|00004cf0| 4d 45 52 43 48 41 4e 54 | 49 42 49 4c 49 54 59 20 |MERCHANT|IBILITY |
|00004d00| 41 4e 44 20 46 49 54 4e | 45 53 53 20 46 4f 52 20 |AND FITN|ESS FOR |
|00004d10| 41 20 50 41 52 54 49 43 | 55 4c 41 52 20 50 55 52 |A PARTIC|ULAR PUR|
|00004d20| 50 4f 53 45 2e 0a 58 20 | 2a 2f 0a 58 0a 58 23 69 |POSE..X |*/.X.X#i|
|00004d30| 66 20 64 65 66 69 6e 65 | 64 28 4c 49 42 43 5f 53 |f define|d(LIBC_S|
|00004d40| 43 43 53 29 20 26 26 20 | 21 64 65 66 69 6e 65 64 |CCS) && |!defined|
|00004d50| 28 6c 69 6e 74 29 0a 58 | 73 74 61 74 69 63 20 63 |(lint).X|static c|
|00004d60| 68 61 72 20 73 63 63 73 | 69 64 5b 5d 20 3d 20 22 |har sccs|id[] = "|
|00004d70| 40 28 23 29 73 74 72 63 | 61 73 65 63 6d 70 2e 63 |@(#)strc|asecmp.c|
|00004d80| 09 35 2e 36 20 28 42 65 | 72 6b 65 6c 65 79 29 20 |.5.6 (Be|rkeley) |
|00004d90| 36 2f 32 37 2f 38 38 22 | 3b 0a 58 23 65 6e 64 69 |6/27/88"|;.X#endi|
|00004da0| 66 20 2f 2a 20 4c 49 42 | 43 5f 53 43 43 53 20 61 |f /* LIB|C_SCCS a|
|00004db0| 6e 64 20 6e 6f 74 20 6c | 69 6e 74 20 2a 2f 0a 58 |nd not l|int */.X|
|00004dc0| 0a 58 23 69 66 6e 64 65 | 66 20 55 53 47 0a 58 23 |.X#ifnde|f USG.X#|
|00004dd0| 69 6e 63 6c 75 64 65 20 | 3c 73 79 73 2f 74 79 70 |include |<sys/typ|
|00004de0| 65 73 2e 68 3e 0a 58 23 | 65 6c 73 65 0a 58 23 64 |es.h>.X#|else.X#d|
|00004df0| 65 66 69 6e 65 20 75 5f | 63 68 61 72 20 75 6e 73 |efine u_|char uns|
|00004e00| 69 67 6e 65 64 20 63 68 | 61 72 0a 58 23 65 6e 64 |igned ch|ar.X#end|
|00004e10| 69 66 0a 58 0a 58 2f 2a | 0a 58 20 2a 20 54 68 69 |if.X.X/*|.X * Thi|
|00004e20| 73 20 61 72 72 61 79 20 | 69 73 20 64 65 73 69 67 |s array |is desig|
|00004e30| 6e 65 64 20 66 6f 72 20 | 6d 61 70 70 69 6e 67 20 |ned for |mapping |
|00004e40| 75 70 70 65 72 20 61 6e | 64 20 6c 6f 77 65 72 20 |upper an|d lower |
|00004e50| 63 61 73 65 20 6c 65 74 | 74 65 72 0a 58 20 2a 20 |case let|ter.X * |
|00004e60| 74 6f 67 65 74 68 65 72 | 20 66 6f 72 20 61 20 63 |together| for a c|
|00004e70| 61 73 65 20 69 6e 64 65 | 70 65 6e 64 65 6e 74 20 |ase inde|pendent |
|00004e80| 63 6f 6d 70 61 72 69 73 | 6f 6e 2e 20 20 54 68 65 |comparis|on. The|
|00004e90| 20 6d 61 70 70 69 6e 67 | 73 20 61 72 65 0a 58 20 | mapping|s are.X |
|00004ea0| 2a 20 62 61 73 65 64 20 | 75 70 6f 6e 20 61 73 63 |* based |upon asc|
|00004eb0| 69 69 20 63 68 61 72 61 | 63 74 65 72 20 73 65 71 |ii chara|cter seq|
|00004ec0| 75 65 6e 63 65 73 2e 0a | 58 20 2a 2f 0a 58 73 74 |uences..|X */.Xst|
|00004ed0| 61 74 69 63 20 75 5f 63 | 68 61 72 20 63 68 61 72 |atic u_c|har char|
|00004ee0| 6d 61 70 5b 5d 20 3d 20 | 7b 0a 58 09 27 5c 30 30 |map[] = |{.X.'\00|
|00004ef0| 30 27 2c 20 27 5c 30 30 | 31 27 2c 20 27 5c 30 30 |0', '\00|1', '\00|
|00004f00| 32 27 2c 20 27 5c 30 30 | 33 27 2c 20 27 5c 30 30 |2', '\00|3', '\00|
|00004f10| 34 27 2c 20 27 5c 30 30 | 35 27 2c 20 27 5c 30 30 |4', '\00|5', '\00|
|00004f20| 36 27 2c 20 27 5c 30 30 | 37 27 2c 0a 58 09 27 5c |6', '\00|7',.X.'\|
|00004f30| 30 31 30 27 2c 20 27 5c | 30 31 31 27 2c 20 27 5c |010', '\|011', '\|
|00004f40| 30 31 32 27 2c 20 27 5c | 30 31 33 27 2c 20 27 5c |012', '\|013', '\|
|00004f50| 30 31 34 27 2c 20 27 5c | 30 31 35 27 2c 20 27 5c |014', '\|015', '\|
|00004f60| 30 31 36 27 2c 20 27 5c | 30 31 37 27 2c 0a 58 09 |016', '\|017',.X.|
|00004f70| 27 5c 30 32 30 27 2c 20 | 27 5c 30 32 31 27 2c 20 |'\020', |'\021', |
|00004f80| 27 5c 30 32 32 27 2c 20 | 27 5c 30 32 33 27 2c 20 |'\022', |'\023', |
|00004f90| 27 5c 30 32 34 27 2c 20 | 27 5c 30 32 35 27 2c 20 |'\024', |'\025', |
|00004fa0| 27 5c 30 32 36 27 2c 20 | 27 5c 30 32 37 27 2c 0a |'\026', |'\027',.|
|00004fb0| 58 09 27 5c 30 33 30 27 | 2c 20 27 5c 30 33 31 27 |X.'\030'|, '\031'|
|00004fc0| 2c 20 27 5c 30 33 32 27 | 2c 20 27 5c 30 33 33 27 |, '\032'|, '\033'|
|00004fd0| 2c 20 27 5c 30 33 34 27 | 2c 20 27 5c 30 33 35 27 |, '\034'|, '\035'|
|00004fe0| 2c 20 27 5c 30 33 36 27 | 2c 20 27 5c 30 33 37 27 |, '\036'|, '\037'|
|00004ff0| 2c 0a 58 09 27 5c 30 34 | 30 27 2c 20 27 5c 30 34 |,.X.'\04|0', '\04|
|00005000| 31 27 2c 20 27 5c 30 34 | 32 27 2c 20 27 5c 30 34 |1', '\04|2', '\04|
|00005010| 33 27 2c 20 27 5c 30 34 | 34 27 2c 20 27 5c 30 34 |3', '\04|4', '\04|
|00005020| 35 27 2c 20 27 5c 30 34 | 36 27 2c 20 27 5c 30 34 |5', '\04|6', '\04|
|00005030| 37 27 2c 0a 58 09 27 5c | 30 35 30 27 2c 20 27 5c |7',.X.'\|050', '\|
|00005040| 30 35 31 27 2c 20 27 5c | 30 35 32 27 2c 20 27 5c |051', '\|052', '\|
|00005050| 30 35 33 27 2c 20 27 5c | 30 35 34 27 2c 20 27 5c |053', '\|054', '\|
|00005060| 30 35 35 27 2c 20 27 5c | 30 35 36 27 2c 20 27 5c |055', '\|056', '\|
|00005070| 30 35 37 27 2c 0a 58 09 | 27 5c 30 36 30 27 2c 20 |057',.X.|'\060', |
|00005080| 27 5c 30 36 31 27 2c 20 | 27 5c 30 36 32 27 2c 20 |'\061', |'\062', |
|00005090| 27 5c 30 36 33 27 2c 20 | 27 5c 30 36 34 27 2c 20 |'\063', |'\064', |
|000050a0| 27 5c 30 36 35 27 2c 20 | 27 5c 30 36 36 27 2c 20 |'\065', |'\066', |
|000050b0| 27 5c 30 36 37 27 2c 0a | 58 09 27 5c 30 37 30 27 |'\067',.|X.'\070'|
|000050c0| 2c 20 27 5c 30 37 31 27 | 2c 20 27 5c 30 37 32 27 |, '\071'|, '\072'|
|000050d0| 2c 20 27 5c 30 37 33 27 | 2c 20 27 5c 30 37 34 27 |, '\073'|, '\074'|
|000050e0| 2c 20 27 5c 30 37 35 27 | 2c 20 27 5c 30 37 36 27 |, '\075'|, '\076'|
|000050f0| 2c 20 27 5c 30 37 37 27 | 2c 0a 58 09 27 5c 31 30 |, '\077'|,.X.'\10|
|00005100| 30 27 2c 20 27 5c 31 34 | 31 27 2c 20 27 5c 31 34 |0', '\14|1', '\14|
|00005110| 32 27 2c 20 27 5c 31 34 | 33 27 2c 20 27 5c 31 34 |2', '\14|3', '\14|
|00005120| 34 27 2c 20 27 5c 31 34 | 35 27 2c 20 27 5c 31 34 |4', '\14|5', '\14|
|00005130| 36 27 2c 20 27 5c 31 34 | 37 27 2c 0a 58 09 27 5c |6', '\14|7',.X.'\|
|00005140| 31 35 30 27 2c 20 27 5c | 31 35 31 27 2c 20 27 5c |150', '\|151', '\|
|00005150| 31 35 32 27 2c 20 27 5c | 31 35 33 27 2c 20 27 5c |152', '\|153', '\|
|00005160| 31 35 34 27 2c 20 27 5c | 31 35 35 27 2c 20 27 5c |154', '\|155', '\|
|00005170| 31 35 36 27 2c 20 27 5c | 31 35 37 27 2c 0a 58 09 |156', '\|157',.X.|
|00005180| 27 5c 31 36 30 27 2c 20 | 27 5c 31 36 31 27 2c 20 |'\160', |'\161', |
|00005190| 27 5c 31 36 32 27 2c 20 | 27 5c 31 36 33 27 2c 20 |'\162', |'\163', |
|000051a0| 27 5c 31 36 34 27 2c 20 | 27 5c 31 36 35 27 2c 20 |'\164', |'\165', |
|000051b0| 27 5c 31 36 36 27 2c 20 | 27 5c 31 36 37 27 2c 0a |'\166', |'\167',.|
|000051c0| 58 09 27 5c 31 37 30 27 | 2c 20 27 5c 31 37 31 27 |X.'\170'|, '\171'|
|000051d0| 2c 20 27 5c 31 37 32 27 | 2c 20 27 5c 31 33 33 27 |, '\172'|, '\133'|
|000051e0| 2c 20 27 5c 31 33 34 27 | 2c 20 27 5c 31 33 35 27 |, '\134'|, '\135'|
|000051f0| 2c 20 27 5c 31 33 36 27 | 2c 20 27 5c 31 33 37 27 |, '\136'|, '\137'|
|00005200| 2c 0a 58 09 27 5c 31 34 | 30 27 2c 20 27 5c 31 34 |,.X.'\14|0', '\14|
|00005210| 31 27 2c 20 27 5c 31 34 | 32 27 2c 20 27 5c 31 34 |1', '\14|2', '\14|
|00005220| 33 27 2c 20 27 5c 31 34 | 34 27 2c 20 27 5c 31 34 |3', '\14|4', '\14|
|00005230| 35 27 2c 20 27 5c 31 34 | 36 27 2c 20 27 5c 31 34 |5', '\14|6', '\14|
|00005240| 37 27 2c 0a 58 09 27 5c | 31 35 30 27 2c 20 27 5c |7',.X.'\|150', '\|
|00005250| 31 35 31 27 2c 20 27 5c | 31 35 32 27 2c 20 27 5c |151', '\|152', '\|
|00005260| 31 35 33 27 2c 20 27 5c | 31 35 34 27 2c 20 27 5c |153', '\|154', '\|
|00005270| 31 35 35 27 2c 20 27 5c | 31 35 36 27 2c 20 27 5c |155', '\|156', '\|
|00005280| 31 35 37 27 2c 0a 58 09 | 27 5c 31 36 30 27 2c 20 |157',.X.|'\160', |
|00005290| 27 5c 31 36 31 27 2c 20 | 27 5c 31 36 32 27 2c 20 |'\161', |'\162', |
|000052a0| 27 5c 31 36 33 27 2c 20 | 27 5c 31 36 34 27 2c 20 |'\163', |'\164', |
|000052b0| 27 5c 31 36 35 27 2c 20 | 27 5c 31 36 36 27 2c 20 |'\165', |'\166', |
|000052c0| 27 5c 31 36 37 27 2c 0a | 58 09 27 5c 31 37 30 27 |'\167',.|X.'\170'|
|000052d0| 2c 20 27 5c 31 37 31 27 | 2c 20 27 5c 31 37 32 27 |, '\171'|, '\172'|
|000052e0| 2c 20 27 5c 31 37 33 27 | 2c 20 27 5c 31 37 34 27 |, '\173'|, '\174'|
|000052f0| 2c 20 27 5c 31 37 35 27 | 2c 20 27 5c 31 37 36 27 |, '\175'|, '\176'|
|00005300| 2c 20 27 5c 31 37 37 27 | 2c 0a 58 09 27 5c 32 30 |, '\177'|,.X.'\20|
|00005310| 30 27 2c 20 27 5c 32 30 | 31 27 2c 20 27 5c 32 30 |0', '\20|1', '\20|
|00005320| 32 27 2c 20 27 5c 32 30 | 33 27 2c 20 27 5c 32 30 |2', '\20|3', '\20|
|00005330| 34 27 2c 20 27 5c 32 30 | 35 27 2c 20 27 5c 32 30 |4', '\20|5', '\20|
|00005340| 36 27 2c 20 27 5c 32 30 | 37 27 2c 0a 58 09 27 5c |6', '\20|7',.X.'\|
|00005350| 32 31 30 27 2c 20 27 5c | 32 31 31 27 2c 20 27 5c |210', '\|211', '\|
|00005360| 32 31 32 27 2c 20 27 5c | 32 31 33 27 2c 20 27 5c |212', '\|213', '\|
|00005370| 32 31 34 27 2c 20 27 5c | 32 31 35 27 2c 20 27 5c |214', '\|215', '\|
|00005380| 32 31 36 27 2c 20 27 5c | 32 31 37 27 2c 0a 58 09 |216', '\|217',.X.|
|00005390| 27 5c 32 32 30 27 2c 20 | 27 5c 32 32 31 27 2c 20 |'\220', |'\221', |
|000053a0| 27 5c 32 32 32 27 2c 20 | 27 5c 32 32 33 27 2c 20 |'\222', |'\223', |
|000053b0| 27 5c 32 32 34 27 2c 20 | 27 5c 32 32 35 27 2c 20 |'\224', |'\225', |
|000053c0| 27 5c 32 32 36 27 2c 20 | 27 5c 32 32 37 27 2c 0a |'\226', |'\227',.|
|000053d0| 58 09 27 5c 32 33 30 27 | 2c 20 27 5c 32 33 31 27 |X.'\230'|, '\231'|
|000053e0| 2c 20 27 5c 32 33 32 27 | 2c 20 27 5c 32 33 33 27 |, '\232'|, '\233'|
|000053f0| 2c 20 27 5c 32 33 34 27 | 2c 20 27 5c 32 33 35 27 |, '\234'|, '\235'|
|00005400| 2c 20 27 5c 32 33 36 27 | 2c 20 27 5c 32 33 37 27 |, '\236'|, '\237'|
|00005410| 2c 0a 58 09 27 5c 32 34 | 30 27 2c 20 27 5c 32 34 |,.X.'\24|0', '\24|
|00005420| 31 27 2c 20 27 5c 32 34 | 32 27 2c 20 27 5c 32 34 |1', '\24|2', '\24|
|00005430| 33 27 2c 20 27 5c 32 34 | 34 27 2c 20 27 5c 32 34 |3', '\24|4', '\24|
|00005440| 35 27 2c 20 27 5c 32 34 | 36 27 2c 20 27 5c 32 34 |5', '\24|6', '\24|
|00005450| 37 27 2c 0a 58 09 27 5c | 32 35 30 27 2c 20 27 5c |7',.X.'\|250', '\|
|00005460| 32 35 31 27 2c 20 27 5c | 32 35 32 27 2c 20 27 5c |251', '\|252', '\|
|00005470| 32 35 33 27 2c 20 27 5c | 32 35 34 27 2c 20 27 5c |253', '\|254', '\|
|00005480| 32 35 35 27 2c 20 27 5c | 32 35 36 27 2c 20 27 5c |255', '\|256', '\|
|00005490| 32 35 37 27 2c 0a 58 09 | 27 5c 32 36 30 27 2c 20 |257',.X.|'\260', |
|000054a0| 27 5c 32 36 31 27 2c 20 | 27 5c 32 36 32 27 2c 20 |'\261', |'\262', |
|000054b0| 27 5c 32 36 33 27 2c 20 | 27 5c 32 36 34 27 2c 20 |'\263', |'\264', |
|000054c0| 27 5c 32 36 35 27 2c 20 | 27 5c 32 36 36 27 2c 20 |'\265', |'\266', |
|000054d0| 27 5c 32 36 37 27 2c 0a | 58 09 27 5c 32 37 30 27 |'\267',.|X.'\270'|
|000054e0| 2c 20 27 5c 32 37 31 27 | 2c 20 27 5c 32 37 32 27 |, '\271'|, '\272'|
|000054f0| 2c 20 27 5c 32 37 33 27 | 2c 20 27 5c 32 37 34 27 |, '\273'|, '\274'|
|00005500| 2c 20 27 5c 32 37 35 27 | 2c 20 27 5c 32 37 36 27 |, '\275'|, '\276'|
|00005510| 2c 20 27 5c 32 37 37 27 | 2c 0a 58 09 27 5c 33 30 |, '\277'|,.X.'\30|
|00005520| 30 27 2c 20 27 5c 33 34 | 31 27 2c 20 27 5c 33 34 |0', '\34|1', '\34|
|00005530| 32 27 2c 20 27 5c 33 34 | 33 27 2c 20 27 5c 33 34 |2', '\34|3', '\34|
|00005540| 34 27 2c 20 27 5c 33 34 | 35 27 2c 20 27 5c 33 34 |4', '\34|5', '\34|
|00005550| 36 27 2c 20 27 5c 33 34 | 37 27 2c 0a 58 09 27 5c |6', '\34|7',.X.'\|
|00005560| 33 35 30 27 2c 20 27 5c | 33 35 31 27 2c 20 27 5c |350', '\|351', '\|
|00005570| 33 35 32 27 2c 20 27 5c | 33 35 33 27 2c 20 27 5c |352', '\|353', '\|
|00005580| 33 35 34 27 2c 20 27 5c | 33 35 35 27 2c 20 27 5c |354', '\|355', '\|
|00005590| 33 35 36 27 2c 20 27 5c | 33 35 37 27 2c 0a 58 09 |356', '\|357',.X.|
|000055a0| 27 5c 33 36 30 27 2c 20 | 27 5c 33 36 31 27 2c 20 |'\360', |'\361', |
|000055b0| 27 5c 33 36 32 27 2c 20 | 27 5c 33 36 33 27 2c 20 |'\362', |'\363', |
|000055c0| 27 5c 33 36 34 27 2c 20 | 27 5c 33 36 35 27 2c 20 |'\364', |'\365', |
|000055d0| 27 5c 33 36 36 27 2c 20 | 27 5c 33 36 37 27 2c 0a |'\366', |'\367',.|
|000055e0| 58 09 27 5c 33 37 30 27 | 2c 20 27 5c 33 37 31 27 |X.'\370'|, '\371'|
|000055f0| 2c 20 27 5c 33 37 32 27 | 2c 20 27 5c 33 33 33 27 |, '\372'|, '\333'|
|00005600| 2c 20 27 5c 33 33 34 27 | 2c 20 27 5c 33 33 35 27 |, '\334'|, '\335'|
|00005610| 2c 20 27 5c 33 33 36 27 | 2c 20 27 5c 33 33 37 27 |, '\336'|, '\337'|
|00005620| 2c 0a 58 09 27 5c 33 34 | 30 27 2c 20 27 5c 33 34 |,.X.'\34|0', '\34|
|00005630| 31 27 2c 20 27 5c 33 34 | 32 27 2c 20 27 5c 33 34 |1', '\34|2', '\34|
|00005640| 33 27 2c 20 27 5c 33 34 | 34 27 2c 20 27 5c 33 34 |3', '\34|4', '\34|
|00005650| 35 27 2c 20 27 5c 33 34 | 36 27 2c 20 27 5c 33 34 |5', '\34|6', '\34|
|00005660| 37 27 2c 0a 58 09 27 5c | 33 35 30 27 2c 20 27 5c |7',.X.'\|350', '\|
|00005670| 33 35 31 27 2c 20 27 5c | 33 35 32 27 2c 20 27 5c |351', '\|352', '\|
|00005680| 33 35 33 27 2c 20 27 5c | 33 35 34 27 2c 20 27 5c |353', '\|354', '\|
|00005690| 33 35 35 27 2c 20 27 5c | 33 35 36 27 2c 20 27 5c |355', '\|356', '\|
|000056a0| 33 35 37 27 2c 0a 58 09 | 27 5c 33 36 30 27 2c 20 |357',.X.|'\360', |
|000056b0| 27 5c 33 36 31 27 2c 20 | 27 5c 33 36 32 27 2c 20 |'\361', |'\362', |
|000056c0| 27 5c 33 36 33 27 2c 20 | 27 5c 33 36 34 27 2c 20 |'\363', |'\364', |
|000056d0| 27 5c 33 36 35 27 2c 20 | 27 5c 33 36 36 27 2c 20 |'\365', |'\366', |
|000056e0| 27 5c 33 36 37 27 2c 0a | 58 09 27 5c 33 37 30 27 |'\367',.|X.'\370'|
|000056f0| 2c 20 27 5c 33 37 31 27 | 2c 20 27 5c 33 37 32 27 |, '\371'|, '\372'|
|00005700| 2c 20 27 5c 33 37 33 27 | 2c 20 27 5c 33 37 34 27 |, '\373'|, '\374'|
|00005710| 2c 20 27 5c 33 37 35 27 | 2c 20 27 5c 33 37 36 27 |, '\375'|, '\376'|
|00005720| 2c 20 27 5c 33 37 37 27 | 2c 0a 58 7d 3b 0a 58 0a |, '\377'|,.X};.X.|
|00005730| 58 73 74 72 63 61 73 65 | 63 6d 70 28 73 31 2c 20 |Xstrcase|cmp(s1, |
|00005740| 73 32 29 0a 58 09 63 68 | 61 72 20 2a 73 31 2c 20 |s2).X.ch|ar *s1, |
|00005750| 2a 73 32 3b 0a 58 7b 0a | 58 09 72 65 67 69 73 74 |*s2;.X{.|X.regist|
|00005760| 65 72 20 75 5f 63 68 61 | 72 09 2a 63 6d 20 3d 20 |er u_cha|r.*cm = |
|00005770| 63 68 61 72 6d 61 70 2c | 0a 58 09 09 09 2a 75 73 |charmap,|.X...*us|
|00005780| 31 20 3d 20 28 75 5f 63 | 68 61 72 20 2a 29 73 31 |1 = (u_c|har *)s1|
|00005790| 2c 0a 58 09 09 09 2a 75 | 73 32 20 3d 20 28 75 5f |,.X...*u|s2 = (u_|
|000057a0| 63 68 61 72 20 2a 29 73 | 32 3b 0a 58 0a 58 09 77 |char *)s|2;.X.X.w|
|000057b0| 68 69 6c 65 20 28 63 6d | 5b 2a 75 73 31 5d 20 3d |hile (cm|[*us1] =|
|000057c0| 3d 20 63 6d 5b 2a 75 73 | 32 2b 2b 5d 29 0a 58 09 |= cm[*us|2++]).X.|
|000057d0| 09 69 66 20 28 2a 75 73 | 31 2b 2b 20 3d 3d 20 27 |.if (*us|1++ == '|
|000057e0| 5c 30 27 29 0a 58 09 09 | 09 72 65 74 75 72 6e 28 |\0').X..|.return(|
|000057f0| 30 29 3b 0a 58 09 72 65 | 74 75 72 6e 28 63 6d 5b |0);.X.re|turn(cm[|
|00005800| 2a 75 73 31 5d 20 2d 20 | 63 6d 5b 2a 2d 2d 75 73 |*us1] - |cm[*--us|
|00005810| 32 5d 29 3b 0a 58 7d 0a | 58 0a 58 73 74 72 6e 63 |2]);.X}.|X.Xstrnc|
|00005820| 61 73 65 63 6d 70 28 73 | 31 2c 20 73 32 2c 20 6e |asecmp(s|1, s2, n|
|00005830| 29 0a 58 09 63 68 61 72 | 20 2a 73 31 2c 20 2a 73 |).X.char| *s1, *s|
|00005840| 32 3b 0a 58 09 72 65 67 | 69 73 74 65 72 20 69 6e |2;.X.reg|ister in|
|00005850| 74 20 6e 3b 0a 58 7b 0a | 58 09 72 65 67 69 73 74 |t n;.X{.|X.regist|
|00005860| 65 72 20 75 5f 63 68 61 | 72 09 2a 63 6d 20 3d 20 |er u_cha|r.*cm = |
|00005870| 63 68 61 72 6d 61 70 2c | 0a 58 09 09 09 2a 75 73 |charmap,|.X...*us|
|00005880| 31 20 3d 20 28 75 5f 63 | 68 61 72 20 2a 29 73 31 |1 = (u_c|har *)s1|
|00005890| 2c 0a 58 09 09 09 2a 75 | 73 32 20 3d 20 28 75 5f |,.X...*u|s2 = (u_|
|000058a0| 63 68 61 72 20 2a 29 73 | 32 3b 0a 58 0a 58 09 77 |char *)s|2;.X.X.w|
|000058b0| 68 69 6c 65 20 28 2d 2d | 6e 20 3e 3d 20 30 20 26 |hile (--|n >= 0 &|
|000058c0| 26 20 63 6d 5b 2a 75 73 | 31 5d 20 3d 3d 20 63 6d |& cm[*us|1] == cm|
|000058d0| 5b 2a 75 73 32 2b 2b 5d | 29 0a 58 09 09 69 66 20 |[*us2++]|).X..if |
|000058e0| 28 2a 75 73 31 2b 2b 20 | 3d 3d 20 27 5c 30 27 29 |(*us1++ |== '\0')|
|000058f0| 0a 58 09 09 09 72 65 74 | 75 72 6e 28 30 29 3b 0a |.X...ret|urn(0);.|
|00005900| 58 09 72 65 74 75 72 6e | 28 6e 20 3c 20 30 20 3f |X.return|(n < 0 ?|
|00005910| 20 30 20 3a 20 63 6d 5b | 2a 75 73 31 5d 20 2d 20 | 0 : cm[|*us1] - |
|00005920| 63 6d 5b 2a 2d 2d 75 73 | 32 5d 29 3b 0a 58 7d 0a |cm[*--us|2]);.X}.|
|00005930| 45 4e 44 5f 4f 46 5f 46 | 49 4c 45 0a 20 20 69 66 |END_OF_F|ILE. if|
|00005940| 20 74 65 73 74 20 33 38 | 32 31 20 2d 6e 65 20 60 | test 38|21 -ne `|
|00005950| 77 63 20 2d 63 20 3c 27 | 2e 2f 6d 69 73 73 69 6e |wc -c <'|./missin|
|00005960| 67 2e 64 2f 73 74 72 63 | 61 73 65 2e 63 27 60 3b |g.d/strc|ase.c'`;|
|00005970| 20 74 68 65 6e 0a 20 20 | 20 20 65 63 68 6f 20 73 | then. | echo s|
|00005980| 68 61 72 3a 20 5c 22 27 | 2e 2f 6d 69 73 73 69 6e |har: \"'|./missin|
|00005990| 67 2e 64 2f 73 74 72 63 | 61 73 65 2e 63 27 5c 22 |g.d/strc|ase.c'\"|
|000059a0| 20 75 6e 70 61 63 6b 65 | 64 20 77 69 74 68 20 77 | unpacke|d with w|
|000059b0| 72 6f 6e 67 20 73 69 7a | 65 21 0a 20 20 66 69 0a |rong siz|e!. fi.|
|000059c0| 20 20 23 20 65 6e 64 20 | 6f 66 20 27 2e 2f 6d 69 | # end |of './mi|
|000059d0| 73 73 69 6e 67 2e 64 2f | 73 74 72 63 61 73 65 2e |ssing.d/|strcase.|
|000059e0| 63 27 0a 66 69 0a 65 63 | 68 6f 20 73 68 61 72 3a |c'.fi.ec|ho shar:|
|000059f0| 20 45 6e 64 20 6f 66 20 | 61 72 63 68 69 76 65 20 | End of |archive |
|00005a00| 31 36 20 5c 28 6f 66 20 | 31 36 5c 29 2e 0a 63 70 |16 \(of |16\)..cp|
|00005a10| 20 2f 64 65 76 2f 6e 75 | 6c 6c 20 61 72 6b 31 36 | /dev/nu|ll ark16|
|00005a20| 69 73 64 6f 6e 65 0a 4d | 49 53 53 49 4e 47 3d 22 |isdone.M|ISSING="|
|00005a30| 22 0a 66 6f 72 20 49 20 | 69 6e 20 31 20 32 20 33 |".for I |in 1 2 3|
|00005a40| 20 34 20 35 20 36 20 37 | 20 38 20 39 20 31 30 20 | 4 5 6 7| 8 9 10 |
|00005a50| 31 31 20 31 32 20 31 33 | 20 31 34 20 31 35 20 31 |11 12 13| 14 15 1|
|00005a60| 36 20 3b 20 64 6f 0a 20 | 20 20 20 69 66 20 74 65 |6 ; do. | if te|
|00005a70| 73 74 20 21 20 2d 66 20 | 61 72 6b 24 7b 49 7d 69 |st ! -f |ark${I}i|
|00005a80| 73 64 6f 6e 65 20 3b 20 | 74 68 65 6e 0a 09 4d 49 |sdone ; |then..MI|
|00005a90| 53 53 49 4e 47 3d 22 24 | 7b 4d 49 53 53 49 4e 47 |SSING="$|{MISSING|
|00005aa0| 7d 20 24 7b 49 7d 22 0a | 20 20 20 20 66 69 0a 64 |} ${I}".| fi.d|
|00005ab0| 6f 6e 65 0a 69 66 20 74 | 65 73 74 20 22 24 7b 4d |one.if t|est "${M|
|00005ac0| 49 53 53 49 4e 47 7d 22 | 20 3d 20 22 22 20 3b 20 |ISSING}"| = "" ; |
|00005ad0| 74 68 65 6e 0a 20 20 20 | 20 65 63 68 6f 20 59 6f |then. | echo Yo|
|00005ae0| 75 20 68 61 76 65 20 75 | 6e 70 61 63 6b 65 64 20 |u have u|npacked |
|00005af0| 61 6c 6c 20 31 36 20 61 | 72 63 68 69 76 65 73 2e |all 16 a|rchives.|
|00005b00| 0a 20 20 20 20 72 6d 20 | 2d 66 20 61 72 6b 5b 31 |. rm |-f ark[1|
|00005b10| 2d 39 5d 69 73 64 6f 6e | 65 20 61 72 6b 5b 31 2d |-9]isdon|e ark[1-|
|00005b20| 39 5d 5b 30 2d 39 5d 69 | 73 64 6f 6e 65 0a 65 6c |9][0-9]i|sdone.el|
|00005b30| 73 65 0a 20 20 20 20 65 | 63 68 6f 20 59 6f 75 20 |se. e|cho You |
|00005b40| 73 74 69 6c 6c 20 6d 75 | 73 74 20 75 6e 70 61 63 |still mu|st unpac|
|00005b50| 6b 20 74 68 65 20 66 6f | 6c 6c 6f 77 69 6e 67 20 |k the fo|llowing |
|00005b60| 61 72 63 68 69 76 65 73 | 3a 0a 20 20 20 20 65 63 |archives|:. ec|
|00005b70| 68 6f 20 22 20 20 20 20 | 20 20 20 20 22 20 24 7b |ho " | " ${|
|00005b80| 4d 49 53 53 49 4e 47 7d | 0a 66 69 0a 65 78 69 74 |MISSING}|.fi.exit|
|00005b90| 20 30 0a 65 78 69 74 20 | 30 20 23 20 4a 75 73 74 | 0.exit |0 # Just|
|00005ba0| 20 69 6e 20 63 61 73 65 | 2e 2e 2e 0a | in case|.... |
+--------+-------------------------+-------------------------+--------+--------+