home *** CD-ROM | disk | FTP | other *** search
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).
Confidence | Program | Detection | Match Type | Support
|
---|
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 31 37 69 30 36 |Subject:| v17i06|
|00000010| 39 3a 20 20 5a 6f 6f 20 | 61 72 63 68 69 76 65 20 |9: Zoo |archive |
|00000020| 70 72 6f 67 72 61 6d 2c | 20 50 61 72 74 30 36 2f |program,| Part06/|
|00000030| 31 30 0a 4e 65 77 73 67 | 72 6f 75 70 73 3a 20 63 |10.Newsg|roups: c|
|00000040| 6f 6d 70 2e 73 6f 75 72 | 63 65 73 2e 75 6e 69 78 |omp.sour|ces.unix|
|00000050| 0a 41 70 70 72 6f 76 65 | 64 3a 20 72 73 61 6c 7a |.Approve|d: rsalz|
|00000060| 40 75 75 6e 65 74 2e 55 | 55 2e 4e 45 54 0a 0a 53 |@uunet.U|U.NET..S|
|00000070| 75 62 6d 69 74 74 65 64 | 2d 62 79 3a 20 52 61 68 |ubmitted|-by: Rah|
|00000080| 75 6c 20 44 68 65 73 69 | 20 3c 62 73 75 2d 63 73 |ul Dhesi| <bsu-cs|
|00000090| 21 64 68 65 73 69 40 69 | 75 76 61 78 2e 63 73 2e |!dhesi@i|uvax.cs.|
|000000a0| 69 6e 64 69 61 6e 61 2e | 65 64 75 3e 0a 50 6f 73 |indiana.|edu>.Pos|
|000000b0| 74 69 6e 67 2d 6e 75 6d | 62 65 72 3a 20 56 6f 6c |ting-num|ber: Vol|
|000000c0| 75 6d 65 20 31 37 2c 20 | 49 73 73 75 65 20 36 39 |ume 17, |Issue 69|
|000000d0| 0a 41 72 63 68 69 76 65 | 2d 6e 61 6d 65 3a 20 7a |.Archive|-name: z|
|000000e0| 6f 6f 32 2f 70 61 72 74 | 30 36 0a 0a 23 21 20 2f |oo2/part|06..#! /|
|000000f0| 62 69 6e 2f 73 68 0a 23 | 20 54 68 69 73 20 69 73 |bin/sh.#| This is|
|00000100| 20 61 20 73 68 65 6c 6c | 20 61 72 63 68 69 76 65 | a shell| archive|
|00000110| 2e 20 20 52 65 6d 6f 76 | 65 20 61 6e 79 74 68 69 |. Remov|e anythi|
|00000120| 6e 67 20 62 65 66 6f 72 | 65 20 74 68 69 73 20 6c |ng befor|e this l|
|00000130| 69 6e 65 2c 20 74 68 65 | 6e 20 75 6e 70 61 63 6b |ine, the|n unpack|
|00000140| 0a 23 20 69 74 20 62 79 | 20 73 61 76 69 6e 67 20 |.# it by| saving |
|00000150| 69 74 20 69 6e 74 6f 20 | 61 20 66 69 6c 65 20 61 |it into |a file a|
|00000160| 6e 64 20 74 79 70 69 6e | 67 20 22 73 68 20 66 69 |nd typin|g "sh fi|
|00000170| 6c 65 22 2e 20 20 54 6f | 20 6f 76 65 72 77 72 69 |le". To| overwri|
|00000180| 74 65 20 65 78 69 73 74 | 69 6e 67 0a 23 20 66 69 |te exist|ing.# fi|
|00000190| 6c 65 73 2c 20 74 79 70 | 65 20 22 73 68 20 66 69 |les, typ|e "sh fi|
|000001a0| 6c 65 20 2d 63 22 2e 20 | 20 59 6f 75 20 63 61 6e |le -c". | You can|
|000001b0| 20 61 6c 73 6f 20 66 65 | 65 64 20 74 68 69 73 20 | also fe|ed this |
|000001c0| 61 73 20 73 74 61 6e 64 | 61 72 64 20 69 6e 70 75 |as stand|ard inpu|
|000001d0| 74 20 76 69 61 0a 23 20 | 75 6e 73 68 61 72 2c 20 |t via.# |unshar, |
|000001e0| 6f 72 20 62 79 20 74 79 | 70 69 6e 67 20 22 73 68 |or by ty|ping "sh|
|000001f0| 20 3c 66 69 6c 65 22 2c | 20 65 2e 67 2e 2e 20 20 | <file",| e.g.. |
|00000200| 49 66 20 74 68 69 73 20 | 61 72 63 68 69 76 65 20 |If this |archive |
|00000210| 69 73 20 63 6f 6d 70 6c | 65 74 65 2c 20 79 6f 75 |is compl|ete, you|
|00000220| 0a 23 20 77 69 6c 6c 20 | 73 65 65 20 74 68 65 20 |.# will |see the |
|00000230| 66 6f 6c 6c 6f 77 69 6e | 67 20 6d 65 73 73 61 67 |followin|g messag|
|00000240| 65 20 61 74 20 74 68 65 | 20 65 6e 64 3a 0a 23 09 |e at the| end:.#.|
|00000250| 09 22 45 6e 64 20 6f 66 | 20 61 72 63 68 69 76 65 |."End of| archive|
|00000260| 20 36 20 28 6f 66 20 31 | 30 29 2e 22 0a 23 20 57 | 6 (of 1|0).".# W|
|00000270| 72 61 70 70 65 64 20 62 | 79 20 72 73 61 6c 7a 40 |rapped b|y rsalz@|
|00000280| 70 61 70 61 79 61 2e 62 | 62 6e 2e 63 6f 6d 20 6f |papaya.b|bn.com o|
|00000290| 6e 20 54 68 75 20 46 65 | 62 20 20 32 20 31 38 3a |n Thu Fe|b 2 18:|
|000002a0| 30 34 3a 30 32 20 31 39 | 38 39 0a 50 41 54 48 3d |04:02 19|89.PATH=|
|000002b0| 2f 62 69 6e 3a 2f 75 73 | 72 2f 62 69 6e 3a 2f 75 |/bin:/us|r/bin:/u|
|000002c0| 73 72 2f 75 63 62 20 3b | 20 65 78 70 6f 72 74 20 |sr/ucb ;| export |
|000002d0| 50 41 54 48 0a 69 66 20 | 74 65 73 74 20 2d 66 20 |PATH.if |test -f |
|000002e0| 27 6f 70 74 69 6f 6e 73 | 2e 64 6f 63 27 20 2d 61 |'options|.doc' -a|
|000002f0| 20 22 24 7b 31 7d 22 20 | 21 3d 20 22 2d 63 22 20 | "${1}" |!= "-c" |
|00000300| 3b 20 74 68 65 6e 20 0a | 20 20 65 63 68 6f 20 73 |; then .| echo s|
|00000310| 68 61 72 3a 20 57 69 6c | 6c 20 6e 6f 74 20 63 6c |har: Wil|l not cl|
|00000320| 6f 62 62 65 72 20 65 78 | 69 73 74 69 6e 67 20 66 |obber ex|isting f|
|00000330| 69 6c 65 20 5c 22 27 6f | 70 74 69 6f 6e 73 2e 64 |ile \"'o|ptions.d|
|00000340| 6f 63 27 5c 22 0a 65 6c | 73 65 0a 65 63 68 6f 20 |oc'\".el|se.echo |
|00000350| 73 68 61 72 3a 20 45 78 | 74 72 61 63 74 69 6e 67 |shar: Ex|tracting|
|00000360| 20 5c 22 27 6f 70 74 69 | 6f 6e 73 2e 64 6f 63 27 | \"'opti|ons.doc'|
|00000370| 5c 22 20 5c 28 31 34 39 | 35 30 20 63 68 61 72 61 |\" \(149|50 chara|
|00000380| 63 74 65 72 73 5c 29 0a | 73 65 64 20 22 73 2f 5e |cters\).|sed "s/^|
|00000390| 58 2f 2f 22 20 3e 27 6f | 70 74 69 6f 6e 73 2e 64 |X//" >'o|ptions.d|
|000003a0| 6f 63 27 20 3c 3c 27 45 | 4e 44 5f 4f 46 5f 46 49 |oc' <<'E|ND_OF_FI|
|000003b0| 4c 45 27 0a 58 2f 2a 20 | 40 28 23 29 20 6f 70 74 |LE'.X/* |@(#) opt|
|000003c0| 69 6f 6e 73 2e 64 6f 63 | 20 31 2e 34 20 38 38 2f |ions.doc| 1.4 88/|
|000003d0| 30 38 2f 32 32 20 31 35 | 3a 32 34 3a 35 39 20 2a |08/22 15|:24:59 *|
|000003e0| 2f 0a 58 0a 58 44 6f 63 | 75 6d 65 6e 74 61 74 69 |/.X.XDoc|umentati|
|000003f0| 6f 6e 20 61 62 6f 75 74 | 20 74 68 65 20 66 69 6c |on about| the fil|
|00000400| 65 20 6f 70 74 69 6f 6e | 73 2e 68 2e 0a 58 0a 58 |e option|s.h..X.X|
|00000410| 54 68 65 20 66 69 6c 65 | 20 6f 70 74 69 6f 6e 73 |The file| options|
|00000420| 2e 68 20 64 65 66 69 6e | 65 73 20 76 61 72 69 6f |.h defin|es vario|
|00000430| 75 73 20 73 79 6d 62 6f | 6c 73 20 61 6e 64 20 6d |us symbo|ls and m|
|00000440| 61 63 72 6f 73 20 74 68 | 61 74 20 61 72 65 20 6e |acros th|at are n|
|00000450| 65 65 64 65 64 0a 58 74 | 6f 20 65 6e 73 75 72 65 |eeded.Xt|o ensure|
|00000460| 20 73 79 73 74 65 6d 2d | 69 6e 64 65 70 65 6e 64 | system-|independ|
|00000470| 65 6e 63 65 2e 20 20 54 | 68 65 20 62 61 73 69 63 |ence. T|he basic|
|00000480| 20 70 68 69 6c 6f 73 6f | 70 68 79 20 69 73 20 74 | philoso|phy is t|
|00000490| 6f 20 75 73 65 20 61 0a | 58 64 69 73 74 69 6e 63 |o use a.|Xdistinc|
|000004a0| 74 20 73 79 6d 62 6f 6c | 20 66 6f 72 20 65 61 63 |t symbol| for eac|
|000004b0| 68 20 61 74 74 72 69 62 | 75 74 65 20 74 68 61 74 |h attrib|ute that|
|000004c0| 20 76 61 72 69 65 73 20 | 66 72 6f 6d 20 6d 61 63 | varies |from mac|
|000004d0| 68 69 6e 65 20 74 6f 20 | 6d 61 63 68 69 6e 65 2e |hine to |machine.|
|000004e0| 0a 58 54 68 65 6e 2c 20 | 66 6f 72 20 65 61 63 68 |.XThen, |for each|
|000004f0| 20 6e 65 77 20 73 79 73 | 74 65 6d 2c 20 77 65 20 | new sys|tem, we |
|00000500| 64 65 66 69 6e 65 20 73 | 79 6d 62 6f 6c 73 20 63 |define s|ymbols c|
|00000510| 6f 72 72 65 73 70 6f 6e | 64 69 6e 67 20 74 6f 20 |orrespon|ding to |
|00000520| 69 74 73 0a 58 61 74 74 | 72 69 62 75 74 65 73 2e |its.Xatt|ributes.|
|00000530| 20 54 68 75 73 2c 20 69 | 64 65 61 6c 6c 79 2c 20 | Thus, i|deally, |
|00000540| 74 68 65 20 6f 6e 6c 79 | 20 70 6c 61 63 65 20 69 |the only| place i|
|00000550| 6e 20 5a 6f 6f 20 63 6f | 64 65 20 74 68 61 74 20 |n Zoo co|de that |
|00000560| 77 65 20 61 63 74 75 61 | 6c 6c 79 0a 58 75 73 65 |we actua|lly.Xuse|
|00000570| 20 74 68 65 20 6e 61 6d | 65 20 6f 66 20 61 20 6d | the nam|e of a m|
|00000580| 61 63 68 69 6e 65 20 69 | 73 20 69 6e 20 74 68 69 |achine i|s in thi|
|00000590| 73 20 66 69 6c 65 2c 20 | 69 6e 20 70 6f 72 74 61 |s file, |in porta|
|000005a0| 62 6c 65 2e 68 2c 20 61 | 6e 64 20 70 6f 73 73 69 |ble.h, a|nd possi|
|000005b0| 62 6c 79 20 69 6e 0a 58 | 6d 61 63 68 69 6e 65 2e |bly in.X|machine.|
|000005c0| 68 20 61 6e 64 20 6f 70 | 74 69 6f 6e 73 2e 63 2e |h and op|tions.c.|
|000005d0| 20 20 45 76 65 72 79 77 | 68 65 72 65 20 65 6c 73 | Everyw|here els|
|000005e0| 65 20 69 6e 20 74 68 65 | 20 63 6f 64 65 20 77 65 |e in the| code we|
|000005f0| 20 6f 6e 6c 79 20 75 73 | 65 0a 58 6e 61 6d 65 73 | only us|e.Xnames|
|00000600| 20 6f 66 20 61 74 74 72 | 69 62 75 74 65 73 2e 0a | of attr|ibutes..|
|00000610| 58 0a 58 4d 61 63 68 69 | 6e 65 20 6e 61 6d 65 73 |X.XMachi|ne names|
|00000620| 3a 0a 58 0a 58 4d 53 43 | 20 20 20 20 20 20 20 20 |:.X.XMSC| |
|00000630| 20 4d 69 63 72 6f 73 6f | 66 74 20 43 20 33 2e 30 | Microso|ft C 3.0|
|00000640| 20 75 6e 64 65 72 20 4d | 53 2d 44 4f 53 20 20 28 | under M|S-DOS (|
|00000650| 6e 6f 74 20 63 75 72 72 | 65 6e 74 6c 79 20 69 6e |not curr|ently in|
|00000660| 20 75 73 65 29 0a 58 54 | 55 52 42 4f 43 20 20 20 | use).XT|URBOC |
|00000670| 20 20 20 54 75 72 62 6f | 20 43 20 31 2e 30 20 75 | Turbo| C 1.0 u|
|00000680| 6e 64 65 72 20 4d 53 2d | 44 4f 53 20 20 20 20 20 |nder MS-|DOS |
|00000690| 20 28 77 6f 72 6b 73 2c | 20 63 6f 6d 70 69 6c 65 | (works,| compile|
|000006a0| 64 20 76 65 72 73 69 6f | 6e 20 69 73 0a 58 20 20 |d versio|n is.X |
|000006b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000006c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000006d0| 20 20 20 20 20 20 20 20 | 73 65 70 61 72 61 74 65 | |separate|
|000006e0| 6c 79 20 64 69 73 74 72 | 69 62 75 74 65 64 29 0a |ly distr|ibuted).|
|000006f0| 58 44 4c 43 20 20 20 20 | 20 20 20 20 20 44 61 74 |XDLC | Dat|
|00000700| 61 6c 69 67 68 74 20 43 | 20 75 6e 64 65 72 20 4d |alight C| under M|
|00000710| 53 2d 44 4f 53 20 20 20 | 20 20 20 28 6e 6f 74 20 |S-DOS | (not |
|00000720| 63 75 72 72 65 6e 74 6c | 79 20 69 6e 20 75 73 65 |currentl|y in use|
|00000730| 2a 29 0a 58 46 4c 45 58 | 20 20 20 20 20 20 20 20 |*).XFLEX| |
|00000740| 46 6c 65 78 44 4f 53 20 | 20 20 20 20 20 20 20 20 |FlexDOS | |
|00000750| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 6e | | (n|
|00000760| 6f 74 20 63 75 72 72 65 | 6e 74 6c 79 20 69 6e 20 |ot curre|ntly in |
|00000770| 75 73 65 2a 29 0a 58 53 | 59 53 5f 56 20 20 20 20 |use*).XS|YS_V |
|00000780| 20 20 20 55 4e 49 58 20 | 53 79 73 74 65 6d 20 56 | UNIX |System V|
|00000790| 20 72 65 6c 65 61 73 65 | 20 32 20 20 20 20 20 20 | release| 2 |
|000007a0| 20 28 77 6f 72 6b 73 29 | 0a 58 56 4d 53 20 20 20 | (works)|.XVMS |
|000007b0| 20 20 20 20 20 20 56 41 | 58 2f 56 4d 53 20 34 2e | VA|X/VMS 4.|
|000007c0| 34 20 74 68 72 6f 75 67 | 68 20 34 2e 36 20 20 20 |4 throug|h 4.6 |
|000007d0| 20 20 20 20 28 77 6f 72 | 6b 73 2c 20 73 74 72 65 | (wor|ks, stre|
|000007e0| 61 6d 2d 4c 46 20 66 69 | 6c 65 73 20 6f 6e 6c 79 |am-LF fi|les only|
|000007f0| 29 0a 58 42 53 44 34 5f | 33 20 20 20 20 20 20 34 |).XBSD4_|3 4|
|00000800| 2e 33 42 53 44 20 20 20 | 20 20 20 20 20 20 20 20 |.3BSD | |
|00000810| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 28 77 6f | | (wo|
|00000820| 72 6b 73 29 0a 58 4d 43 | 48 5f 41 4d 49 47 41 20 |rks).XMC|H_AMIGA |
|00000830| 20 20 41 6d 69 67 61 44 | 4f 53 20 41 7a 74 65 63 | AmigaD|OS Aztec|
|00000840| 2f 4d 61 6e 78 20 43 20 | 20 20 20 20 20 20 20 20 |/Manx C | |
|00000850| 28 63 6f 6d 70 69 6c 65 | 64 20 76 65 72 73 69 6f |(compile|d versio|
|00000860| 6e 20 69 73 20 73 65 70 | 61 72 61 74 65 6c 79 0a |n is sep|arately.|
|00000870| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X | |
|00000880| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000890| 20 20 20 20 20 20 20 20 | 20 20 20 64 69 73 74 72 | | distr|
|000008a0| 69 62 75 74 65 64 29 0a | 58 2d 2d 2d 2d 2d 0a 58 |ibuted).|X-----.X|
|000008b0| 2a 4d 61 72 6b 20 41 6c | 65 78 61 6e 64 65 72 20 |*Mark Al|exander |
|000008c0| 70 72 6f 76 69 64 65 64 | 20 6d 65 20 77 69 74 68 |provided| me with|
|000008d0| 20 63 68 61 6e 67 65 73 | 20 74 6f 20 61 6c 6c 6f | changes| to allo|
|000008e0| 77 20 63 6f 6d 70 69 6c | 61 74 69 6f 6e 20 75 73 |w compil|ation us|
|000008f0| 69 6e 67 0a 58 46 6c 65 | 78 44 4f 53 20 61 6e 64 |ing.XFle|xDOS and|
|00000900| 20 61 6c 73 6f 20 44 61 | 74 61 6c 69 67 68 74 27 | also Da|talight'|
|00000910| 73 20 4f 70 74 69 6d 75 | 6d 20 43 20 75 6e 64 65 |s Optimu|m C unde|
|00000920| 72 20 4d 53 44 4f 53 20 | 62 75 74 20 74 68 65 79 |r MSDOS |but they|
|00000930| 20 68 61 76 65 20 6e 6f | 74 0a 58 79 65 74 20 62 | have no|t.Xyet b|
|00000940| 65 65 6e 20 69 6e 63 6f | 72 70 6f 72 61 74 65 64 |een inco|rporated|
|00000950| 20 69 6e 74 6f 20 74 68 | 69 73 20 72 65 6c 65 61 | into th|is relea|
|00000960| 73 65 2e 0a 58 0a 58 4e | 4f 54 45 3a 20 20 54 68 |se..X.XN|OTE: Th|
|00000970| 65 20 74 65 72 6d 20 22 | 7a 6f 6f 66 69 6c 65 22 |e term "|zoofile"|
|00000980| 20 62 65 6c 6f 77 20 72 | 65 66 65 72 73 20 74 6f | below r|efers to|
|00000990| 20 61 6e 20 6f 70 65 6e | 20 66 69 6c 65 20 6f 66 | an open| file of|
|000009a0| 20 74 79 70 65 0a 58 5a | 4f 4f 46 49 4c 45 2e 20 | type.XZ|OOFILE. |
|000009b0| 20 43 75 72 72 65 6e 74 | 6c 79 20 74 68 69 73 20 | Current|ly this |
|000009c0| 69 73 20 64 65 66 69 6e | 65 64 20 74 6f 20 62 65 |is defin|ed to be|
|000009d0| 20 65 71 75 69 76 61 6c | 65 6e 74 20 74 6f 20 61 | equival|ent to a|
|000009e0| 20 73 74 61 6e 64 61 72 | 64 0a 58 62 75 66 66 65 | standar|d.Xbuffe|
|000009f0| 72 65 64 20 66 69 6c 65 | 20 70 6f 69 6e 74 65 72 |red file| pointer|
|00000a00| 20 6f 66 20 74 79 70 65 | 20 22 5a 4f 4f 46 49 4c | of type| "ZOOFIL|
|00000a10| 45 20 2a 22 20 62 75 74 | 20 74 68 69 73 20 6d 61 |E *" but| this ma|
|00000a20| 79 20 63 68 61 6e 67 65 | 20 69 6e 20 74 68 65 0a |y change| in the.|
|00000a30| 58 66 75 74 75 72 65 2e | 20 20 44 65 70 65 6e 64 |Xfuture.| Depend|
|00000a40| 65 6e 63 65 20 6f 6e 20 | 65 78 61 63 74 20 64 65 |ence on |exact de|
|00000a50| 66 69 6e 69 74 69 6f 6e | 20 6f 66 20 5a 4f 4f 46 |finition| of ZOOF|
|00000a60| 49 4c 45 20 69 73 20 6c | 6f 63 61 6c 69 7a 65 64 |ILE is l|ocalized|
|00000a70| 20 74 6f 20 61 0a 58 66 | 65 77 20 66 69 6c 65 73 | to a.Xf|ew files|
|00000a80| 3a 20 20 6f 70 74 69 6f | 6e 73 2e 68 2c 20 70 6f |: optio|ns.h, po|
|00000a90| 72 74 61 62 6c 65 2e 68 | 2c 20 70 6f 72 74 61 62 |rtable.h|, portab|
|00000aa0| 6c 65 2e 63 2c 20 61 6e | 64 20 6d 61 63 68 69 6e |le.c, an|d machin|
|00000ab0| 65 2e 63 2e 0a 58 0a 58 | 41 74 74 72 69 62 75 74 |e.c..X.X|Attribut|
|00000ac0| 65 73 20 6f 66 20 73 79 | 73 74 65 6d 73 3a 0a 58 |es of sy|stems:.X|
|00000ad0| 0a 58 43 48 45 4b 44 49 | 52 0a 58 20 20 20 54 65 |.XCHEKDI|R.X Te|
|00000ae0| 73 74 20 65 61 63 68 20 | 73 75 70 70 6c 69 65 64 |st each |supplied|
|00000af0| 20 66 69 6c 65 6e 61 6d | 65 20 61 6e 64 20 69 66 | filenam|e and if|
|00000b00| 20 69 74 20 69 73 20 61 | 20 64 69 72 65 63 74 6f | it is a| directo|
|00000b10| 72 79 20 6f 72 20 6f 74 | 68 65 72 20 73 70 65 63 |ry or ot|her spec|
|00000b20| 69 61 6c 0a 58 20 20 20 | 74 79 70 65 20 6f 66 20 |ial.X |type of |
|00000b30| 66 69 6c 65 2c 20 64 6f | 20 6e 6f 74 20 74 72 79 |file, do| not try|
|00000b40| 20 74 6f 20 61 64 64 20 | 69 74 20 74 6f 20 61 6e | to add |it to an|
|00000b50| 20 61 72 63 68 69 76 65 | 2e 20 20 49 66 20 43 48 | archive|. If CH|
|00000b60| 45 4b 44 49 52 20 69 73 | 0a 58 20 20 20 64 65 66 |EKDIR is|.X def|
|00000b70| 69 6e 65 64 2c 20 74 68 | 65 6e 20 6d 61 63 68 69 |ined, th|en machi|
|00000b80| 6e 65 2e 63 20 6d 75 73 | 74 20 61 6c 73 6f 20 63 |ne.c mus|t also c|
|00000b90| 6f 6e 74 61 69 6e 20 66 | 75 6e 63 74 69 6f 6e 20 |ontain f|unction |
|00000ba0| 69 73 61 64 69 72 28 29 | 20 74 68 61 74 0a 58 20 |isadir()| that.X |
|00000bb0| 20 20 74 65 73 74 73 20 | 61 20 73 75 70 70 6c 69 | tests |a suppli|
|00000bc0| 65 64 20 7a 6f 6f 66 69 | 6c 65 20 61 6e 64 20 72 |ed zoofi|le and r|
|00000bd0| 65 74 75 72 6e 73 20 31 | 20 69 66 20 69 74 20 63 |eturns 1| if it c|
|00000be0| 6f 72 72 65 73 70 6f 6e | 64 73 20 74 6f 20 61 0a |orrespon|ds to a.|
|00000bf0| 58 20 20 20 64 69 72 65 | 63 74 6f 72 79 20 6f 72 |X dire|ctory or|
|00000c00| 20 6f 74 68 65 72 20 73 | 70 65 63 69 61 6c 20 74 | other s|pecial t|
|00000c10| 79 70 65 20 6f 66 20 66 | 69 6c 65 2c 20 65 6c 73 |ype of f|ile, els|
|00000c20| 65 20 30 2e 0a 58 43 48 | 45 4b 55 44 49 52 0a 58 |e 0..XCH|EKUDIR.X|
|00000c30| 20 20 20 4c 69 6b 65 20 | 43 48 45 4b 44 49 52 20 | Like |CHEKDIR |
|00000c40| 62 75 74 20 75 73 65 20 | 66 75 6e 63 74 69 6f 6e |but use |function|
|00000c50| 20 69 73 75 61 64 69 72 | 28 29 20 74 68 61 74 20 | isuadir|() that |
|00000c60| 74 65 73 74 73 20 61 20 | 70 61 74 68 6e 61 6d 65 |tests a |pathname|
|00000c70| 2c 20 6e 6f 74 0a 58 20 | 20 20 61 20 7a 6f 6f 66 |, not.X | a zoof|
|00000c80| 69 6c 65 2e 20 20 42 6f | 74 68 20 43 48 45 4b 44 |ile. Bo|th CHEKD|
|00000c90| 49 52 20 61 6e 64 20 43 | 48 45 4b 55 44 49 52 20 |IR and C|HEKUDIR |
|00000ca0| 6d 61 79 20 62 65 20 64 | 65 66 69 6e 65 64 2c 20 |may be d|efined, |
|00000cb0| 69 66 20 62 6f 74 68 0a | 58 20 20 20 66 75 6e 63 |if both.|X func|
|00000cc0| 74 69 6f 6e 73 20 69 73 | 61 64 69 72 28 29 20 61 |tions is|adir() a|
|00000cd0| 6e 64 20 69 73 75 61 64 | 69 72 28 29 20 61 72 65 |nd isuad|ir() are|
|00000ce0| 20 61 76 61 69 6c 61 62 | 6c 65 3b 20 20 69 6e 20 | availab|le; in |
|00000cf0| 74 68 69 73 20 63 61 73 | 65 0a 58 20 20 20 7a 6f |this cas|e.X zo|
|00000d00| 6f 20 63 6f 64 65 20 77 | 69 6c 6c 20 75 73 65 20 |o code w|ill use |
|00000d10| 62 6f 74 68 20 61 6e 64 | 20 77 69 6c 6c 20 65 78 |both and| will ex|
|00000d20| 65 63 75 74 65 20 73 6c | 69 67 68 74 6c 79 20 66 |ecute sl|ightly f|
|00000d30| 61 73 74 65 72 2e 0a 58 | 20 20 20 28 48 6f 77 65 |aster..X| (Howe|
|00000d40| 76 65 72 2c 20 73 69 6d | 75 6c 74 61 6e 65 6f 75 |ver, sim|ultaneou|
|00000d50| 73 20 64 65 66 69 6e 69 | 74 69 6f 6e 20 6f 66 20 |s defini|tion of |
|00000d60| 43 48 45 4b 44 49 52 20 | 61 6e 64 20 43 48 45 4b |CHEKDIR |and CHEK|
|00000d70| 55 44 49 52 20 68 61 73 | 0a 58 20 20 20 6e 6f 74 |UDIR has|.X not|
|00000d80| 20 62 65 65 6e 20 74 65 | 73 74 65 64 2e 29 0a 58 | been te|sted.).X|
|00000d90| 44 49 53 4b 5f 43 48 0a | 58 20 20 20 49 66 20 64 |DISK_CH.|X If d|
|00000da0| 65 66 69 6e 65 64 2c 20 | 6d 75 73 74 20 68 6f 6c |efined, |must hol|
|00000db0| 64 20 74 68 65 20 76 61 | 6c 75 65 20 6f 66 20 61 |d the va|lue of a|
|00000dc0| 20 63 68 61 72 61 63 74 | 65 72 20 74 68 61 74 20 | charact|er that |
|00000dd0| 73 65 70 61 72 61 74 65 | 73 20 61 0a 58 20 20 20 |separate|s a.X |
|00000de0| 64 69 73 6b 20 6e 61 6d | 65 20 66 72 6f 6d 20 74 |disk nam|e from t|
|00000df0| 68 65 20 72 65 73 74 20 | 6f 66 20 74 68 65 20 70 |he rest |of the p|
|00000e00| 61 74 68 6e 61 6d 65 2e | 20 20 41 6c 6c 20 63 68 |athname.| All ch|
|00000e10| 61 72 61 63 74 65 72 73 | 20 75 70 20 74 6f 20 61 |aracters| up to a|
|00000e20| 6e 64 0a 58 20 20 20 69 | 6e 63 6c 75 64 69 6e 67 |nd.X i|ncluding|
|00000e30| 20 74 68 69 73 20 63 68 | 61 72 61 63 74 65 72 20 | this ch|aracter |
|00000e40| 77 69 6c 6c 20 62 65 20 | 72 65 6d 6f 76 65 64 20 |will be |removed |
|00000e50| 66 72 6f 6d 20 61 20 70 | 61 74 68 6e 61 6d 65 20 |from a p|athname |
|00000e60| 62 65 66 6f 72 65 20 69 | 74 0a 58 20 20 20 69 73 |before i|t.X is|
|00000e70| 20 73 74 6f 72 65 64 20 | 69 6e 20 61 6e 20 61 72 | stored |in an ar|
|00000e80| 63 68 69 76 65 2e 20 20 | 55 73 75 61 6c 6c 79 20 |chive. |Usually |
|00000e90| 61 20 63 6f 6c 6f 6e 20 | 28 27 3a 27 29 2e 0a 58 |a colon |(':')..X|
|00000ea0| 45 58 49 53 54 53 0a 58 | 20 20 20 49 66 20 64 65 |EXISTS.X| If de|
|00000eb0| 66 69 6e 65 64 2c 20 69 | 73 20 61 73 73 75 6d 65 |fined, i|s assume|
|00000ec0| 64 20 74 6f 20 62 65 20 | 61 20 6d 61 63 72 6f 20 |d to be |a macro |
|00000ed0| 74 68 61 74 20 61 63 63 | 65 70 74 73 20 61 20 66 |that acc|epts a f|
|00000ee0| 69 6c 65 6e 61 6d 65 20 | 61 6e 64 0a 58 20 20 20 |ilename |and.X |
|00000ef0| 72 65 74 75 72 6e 73 20 | 61 6e 20 69 6e 74 20 76 |returns |an int v|
|00000f00| 61 6c 75 65 20 6f 66 20 | 31 20 69 66 20 74 68 65 |alue of |1 if the|
|00000f10| 20 66 69 6c 65 20 65 78 | 69 73 74 73 20 61 6e 64 | file ex|ists and|
|00000f20| 20 30 20 69 66 20 69 74 | 20 64 6f 65 73 6e 27 74 | 0 if it| doesn't|
|00000f30| 2e 0a 58 20 20 20 49 66 | 20 6e 6f 74 20 64 65 66 |..X If| not def|
|00000f40| 69 6e 65 64 2c 20 65 78 | 69 73 74 65 6e 63 65 20 |ined, ex|istence |
|00000f50| 6f 66 20 66 69 6c 65 73 | 20 69 73 20 74 65 73 74 |of files| is test|
|00000f60| 65 64 20 62 79 20 61 74 | 74 65 6d 70 74 69 6e 67 |ed by at|tempting|
|00000f70| 20 74 6f 20 6f 70 65 6e | 0a 58 20 20 20 74 68 65 | to open|.X the|
|00000f80| 6d 20 66 6f 72 20 72 65 | 61 64 20 6f 72 20 77 72 |m for re|ad or wr|
|00000f90| 69 74 65 20 61 63 63 65 | 73 73 2e 0a 58 46 41 54 |ite acce|ss..XFAT|
|00000fa0| 54 52 0a 58 20 20 20 49 | 66 20 64 65 66 69 6e 65 |TR.X I|f define|
|00000fb0| 64 2c 20 66 69 6c 65 20 | 61 74 74 72 69 62 75 74 |d, file |attribut|
|00000fc0| 65 73 20 77 69 6c 6c 20 | 62 65 20 70 72 65 73 65 |es will |be prese|
|00000fd0| 72 76 65 64 2e 20 20 41 | 20 66 75 6e 63 74 69 6f |rved. A| functio|
|00000fe0| 6e 0a 58 20 20 20 67 65 | 74 66 61 74 74 72 28 66 |n.X ge|tfattr(f|
|00000ff0| 29 20 6d 75 73 74 20 61 | 6c 73 6f 20 65 78 69 73 |) must a|lso exis|
|00001000| 74 20 74 68 61 74 20 72 | 65 74 75 72 6e 73 20 74 |t that r|eturns t|
|00001010| 68 65 20 61 74 74 72 69 | 62 75 74 65 73 20 6f 66 |he attri|butes of|
|00001020| 20 61 0a 58 20 20 20 7a | 6f 6f 66 69 6c 65 20 66 | a.X z|oofile f|
|00001030| 20 28 6f 72 20 6f 66 20 | 61 20 70 61 74 68 6e 61 | (or of |a pathna|
|00001040| 6d 65 20 66 2c 20 69 66 | 20 74 68 65 20 73 79 6d |me f, if| the sym|
|00001050| 62 6f 6c 20 46 41 54 54 | 52 5f 46 4e 41 4d 45 20 |bol FATT|R_FNAME |
|00001060| 69 73 0a 58 20 20 20 61 | 6c 73 6f 20 64 65 66 69 |is.X a|lso defi|
|00001070| 6e 65 64 29 3b 20 61 6e | 64 20 61 20 66 75 6e 63 |ned); an|d a func|
|00001080| 74 69 6f 6e 20 73 65 74 | 66 61 74 74 72 28 66 2c |tion set|fattr(f,|
|00001090| 20 61 29 20 6d 75 73 74 | 20 65 78 69 73 74 20 74 | a) must| exist t|
|000010a0| 68 61 74 0a 58 20 20 20 | 73 65 74 73 20 74 68 65 |hat.X |sets the|
|000010b0| 20 61 74 74 72 69 62 75 | 74 65 73 20 6f 66 20 61 | attribu|tes of a|
|000010c0| 20 66 69 6c 65 20 77 69 | 74 68 20 70 61 74 68 6e | file wi|th pathn|
|000010d0| 61 6d 65 20 66 20 74 6f | 20 74 68 65 20 76 61 6c |ame f to| the val|
|000010e0| 75 65 20 61 2e 0a 58 20 | 20 20 46 6f 72 20 6d 6f |ue a..X | For mo|
|000010f0| 72 65 20 64 65 74 61 69 | 6c 73 20 73 65 65 20 74 |re detai|ls see t|
|00001100| 68 65 20 73 6f 75 72 63 | 65 20 63 6f 64 65 20 69 |he sourc|e code i|
|00001110| 6e 20 73 79 73 76 2e 63 | 20 61 6e 64 20 62 73 64 |n sysv.c| and bsd|
|00001120| 2e 63 2e 20 20 43 75 72 | 72 65 6e 74 6c 79 0a 58 |.c. Cur|rently.X|
|00001130| 20 20 20 74 68 65 20 61 | 74 74 72 69 62 75 74 65 | the a|ttribute|
|00001140| 20 76 61 6c 75 65 20 61 | 20 69 73 20 72 65 71 75 | value a| is requ|
|00001150| 69 72 65 64 20 74 6f 20 | 62 65 20 69 6e 20 74 68 |ired to |be in th|
|00001160| 65 20 7a 6f 6f 20 70 6f | 72 74 61 62 6c 65 0a 58 |e zoo po|rtable.X|
|00001170| 20 20 20 66 6f 72 6d 61 | 74 2e 20 20 54 68 65 20 | forma|t. The |
|00001180| 6c 6f 77 65 73 74 20 6e | 69 6e 65 20 62 69 74 73 |lowest n|ine bits|
|00001190| 20 6f 66 20 74 68 69 73 | 20 66 6f 72 6d 61 74 20 | of this| format |
|000011a0| 63 6f 72 72 65 73 70 6f | 6e 64 20 74 6f 0a 58 20 |correspo|nd to.X |
|000011b0| 20 20 74 68 65 20 2a 2a | 49 58 20 6d 6f 64 65 20 | the **|IX mode |
|000011c0| 62 69 74 73 20 64 65 73 | 63 72 69 62 65 64 20 66 |bits des|cribed f|
|000011d0| 6f 72 20 63 68 6d 6f 64 | 28 32 29 20 61 6e 64 20 |or chmod|(2) and |
|000011e0| 74 68 65 73 65 20 61 72 | 65 20 74 68 65 20 6f 6e |these ar|e the on|
|000011f0| 6c 79 0a 58 20 20 20 62 | 69 74 73 20 63 75 72 72 |ly.X b|its curr|
|00001200| 65 6e 74 6c 79 20 75 73 | 65 64 2e 0a 58 46 41 54 |ently us|ed..XFAT|
|00001210| 54 52 5f 46 4e 41 4d 45 | 0a 58 20 20 20 49 66 20 |TR_FNAME|.X If |
|00001220| 64 65 66 69 6e 65 64 2c | 20 61 6e 64 20 69 66 20 |defined,| and if |
|00001230| 46 41 54 54 52 20 69 73 | 20 61 6c 73 6f 20 64 65 |FATTR is| also de|
|00001240| 66 69 6e 65 64 2c 20 7a | 6f 6f 20 63 6f 64 65 20 |fined, z|oo code |
|00001250| 77 69 6c 6c 0a 58 20 20 | 20 6f 62 74 61 69 6e 20 |will.X | obtain |
|00001260| 74 68 65 20 61 74 74 72 | 69 62 75 74 65 73 20 6f |the attr|ibutes o|
|00001270| 66 20 61 20 66 69 6c 65 | 20 62 79 20 63 61 6c 6c |f a file| by call|
|00001280| 69 6e 67 20 74 68 65 20 | 66 75 6e 63 74 69 6f 6e |ing the |function|
|00001290| 0a 58 20 20 20 67 65 74 | 66 61 74 74 72 28 66 29 |.X get|fattr(f)|
|000012a0| 20 61 6e 64 20 73 75 70 | 70 6c 79 69 6e 67 20 69 | and sup|plying i|
|000012b0| 74 20 77 69 74 68 20 66 | 69 6c 65 6e 61 6d 65 20 |t with f|ilename |
|000012c0| 66 2e 20 20 49 66 20 46 | 41 54 54 52 5f 46 4e 41 |f. If F|ATTR_FNA|
|000012d0| 4d 45 0a 58 20 20 20 69 | 73 20 6e 6f 74 20 64 65 |ME.X i|s not de|
|000012e0| 66 69 6e 65 64 2c 20 74 | 68 65 6e 20 67 65 74 66 |fined, t|hen getf|
|000012f0| 61 74 74 72 28 66 29 20 | 69 73 20 73 75 70 70 6c |attr(f) |is suppl|
|00001300| 69 65 64 20 61 20 7a 6f | 6f 66 69 6c 65 20 66 2e |ied a zo|ofile f.|
|00001310| 0a 58 4c 49 4e 54 5f 41 | 52 47 53 0a 58 20 20 20 |.XLINT_A|RGS.X |
|00001320| 55 73 65 20 41 4e 53 49 | 2d 73 74 79 6c 65 20 66 |Use ANSI|-style f|
|00001330| 75 6e 63 74 69 6f 6e 20 | 61 72 67 75 6d 65 6e 74 |unction |argument|
|00001340| 20 6c 69 73 74 73 20 69 | 6e 20 64 65 63 6c 61 72 | lists i|n declar|
|00001350| 61 74 69 6f 6e 73 2e 20 | 20 54 68 65 20 73 79 6d |ations. | The sym|
|00001360| 62 6f 6c 73 0a 58 20 20 | 20 4d 4f 52 45 2c 20 4e |bols.X | MORE, N|
|00001370| 4f 54 48 49 4e 47 2c 20 | 61 6e 64 20 56 4f 49 44 |OTHING, |and VOID|
|00001380| 50 54 52 20 6d 75 73 74 | 20 61 6c 73 6f 20 62 65 |PTR must| also be|
|00001390| 20 64 65 66 69 6e 65 64 | 2e 0a 58 4d 4f 52 45 0a | defined|..XMORE.|
|000013a0| 58 20 20 20 49 6e 20 66 | 75 6e 63 74 69 6f 6e 20 |X In f|unction |
|000013b0| 70 72 6f 74 6f 74 79 70 | 65 73 2c 20 61 20 76 61 |prototyp|es, a va|
|000013c0| 72 69 61 62 6c 65 20 6e | 75 6d 62 65 72 20 6f 66 |riable n|umber of|
|000013d0| 20 74 72 61 69 6c 69 6e | 67 20 61 72 67 75 6d 65 | trailin|g argume|
|000013e0| 6e 74 73 0a 58 20 20 20 | 69 73 20 73 70 65 63 69 |nts.X |is speci|
|000013f0| 66 69 65 64 20 77 69 74 | 68 20 74 68 65 20 73 79 |fied wit|h the sy|
|00001400| 6d 62 6f 6c 20 4d 4f 52 | 45 20 66 6f 6c 6c 6f 77 |mbol MOR|E follow|
|00001410| 69 6e 67 20 61 20 74 72 | 61 69 6c 69 6e 67 20 63 |ing a tr|ailing c|
|00001420| 6f 6d 6d 61 2e 0a 58 20 | 20 20 46 6f 72 20 41 4e |omma..X | For AN|
|00001430| 53 49 2d 63 6f 6e 66 6f | 72 6d 61 6e 74 20 63 6f |SI-confo|rmant co|
|00001440| 6d 70 69 6c 65 72 73 2c | 20 4d 4f 52 45 20 77 69 |mpilers,| MORE wi|
|00001450| 6c 6c 20 62 65 20 64 65 | 66 69 6e 65 64 20 74 6f |ll be de|fined to|
|00001460| 20 62 65 20 74 68 72 65 | 65 0a 58 20 20 20 64 6f | be thre|e.X do|
|00001470| 74 73 20 28 2e 2e 2e 29 | 3b 20 20 66 6f 72 20 6f |ts (...)|; for o|
|00001480| 74 68 65 72 73 2c 20 69 | 74 20 63 61 6e 20 62 65 |thers, i|t can be|
|00001490| 20 64 65 66 69 6e 65 64 | 20 61 73 20 6e 65 63 65 | defined| as nece|
|000014a0| 73 73 61 72 79 0a 58 20 | 20 20 28 65 6d 70 74 79 |ssary.X | (empty|
|000014b0| 20 73 74 72 69 6e 67 20 | 66 6f 72 20 4d 69 63 72 | string |for Micr|
|000014c0| 6f 73 6f 66 74 20 43 20 | 33 2e 30 29 2e 0a 58 4e |osoft C |3.0)..XN|
|000014d0| 4f 54 48 49 4e 47 0a 58 | 20 20 20 49 6e 20 61 20 |OTHING.X| In a |
|000014e0| 70 72 6f 74 6f 74 79 70 | 65 20 66 6f 72 20 61 20 |prototyp|e for a |
|000014f0| 66 75 6e 63 74 69 6f 6e | 20 74 68 61 74 20 74 61 |function| that ta|
|00001500| 6b 65 73 20 6e 6f 20 70 | 61 72 61 6d 65 74 65 72 |kes no p|arameter|
|00001510| 73 2c 20 4e 4f 54 48 49 | 4e 47 20 69 73 0a 58 20 |s, NOTHI|NG is.X |
|00001520| 20 20 75 73 65 64 20 61 | 73 20 74 68 65 20 70 61 | used a|s the pa|
|00001530| 72 61 6d 65 74 65 72 2e | 20 20 46 6f 72 20 41 4e |rameter.| For AN|
|00001540| 53 49 2d 63 6f 6d 70 61 | 74 69 62 6c 65 20 63 6f |SI-compa|tible co|
|00001550| 6d 70 69 6c 65 72 73 20 | 4e 4f 54 48 49 4e 47 20 |mpilers |NOTHING |
|00001560| 73 68 6f 75 6c 64 0a 58 | 20 20 20 62 65 20 64 65 |should.X| be de|
|00001570| 66 69 6e 65 64 20 74 6f | 20 62 65 20 60 76 6f 69 |fined to| be `voi|
|00001580| 64 27 2e 20 20 46 6f 72 | 20 6f 74 68 65 72 20 63 |d'. For| other c|
|00001590| 6f 6d 70 69 6c 65 72 73 | 20 69 74 20 73 68 6f 75 |ompilers| it shou|
|000015a0| 6c 64 20 62 65 20 64 65 | 66 69 6e 65 64 0a 58 20 |ld be de|fined.X |
|000015b0| 20 20 74 6f 20 62 65 20 | 65 6d 70 74 79 2e 0a 58 | to be |empty..X|
|000015c0| 56 4f 49 44 50 54 52 0a | 58 20 20 20 56 4f 49 44 |VOIDPTR.|X VOID|
|000015d0| 50 54 52 20 73 68 6f 75 | 6c 64 20 62 65 20 64 65 |PTR shou|ld be de|
|000015e0| 66 69 6e 65 64 20 61 73 | 20 76 6f 69 64 20 2a 20 |fined as| void * |
|000015f0| 69 66 20 74 68 65 20 63 | 6f 6d 70 69 6c 65 72 20 |if the c|ompiler |
|00001600| 73 75 70 70 6f 72 74 73 | 20 74 68 69 73 0a 58 20 |supports| this.X |
|00001610| 20 20 28 65 2e 67 2e 20 | 54 75 72 62 6f 20 43 29 | (e.g. |Turbo C)|
|00001620| 2c 20 65 6c 73 65 20 69 | 74 20 73 68 6f 75 6c 64 |, else i|t should|
|00001630| 20 62 65 20 64 65 66 69 | 6e 65 64 20 61 73 20 63 | be defi|ned as c|
|00001640| 68 61 72 20 2a 20 28 65 | 2e 67 2e 20 4d 69 63 72 |har * (e|.g. Micr|
|00001650| 6f 73 6f 66 74 0a 58 20 | 20 20 43 29 2e 0a 58 4c |osoft.X | C)..XL|
|00001660| 49 4e 54 0a 58 20 20 20 | 49 66 20 64 65 66 69 6e |INT.X |If defin|
|00001670| 65 64 2c 20 53 43 43 53 | 20 69 64 65 6e 74 69 66 |ed, SCCS| identif|
|00001680| 69 65 72 20 73 74 72 69 | 6e 67 73 20 77 69 6c 6c |ier stri|ngs will|
|00001690| 20 6e 6f 74 20 62 65 20 | 69 6e 63 6c 75 64 65 64 | not be |included|
|000016a0| 20 69 6e 20 74 68 65 0a | 58 20 20 20 67 65 6e 65 | in the.|X gene|
|000016b0| 72 61 74 65 64 20 63 6f | 64 65 2e 20 20 54 68 69 |rated co|de. Thi|
|000016c0| 73 20 77 69 6c 6c 20 6d | 61 6b 65 20 74 68 65 20 |s will m|ake the |
|000016d0| 63 6f 64 65 20 73 6d 61 | 6c 6c 65 72 20 61 6e 64 |code sma|ller and|
|000016e0| 20 77 69 6c 6c 20 61 6c | 73 6f 0a 58 20 20 20 61 | will al|so.X a|
|000016f0| 76 6f 69 64 20 63 6f 6d | 70 6c 61 69 6e 74 73 20 |void com|plaints |
|00001700| 66 72 6f 6d 20 6c 69 6e | 74 20 61 62 6f 75 74 20 |from lin|t about |
|00001710| 75 6e 75 73 65 64 20 76 | 61 72 69 61 62 6c 65 73 |unused v|ariables|
|00001720| 2e 20 20 54 68 69 73 20 | 73 79 6d 62 6f 6c 0a 58 |. This |symbol.X|
|00001730| 20 20 20 73 68 6f 75 6c | 64 20 62 65 20 64 65 66 | shoul|d be def|
|00001740| 69 6e 65 64 20 69 6e 20 | 74 68 65 20 4d 61 6b 65 |ined in |the Make|
|00001750| 66 69 6c 65 2c 20 4e 4f | 54 20 69 6e 20 60 6f 70 |file, NO|T in `op|
|00001760| 74 69 6f 6e 73 2e 68 27 | 2c 20 6f 74 68 65 72 77 |tions.h'|, otherw|
|00001770| 69 73 65 0a 58 20 20 20 | 69 74 20 77 69 6c 6c 20 |ise.X |it will |
|00001780| 6e 6f 74 20 62 65 20 66 | 75 6c 6c 79 20 65 66 66 |not be f|ully eff|
|00001790| 65 63 74 69 76 65 2e 0a | 58 46 4f 4c 44 0a 58 20 |ective..|XFOLD.X |
|000017a0| 20 20 46 6f 6c 64 20 66 | 69 6c 65 6e 61 6d 65 73 | Fold f|ilenames|
|000017b0| 20 74 6f 20 6c 6f 77 65 | 72 63 61 73 65 2e 20 20 | to lowe|rcase. |
|000017c0| 44 65 66 69 6e 65 20 74 | 68 69 73 20 66 6f 72 20 |Define t|his for |
|000017d0| 63 61 73 65 2d 69 6e 73 | 65 6e 73 69 74 69 76 65 |case-ins|ensitive|
|000017e0| 20 66 69 6c 65 73 79 73 | 74 65 6d 73 0a 58 46 50 | filesys|tems.XFP|
|000017f0| 55 54 43 48 41 52 0a 58 | 20 20 20 49 66 20 64 65 |UTCHAR.X| If de|
|00001800| 66 69 6e 65 64 2c 20 61 | 20 6c 69 62 72 61 72 79 |fined, a| library|
|00001810| 20 66 75 6e 63 74 69 6f | 6e 20 66 70 75 74 63 68 | functio|n fputch|
|00001820| 61 72 28 29 20 69 73 20 | 61 73 73 75 6d 65 64 20 |ar() is |assumed |
|00001830| 61 76 61 69 6c 61 62 6c | 65 0a 58 20 20 20 74 68 |availabl|e.X th|
|00001840| 61 74 20 69 73 20 6c 69 | 6b 65 20 66 70 75 74 28 |at is li|ke fput(|
|00001850| 29 20 62 75 74 20 69 73 | 20 61 20 66 75 6e 63 74 |) but is| a funct|
|00001860| 69 6f 6e 2c 20 6e 6f 74 | 20 61 20 6d 61 63 72 6f |ion, not| a macro|
|00001870| 2c 20 74 6f 20 73 61 76 | 65 0a 58 20 20 20 73 70 |, to sav|e.X sp|
|00001880| 61 63 65 2e 20 20 49 66 | 20 6e 6f 74 20 64 65 66 |ace. If| not def|
|00001890| 69 6e 65 64 20 5a 6f 6f | 20 75 73 65 73 20 69 74 |ined Zoo| uses it|
|000018a0| 73 20 6f 77 6e 20 66 70 | 75 74 63 68 61 72 28 29 |s own fp|utchar()|
|000018b0| 20 66 75 6e 63 74 69 6f | 6e 2e 0a 58 50 4f 52 54 | functio|n..XPORT|
|000018c0| 41 42 4c 45 0a 58 20 20 | 20 55 73 65 20 70 6f 72 |ABLE.X | Use por|
|000018d0| 74 61 62 6c 65 20 66 75 | 6e 63 74 69 6f 6e 73 20 |table fu|nctions |
|000018e0| 2d 2d 2d 20 64 65 66 69 | 6e 65 20 66 6f 72 20 65 |--- defi|ne for e|
|000018f0| 76 65 72 79 20 73 79 73 | 74 65 6d 20 65 78 63 65 |very sys|tem exce|
|00001900| 70 74 20 4d 53 2d 44 4f | 53 0a 58 50 55 52 49 46 |pt MS-DO|S.XPURIF|
|00001910| 59 0a 58 20 20 20 57 68 | 65 6e 20 66 69 6c 65 6e |Y.X Wh|en filen|
|00001920| 61 6d 65 73 20 61 72 65 | 20 62 65 69 6e 67 20 72 |ames are| being r|
|00001930| 65 61 64 20 66 72 6f 6d | 20 73 74 61 6e 64 61 72 |ead from| standar|
|00001940| 64 20 69 6e 70 75 74 2c | 20 69 67 6e 6f 72 65 20 |d input,| ignore |
|00001950| 61 6c 6c 0a 58 20 20 20 | 63 68 61 72 61 63 74 65 |all.X |characte|
|00001960| 72 73 20 62 65 67 69 6e | 69 6e 67 20 77 69 74 68 |rs begin|ing with|
|00001970| 20 74 68 65 20 66 69 72 | 73 74 20 62 6c 61 6e 6b | the fir|st blank|
|00001980| 20 6f 72 20 74 61 62 20 | 65 6e 63 6f 75 6e 74 65 | or tab |encounte|
|00001990| 72 65 64 2e 0a 58 20 20 | 20 54 68 69 73 20 77 69 |red..X | This wi|
|000019a0| 6c 6c 20 61 6c 6c 6f 77 | 20 66 69 6c 65 6e 61 6d |ll allow| filenam|
|000019b0| 65 73 20 74 6f 20 62 65 | 20 66 65 64 20 66 72 6f |es to be| fed fro|
|000019c0| 6d 20 61 20 70 72 6f 67 | 72 61 6d 20 74 68 61 74 |m a prog|ram that|
|000019d0| 20 70 72 6f 64 75 63 65 | 73 0a 58 20 20 20 6c 69 | produce|s.X li|
|000019e0| 6e 65 73 20 63 6f 6e 74 | 61 69 6e 69 6e 67 20 66 |nes cont|aining f|
|000019f0| 69 6c 65 6e 61 6d 65 73 | 20 66 6f 6c 6c 6f 77 65 |ilenames| followe|
|00001a00| 64 20 62 79 20 6f 74 68 | 65 72 20 69 6e 66 6f 72 |d by oth|er infor|
|00001a10| 6d 61 74 69 6f 6e 20 74 | 68 61 74 0a 58 20 20 20 |mation t|hat.X |
|00001a20| 73 68 6f 75 6c 64 20 62 | 65 20 69 67 6e 6f 72 65 |should b|e ignore|
|00001a30| 64 2e 20 20 53 68 6f 75 | 6c 64 20 62 65 20 64 65 |d. Shou|ld be de|
|00001a40| 66 69 6e 65 64 20 66 6f | 72 20 6d 6f 73 74 20 6e |fined fo|r most n|
|00001a50| 6f 6e 2d 2a 2a 49 58 20 | 73 79 73 74 65 6d 73 2e |on-**IX |systems.|
|00001a60| 0a 58 44 4f 4e 54 5f 53 | 4f 52 54 0a 58 20 20 20 |.XDONT_S|ORT.X |
|00001a70| 44 6f 6e 27 74 20 73 6f | 72 74 20 66 69 6c 65 6e |Don't so|rt filen|
|00001a80| 61 6d 65 20 61 72 67 75 | 6d 65 6e 74 73 20 2d 2d |ame argu|ments --|
|00001a90| 20 66 69 6c 65 73 20 77 | 69 6c 6c 20 62 65 20 73 | files w|ill be s|
|00001aa0| 74 6f 72 65 64 20 69 6e | 20 74 68 65 0a 58 20 20 |tored in| the.X |
|00001ab0| 20 65 78 61 63 74 20 6f | 72 64 65 72 20 69 6e 20 | exact o|rder in |
|00001ac0| 77 68 69 63 68 20 6e 61 | 6d 65 73 20 61 72 65 20 |which na|mes are |
|00001ad0| 73 75 70 70 6c 69 65 64 | 20 6f 6e 20 74 68 65 20 |supplied| on the |
|00001ae0| 63 6f 6d 6d 61 6e 64 20 | 6c 69 6e 65 2e 0a 58 20 |command |line..X |
|00001af0| 20 20 4e 6f 74 20 63 75 | 72 72 65 6e 74 6c 79 20 | Not cu|rrently |
|00001b00| 75 73 65 64 20 66 6f 72 | 20 61 6e 79 20 73 79 73 |used for| any sys|
|00001b10| 74 65 6d 2c 20 62 75 74 | 20 63 6f 75 6c 64 20 62 |tem, but| could b|
|00001b20| 65 20 75 73 65 64 20 69 | 66 20 6d 65 6d 6f 72 79 |e used i|f memory|
|00001b30| 0a 58 20 20 20 69 73 20 | 72 65 61 6c 6c 79 20 74 |.X is |really t|
|00001b40| 69 67 68 74 2e 0a 58 4e | 4f 45 4e 55 4d 0a 58 20 |ight..XN|OENUM.X |
|00001b50| 20 20 43 6f 6d 70 69 6c | 65 72 20 64 6f 65 73 20 | Compil|er does |
|00001b60| 6e 6f 74 20 73 75 70 70 | 6f 72 74 20 65 6e 75 6d |not supp|ort enum|
|00001b70| 65 72 61 74 69 6f 6e 73 | 0a 58 44 55 4d 42 5f 41 |erations|.XDUMB_A|
|00001b80| 53 53 0a 58 20 20 20 44 | 75 6d 62 20 61 73 73 65 |SS.X D|umb asse|
|00001b90| 72 74 69 6f 6e 73 20 6d | 75 73 74 20 62 65 20 75 |rtions m|ust be u|
|00001ba0| 73 65 64 20 62 65 63 61 | 75 73 65 20 74 68 65 20 |sed beca|use the |
|00001bb0| 70 72 65 70 72 6f 63 65 | 73 73 6f 72 20 64 6f 65 |preproce|ssor doe|
|00001bc0| 73 6e 27 74 20 64 65 66 | 69 6e 65 0a 58 20 20 20 |sn't def|ine.X |
|00001bd0| 74 68 65 20 73 79 6d 62 | 6f 6c 73 20 5f 5f 46 49 |the symb|ols __FI|
|00001be0| 4c 45 5f 5f 20 61 6e 64 | 20 5f 5f 4c 49 4e 45 5f |LE__ and| __LINE_|
|00001bf0| 5f 20 20 28 77 68 69 63 | 68 20 68 6f 6c 64 20 74 |_ (whic|h hold t|
|00001c00| 68 65 20 6e 61 6d 65 20 | 6f 66 20 74 68 65 20 63 |he name |of the c|
|00001c10| 75 72 72 65 6e 74 0a 58 | 20 20 20 66 69 6c 65 20 |urrent.X| file |
|00001c20| 61 6e 64 20 74 68 65 20 | 6e 75 6d 62 65 72 20 6f |and the |number o|
|00001c30| 66 20 74 68 65 20 63 75 | 72 72 65 6e 74 20 6c 69 |f the cu|rrent li|
|00001c40| 6e 65 29 0a 58 46 4e 4c | 49 4d 49 54 0a 58 20 20 |ne).XFNL|IMIT.X |
|00001c50| 20 50 61 74 68 6e 61 6d | 65 20 6c 65 6e 67 74 68 | Pathnam|e length|
|00001c60| 20 6c 69 6d 69 74 20 66 | 6f 72 20 74 68 69 73 20 | limit f|or this |
|00001c70| 73 79 73 74 65 6d 0a 58 | 4e 45 45 44 43 54 59 50 |system.X|NEEDCTYP|
|00001c80| 0a 58 20 20 20 49 66 20 | 64 65 66 69 6e 65 64 2c |.X If |defined,|
|00001c90| 20 74 65 6c 6c 73 20 74 | 68 65 20 63 6f 64 65 20 | tells t|he code |
|00001ca0| 74 6f 20 69 6e 63 6c 75 | 64 65 20 74 68 65 20 68 |to inclu|de the h|
|00001cb0| 65 61 64 65 72 20 66 69 | 6c 65 20 63 74 79 70 65 |eader fi|le ctype|
|00001cc0| 2e 68 20 66 6f 72 0a 58 | 20 20 20 75 73 65 20 62 |.h for.X| use b|
|00001cd0| 79 20 63 68 61 72 61 63 | 74 65 72 20 63 6f 6e 76 |y charac|ter conv|
|00001ce0| 65 72 73 69 6f 6e 20 6d | 61 63 72 6f 73 2e 20 20 |ersion m|acros. |
|00001cf0| 49 66 20 61 6e 64 20 6f | 6e 6c 79 20 69 66 20 4e |If and o|nly if N|
|00001d00| 45 45 44 43 54 59 50 20 | 69 73 20 6e 6f 74 0a 58 |EEDCTYP |is not.X|
|00001d10| 20 20 20 64 65 66 69 6e | 65 64 2c 20 6d 61 63 72 | defin|ed, macr|
|00001d20| 6f 73 20 6f 72 20 61 70 | 70 72 6f 70 72 69 61 74 |os or ap|propriat|
|00001d30| 65 20 66 75 6e 63 74 69 | 6f 6e 20 64 65 63 6c 61 |e functi|on decla|
|00001d40| 72 61 74 69 6f 6e 73 20 | 63 61 6e 20 62 65 20 70 |rations |can be p|
|00001d50| 75 74 20 69 6e 0a 58 20 | 20 20 70 6f 72 74 61 62 |ut in.X | portab|
|00001d60| 6c 65 2e 68 2e 20 20 5a | 6f 6f 20 75 73 65 73 20 |le.h. Z|oo uses |
|00001d70| 69 73 75 70 70 65 72 28 | 29 2c 20 69 73 64 69 67 |isupper(|), isdig|
|00001d80| 69 74 28 29 2c 20 74 6f | 61 73 63 69 69 28 29 2c |it(), to|ascii(),|
|00001d90| 20 61 6e 64 20 74 6f 6c | 6f 77 65 72 28 29 2e 0a | and tol|ower()..|
|00001da0| 58 20 20 20 49 66 20 4e | 45 45 44 43 54 59 50 20 |X If N|EEDCTYP |
|00001db0| 69 73 20 6e 6f 74 20 64 | 65 66 69 6e 65 64 2c 20 |is not d|efined, |
|00001dc0| 74 68 65 20 73 79 6d 62 | 6f 6c 20 55 53 45 5f 41 |the symb|ol USE_A|
|00001dd0| 53 43 49 49 20 63 61 6e | 20 62 65 20 64 65 66 69 |SCII can| be defi|
|00001de0| 6e 65 64 20 74 6f 0a 58 | 20 20 20 63 61 75 73 65 |ned to.X| cause|
|00001df0| 20 7a 6f 6f 20 74 6f 20 | 61 73 73 75 6d 65 20 74 | zoo to |assume t|
|00001e00| 68 65 20 41 53 43 49 49 | 20 63 68 61 72 61 63 74 |he ASCII| charact|
|00001e10| 65 72 20 73 65 74 20 61 | 6e 64 20 75 73 65 20 69 |er set a|nd use i|
|00001e20| 74 73 20 6f 77 6e 20 69 | 73 75 70 70 65 72 28 29 |ts own i|supper()|
|00001e30| 2c 0a 58 20 20 20 69 73 | 64 69 67 69 74 28 29 2c |,.X is|digit(),|
|00001e40| 20 74 6f 61 73 63 69 69 | 28 29 2c 20 61 6e 64 20 | toascii|(), and |
|00001e50| 74 6f 6c 6f 77 65 72 28 | 29 20 66 75 6e 63 74 69 |tolower(|) functi|
|00001e60| 6f 6e 73 2c 20 70 6f 73 | 73 69 62 6c 79 20 6d 61 |ons, pos|sibly ma|
|00001e70| 6b 69 6e 67 20 74 68 65 | 0a 58 20 20 20 65 78 65 |king the|.X exe|
|00001e80| 63 75 74 61 62 6c 65 20 | 63 6f 64 65 20 73 6d 61 |cutable |code sma|
|00001e90| 6c 6c 65 72 2e 0a 58 55 | 53 45 5f 41 53 43 49 49 |ller..XU|SE_ASCII|
|00001ea0| 0a 58 20 20 20 53 65 65 | 20 64 65 73 63 72 69 70 |.X See| descrip|
|00001eb0| 74 69 6f 6e 20 6f 66 20 | 4e 45 45 44 43 54 59 50 |tion of |NEEDCTYP|
|00001ec0| 2e 20 20 55 53 45 5f 41 | 53 43 49 49 20 73 68 6f |. USE_A|SCII sho|
|00001ed0| 75 6c 64 20 6e 6f 74 20 | 62 65 20 64 65 66 69 6e |uld not |be defin|
|00001ee0| 65 64 20 69 66 0a 58 20 | 20 20 4e 45 45 44 43 54 |ed if.X | NEEDCT|
|00001ef0| 59 50 20 69 73 20 64 65 | 66 69 6e 65 64 2c 20 65 |YP is de|fined, e|
|00001f00| 6c 73 65 20 74 68 65 72 | 65 20 6d 61 79 20 62 65 |lse ther|e may be|
|00001f10| 20 63 6f 6e 66 6c 69 63 | 74 73 20 62 65 74 77 65 | conflic|ts betwe|
|00001f20| 65 6e 20 6d 61 63 72 6f | 0a 58 20 20 20 61 6e 64 |en macro|.X and|
|00001f30| 20 66 75 6e 63 74 69 6f | 6e 20 6e 61 6d 65 73 2e | functio|n names.|
|00001f40| 0a 58 4e 49 58 54 49 4d | 45 0a 58 20 20 20 49 66 |.XNIXTIM|E.X If|
|00001f50| 20 64 65 66 69 6e 65 64 | 2c 20 61 20 66 75 6e 63 | defined|, a func|
|00001f60| 74 69 6f 6e 20 73 65 74 | 75 74 69 6d 65 28 29 20 |tion set|utime() |
|00001f70| 6d 75 73 74 20 62 65 20 | 64 65 66 69 6e 65 64 20 |must be |defined |
|00001f80| 74 68 61 74 20 77 69 6c | 6c 20 73 65 74 20 74 68 |that wil|l set th|
|00001f90| 65 0a 58 20 20 20 64 61 | 74 65 20 61 6e 64 20 74 |e.X da|te and t|
|00001fa0| 69 6d 65 20 6f 66 20 61 | 20 66 69 6c 65 20 77 68 |ime of a| file wh|
|00001fb0| 6f 73 65 20 70 61 74 68 | 6e 61 6d 65 20 69 73 20 |ose path|name is |
|00001fc0| 73 75 70 70 6c 69 65 64 | 2e 20 20 49 66 20 6e 6f |supplied|. If no|
|00001fd0| 74 20 64 65 66 69 6e 65 | 64 2c 0a 58 20 20 20 61 |t define|d,.X a|
|00001fe0| 20 66 75 6e 63 74 69 6f | 6e 20 73 65 74 74 69 6d | functio|n settim|
|00001ff0| 65 28 29 20 6d 75 73 74 | 20 62 65 20 64 65 66 69 |e() must| be defi|
|00002000| 6e 65 64 20 74 68 61 74 | 20 77 69 6c 6c 20 64 6f |ned that| will do|
|00002010| 20 74 68 65 20 73 61 6d | 65 20 66 6f 72 0a 58 20 | the sam|e for.X |
|00002020| 20 20 61 20 7a 6f 6f 66 | 69 6c 65 2e 0a 58 47 45 | a zoof|ile..XGE|
|00002030| 54 55 54 49 4d 45 0a 58 | 20 20 20 49 66 20 64 65 |TUTIME.X| If de|
|00002040| 66 69 6e 65 64 2c 20 61 | 20 66 75 6e 63 74 69 6f |fined, a| functio|
|00002050| 6e 20 67 65 74 75 74 69 | 6d 65 28 29 20 6d 75 73 |n getuti|me() mus|
|00002060| 74 20 62 65 20 64 65 66 | 69 6e 65 64 20 74 68 61 |t be def|ined tha|
|00002070| 74 20 77 69 6c 6c 20 72 | 65 74 75 72 6e 0a 58 20 |t will r|eturn.X |
|00002080| 20 20 74 68 65 20 4d 53 | 2d 44 4f 53 20 66 6f 72 | the MS|-DOS for|
|00002090| 6d 61 74 20 64 61 74 65 | 20 61 6e 64 20 74 69 6d |mat date| and tim|
|000020a0| 65 20 6f 66 20 74 68 65 | 20 73 70 65 63 69 66 69 |e of the| specifi|
|000020b0| 65 64 20 66 69 6c 65 6e | 61 6d 65 2e 20 20 49 66 |ed filen|ame. If|
|000020c0| 20 74 68 69 73 0a 58 20 | 20 20 73 79 6d 62 6f 6c | this.X | symbol|
|000020d0| 20 69 73 20 6e 6f 74 20 | 64 65 66 69 6e 65 64 2c | is not |defined,|
|000020e0| 20 74 68 65 6e 20 61 20 | 66 75 6e 63 74 69 6f 6e | then a |function|
|000020f0| 20 67 65 74 74 69 6d 65 | 28 29 20 6d 75 73 74 20 | gettime|() must |
|00002100| 62 65 20 64 65 66 69 6e | 65 64 0a 58 20 20 20 74 |be defin|ed.X t|
|00002110| 68 61 74 20 77 69 6c 6c | 20 64 6f 20 74 68 65 20 |hat will| do the |
|00002120| 73 61 6d 65 20 66 6f 72 | 20 61 20 7a 6f 6f 66 69 |same for| a zoofi|
|00002130| 6c 65 20 69 6e 73 74 65 | 61 64 20 6f 66 20 61 20 |le inste|ad of a |
|00002140| 66 69 6c 65 6e 61 6d 65 | 2e 0a 58 4e 4f 53 49 47 |filename|..XNOSIG|
|00002150| 4e 41 4c 0a 58 20 20 20 | 64 6f 6e 27 74 20 75 73 |NAL.X |don't us|
|00002160| 65 20 73 69 67 6e 61 6c | 73 20 62 65 63 61 75 73 |e signal|s becaus|
|00002170| 65 20 6c 69 62 72 61 72 | 79 20 64 6f 65 73 6e 27 |e librar|y doesn'|
|00002180| 74 20 73 75 70 70 6f 72 | 74 20 74 68 65 6d 0a 58 |t suppor|t them.X|
|00002190| 50 41 54 48 5f 43 48 0a | 58 20 20 20 54 68 65 20 |PATH_CH.|X The |
|000021a0| 63 68 61 72 61 63 74 65 | 72 20 74 68 61 74 20 73 |characte|r that s|
|000021b0| 65 70 61 72 61 74 65 73 | 20 74 68 65 20 64 69 72 |eparates| the dir|
|000021c0| 65 63 74 6f 72 79 20 6e | 61 6d 65 20 66 72 6f 6d |ectory n|ame from|
|000021d0| 20 74 68 65 20 66 69 6c | 65 6e 61 6d 65 0a 58 20 | the fil|ename.X |
|000021e0| 20 20 69 6e 20 61 20 70 | 61 74 68 6e 61 6d 65 2e | in a p|athname.|
|000021f0| 20 20 53 74 72 69 6e 67 | 20 76 61 6c 75 65 2e 0a | String| value..|
|00002200| 58 50 41 54 48 5f 53 45 | 50 0a 58 20 20 20 54 68 |XPATH_SE|P.X Th|
|00002210| 65 20 73 65 74 20 6f 66 | 20 63 68 61 72 61 63 74 |e set of| charact|
|00002220| 65 72 73 20 74 68 61 74 | 20 6d 61 79 20 73 65 70 |ers that| may sep|
|00002230| 61 72 61 74 65 20 70 72 | 65 63 65 64 69 6e 67 20 |arate pr|eceding |
|00002240| 64 69 72 65 63 74 6f 72 | 79 2f 64 65 76 69 63 65 |director|y/device|
|00002250| 0a 58 20 20 20 69 6e 66 | 6f 72 6d 61 74 69 6f 6e |.X inf|ormation|
|00002260| 20 66 72 6f 6d 20 74 68 | 65 20 66 69 6c 65 6e 61 | from th|e filena|
|00002270| 6d 65 2e 20 20 53 74 72 | 69 6e 67 20 76 61 6c 75 |me. Str|ing valu|
|00002280| 65 2e 0a 58 45 58 54 5f | 53 45 50 20 69 73 20 74 |e..XEXT_|SEP is t|
|00002290| 68 65 20 75 6e 69 6f 6e | 20 6f 66 20 50 41 54 48 |he union| of PATH|
|000022a0| 5f 53 45 50 20 61 6e 64 | 20 74 68 65 20 73 65 74 |_SEP and| the set|
|000022b0| 20 6f 66 20 63 68 61 72 | 61 63 74 65 72 73 20 73 | of char|acters s|
|000022c0| 65 70 61 72 61 74 69 6e | 67 20 61 0a 58 20 20 20 |eparatin|g a.X |
|000022d0| 66 69 6c 65 6e 61 6d 65 | 20 65 78 74 65 6e 73 69 |filename| extensi|
|000022e0| 6f 6e 20 66 72 6f 6d 20 | 74 68 65 20 72 65 73 74 |on from |the rest|
|000022f0| 20 6f 66 20 74 68 65 20 | 66 69 6c 65 6e 61 6d 65 | of the |filename|
|00002300| 2e 20 20 53 74 72 69 6e | 67 20 76 61 6c 75 65 2e |. Strin|g value.|
|00002310| 0a 58 45 58 54 5f 43 48 | 0a 58 20 20 20 43 68 61 |.XEXT_CH|.X Cha|
|00002320| 72 61 63 74 65 72 20 74 | 68 61 74 20 73 65 70 61 |racter t|hat sepa|
|00002330| 72 61 74 65 73 20 62 61 | 73 65 20 70 61 72 74 20 |rates ba|se part |
|00002340| 6f 66 20 66 69 6c 65 6e | 61 6d 65 20 66 72 6f 6d |of filen|ame from|
|00002350| 20 65 78 74 65 6e 73 69 | 6f 6e 2e 0a 58 20 20 20 | extensi|on..X |
|00002360| 43 68 61 72 20 76 61 6c | 75 65 2e 0a 58 4d 45 4d |Char val|ue..XMEM|
|00002370| 53 45 54 0a 58 20 20 20 | 49 66 20 64 65 66 69 6e |SET.X |If defin|
|00002380| 65 64 2c 20 61 20 6c 69 | 62 72 61 72 79 20 66 75 |ed, a li|brary fu|
|00002390| 6e 63 74 69 6f 6e 20 6d | 65 6d 73 65 74 28 29 20 |nction m|emset() |
|000023a0| 69 73 20 61 73 73 75 6d | 65 64 20 61 76 61 69 6c |is assum|ed avail|
|000023b0| 61 62 6c 65 20 74 68 61 | 74 0a 58 20 20 20 63 6f |able tha|t.X co|
|000023c0| 6e 66 6f 72 6d 73 20 74 | 6f 20 74 68 61 74 20 61 |nforms t|o that a|
|000023d0| 76 61 69 6c 61 62 6c 65 | 20 75 6e 64 65 72 20 53 |vailable| under S|
|000023e0| 79 73 74 65 6d 20 56 2e | 20 20 49 66 20 6e 6f 74 |ystem V.| If not|
|000023f0| 20 64 65 66 69 6e 65 64 | 2c 20 5a 6f 6f 20 75 73 | defined|, Zoo us|
|00002400| 65 73 0a 58 20 20 20 69 | 74 73 20 6f 77 6e 20 6d |es.X i|ts own m|
|00002410| 65 6d 73 65 74 28 29 20 | 66 75 6e 63 74 69 6f 6e |emset() |function|
|00002420| 2e 0a 58 45 58 54 5f 44 | 46 4c 54 0a 58 20 20 20 |..XEXT_D|FLT.X |
|00002430| 64 65 66 61 75 6c 74 20 | 65 78 74 65 6e 73 69 6f |default |extensio|
|00002440| 6e 20 66 6f 72 20 61 72 | 63 68 69 76 65 73 2e 20 |n for ar|chives. |
|00002450| 20 53 74 72 69 6e 67 2e | 20 20 43 75 72 72 65 6e | String.| Curren|
|00002460| 74 6c 79 20 22 2e 7a 6f | 6f 22 2e 0a 58 4e 49 58 |tly ".zo|o"..XNIX|
|00002470| 46 4e 41 4d 45 0a 58 20 | 20 20 49 66 20 64 65 66 |FNAME.X | If def|
|00002480| 69 6e 65 64 2c 20 50 41 | 54 48 5f 43 48 2c 20 50 |ined, PA|TH_CH, P|
|00002490| 41 54 48 5f 53 45 50 2c | 20 45 58 54 5f 53 45 50 |ATH_SEP,| EXT_SEP|
|000024a0| 2c 20 45 58 54 5f 43 48 | 2c 20 61 6e 64 20 45 58 |, EXT_CH|, and EX|
|000024b0| 54 5f 44 46 4c 54 20 67 | 65 74 20 64 65 66 69 6e |T_DFLT g|et defin|
|000024c0| 65 64 0a 58 20 20 20 74 | 6f 20 63 6f 6e 66 6f 72 |ed.X t|o confor|
|000024d0| 6d 20 74 6f 20 2a 2a 49 | 58 20 63 6f 6e 76 65 6e |m to **I|X conven|
|000024e0| 74 69 6f 6e 73 20 61 6e | 64 20 73 68 6f 75 6c 64 |tions an|d should|
|000024f0| 20 6e 6f 74 20 62 65 20 | 73 65 70 61 72 61 74 65 | not be |separate|
|00002500| 6c 79 20 64 65 66 69 6e | 65 64 0a 58 4d 53 46 4e |ly defin|ed.XMSFN|
|00002510| 41 4d 45 0a 58 20 20 20 | 69 66 20 64 65 66 69 6e |AME.X |if defin|
|00002520| 65 64 2c 20 50 41 54 48 | 5f 43 48 2c 20 50 41 54 |ed, PATH|_CH, PAT|
|00002530| 48 5f 53 45 50 2c 20 45 | 58 54 5f 53 45 50 2c 20 |H_SEP, E|XT_SEP, |
|00002540| 45 58 54 5f 43 48 2c 20 | 45 58 54 5f 44 46 4c 54 |EXT_CH, |EXT_DFLT|
|00002550| 2c 20 61 6e 64 0a 58 20 | 20 20 44 49 53 4b 5f 43 |, and.X | DISK_C|
|00002560| 48 20 67 65 74 20 64 65 | 66 69 6e 65 64 20 74 6f |H get de|fined to|
|00002570| 20 63 6f 6e 66 6f 72 6d | 20 74 6f 20 4d 53 2d 44 | conform| to MS-D|
|00002580| 4f 53 20 63 6f 6e 76 65 | 6e 74 69 6f 6e 73 20 61 |OS conve|ntions a|
|00002590| 6e 64 20 73 68 6f 75 6c | 64 0a 58 20 20 20 6e 6f |nd shoul|d.X no|
|000025a0| 74 20 62 65 20 73 65 70 | 61 72 61 74 65 6c 79 20 |t be sep|arately |
|000025b0| 64 65 66 69 6e 65 64 20 | 28 6e 6f 74 20 63 75 72 |defined |(not cur|
|000025c0| 72 65 6e 74 6c 79 20 69 | 6d 70 6c 65 6d 65 6e 74 |rently i|mplement|
|000025d0| 65 64 29 0a 58 46 4f 52 | 43 45 53 4c 41 53 48 0a |ed).XFOR|CESLASH.|
|000025e0| 58 20 20 20 49 66 20 64 | 65 66 69 6e 65 64 20 61 |X If d|efined a|
|000025f0| 6e 79 20 62 61 63 6b 73 | 6c 61 73 68 65 73 20 69 |ny backs|lashes i|
|00002600| 6e 20 6e 61 6d 65 73 20 | 6f 66 20 66 69 6c 65 73 |n names |of files|
|00002610| 20 77 69 6c 6c 20 62 65 | 20 63 6f 6e 76 65 72 74 | will be| convert|
|00002620| 65 64 20 74 6f 0a 58 20 | 20 20 73 6c 61 73 68 65 |ed to.X | slashe|
|00002630| 73 20 62 65 66 6f 72 65 | 20 74 68 65 20 66 69 6c |s before| the fil|
|00002640| 65 73 20 61 72 65 20 61 | 64 64 65 64 20 74 6f 20 |es are a|dded to |
|00002650| 61 6e 20 61 72 63 68 69 | 76 65 2e 20 20 54 68 69 |an archi|ve. Thi|
|00002660| 73 20 69 73 20 75 73 65 | 66 75 6c 0a 58 20 20 20 |s is use|ful.X |
|00002670| 66 6f 72 20 4d 53 44 4f | 53 2d 6c 69 6b 65 20 73 |for MSDO|S-like s|
|00002680| 79 73 74 65 6d 73 20 74 | 68 61 74 20 61 63 63 65 |ystems t|hat acce|
|00002690| 70 74 20 62 6f 74 68 20 | 73 6c 61 73 68 65 73 20 |pt both |slashes |
|000026a0| 61 6e 64 20 62 61 63 6b | 73 6c 61 73 68 65 73 2c |and back|slashes,|
|000026b0| 0a 58 20 20 20 73 69 6e | 63 65 20 74 68 65 20 73 |.X sin|ce the s|
|000026c0| 74 61 6e 64 61 72 64 20 | 61 72 63 68 69 76 65 20 |tandard |archive |
|000026d0| 66 6f 72 6d 61 74 20 61 | 6c 6c 6f 77 73 20 6f 6e |format a|llows on|
|000026e0| 6c 79 20 73 6c 61 73 68 | 65 73 20 61 73 20 64 69 |ly slash|es as di|
|000026f0| 72 65 63 74 6f 72 79 0a | 58 20 20 20 73 65 70 61 |rectory.|X sepa|
|00002700| 72 61 74 6f 72 73 2e 0a | 58 52 45 4e 5f 4c 49 4e |rators..|XREN_LIN|
|00002710| 4b 0a 58 20 20 20 52 65 | 6e 61 6d 65 20 61 20 66 |K.X Re|name a f|
|00002720| 69 6c 65 20 62 79 20 75 | 73 69 6e 67 20 6c 69 6e |ile by u|sing lin|
|00002730| 6b 28 29 20 66 6f 6c 6c | 6f 77 65 64 20 62 79 20 |k() foll|owed by |
|00002740| 75 6e 6c 69 6e 6b 28 29 | 20 28 65 2e 67 2e 20 58 |unlink()| (e.g. X|
|00002750| 65 6e 69 78 2c 20 53 79 | 73 74 65 6d 20 56 29 0a |enix, Sy|stem V).|
|00002760| 58 52 45 4e 5f 4e 4f 52 | 4d 0a 58 20 20 20 55 73 |XREN_NOR|M.X Us|
|00002770| 65 20 6e 6f 72 6d 61 6c | 20 72 65 6e 61 6d 65 20 |e normal| rename |
|00002780| 66 75 6e 63 74 69 6f 6e | 3a 20 20 22 69 6e 74 20 |function|: "int |
|00002790| 72 65 6e 61 6d 65 28 6e | 65 77 2c 20 6f 6c 64 29 |rename(n|ew, old)|
|000027a0| 22 20 28 65 2e 67 2e 20 | 4d 69 63 72 6f 73 6f 66 |" (e.g. |Microsof|
|000027b0| 74 20 43 29 0a 58 52 45 | 4e 5f 52 45 56 0a 58 20 |t C).XRE|N_REV.X |
|000027c0| 20 20 55 73 65 20 72 65 | 76 65 72 73 65 20 72 65 | Use re|verse re|
|000027d0| 6e 61 6d 65 20 66 75 6e | 63 74 69 6f 6e 3a 20 20 |name fun|ction: |
|000027e0| 22 69 6e 74 20 72 65 6e | 61 6d 65 28 6f 6c 64 2c |"int ren|ame(old,|
|000027f0| 20 6e 65 77 29 22 20 28 | 65 2e 67 2e 20 34 2e 33 | new)" (|e.g. 4.3|
|00002800| 42 53 44 2c 0a 58 20 20 | 20 54 75 72 62 6f 20 43 |BSD,.X | Turbo C|
|00002810| 29 2e 20 20 4e 6f 74 65 | 3a 20 20 64 65 66 69 6e |). Note|: defin|
|00002820| 65 20 65 78 61 63 74 6c | 79 20 6f 6e 65 20 6f 66 |e exactl|y one of|
|00002830| 20 52 45 4e 5f 4c 49 4e | 4b 2c 20 52 45 4e 5f 4e | REN_LIN|K, REN_N|
|00002840| 4f 52 4d 2c 20 61 6e 64 | 20 52 45 4e 5f 52 45 56 |ORM, and| REN_REV|
|00002850| 2e 0a 58 53 45 54 4d 4f | 44 45 0a 58 20 20 20 43 |..XSETMO|DE.X C|
|00002860| 68 61 6e 67 65 20 6d 6f | 64 65 20 6f 66 20 73 74 |hange mo|de of st|
|00002870| 61 6e 64 61 72 64 20 6f | 75 74 70 75 74 20 74 6f |andard o|utput to|
|00002880| 20 62 69 6e 61 72 79 20 | 77 68 65 6e 20 70 69 70 | binary |when pip|
|00002890| 69 6e 67 20 6f 75 74 70 | 75 74 2c 20 74 68 65 6e |ing outp|ut, then|
|000028a0| 20 63 68 61 6e 67 65 0a | 58 20 20 20 69 74 20 62 | change.|X it b|
|000028b0| 61 63 6b 20 74 6f 20 74 | 65 78 74 2e 20 20 4d 61 |ack to t|ext. Ma|
|000028c0| 63 72 6f 73 20 4d 4f 44 | 45 5f 42 49 4e 28 7a 6f |cros MOD|E_BIN(zo|
|000028d0| 6f 66 69 6c 65 29 20 61 | 6e 64 20 4d 4f 44 45 5f |ofile) a|nd MODE_|
|000028e0| 54 45 58 54 28 7a 6f 6f | 66 69 6c 65 29 20 6d 75 |TEXT(zoo|file) mu|
|000028f0| 73 74 0a 58 20 20 20 61 | 6c 73 6f 20 62 65 20 64 |st.X a|lso be d|
|00002900| 65 66 69 6e 65 64 2e 0a | 58 53 45 54 42 55 46 0a |efined..|XSETBUF.|
|00002910| 58 20 20 20 53 74 61 6e | 64 61 72 64 20 6f 75 74 |X Stan|dard out|
|00002920| 70 75 74 20 73 68 6f 75 | 6c 64 20 62 65 20 73 65 |put shou|ld be se|
|00002930| 74 20 74 6f 20 62 65 20 | 75 6e 62 75 66 66 65 72 |t to be |unbuffer|
|00002940| 65 64 20 73 6f 20 6f 75 | 74 70 75 74 20 73 68 6f |ed so ou|tput sho|
|00002950| 77 73 20 75 70 0a 58 20 | 20 20 71 75 69 63 6b 6c |ws up.X | quickl|
|00002960| 79 2e 20 20 43 75 72 72 | 65 6e 74 6c 79 20 75 73 |y. Curr|ently us|
|00002970| 65 64 20 6f 6e 6c 79 20 | 69 6e 20 46 69 7a 2c 20 |ed only |in Fiz, |
|00002980| 6e 6f 74 20 69 6e 20 5a | 6f 6f 2e 0a 58 53 50 45 |not in Z|oo..XSPE|
|00002990| 43 4e 45 58 54 0a 58 20 | 20 20 49 66 20 64 65 66 |CNEXT.X | If def|
|000029a0| 69 6e 65 64 2c 20 61 20 | 6d 61 63 68 69 6e 65 2d |ined, a |machine-|
|000029b0| 64 65 70 65 6e 64 65 6e | 74 20 66 75 6e 63 74 69 |dependen|t functi|
|000029c0| 6f 6e 20 6e 65 78 74 66 | 69 6c 65 28 29 20 6d 75 |on nextf|ile() mu|
|000029d0| 73 74 20 62 65 20 64 65 | 66 69 6e 65 64 20 74 68 |st be de|fined th|
|000029e0| 61 74 0a 58 20 20 20 77 | 69 6c 6c 20 65 78 70 61 |at.X w|ill expa|
|000029f0| 6e 64 20 77 69 6c 64 63 | 61 72 64 73 20 69 6e 20 |nd wildc|ards in |
|00002a00| 61 20 73 75 70 70 6c 69 | 65 64 20 70 61 74 68 6e |a suppli|ed pathn|
|00002a10| 61 6d 65 2e 20 49 66 20 | 6e 6f 74 20 64 65 66 69 |ame. If |not defi|
|00002a20| 6e 65 64 2c 20 61 6e 79 | 0a 58 20 20 20 77 69 6c |ned, any|.X wil|
|00002a30| 64 63 61 72 64 20 65 78 | 70 61 6e 73 69 6f 6e 20 |dcard ex|pansion |
|00002a40| 6d 75 73 74 20 68 61 76 | 65 20 62 65 65 6e 20 64 |must hav|e been d|
|00002a50| 6f 6e 65 20 62 65 66 6f | 72 65 20 74 68 65 20 63 |one befo|re the c|
|00002a60| 6f 6d 6d 61 6e 64 20 6c | 69 6e 65 20 70 61 72 61 |ommand l|ine para|
|00002a70| 6d 65 74 65 72 73 0a 58 | 20 20 20 61 72 65 20 73 |meters.X| are s|
|00002a80| 75 70 70 6c 69 65 64 20 | 74 6f 20 74 68 65 20 70 |upplied |to the p|
|00002a90| 72 6f 67 72 61 6d 2e 20 | 20 46 6f 72 20 64 65 74 |rogram. | For det|
|00002aa0| 61 69 6c 73 20 73 65 65 | 20 74 68 65 20 66 69 6c |ails see| the fil|
|00002ab0| 65 20 6e 65 78 74 66 69 | 6c 65 2e 63 2e 0a 58 53 |e nextfi|le.c..XS|
|00002ac0| 54 52 4c 57 52 0a 58 20 | 20 20 49 66 20 64 65 66 |TRLWR.X | If def|
|00002ad0| 69 6e 65 64 2c 20 61 20 | 6c 69 62 72 61 72 79 20 |ined, a |library |
|00002ae0| 66 75 6e 63 74 69 6f 6e | 20 73 74 72 6c 77 72 28 |function| strlwr(|
|00002af0| 29 20 69 73 20 61 73 73 | 75 6d 65 64 20 61 76 61 |) is ass|umed ava|
|00002b00| 69 6c 61 62 6c 65 20 74 | 68 61 74 20 63 6f 6e 76 |ilable t|hat conv|
|00002b10| 65 72 74 73 0a 58 20 20 | 20 61 20 73 75 70 70 6c |erts.X | a suppl|
|00002b20| 69 65 64 20 73 74 72 69 | 6e 67 20 74 6f 20 6c 6f |ied stri|ng to lo|
|00002b30| 77 65 72 63 61 73 65 20 | 61 6e 64 20 72 65 74 75 |wercase |and retu|
|00002b40| 72 6e 73 20 61 20 70 6f | 69 6e 74 65 72 20 69 74 |rns a po|inter it|
|00002b50| 2e 20 20 49 66 20 6e 6f | 74 0a 58 20 20 20 64 65 |. If no|t.X de|
|00002b60| 66 69 6e 65 64 2c 20 5a | 6f 6f 20 75 73 65 73 20 |fined, Z|oo uses |
|00002b70| 69 74 73 20 6f 77 6e 20 | 73 74 72 6c 77 72 28 29 |its own |strlwr()|
|00002b80| 20 66 75 6e 63 74 69 6f | 6e 2e 0a 58 53 54 52 44 | functio|n..XSTRD|
|00002b90| 55 50 0a 58 20 20 20 49 | 66 20 64 65 66 69 6e 65 |UP.X I|f define|
|00002ba0| 64 2c 20 61 20 6c 69 62 | 72 61 72 79 20 66 75 6e |d, a lib|rary fun|
|00002bb0| 63 74 69 6f 6e 20 73 74 | 72 64 75 70 28 29 20 69 |ction st|rdup() i|
|00002bc0| 73 20 61 73 73 75 6d 65 | 64 20 61 76 61 69 6c 61 |s assume|d availa|
|00002bd0| 62 6c 65 20 74 68 61 74 | 0a 58 20 20 20 72 65 74 |ble that|.X ret|
|00002be0| 75 72 6e 73 20 61 20 70 | 6f 69 6e 74 65 72 20 74 |urns a p|ointer t|
|00002bf0| 6f 20 61 20 63 6f 70 79 | 20 6f 66 20 61 20 73 75 |o a copy| of a su|
|00002c00| 70 70 6c 69 65 64 20 73 | 74 72 69 6e 67 2e 20 20 |pplied s|tring. |
|00002c10| 49 66 20 6e 6f 74 20 64 | 65 66 69 6e 65 64 2c 0a |If not d|efined,.|
|00002c20| 58 20 20 20 5a 6f 6f 20 | 75 73 65 73 20 69 74 73 |X Zoo |uses its|
|00002c30| 20 6f 77 6e 20 73 74 72 | 64 75 70 28 29 20 66 75 | own str|dup() fu|
|00002c40| 6e 63 74 69 6f 6e 2e 0a | 58 53 50 45 43 45 58 49 |nction..|XSPECEXI|
|00002c50| 54 0a 58 20 20 20 43 75 | 73 74 6f 6d 20 65 78 69 |T.X Cu|stom exi|
|00002c60| 74 20 68 61 6e 64 6c 65 | 72 20 69 73 20 6e 65 65 |t handle|r is nee|
|00002c70| 64 65 64 2e 20 20 41 20 | 66 75 6e 63 74 69 6f 6e |ded. A |function|
|00002c80| 20 63 61 6c 6c 65 64 20 | 7a 6f 6f 65 78 69 74 28 | called |zooexit(|
|00002c90| 29 0a 58 20 20 20 6d 75 | 73 74 20 62 65 20 64 65 |).X mu|st be de|
|00002ca0| 66 69 6e 65 64 2e 20 20 | 49 66 20 53 50 45 43 45 |fined. |If SPECE|
|00002cb0| 58 49 54 20 69 73 20 6e | 6f 74 20 64 65 66 69 6e |XIT is n|ot defin|
|00002cc0| 65 64 2c 20 7a 6f 6f 20 | 75 73 65 73 20 69 74 73 |ed, zoo |uses its|
|00002cd0| 0a 58 20 20 20 6f 77 6e | 20 7a 6f 6f 65 78 69 74 |.X own| zooexit|
|00002ce0| 28 29 20 66 75 6e 63 74 | 69 6f 6e 20 77 68 69 63 |() funct|ion whic|
|00002cf0| 68 20 73 69 6d 70 6c 79 | 20 63 61 6c 6c 73 20 65 |h simply| calls e|
|00002d00| 78 69 74 28 29 2e 0a 58 | 53 50 45 43 49 4e 49 54 |xit()..X|SPECINIT|
|00002d10| 0a 58 20 20 20 49 66 20 | 64 65 66 69 6e 65 64 2c |.X If |defined,|
|00002d20| 20 7a 6f 6f 27 73 20 6d | 61 69 6e 28 29 20 66 75 | zoo's m|ain() fu|
|00002d30| 6e 63 74 69 6f 6e 20 77 | 69 6c 6c 20 63 61 6c 6c |nction w|ill call|
|00002d40| 20 73 70 65 63 5f 69 6e | 69 74 28 29 20 62 65 66 | spec_in|it() bef|
|00002d50| 6f 72 65 0a 58 20 20 20 | 64 6f 69 6e 67 20 61 6e |ore.X |doing an|
|00002d60| 79 74 68 69 6e 67 20 65 | 6c 73 65 2e 20 20 41 6e |ything e|lse. An|
|00002d70| 79 20 73 79 73 74 65 6d | 2d 73 70 65 63 69 66 69 |y system|-specifi|
|00002d80| 63 20 69 6e 69 74 69 61 | 6c 69 7a 61 74 69 6f 6e |c initia|lization|
|00002d90| 20 6d 61 79 20 62 65 0a | 58 20 20 20 64 6f 6e 65 | may be.|X done|
|00002da0| 20 61 74 20 74 68 69 73 | 20 70 6f 69 6e 74 2e 0a | at this| point..|
|00002db0| 58 47 45 54 54 5a 0a 58 | 20 20 20 49 66 20 64 65 |XGETTZ.X| If de|
|00002dc0| 66 69 6e 65 64 2c 20 61 | 20 66 75 6e 63 74 69 6f |fined, a| functio|
|00002dd0| 6e 20 67 65 74 74 7a 28 | 29 20 6d 75 73 74 20 61 |n gettz(|) must a|
|00002de0| 6c 73 6f 20 62 65 20 64 | 65 66 69 6e 65 64 20 74 |lso be d|efined t|
|00002df0| 68 61 74 20 77 69 6c 6c | 0a 58 20 20 20 72 65 74 |hat will|.X ret|
|00002e00| 75 72 6e 20 74 68 65 20 | 63 75 72 72 65 6e 74 20 |urn the |current |
|00002e10| 74 69 6d 65 7a 6f 6e 65 | 2c 20 69 6e 20 73 65 63 |timezone|, in sec|
|00002e20| 6f 6e 64 73 20 77 65 73 | 74 20 6f 66 20 47 4d 54 |onds wes|t of GMT|
|00002e30| 2c 20 61 73 20 61 20 6c | 6f 6e 67 0a 58 20 20 20 |, as a l|ong.X |
|00002e40| 76 61 6c 75 65 2e 20 20 | 43 75 72 72 65 6e 74 6c |value. |Currentl|
|00002e50| 79 20 73 75 63 68 20 61 | 20 66 75 6e 63 74 69 6f |y such a| functio|
|00002e60| 6e 20 69 73 20 61 6c 72 | 65 61 64 79 20 64 65 66 |n is alr|eady def|
|00002e70| 69 6e 65 64 20 69 6e 20 | 66 69 6c 65 73 0a 58 20 |ined in |files.X |
|00002e80| 20 20 62 73 64 2e 63 20 | 61 6e 64 20 73 79 73 76 | bsd.c |and sysv|
|00002e90| 2e 63 2e 20 20 49 66 20 | 61 6e 64 20 6f 6e 6c 79 |.c. If |and only|
|00002ea0| 20 69 66 20 47 45 54 54 | 5a 20 69 73 20 64 65 66 | if GETT|Z is def|
|00002eb0| 69 6e 65 64 2c 20 7a 6f | 6f 20 77 69 6c 6c 0a 58 |ined, zo|o will.X|
|00002ec0| 20 20 20 73 74 6f 72 65 | 20 74 68 65 20 63 75 72 | store| the cur|
|00002ed0| 72 65 6e 74 20 74 69 6d | 65 7a 6f 6e 65 20 66 6f |rent tim|ezone fo|
|00002ee0| 72 20 65 61 63 68 20 66 | 69 6c 65 20 74 68 61 74 |r each f|ile that|
|00002ef0| 20 69 73 20 61 72 63 68 | 69 76 65 64 2c 0a 58 20 | is arch|ived,.X |
|00002f00| 20 20 61 6e 64 20 77 69 | 6c 6c 20 6c 69 73 74 20 | and wi|ll list |
|00002f10| 74 68 65 20 74 69 6d 65 | 7a 6f 6e 65 20 66 6f 72 |the time|zone for|
|00002f20| 20 65 61 63 68 20 66 69 | 6c 65 20 74 68 61 74 20 | each fi|le that |
|00002f30| 68 61 73 20 6f 6e 65 20 | 77 68 65 6e 20 69 74 0a |has one |when it.|
|00002f40| 58 20 20 20 6c 69 73 74 | 73 20 61 72 63 68 69 76 |X list|s archiv|
|00002f50| 65 20 63 6f 6e 74 65 6e | 74 73 2e 0a 58 41 4c 57 |e conten|ts..XALW|
|00002f60| 41 59 53 5f 49 4e 54 0a | 58 20 20 20 49 6e 20 66 |AYS_INT.|X In f|
|00002f70| 75 6e 63 74 69 6f 6e 20 | 70 72 6f 74 6f 74 79 70 |unction |prototyp|
|00002f80| 65 73 20 66 6f 72 20 66 | 67 65 74 63 28 29 2c 20 |es for f|getc(), |
|00002f90| 66 72 65 61 64 28 29 2c | 20 61 6e 64 20 66 77 72 |fread(),| and fwr|
|00002fa0| 69 74 65 28 29 2c 0a 58 | 20 20 20 74 72 61 64 69 |ite(),.X| tradi|
|00002fb0| 74 69 6f 6e 61 6c 20 70 | 72 61 63 74 69 63 65 20 |tional p|ractice |
|00002fc0| 6d 61 64 65 20 63 65 72 | 74 61 69 6e 20 61 72 67 |made cer|tain arg|
|00002fd0| 75 6d 65 6e 74 73 20 69 | 6e 74 2c 20 74 68 6f 75 |uments i|nt, thou|
|00002fe0| 67 68 0a 58 20 20 20 74 | 68 65 79 20 6f 75 67 68 |gh.X t|hey ough|
|00002ff0| 74 20 74 6f 20 62 65 20 | 63 68 61 72 20 61 6e 64 |t to be |char and|
|00003000| 20 75 6e 73 69 67 6e 65 | 64 20 72 65 73 70 65 63 | unsigne|d respec|
|00003010| 74 69 76 65 6c 79 2e 20 | 20 49 66 0a 58 20 20 20 |tively. | If.X |
|00003020| 41 4c 57 41 59 53 5f 49 | 4e 54 20 69 73 20 64 65 |ALWAYS_I|NT is de|
|00003030| 66 69 6e 65 64 2c 20 70 | 72 6f 74 6f 74 79 70 65 |fined, p|rototype|
|00003040| 73 20 77 69 6c 6c 20 75 | 73 65 20 69 6e 74 20 6f |s will u|se int o|
|00003050| 6e 6c 79 2c 0a 58 20 20 | 20 65 6c 73 65 20 74 68 |nly,.X | else th|
|00003060| 65 20 63 6f 72 72 65 63 | 74 20 74 79 70 65 73 20 |e correc|t types |
|00003070| 61 72 65 20 75 73 65 64 | 2e 0a 58 49 4f 5f 4d 41 |are used|..XIO_MA|
|00003080| 43 52 4f 53 0a 58 20 20 | 20 49 66 20 64 65 66 69 |CROS.X | If defi|
|00003090| 6e 65 64 2c 20 73 6f 6d | 65 20 70 6f 72 74 61 62 |ned, som|e portab|
|000030a0| 6c 65 20 49 2f 4f 20 66 | 75 6e 63 74 69 6f 6e 73 |le I/O f|unctions|
|000030b0| 20 61 72 65 20 64 65 66 | 69 6e 65 64 20 61 73 20 | are def|ined as |
|000030c0| 6d 61 63 72 6f 73 2c 0a | 58 20 20 20 73 61 76 69 |macros,.|X savi|
|000030d0| 6e 67 20 73 70 61 63 65 | 2e 0a 58 5a 4f 4f 43 4f |ng space|..XZOOCO|
|000030e0| 4d 4d 45 4e 54 0a 58 20 | 20 20 49 66 20 64 65 66 |MMENT.X | If def|
|000030f0| 69 6e 65 64 2c 20 61 72 | 63 68 69 76 65 20 63 6f |ined, ar|chive co|
|00003100| 6d 6d 65 6e 74 73 20 61 | 72 65 20 66 75 6c 6c 79 |mments a|re fully|
|00003110| 20 65 6e 61 62 6c 65 64 | 2e 20 20 49 66 20 6e 6f | enabled|. If no|
|00003120| 74 20 64 65 66 69 6e 65 | 64 2c 0a 58 20 20 20 7a |t define|d,.X z|
|00003130| 6f 6f 20 63 6f 64 65 20 | 77 69 6c 6c 20 62 65 20 |oo code |will be |
|00003140| 73 6d 61 6c 6c 65 72 20 | 61 74 20 74 68 65 20 63 |smaller |at the c|
|00003150| 6f 73 74 20 74 68 61 74 | 20 61 72 63 68 69 76 65 |ost that| archive|
|00003160| 20 63 6f 6d 6d 65 6e 74 | 73 20 77 69 6c 6c 0a 58 | comment|s will.X|
|00003170| 20 20 20 62 65 20 6c 69 | 73 74 65 64 20 62 75 74 | be li|sted but|
|00003180| 20 63 61 6e 6e 6f 74 20 | 62 65 20 75 70 64 61 74 | cannot |be updat|
|00003190| 65 64 2e 20 20 43 4f 4d | 50 49 4c 41 54 49 4f 4e |ed. COM|PILATION|
|000031a0| 20 57 49 54 48 4f 55 54 | 20 5a 4f 4f 43 4f 4d 4d | WITHOUT| ZOOCOMM|
|000031b0| 45 4e 54 0a 58 20 20 20 | 44 45 46 49 4e 45 44 20 |ENT.X |DEFINED |
|000031c0| 48 41 53 20 4e 4f 54 20 | 59 45 54 20 42 45 45 4e |HAS NOT |YET BEEN|
|000031d0| 20 54 45 53 54 45 44 2e | 0a 58 54 52 41 43 45 5f | TESTED.|.XTRACE_|
|000031e0| 49 4f 0a 58 20 20 20 54 | 68 69 73 20 69 73 20 66 |IO.X T|his is f|
|000031f0| 6f 72 20 64 65 62 75 67 | 67 69 6e 67 2e 20 20 49 |or debug|ging. I|
|00003200| 66 20 64 65 66 69 6e 65 | 64 2c 20 69 74 20 77 69 |f define|d, it wi|
|00003210| 6c 6c 20 63 61 75 73 65 | 20 63 6f 64 65 20 74 6f |ll cause| code to|
|00003220| 0a 58 20 20 20 62 65 20 | 63 6f 6d 70 69 6c 65 64 |.X be |compiled|
|00003230| 20 74 68 61 74 20 77 69 | 6c 6c 20 74 72 61 63 65 | that wi|ll trace|
|00003240| 20 61 6c 6c 20 61 72 63 | 68 69 76 65 20 68 65 61 | all arc|hive hea|
|00003250| 64 65 72 20 61 6e 64 20 | 64 69 72 65 63 74 6f 72 |der and |director|
|00003260| 79 0a 58 20 20 20 65 6e | 74 72 79 20 49 2f 4f 20 |y.X en|try I/O |
|00003270| 62 79 20 73 68 6f 77 69 | 6e 67 20 69 74 20 6f 6e |by showi|ng it on|
|00003280| 20 74 68 65 20 73 63 72 | 65 65 6e 20 69 6e 20 68 | the scr|een in h|
|00003290| 75 6d 61 6e 2d 72 65 61 | 64 61 62 6c 65 20 66 6f |uman-rea|dable fo|
|000032a0| 72 6d 61 74 2e 0a 58 20 | 20 20 54 68 65 20 74 72 |rmat..X | The tr|
|000032b0| 61 63 69 6e 67 20 77 69 | 6c 6c 20 74 68 65 6e 20 |acing wi|ll then |
|000032c0| 6f 63 63 75 72 20 69 66 | 20 61 6e 79 20 45 78 70 |occur if| any Exp|
|000032d0| 65 72 74 20 63 6f 6d 6d | 61 6e 64 20 67 69 76 65 |ert comm|and give|
|000032e0| 6e 20 74 6f 20 7a 6f 6f | 0a 58 20 20 20 69 73 20 |n to zoo|.X is |
|000032f0| 70 72 65 63 65 64 65 64 | 20 62 79 20 61 20 63 6f |preceded| by a co|
|00003300| 6c 6f 6e 2e 20 20 45 2e | 67 2e 2c 20 69 66 20 63 |lon. E.|g., if c|
|00003310| 6f 6d 70 69 6c 65 64 20 | 77 69 74 68 20 54 52 41 |ompiled |with TRA|
|00003320| 43 45 5f 49 4f 20 6f 6e | 20 61 6e 64 0a 58 20 20 |CE_IO on| and.X |
|00003330| 20 67 69 76 65 6e 20 74 | 68 65 20 63 6f 6d 6d 61 | given t|he comma|
|00003340| 6e 64 20 22 7a 6f 6f 20 | 3a 6c 20 78 79 7a 22 2c |nd "zoo |:l xyz",|
|00003350| 20 7a 6f 6f 20 77 69 6c | 6c 20 67 69 76 65 20 61 | zoo wil|l give a|
|00003360| 20 64 69 72 65 63 74 6f | 72 79 0a 58 20 20 20 6c | directo|ry.X l|
|00003370| 69 73 74 69 6e 67 20 6f | 66 20 78 79 7a 2e 7a 6f |isting o|f xyz.zo|
|00003380| 6f 20 65 78 61 63 74 6c | 79 20 61 73 20 69 74 20 |o exactl|y as it |
|00003390| 77 6f 75 6c 64 20 77 69 | 74 68 20 22 7a 6f 6f 20 |would wi|th "zoo |
|000033a0| 6c 20 78 79 7a 22 20 65 | 78 63 65 70 74 0a 58 20 |l xyz" e|xcept.X |
|000033b0| 20 20 74 68 61 74 20 61 | 6c 6c 20 61 72 63 68 69 | that a|ll archi|
|000033c0| 76 65 20 68 65 61 64 65 | 72 20 61 6e 64 20 64 69 |ve heade|r and di|
|000033d0| 72 65 63 74 6f 72 79 20 | 65 6e 74 72 79 20 72 65 |rectory |entry re|
|000033e0| 61 64 73 20 61 6e 64 20 | 77 72 69 74 65 73 0a 58 |ads and |writes.X|
|000033f0| 20 20 20 77 69 6c 6c 20 | 62 65 20 73 68 6f 77 6e | will |be shown|
|00003400| 20 6f 6e 20 74 68 65 20 | 73 63 72 65 65 6e 2e 20 | on the |screen. |
|00003410| 20 54 68 65 20 74 72 61 | 63 69 6e 67 20 63 6f 64 | The tra|cing cod|
|00003420| 65 20 69 73 20 6c 6f 63 | 61 6c 69 7a 65 64 0a 58 |e is loc|alized.X|
|00003430| 20 20 20 74 6f 20 74 68 | 65 20 66 69 6c 65 73 20 | to th|e files |
|00003440| 7a 6f 6f 2e 63 20 61 6e | 64 20 70 6f 72 74 61 62 |zoo.c an|d portab|
|00003450| 6c 65 2e 63 2c 20 73 6f | 20 6a 75 73 74 20 74 68 |le.c, so| just th|
|00003460| 65 73 65 20 74 77 6f 20 | 66 69 6c 65 73 0a 58 20 |ese two |files.X |
|00003470| 20 20 63 61 6e 20 62 65 | 20 63 6f 6d 70 69 6c 65 | can be| compile|
|00003480| 64 20 61 66 72 65 73 68 | 20 77 68 65 6e 20 54 52 |d afresh| when TR|
|00003490| 41 43 45 5f 49 4f 20 69 | 73 20 74 75 72 6e 65 64 |ACE_IO i|s turned|
|000034a0| 20 6f 6e 20 6f 72 20 73 | 77 69 74 63 68 65 64 0a | on or s|witched.|
|000034b0| 58 20 20 20 6f 66 66 2e | 20 20 4e 4f 54 45 3a 20 |X off.| NOTE: |
|000034c0| 20 54 68 65 20 73 79 6d | 62 6f 6c 20 54 52 41 43 | The sym|bol TRAC|
|000034d0| 45 5f 4c 49 53 54 2c 20 | 69 6e 74 65 72 6e 61 6c |E_LIST, |internal|
|000034e0| 20 74 6f 20 74 68 65 20 | 66 69 6c 65 0a 58 20 20 | to the |file.X |
|000034f0| 20 22 7a 6f 6f 6c 69 73 | 74 2e 63 22 2c 20 65 6e | "zoolis|t.c", en|
|00003500| 61 62 6c 65 73 20 64 65 | 62 75 67 67 69 6e 67 20 |ables de|bugging |
|00003510| 69 6e 66 6f 72 6d 61 74 | 69 6f 6e 20 74 6f 6f 2e |informat|ion too.|
|00003520| 20 20 44 6f 20 6e 6f 74 | 20 64 65 66 69 6e 65 0a | Do not| define.|
|00003530| 58 20 20 20 62 6f 74 68 | 20 54 52 41 43 45 5f 49 |X both| TRACE_I|
|00003540| 4f 20 61 6e 64 20 54 52 | 41 43 45 5f 4c 49 53 54 |O and TR|ACE_LIST|
|00003550| 20 62 65 63 61 75 73 65 | 20 28 61 29 20 61 20 73 | because| (a) a s|
|00003560| 79 6d 62 6f 6c 20 63 6f | 6e 66 6c 69 63 74 20 77 |ymbol co|nflict w|
|00003570| 69 6c 6c 0a 58 20 20 20 | 6f 63 63 75 72 20 61 6e |ill.X |occur an|
|00003580| 64 20 28 62 29 20 74 68 | 65 20 64 65 62 75 67 67 |d (b) th|e debugg|
|00003590| 69 6e 67 20 69 6e 66 6f | 72 6d 61 74 69 6f 6e 20 |ing info|rmation |
|000035a0| 77 69 6c 6c 20 62 65 20 | 64 75 70 6c 69 63 61 74 |will be |duplicat|
|000035b0| 65 64 2e 0a 58 55 4e 42 | 55 46 5f 49 4f 0a 58 20 |ed..XUNB|UF_IO.X |
|000035c0| 20 20 49 66 20 64 65 66 | 69 6e 65 64 2c 20 73 6f | If def|ined, so|
|000035d0| 6d 65 20 49 2f 4f 20 69 | 73 20 64 6f 6e 65 20 75 |me I/O i|s done u|
|000035e0| 73 69 6e 67 20 6c 6f 77 | 2d 6c 65 76 65 6c 20 73 |sing low|-level s|
|000035f0| 79 73 74 65 6d 20 63 61 | 6c 6c 73 20 72 65 61 64 |ystem ca|lls read|
|00003600| 28 29 20 61 6e 64 0a 58 | 20 20 20 77 72 69 74 65 |() and.X| write|
|00003610| 28 29 2e 20 20 54 6f 20 | 64 6f 20 74 68 69 73 2c |(). To |do this,|
|00003620| 20 74 68 65 20 6c 6f 77 | 2d 6c 65 76 65 6c 20 66 | the low|-level f|
|00003630| 69 6c 65 20 64 65 73 63 | 72 69 70 74 6f 72 20 69 |ile desc|riptor i|
|00003640| 73 20 73 79 6e 63 68 72 | 6f 6e 69 7a 65 64 20 77 |s synchr|onized w|
|00003650| 69 74 68 0a 58 20 20 20 | 74 68 65 20 62 75 66 66 |ith.X |the buff|
|00003660| 65 72 65 64 20 7a 6f 6f | 66 69 6c 65 20 62 65 66 |ered zoo|file bef|
|00003670| 6f 72 65 20 73 75 63 68 | 20 49 2f 4f 20 69 73 20 |ore such| I/O is |
|00003680| 64 6f 6e 65 2e 20 20 54 | 6f 20 64 6f 20 74 68 69 |done. T|o do thi|
|00003690| 73 2c 20 72 65 61 64 28 | 29 2c 0a 58 20 20 20 77 |s, read(|),.X w|
|000036a0| 72 69 74 65 28 29 2c 20 | 61 6e 64 20 6c 73 65 65 |rite(), |and lsee|
|000036b0| 6b 28 29 20 73 79 73 74 | 65 6d 20 63 61 6c 6c 73 |k() syst|em calls|
|000036c0| 20 6d 75 73 74 20 62 65 | 20 61 76 61 69 6c 61 62 | must be| availab|
|000036d0| 6c 65 20 61 6e 64 20 74 | 68 65 20 66 69 6c 65 6e |le and t|he filen|
|000036e0| 6f 28 29 0a 58 20 20 20 | 6d 61 63 72 6f 20 6d 75 |o().X |macro mu|
|000036f0| 73 74 20 72 65 74 75 72 | 6e 20 74 68 65 20 66 69 |st retur|n the fi|
|00003700| 6c 65 20 64 65 73 63 72 | 69 70 74 6f 72 20 66 6f |le descr|iptor fo|
|00003710| 72 20 61 20 62 75 66 66 | 65 72 65 64 20 66 69 6c |r a buff|ered fil|
|00003720| 65 2e 20 20 54 68 69 73 | 20 69 73 0a 58 20 20 20 |e. This| is.X |
|00003730| 6e 6f 74 20 70 6f 72 74 | 61 62 6c 65 20 61 6e 64 |not port|able and|
|00003740| 20 73 68 6f 75 6c 64 20 | 64 65 66 69 6e 69 74 65 | should |definite|
|00003750| 6c 79 20 6e 6f 74 20 62 | 65 20 64 6f 6e 65 20 62 |ly not b|e done b|
|00003760| 79 20 6d 6f 73 74 20 65 | 6e 64 20 75 73 65 72 73 |y most e|nd users|
|00003770| 2e 20 20 49 66 0a 58 20 | 20 20 55 4e 42 55 46 5f |. If.X | UNBUF_|
|00003780| 49 4f 20 69 73 20 64 65 | 66 69 6e 65 64 2c 20 61 |IO is de|fined, a|
|00003790| 6c 73 6f 20 64 65 66 69 | 6e 65 64 20 6d 75 73 74 |lso defi|ned must|
|000037a0| 20 62 65 20 61 20 73 79 | 6d 62 6f 6c 20 55 4e 42 | be a sy|mbol UNB|
|000037b0| 55 46 5f 4c 49 4d 49 54 | 20 77 69 74 68 20 61 0a |UF_LIMIT| with a.|
|000037c0| 58 20 20 20 6e 75 6d 65 | 72 69 63 61 6c 20 76 61 |X nume|rical va|
|000037d0| 6c 75 65 20 74 68 61 74 | 20 73 70 65 63 69 66 69 |lue that| specifi|
|000037e0| 65 73 20 74 68 65 20 74 | 68 72 65 73 68 6f 6c 64 |es the t|hreshold|
|000037f0| 20 6f 76 65 72 20 77 68 | 69 63 68 20 75 6e 62 75 | over wh|ich unbu|
|00003800| 66 66 65 72 65 64 20 49 | 2f 4f 0a 58 20 20 20 73 |ffered I|/O.X s|
|00003810| 68 6f 75 6c 64 20 62 65 | 20 75 73 65 64 2e 20 20 |hould be| used. |
|00003820| 46 6f 72 20 65 78 61 6d | 70 6c 65 2c 20 69 66 20 |For exam|ple, if |
|00003830| 74 68 65 20 76 61 6c 75 | 65 20 6f 66 20 55 4e 42 |the valu|e of UNB|
|00003840| 55 46 5f 4c 49 4d 49 54 | 20 69 73 20 35 31 32 2c |UF_LIMIT| is 512,|
|00003850| 20 74 68 65 6e 0a 58 20 | 20 20 61 6e 79 20 49 2f | then.X | any I/|
|00003860| 4f 20 6f 6e 20 61 20 7a | 6f 6f 66 69 6c 65 20 74 |O on a z|oofile t|
|00003870| 68 61 74 20 72 65 61 64 | 73 20 6f 72 20 77 72 69 |hat read|s or wri|
|00003880| 74 65 73 20 6d 6f 72 65 | 20 74 68 61 6e 20 35 31 |tes more| than 51|
|00003890| 32 20 62 79 74 65 73 20 | 77 69 6c 6c 20 62 65 0a |2 bytes |will be.|
|000038a0| 58 20 20 20 64 6f 6e 65 | 20 75 73 69 6e 67 20 72 |X done| using r|
|000038b0| 65 61 64 28 29 20 6f 72 | 20 77 72 69 74 65 28 29 |ead() or| write()|
|000038c0| 20 73 79 73 74 65 6d 20 | 63 61 6c 6c 73 2e 20 20 | system |calls. |
|000038d0| 54 68 65 20 75 73 65 20 | 6f 66 20 75 6e 62 75 66 |The use |of unbuf|
|000038e0| 66 65 72 65 64 20 49 2f | 4f 0a 58 20 20 20 77 69 |fered I/|O.X wi|
|000038f0| 74 68 20 61 20 74 68 72 | 65 73 68 6f 6c 64 20 69 |th a thr|eshold i|
|00003900| 6e 20 74 68 65 20 72 61 | 6e 67 65 20 35 31 32 20 |n the ra|nge 512 |
|00003910| 74 6f 20 31 30 32 34 20 | 63 61 6e 20 65 6e 68 61 |to 1024 |can enha|
|00003920| 6e 63 65 20 70 65 72 66 | 6f 72 6d 61 6e 63 65 20 |nce perf|ormance |
|00003930| 62 79 20 75 70 0a 58 20 | 20 20 74 6f 20 35 30 25 |by up.X | to 50%|
|00003940| 2e 20 20 54 68 65 20 63 | 6f 72 72 75 70 74 69 6f |. The c|orruptio|
|00003950| 6e 20 6f 66 20 64 61 74 | 61 20 69 73 20 61 20 73 |n of dat|a is a s|
|00003960| 65 72 69 6f 75 73 20 6d | 61 74 74 65 72 2e 20 20 |erious m|atter. |
|00003970| 44 6f 20 6e 6f 74 20 64 | 65 66 69 6e 65 0a 58 20 |Do not d|efine.X |
|00003980| 20 20 55 4e 42 55 46 5f | 49 4f 20 75 6e 6c 65 73 | UNBUF_|IO unles|
|00003990| 73 20 79 6f 75 20 61 72 | 65 20 77 69 6c 6c 69 6e |s you ar|e willin|
|000039a0| 67 20 74 6f 20 65 78 68 | 61 75 73 74 69 76 65 6c |g to exh|austivel|
|000039b0| 79 20 74 65 73 74 20 74 | 68 65 20 63 6f 6d 70 69 |y test t|he compi|
|000039c0| 6c 65 64 20 63 6f 64 65 | 0a 58 20 20 20 6f 6e 20 |led code|.X on |
|000039d0| 79 6f 75 72 20 73 79 73 | 74 65 6d 20 74 6f 20 6d |your sys|tem to m|
|000039e0| 61 6b 65 20 73 75 72 65 | 20 69 74 20 77 6f 72 6b |ake sure| it work|
|000039f0| 73 2c 20 61 6e 64 20 61 | 63 63 65 70 74 20 66 75 |s, and a|ccept fu|
|00003a00| 6c 6c 20 72 65 73 70 6f | 6e 73 69 62 69 6c 69 74 |ll respo|nsibilit|
|00003a10| 79 20 66 6f 72 0a 58 20 | 20 20 61 6e 79 20 61 64 |y for.X | any ad|
|00003a20| 76 65 72 73 65 20 63 6f | 6e 73 65 71 75 65 6e 63 |verse co|nsequenc|
|00003a30| 65 73 2e 20 20 53 6f 6d | 65 20 73 74 61 6e 64 61 |es. Som|e standa|
|00003a40| 72 64 20 49 2f 4f 20 6c | 69 62 72 61 72 69 65 73 |rd I/O l|ibraries|
|00003a50| 20 6d 61 79 20 61 74 74 | 65 6d 70 74 20 74 6f 0a | may att|empt to.|
|00003a60| 58 20 20 20 6f 70 74 69 | 6d 69 7a 65 20 74 68 65 |X opti|mize the|
|00003a70| 20 77 6f 72 6b 69 6e 67 | 20 6f 66 20 66 73 65 65 | working| of fsee|
|00003a80| 6b 28 29 20 6f 6e 20 66 | 69 6c 65 73 20 6f 70 65 |k() on f|iles ope|
|00003a90| 6e 65 64 20 66 6f 72 20 | 72 65 61 64 20 61 63 63 |ned for |read acc|
|00003aa0| 65 73 73 20 6f 6e 6c 79 | 2c 0a 58 20 20 20 61 6e |ess only|,.X an|
|00003ab0| 64 20 63 61 75 73 65 20 | 55 4e 42 55 46 5f 49 4f |d cause |UNBUF_IO|
|00003ac0| 20 74 6f 20 66 61 69 6c | 2e 0a 58 55 4e 42 55 46 | to fail|..XUNBUF|
|00003ad0| 5f 4c 49 4d 49 54 0a 58 | 20 20 20 4e 65 65 64 65 |_LIMIT.X| Neede|
|00003ae0| 64 20 69 66 20 61 6e 64 | 20 6f 6e 6c 79 20 69 66 |d if and| only if|
|00003af0| 20 55 4e 42 55 46 5f 49 | 4f 20 69 73 20 64 65 66 | UNBUF_I|O is def|
|00003b00| 69 6e 65 64 2e 20 20 48 | 6f 6c 64 73 20 61 20 6e |ined. H|olds a n|
|00003b10| 75 6d 65 72 69 63 20 76 | 61 6c 75 65 2e 0a 58 20 |umeric v|alue..X |
|00003b20| 20 20 41 6c 6c 20 49 2f | 4f 20 64 6f 6e 65 20 69 | All I/|O done i|
|00003b30| 6e 20 62 6c 6f 63 6b 73 | 20 74 68 61 74 20 61 72 |n blocks| that ar|
|00003b40| 65 20 6c 61 72 67 65 72 | 20 74 68 61 6e 20 55 4e |e larger| than UN|
|00003b50| 42 55 46 5f 4c 49 4d 49 | 54 20 62 79 74 65 73 0a |BUF_LIMI|T bytes.|
|00003b60| 58 20 20 20 77 69 6c 6c | 20 62 65 20 64 6f 6e 65 |X will| be done|
|00003b70| 20 75 6e 62 75 66 66 65 | 72 65 64 2e 20 20 53 65 | unbuffe|red. Se|
|00003b80| 65 20 55 4e 42 55 46 5f | 49 4f 2e 0a 58 46 49 4c |e UNBUF_|IO..XFIL|
|00003b90| 54 45 52 0a 58 20 20 20 | 49 66 20 64 65 66 69 6e |TER.X |If defin|
|00003ba0| 65 64 2c 20 63 6f 64 65 | 20 77 69 6c 6c 20 62 65 |ed, code| will be|
|00003bb0| 20 63 6f 6d 70 69 6c 65 | 64 20 69 6e 20 74 6f 20 | compile|d in to |
|00003bc0| 65 6e 61 62 6c 65 20 74 | 68 65 20 66 63 20 61 6e |enable t|he fc an|
|00003bd0| 64 20 66 64 0a 58 20 20 | 20 63 6f 6d 6d 61 6e 64 |d fd.X | command|
|00003be0| 73 20 28 63 6f 6d 70 72 | 65 73 73 20 6f 72 20 64 |s (compr|ess or d|
|00003bf0| 65 63 6f 6d 70 72 65 73 | 73 2c 20 72 65 61 64 69 |ecompres|s, readi|
|00003c00| 6e 67 20 73 74 61 6e 64 | 61 72 64 20 69 6e 70 75 |ng stand|ard inpu|
|00003c10| 74 20 61 6e 64 0a 58 20 | 20 20 77 72 69 74 69 6e |t and.X | writin|
|00003c20| 67 20 74 6f 20 73 74 61 | 6e 64 61 72 64 20 6f 75 |g to sta|ndard ou|
|00003c30| 74 70 75 74 29 2e 20 20 | 54 68 65 73 65 20 63 6f |tput). |These co|
|00003c40| 6d 6d 61 6e 64 73 20 61 | 72 65 20 75 73 65 66 75 |mmands a|re usefu|
|00003c50| 6c 20 6f 6e 6c 79 0a 58 | 20 20 20 6f 6e 20 73 79 |l only.X| on sy|
|00003c60| 73 74 65 6d 73 20 74 68 | 61 74 20 61 6c 6c 6f 77 |stems th|at allow|
|00003c70| 20 70 72 6f 67 72 61 6d | 73 20 74 6f 20 65 61 73 | program|s to eas|
|00003c80| 69 6c 79 20 61 63 74 20 | 61 73 20 66 69 6c 74 65 |ily act |as filte|
|00003c90| 72 73 2e 0a 58 56 45 52 | 5f 44 49 53 50 4c 41 59 |rs..XVER|_DISPLAY|
|00003ca0| 0a 58 20 20 20 54 68 65 | 20 63 68 61 72 61 63 74 |.X The| charact|
|00003cb0| 65 72 20 74 68 61 74 20 | 77 69 6c 6c 20 73 65 70 |er that |will sep|
|00003cc0| 61 72 61 74 65 20 66 69 | 6c 65 6e 61 6d 65 73 20 |arate fi|lenames |
|00003cd0| 66 72 6f 6d 20 67 65 6e | 65 72 61 74 69 6f 6e 20 |from gen|eration |
|00003ce0| 6e 75 6d 62 65 72 73 0a | 58 20 20 20 69 6e 20 6c |numbers.|X in l|
|00003cf0| 69 73 74 69 6e 67 73 20 | 6f 66 20 61 72 63 68 69 |istings |of archi|
|00003d00| 76 65 20 63 6f 6e 74 65 | 6e 74 73 2e 20 20 4d 75 |ve conte|nts. Mu|
|00003d10| 73 74 20 62 65 20 61 20 | 73 69 6e 67 6c 65 20 63 |st be a |single c|
|00003d20| 68 61 72 61 63 74 65 72 | 0a 58 20 20 20 69 6e 20 |haracter|.X in |
|00003d30| 64 6f 75 62 6c 65 20 71 | 75 6f 74 65 73 2e 0a 58 |double q|uotes..X|
|00003d40| 56 45 52 5f 49 4e 50 55 | 54 0a 58 20 20 20 54 68 |VER_INPU|T.X Th|
|00003d50| 65 20 63 68 61 72 61 63 | 74 65 72 73 20 74 68 61 |e charac|ters tha|
|00003d60| 74 20 77 69 6c 6c 20 62 | 65 20 61 63 63 65 70 74 |t will b|e accept|
|00003d70| 65 64 20 61 73 20 73 65 | 70 61 72 61 74 69 6e 67 |ed as se|parating|
|00003d80| 20 66 69 6c 65 6e 61 6d | 65 73 0a 58 20 20 20 66 | filenam|es.X f|
|00003d90| 72 6f 6d 20 67 65 6e 65 | 72 61 74 69 6f 6e 20 6e |rom gene|ration n|
|00003da0| 75 6d 62 65 72 73 20 77 | 68 65 6e 20 74 79 70 65 |umbers w|hen type|
|00003db0| 64 20 61 73 20 61 6e 20 | 61 72 67 75 6d 65 6e 74 |d as an |argument|
|00003dc0| 20 74 6f 20 73 65 6c 65 | 63 74 0a 58 20 20 20 73 | to sele|ct.X s|
|00003dd0| 70 65 63 69 66 69 63 20 | 66 69 6c 65 73 20 66 72 |pecific |files fr|
|00003de0| 6f 6d 20 61 6e 20 61 72 | 63 68 69 76 65 2e 20 20 |om an ar|chive. |
|00003df0| 53 74 72 69 6e 67 20 76 | 61 6c 75 65 2e 20 20 4d |String v|alue. M|
|00003e00| 61 79 20 69 6e 63 6c 75 | 64 65 0a 58 20 20 20 6f |ay inclu|de.X o|
|00003e10| 6e 65 20 6f 72 20 6d 6f | 72 65 20 63 68 61 72 61 |ne or mo|re chara|
|00003e20| 63 74 65 72 73 3b 20 20 | 61 6e 79 20 6f 66 20 74 |cters; |any of t|
|00003e30| 68 65 6d 20 6d 61 79 20 | 74 68 65 6e 20 62 65 20 |hem may |then be |
|00003e40| 74 79 70 65 64 20 61 6e | 64 0a 58 20 20 20 77 69 |typed an|d.X wi|
|00003e50| 6c 6c 20 77 6f 72 6b 2e | 0a 58 4e 4f 53 54 52 43 |ll work.|.XNOSTRC|
|00003e60| 48 52 0a 58 20 20 20 41 | 6c 74 68 6f 75 67 68 20 |HR.X A|lthough |
|00003e70| 34 2e 33 42 53 44 20 61 | 73 20 64 69 73 74 72 69 |4.3BSD a|s distri|
|00003e80| 62 75 74 65 64 20 66 72 | 6f 6d 20 42 65 72 6b 65 |buted fr|om Berke|
|00003e90| 6c 65 79 20 69 6e 63 6c | 75 64 65 73 20 73 74 72 |ley incl|udes str|
|00003ea0| 63 68 72 28 29 0a 58 20 | 20 20 61 6e 64 20 73 74 |chr().X | and st|
|00003eb0| 72 72 63 68 72 28 29 20 | 6c 69 62 72 61 72 79 20 |rrchr() |library |
|00003ec0| 66 75 6e 63 74 69 6f 6e | 73 2c 20 34 2e 32 42 53 |function|s, 4.2BS|
|00003ed0| 44 20 61 6e 64 20 73 69 | 6d 69 6c 61 72 20 73 79 |D and si|milar sy|
|00003ee0| 73 74 65 6d 73 0a 58 20 | 20 20 6d 61 79 20 6e 6f |stems.X | may no|
|00003ef0| 74 2e 20 20 49 66 20 73 | 6f 2c 20 64 65 66 69 6e |t. If s|o, defin|
|00003f00| 69 6e 67 20 4e 4f 53 54 | 52 43 48 52 20 77 69 6c |ing NOST|RCHR wil|
|00003f10| 6c 20 63 61 75 73 65 20 | 7a 6f 6f 20 74 6f 20 75 |l cause |zoo to u|
|00003f20| 73 65 0a 58 20 20 20 69 | 6e 64 65 78 28 29 20 61 |se.X i|ndex() a|
|00003f30| 6e 64 20 72 69 6e 64 65 | 78 28 29 20 69 6e 73 74 |nd rinde|x() inst|
|00003f40| 65 61 64 2e 0a 45 4e 44 | 5f 4f 46 5f 46 49 4c 45 |ead..END|_OF_FILE|
|00003f50| 0a 69 66 20 74 65 73 74 | 20 31 34 39 35 30 20 2d |.if test| 14950 -|
|00003f60| 6e 65 20 60 77 63 20 2d | 63 20 3c 27 6f 70 74 69 |ne `wc -|c <'opti|
|00003f70| 6f 6e 73 2e 64 6f 63 27 | 60 3b 20 74 68 65 6e 0a |ons.doc'|`; then.|
|00003f80| 20 20 20 20 65 63 68 6f | 20 73 68 61 72 3a 20 5c | echo| shar: \|
|00003f90| 22 27 6f 70 74 69 6f 6e | 73 2e 64 6f 63 27 5c 22 |"'option|s.doc'\"|
|00003fa0| 20 75 6e 70 61 63 6b 65 | 64 20 77 69 74 68 20 77 | unpacke|d with w|
|00003fb0| 72 6f 6e 67 20 73 69 7a | 65 21 0a 66 69 0a 23 20 |rong siz|e!.fi.# |
|00003fc0| 65 6e 64 20 6f 66 20 27 | 6f 70 74 69 6f 6e 73 2e |end of '|options.|
|00003fd0| 64 6f 63 27 0a 66 69 0a | 69 66 20 74 65 73 74 20 |doc'.fi.|if test |
|00003fe0| 2d 66 20 27 7a 6f 6f 2e | 68 27 20 2d 61 20 22 24 |-f 'zoo.|h' -a "$|
|00003ff0| 7b 31 7d 22 20 21 3d 20 | 22 2d 63 22 20 3b 20 74 |{1}" != |"-c" ; t|
|00004000| 68 65 6e 20 0a 20 20 65 | 63 68 6f 20 73 68 61 72 |hen . e|cho shar|
|00004010| 3a 20 57 69 6c 6c 20 6e | 6f 74 20 63 6c 6f 62 62 |: Will n|ot clobb|
|00004020| 65 72 20 65 78 69 73 74 | 69 6e 67 20 66 69 6c 65 |er exist|ing file|
|00004030| 20 5c 22 27 7a 6f 6f 2e | 68 27 5c 22 0a 65 6c 73 | \"'zoo.|h'\".els|
|00004040| 65 0a 65 63 68 6f 20 73 | 68 61 72 3a 20 45 78 74 |e.echo s|har: Ext|
|00004050| 72 61 63 74 69 6e 67 20 | 5c 22 27 7a 6f 6f 2e 68 |racting |\"'zoo.h|
|00004060| 27 5c 22 20 5c 28 31 30 | 31 31 33 20 63 68 61 72 |'\" \(10|113 char|
|00004070| 61 63 74 65 72 73 5c 29 | 0a 73 65 64 20 22 73 2f |acters\)|.sed "s/|
|00004080| 5e 58 2f 2f 22 20 3e 27 | 7a 6f 6f 2e 68 27 20 3c |^X//" >'|zoo.h' <|
|00004090| 3c 27 45 4e 44 5f 4f 46 | 5f 46 49 4c 45 27 0a 58 |<'END_OF|_FILE'.X|
|000040a0| 2f 2a 20 40 28 23 29 20 | 7a 6f 6f 2e 68 20 32 2e |/* @(#) |zoo.h 2.|
|000040b0| 31 36 20 38 38 2f 30 31 | 2f 32 37 20 32 33 3a 32 |16 88/01|/27 23:2|
|000040c0| 31 3a 33 36 20 2a 2f 0a | 58 0a 58 2f 2a 0a 58 54 |1:36 */.|X.X/*.XT|
|000040d0| 68 65 20 63 6f 6e 74 65 | 6e 74 73 20 6f 66 20 74 |he conte|nts of t|
|000040e0| 68 69 73 20 66 69 6c 65 | 20 61 72 65 20 68 65 72 |his file| are her|
|000040f0| 65 62 79 20 72 65 6c 65 | 61 73 65 64 20 74 6f 20 |eby rele|ased to |
|00004100| 74 68 65 20 70 75 62 6c | 69 63 20 64 6f 6d 61 69 |the publ|ic domai|
|00004110| 6e 2e 0a 58 0a 58 20 20 | 20 20 20 20 20 20 20 20 |n..X.X | |
|00004120| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004130| 20 2d 2d 20 52 61 68 75 | 6c 20 44 68 65 73 69 20 | -- Rahu|l Dhesi |
|00004140| 31 39 38 36 2f 31 31 2f | 31 34 0a 58 2a 2f 0a 58 |1986/11/|14.X*/.X|
|00004150| 0a 58 0a 58 2f 2a 20 47 | 6c 6f 62 61 6c 20 64 61 |.X.X/* G|lobal da|
|00004160| 74 61 20 73 74 72 75 63 | 74 75 72 65 73 20 61 6e |ta struc|tures an|
|00004170| 64 20 61 6c 73 6f 20 73 | 6f 6d 65 20 69 6e 66 6f |d also s|ome info|
|00004180| 72 6d 61 74 69 6f 6e 20 | 61 62 6f 75 74 20 61 72 |rmation |about ar|
|00004190| 63 68 69 76 65 20 73 74 | 72 75 63 74 75 72 65 2e |chive st|ructure.|
|000041a0| 0a 58 0a 58 41 6d 6f 6e | 67 20 6f 74 68 65 72 20 |.X.XAmon|g other |
|000041b0| 74 68 69 6e 67 73 2c 20 | 74 68 65 20 61 72 63 68 |things, |the arch|
|000041c0| 69 76 65 20 68 65 61 64 | 65 72 20 63 6f 6e 74 61 |ive head|er conta|
|000041d0| 69 6e 73 3a 20 20 0a 58 | 0a 58 28 61 29 20 41 20 |ins: .X|.X(a) A |
|000041e0| 74 65 78 74 20 6d 65 73 | 73 61 67 65 2e 20 20 49 |text mes|sage. I|
|000041f0| 6e 20 74 68 65 20 4d 53 | 2d 44 4f 53 20 76 65 72 |n the MS|-DOS ver|
|00004200| 73 69 6f 6e 20 74 68 69 | 73 20 6d 65 73 73 61 67 |sion thi|s messag|
|00004210| 65 20 69 73 20 74 65 72 | 6d 69 6e 61 74 65 64 20 |e is ter|minated |
|00004220| 62 79 0a 58 63 6f 6e 74 | 72 6f 6c 20 5a 2e 20 20 |by.Xcont|rol Z. |
|00004230| 54 68 69 73 20 61 6c 6c | 6f 77 73 20 6e 61 69 76 |This all|ows naiv|
|00004240| 65 20 75 73 65 72 73 20 | 74 6f 20 74 79 70 65 20 |e users |to type |
|00004250| 74 68 65 20 61 72 63 68 | 69 76 65 20 74 6f 20 74 |the arch|ive to t|
|00004260| 68 65 20 73 63 72 65 65 | 6e 0a 58 61 6e 64 20 73 |he scree|n.Xand s|
|00004270| 65 65 20 61 20 62 72 69 | 65 66 20 62 75 74 20 6d |ee a bri|ef but m|
|00004280| 65 61 6e 69 6e 67 66 75 | 6c 20 6d 65 73 73 61 67 |eaningfu|l messag|
|00004290| 65 20 69 6e 73 74 65 61 | 64 20 6f 66 20 67 61 72 |e instea|d of gar|
|000042a0| 62 61 67 65 2e 20 20 54 | 68 65 20 63 6f 6e 74 65 |bage. T|he conte|
|000042b0| 6e 74 73 20 6f 66 0a 58 | 74 68 65 20 74 65 78 74 |nts of.X|the text|
|000042c0| 20 6d 65 73 73 61 67 65 | 20 61 72 65 20 68 6f 77 | message| are how|
|000042d0| 65 76 65 72 20 6e 6f 74 | 20 75 73 65 64 20 62 79 |ever not| used by|
|000042e0| 20 5a 6f 6f 20 61 6e 64 | 20 74 68 65 79 20 6d 61 | Zoo and| they ma|
|000042f0| 79 20 62 65 20 61 6e 79 | 74 68 69 6e 67 2e 20 20 |y be any|thing. |
|00004300| 0a 58 49 6e 20 70 61 72 | 74 69 63 75 6c 61 72 2c |.XIn par|ticular,|
|00004310| 20 74 68 65 20 74 65 78 | 74 20 6d 65 73 73 61 67 | the tex|t messag|
|00004320| 65 20 6d 61 79 20 69 64 | 65 6e 74 69 66 79 20 74 |e may id|entify t|
|00004330| 68 65 20 74 79 70 65 20 | 6f 72 20 61 72 63 68 69 |he type |or archi|
|00004340| 76 65 20 6f 72 20 74 68 | 65 0a 58 70 61 72 74 69 |ve or th|e.Xparti|
|00004350| 63 75 6c 61 72 20 63 6f | 6d 70 75 74 65 72 20 73 |cular co|mputer s|
|00004360| 79 73 74 65 6d 20 69 74 | 20 77 61 73 20 63 72 65 |ystem it| was cre|
|00004370| 61 74 65 64 20 6f 6e 2e | 20 20 57 68 65 6e 20 61 |ated on.| When a|
|00004380| 6e 20 61 72 63 68 69 76 | 65 20 69 73 20 70 61 63 |n archiv|e is pac|
|00004390| 6b 65 64 0a 58 62 79 20 | 61 6e 79 20 76 65 72 73 |ked.Xby |any vers|
|000043a0| 69 6f 6e 20 6f 66 20 5a | 6f 6f 2c 20 74 68 65 20 |ion of Z|oo, the |
|000043b0| 74 65 78 74 20 6d 65 73 | 73 61 67 65 20 69 73 20 |text mes|sage is |
|000043c0| 63 68 61 6e 67 65 64 20 | 74 6f 20 74 68 65 20 74 |changed |to the t|
|000043d0| 65 78 74 20 6d 65 73 73 | 61 67 65 0a 58 75 73 65 |ext mess|age.Xuse|
|000043e0| 64 20 62 79 20 74 68 61 | 74 20 76 65 72 73 69 6f |d by tha|t versio|
|000043f0| 6e 2e 20 20 46 6f 72 20 | 65 78 61 6d 70 6c 65 2c |n. For |example,|
|00004400| 20 69 66 20 5a 6f 6f 20 | 31 2e 31 30 20 70 61 63 | if Zoo |1.10 pac|
|00004410| 6b 73 20 61 6e 20 61 72 | 63 68 69 76 65 20 63 72 |ks an ar|chive cr|
|00004420| 65 61 74 65 64 0a 58 62 | 79 20 5a 6f 6f 20 31 2e |eated.Xb|y Zoo 1.|
|00004430| 33 31 2c 20 74 68 65 20 | 74 65 78 74 20 6d 65 73 |31, the |text mes|
|00004440| 73 61 67 65 20 63 68 61 | 6e 67 65 73 20 74 6f 20 |sage cha|nges to |
|00004450| 22 5a 6f 6f 20 31 2e 31 | 30 20 61 72 63 68 69 76 |"Zoo 1.1|0 archiv|
|00004460| 65 2e 22 2e 20 20 54 68 | 69 73 0a 58 77 61 73 20 |e.". Th|is.Xwas |
|00004470| 6f 6e 63 65 20 63 6f 6e | 73 69 64 65 72 65 64 20 |once con|sidered |
|00004480| 61 20 73 68 6f 72 74 63 | 6f 6d 69 6e 67 2c 20 62 |a shortc|oming, b|
|00004490| 75 74 20 69 74 20 69 73 | 20 6e 6f 77 20 61 6e 20 |ut it is| now an |
|000044a0| 65 73 73 65 6e 74 69 61 | 6c 20 66 65 61 74 75 72 |essentia|l featur|
|000044b0| 65 2c 0a 58 62 65 63 61 | 75 73 65 20 70 61 63 6b |e,.Xbeca|use pack|
|000044c0| 69 6e 67 20 77 69 6c 6c | 20 61 6c 73 6f 20 75 70 |ing will| also up|
|000044d0| 64 61 74 65 20 61 6e 20 | 6f 6c 64 20 61 72 63 68 |date an |old arch|
|000044e0| 69 76 65 72 20 68 65 61 | 64 65 72 20 73 74 72 75 |iver hea|der stru|
|000044f0| 63 74 75 72 65 0a 58 69 | 6e 74 6f 20 61 20 6e 65 |cture.Xi|nto a ne|
|00004500| 77 20 6f 6e 65 2e 0a 58 | 0a 58 28 62 29 20 41 20 |w one..X|.X(b) A |
|00004510| 66 6f 75 72 2d 62 79 74 | 65 20 74 61 67 20 74 68 |four-byt|e tag th|
|00004520| 61 74 20 69 64 65 6e 74 | 69 66 69 65 73 20 61 6c |at ident|ifies al|
|00004530| 6c 20 5a 6f 6f 20 61 72 | 63 68 69 76 65 73 2e 20 |l Zoo ar|chives. |
|00004540| 20 54 68 69 73 20 68 65 | 6c 70 73 20 70 72 65 76 | This he|lps prev|
|00004550| 65 6e 74 0a 58 61 72 62 | 69 74 72 61 72 79 20 62 |ent.Xarb|itrary b|
|00004560| 69 6e 61 72 79 20 66 69 | 6c 65 73 20 66 72 6f 6d |inary fi|les from|
|00004570| 20 62 65 69 6e 67 20 74 | 72 65 61 74 65 64 20 61 | being t|reated a|
|00004580| 73 20 5a 6f 6f 20 61 72 | 63 68 69 76 65 73 2e 20 |s Zoo ar|chives. |
|00004590| 20 54 68 65 20 74 61 67 | 20 76 61 6c 75 65 20 69 | The tag| value i|
|000045a0| 73 0a 58 61 72 62 69 74 | 72 61 72 79 2c 20 62 75 |s.Xarbit|rary, bu|
|000045b0| 74 20 73 65 65 6d 65 64 | 20 74 6f 20 62 65 20 75 |t seemed| to be u|
|000045c0| 6e 6c 69 6b 65 6c 79 20 | 74 6f 20 6f 63 63 75 72 |nlikely |to occur|
|000045d0| 20 69 6e 20 61 6e 20 65 | 78 65 63 75 74 61 62 6c | in an e|xecutabl|
|000045e0| 65 20 66 69 6c 65 2e 20 | 20 54 68 65 0a 58 73 61 |e file. | The.Xsa|
|000045f0| 6d 65 20 74 61 67 20 76 | 61 6c 75 65 20 69 73 20 |me tag v|alue is |
|00004600| 75 73 65 64 20 74 6f 20 | 69 64 65 6e 74 69 66 79 |used to |identify|
|00004610| 20 65 61 63 68 20 64 69 | 72 65 63 74 6f 72 79 20 | each di|rectory |
|00004620| 65 6e 74 72 79 2e 20 20 | 0a 58 0a 58 28 63 29 20 |entry. |.X.X(c) |
|00004630| 41 20 6c 6f 6e 67 20 70 | 6f 69 6e 74 65 72 20 74 |A long p|ointer t|
|00004640| 6f 20 77 68 65 72 65 20 | 69 6e 20 74 68 65 20 66 |o where |in the f|
|00004650| 69 6c 65 20 74 68 65 20 | 61 72 63 68 69 76 65 20 |ile the |archive |
|00004660| 73 74 61 72 74 73 2e 20 | 20 54 68 69 73 20 70 6f |starts. | This po|
|00004670| 69 6e 74 65 72 0a 58 69 | 73 20 73 74 6f 72 65 64 |inter.Xi|s stored|
|00004680| 20 61 6c 6f 6e 67 20 77 | 69 74 68 20 69 74 73 20 | along w|ith its |
|00004690| 6e 65 67 61 74 69 6f 6e | 20 66 6f 72 20 63 6f 6e |negation| for con|
|000046a0| 73 69 73 74 65 6e 63 79 | 20 63 68 65 63 6b 69 6e |sistency| checkin|
|000046b0| 67 2e 20 20 49 74 20 69 | 73 20 68 6f 70 65 64 0a |g. It i|s hoped.|
|000046c0| 58 74 68 61 74 20 69 66 | 20 74 68 65 20 61 72 63 |Xthat if| the arc|
|000046d0| 68 69 76 65 20 69 73 20 | 64 61 6d 61 67 65 64 2c |hive is |damaged,|
|000046e0| 20 62 6f 74 68 20 74 68 | 65 20 70 6f 69 6e 74 65 | both th|e pointe|
|000046f0| 72 20 61 6e 64 20 69 74 | 73 20 6e 65 67 61 74 69 |r and it|s negati|
|00004700| 6f 6e 20 77 6f 6e 27 74 | 0a 58 62 65 20 64 61 6d |on won't|.Xbe dam|
|00004710| 61 67 65 64 20 61 6e 64 | 20 61 74 20 6c 65 61 73 |aged and| at leas|
|00004720| 74 20 6f 6e 65 20 77 6f | 75 6c 64 20 73 74 69 6c |t one wo|uld stil|
|00004730| 6c 20 62 65 20 75 73 61 | 62 6c 65 20 74 6f 20 74 |l be usa|ble to t|
|00004740| 65 6c 6c 20 75 73 20 77 | 68 65 72 65 20 74 68 65 |ell us w|here the|
|00004750| 20 0a 58 64 61 74 61 20 | 62 65 67 69 6e 73 2e 0a | .Xdata |begins..|
|00004760| 58 0a 58 28 64 29 20 41 | 20 74 77 6f 2d 62 79 74 |X.X(d) A| two-byt|
|00004770| 65 20 76 61 6c 75 65 20 | 67 69 76 69 6e 67 20 74 |e value |giving t|
|00004780| 68 65 20 6d 61 6a 6f 72 | 20 61 6e 64 20 6d 69 6e |he major| and min|
|00004790| 6f 72 20 76 65 72 73 69 | 6f 6e 20 6e 75 6d 62 65 |or versi|on numbe|
|000047a0| 72 20 6f 66 20 74 68 65 | 0a 58 6d 69 6e 69 6d 75 |r of the|.Xminimu|
|000047b0| 6d 20 76 65 72 73 69 6f | 6e 20 6f 66 20 5a 6f 6f |m versio|n of Zoo|
|000047c0| 20 74 68 61 74 20 69 73 | 20 6e 65 65 64 65 64 20 | that is| needed |
|000047d0| 74 6f 20 66 75 6c 6c 79 | 20 6d 61 6e 69 70 75 6c |to fully| manipul|
|000047e0| 61 74 65 20 74 68 65 20 | 61 72 63 68 69 76 65 2e |ate the |archive.|
|000047f0| 20 20 0a 58 41 73 20 74 | 68 65 20 61 72 63 68 69 | .XAs t|he archi|
|00004800| 76 65 20 73 74 72 75 63 | 74 75 72 65 20 69 73 20 |ve struc|ture is |
|00004810| 6d 6f 64 69 66 69 65 64 | 2c 20 74 68 69 73 20 76 |modified|, this v|
|00004820| 65 72 73 69 6f 6e 20 6e | 75 6d 62 65 72 20 6d 61 |ersion n|umber ma|
|00004830| 79 20 69 6e 63 72 65 61 | 73 65 2e 0a 58 43 75 72 |y increa|se..XCur|
|00004840| 72 65 6e 74 6c 79 20 76 | 65 72 73 69 6f 6e 20 31 |rently v|ersion 1|
|00004850| 2e 37 31 20 6f 66 20 5a | 6f 6f 20 63 72 65 61 74 |.71 of Z|oo creat|
|00004860| 65 73 20 61 72 63 68 69 | 76 65 73 20 74 68 61 74 |es archi|ves that|
|00004870| 20 6d 61 79 20 62 65 20 | 66 75 6c 6c 79 20 6d 61 | may be |fully ma|
|00004880| 6e 69 70 75 6c 61 74 65 | 64 0a 58 62 79 20 76 65 |nipulate|d.Xby ve|
|00004890| 72 73 69 6f 6e 20 31 2e | 34 30 20 6f 6e 77 61 72 |rsion 1.|40 onwar|
|000048a0| 64 73 2e 0a 58 0a 58 28 | 65 29 20 57 69 74 68 20 |ds..X.X(|e) With |
|000048b0| 7a 6f 6f 20 32 2e 30 30 | 20 61 64 64 74 69 6f 6e |zoo 2.00| addtion|
|000048c0| 61 6c 20 66 69 65 6c 64 | 73 20 68 61 76 65 20 62 |al field|s have b|
|000048d0| 65 65 6e 20 61 64 64 65 | 64 20 69 6e 20 74 68 65 |een adde|d in the|
|000048e0| 20 61 72 63 68 69 76 65 | 0a 58 68 65 61 64 65 72 | archive|.Xheader|
|000048f0| 20 74 6f 20 73 74 6f 72 | 65 20 69 6e 66 6f 72 6d | to stor|e inform|
|00004900| 61 74 69 6f 6e 20 61 62 | 6f 75 74 20 74 68 65 20 |ation ab|out the |
|00004910| 61 72 63 68 69 76 65 20 | 63 6f 6d 6d 65 6e 74 20 |archive |comment |
|00004920| 61 6e 64 20 67 65 6e 65 | 72 61 74 69 6f 6e 0a 58 |and gene|ration.X|
|00004930| 6c 69 6d 69 74 2e 0a 58 | 0a 58 56 65 72 73 69 6f |limit..X|.XVersio|
|00004940| 6e 20 6e 75 6d 62 65 72 | 69 6e 67 3a 20 20 0a 58 |n number|ing: .X|
|00004950| 54 68 65 20 64 69 72 65 | 63 74 6f 72 79 20 65 6e |The dire|ctory en|
|00004960| 74 72 79 20 6f 66 20 65 | 61 63 68 20 66 69 6c 65 |try of e|ach file|
|00004970| 20 77 69 6c 6c 20 63 6f | 6e 74 61 69 6e 20 74 68 | will co|ntain th|
|00004980| 65 20 6d 69 6e 69 6d 75 | 6d 20 76 65 72 73 69 6f |e minimu|m versio|
|00004990| 6e 20 6e 75 6d 62 65 72 | 20 6f 66 0a 58 5a 6f 6f |n number| of.XZoo|
|000049a0| 20 6e 65 65 64 65 64 20 | 74 6f 20 65 78 74 72 61 | needed |to extra|
|000049b0| 63 74 20 74 68 61 74 20 | 66 69 6c 65 2e 20 20 41 |ct that |file. A|
|000049c0| 73 20 66 61 72 20 61 73 | 20 70 6f 73 73 69 62 6c |s far as| possibl|
|000049d0| 65 2c 20 76 65 72 73 69 | 6f 6e 20 31 2e 30 30 20 |e, versi|on 1.00 |
|000049e0| 6f 66 20 5a 6f 6f 0a 58 | 77 69 6c 6c 20 62 65 20 |of Zoo.X|will be |
|000049f0| 61 62 6c 65 20 74 6f 20 | 65 78 74 72 61 63 74 20 |able to |extract |
|00004a00| 66 69 6c 65 73 20 66 72 | 6f 6d 20 66 75 74 75 72 |files fr|om futur|
|00004a10| 65 20 76 65 72 73 69 6f | 6e 20 61 72 63 68 69 76 |e versio|n archiv|
|00004a20| 65 73 2e 0a 58 2a 2f 0a | 58 0a 58 23 64 65 66 69 |es..X*/.|X.X#defi|
|00004a30| 6e 65 20 48 5f 54 59 50 | 45 09 31 09 09 09 09 2f |ne H_TYP|E.1..../|
|00004a40| 2a 20 61 72 63 68 69 76 | 65 20 68 65 61 64 65 72 |* archiv|e header|
|00004a50| 20 74 79 70 65 20 2a 2f | 0a 58 0a 58 2f 2a 20 44 | type */|.X.X/* D|
|00004a60| 65 66 69 6e 65 20 6d 61 | 6a 6f 72 20 61 6e 64 20 |efine ma|jor and |
|00004a70| 6d 69 6e 6f 72 20 76 65 | 72 73 69 6f 6e 20 6e 75 |minor ve|rsion nu|
|00004a80| 6d 62 65 72 73 20 2a 2f | 0a 58 23 64 65 66 69 6e |mbers */|.X#defin|
|00004a90| 65 20 4d 41 4a 4f 52 5f | 56 45 52 20 32 20 20 20 |e MAJOR_|VER 2 |
|00004aa0| 20 20 20 20 20 2f 2a 20 | 6e 65 65 64 65 64 20 74 | /* |needed t|
|00004ab0| 6f 20 6d 61 6e 69 70 75 | 6c 61 74 65 20 61 72 63 |o manipu|late arc|
|00004ac0| 68 69 76 65 20 2a 2f 0a | 58 23 64 65 66 69 6e 65 |hive */.|X#define|
|00004ad0| 20 4d 49 4e 4f 52 5f 56 | 45 52 20 30 0a 58 0a 58 | MINOR_V|ER 0.X.X|
|00004ae0| 23 64 65 66 69 6e 65 20 | 4d 41 4a 4f 52 5f 45 58 |#define |MAJOR_EX|
|00004af0| 54 5f 56 45 52 20 31 20 | 20 20 20 2f 2a 20 6e 65 |T_VER 1 | /* ne|
|00004b00| 65 64 65 64 20 74 6f 20 | 65 78 74 72 61 63 74 20 |eded to |extract |
|00004b10| 66 69 6c 65 20 2a 2f 0a | 58 23 64 65 66 69 6e 65 |file */.|X#define|
|00004b20| 20 4d 49 4e 4f 52 5f 45 | 58 54 5f 56 45 52 20 30 | MINOR_E|XT_VER 0|
|00004b30| 0a 58 0a 58 23 64 65 66 | 69 6e 65 20 43 54 52 4c |.X.X#def|ine CTRL|
|00004b40| 5f 5a 20 32 36 0a 58 0a | 58 2f 2a 20 73 68 6f 75 |_Z 26.X.|X/* shou|
|00004b50| 6c 64 20 62 65 20 30 78 | 46 44 43 34 41 37 44 43 |ld be 0x|FDC4A7DC|
|00004b60| 55 4c 20 62 75 74 20 6d | 61 6e 79 20 63 20 63 6f |UL but m|any c co|
|00004b70| 6d 70 69 6c 65 72 73 20 | 64 6f 6e 27 74 20 72 65 |mpilers |don't re|
|00004b80| 63 6f 67 6e 69 7a 65 20 | 55 4c 20 61 74 20 65 6e |cognize |UL at en|
|00004b90| 64 20 2a 2f 0a 58 23 64 | 65 66 69 6e 65 20 5a 4f |d */.X#d|efine ZO|
|00004ba0| 4f 5f 54 41 47 20 28 28 | 75 6e 73 69 67 6e 65 64 |O_TAG ((|unsigned|
|00004bb0| 20 6c 6f 6e 67 29 20 30 | 78 46 44 43 34 41 37 44 | long) 0|xFDC4A7D|
|00004bc0| 43 4c 29 20 2f 2a 20 41 | 20 72 61 6e 64 6f 6d 20 |CL) /* A| random |
|00004bd0| 63 68 6f 69 63 65 20 2a | 2f 0a 58 23 64 65 66 69 |choice *|/.X#defi|
|00004be0| 6e 65 20 54 45 58 54 20 | 22 5a 4f 4f 20 32 2e 30 |ne TEXT |"ZOO 2.0|
|00004bf0| 30 20 41 72 63 68 69 76 | 65 2e 5c 30 33 32 22 20 |0 Archiv|e.\032" |
|00004c00| 20 20 2f 2a 20 48 65 61 | 64 65 72 20 74 65 78 74 | /* Hea|der text|
|00004c10| 20 66 6f 72 20 61 72 63 | 68 69 76 65 2e 20 2a 2f | for arc|hive. */|
|00004c20| 0a 58 23 64 65 66 69 6e | 65 20 53 49 5a 5f 54 45 |.X#defin|e SIZ_TE|
|00004c30| 58 54 20 20 32 30 20 20 | 20 20 20 20 20 20 20 20 |XT 20 | |
|00004c40| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 53 69 7a 65 | | /* Size|
|00004c50| 20 6f 66 20 68 65 61 64 | 65 72 20 74 65 78 74 20 | of head|er text |
|00004c60| 2a 2f 0a 58 0a 58 23 64 | 65 66 69 6e 65 20 50 41 |*/.X.X#d|efine PA|
|00004c70| 54 48 53 49 5a 45 20 32 | 35 36 20 20 20 20 20 20 |THSIZE 2|56 |
|00004c80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 2f 2a 20 | | /* |
|00004c90| 4d 61 78 20 6c 65 6e 67 | 74 68 20 6f 66 20 70 61 |Max leng|th of pa|
|00004ca0| 74 68 6e 61 6d 65 20 2a | 2f 0a 58 23 64 65 66 69 |thname *|/.X#defi|
|00004cb0| 6e 65 20 46 4e 41 4d 45 | 53 49 5a 45 20 31 33 20 |ne FNAME|SIZE 13 |
|00004cc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004cd0| 20 20 2f 2a 20 53 69 7a | 65 20 6f 66 20 44 4f 53 | /* Siz|e of DOS|
|00004ce0| 20 66 69 6c 65 6e 61 6d | 65 20 2a 2f 0a 58 23 64 | filenam|e */.X#d|
|00004cf0| 65 66 69 6e 65 20 4c 46 | 4e 41 4d 45 53 49 5a 45 |efine LF|NAMESIZE|
|00004d00| 20 32 35 36 20 20 20 20 | 20 20 20 20 20 20 20 20 | 256 | |
|00004d10| 20 20 20 20 20 2f 2a 20 | 53 69 7a 65 20 6f 66 20 | /* |Size of |
|00004d20| 6c 6f 6e 67 20 66 69 6c | 65 6e 61 6d 65 20 2a 2f |long fil|ename */|
|00004d30| 0a 58 23 64 65 66 69 6e | 65 20 52 4f 4f 54 53 49 |.X#defin|e ROOTSI|
|00004d40| 5a 45 20 38 20 20 20 20 | 20 20 20 20 20 20 20 20 |ZE 8 | |
|00004d50| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 53 69 7a 65 | | /* Size|
|00004d60| 20 6f 66 20 66 6e 61 6d | 65 20 77 69 74 68 6f 75 | of fnam|e withou|
|00004d70| 74 20 65 78 74 65 6e 73 | 69 6f 6e 20 2a 2f 0a 58 |t extens|ion */.X|
|00004d80| 23 64 65 66 69 6e 65 20 | 45 58 54 4c 45 4e 20 33 |#define |EXTLEN 3|
|00004d90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004da0| 20 20 20 20 20 20 20 2f | 2a 20 53 69 7a 65 20 6f | /|* Size o|
|00004db0| 66 20 65 78 74 65 6e 73 | 69 6f 6e 20 2a 2f 0a 58 |f extens|ion */.X|
|00004dc0| 23 64 65 66 69 6e 65 20 | 46 49 4c 45 5f 4c 45 41 |#define |FILE_LEA|
|00004dd0| 44 45 52 20 20 22 40 29 | 23 28 22 20 20 20 20 20 |DER "@)|#(" |
|00004de0| 20 20 20 20 20 20 20 2f | 2a 20 41 6c 6c 6f 77 69 | /|* Allowi|
|00004df0| 6e 67 20 6c 6f 63 61 74 | 69 6f 6e 20 6f 66 20 66 |ng locat|ion of f|
|00004e00| 69 6c 65 20 64 61 74 61 | 20 2a 2f 0a 58 23 64 65 |ile data| */.X#de|
|00004e10| 66 69 6e 65 20 53 49 5a | 5f 46 4c 44 52 20 20 35 |fine SIZ|_FLDR 5|
|00004e20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004e30| 20 20 20 20 2f 2a 20 34 | 20 63 68 61 72 73 20 70 | /* 4| chars p|
|00004e40| 6c 75 73 20 6e 75 6c 6c | 20 2a 2f 0a 58 23 64 65 |lus null| */.X#de|
|00004e50| 66 69 6e 65 20 4d 41 58 | 5f 50 41 43 4b 20 31 20 |fine MAX|_PACK 1 |
|00004e60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004e70| 20 20 20 20 2f 2a 20 6d | 61 78 20 70 61 63 6b 69 | /* m|ax packi|
|00004e80| 6e 67 20 6d 65 74 68 6f | 64 20 77 65 20 63 61 6e |ng metho|d we can|
|00004e90| 20 68 61 6e 64 6c 65 20 | 2a 2f 0a 58 23 64 65 66 | handle |*/.X#def|
|00004ea0| 69 6e 65 20 42 41 43 4b | 55 50 5f 45 58 54 20 22 |ine BACK|UP_EXT "|
|00004eb0| 2e 62 61 6b 22 20 20 20 | 20 20 20 20 20 20 20 20 |.bak" | |
|00004ec0| 20 20 20 2f 2a 20 65 78 | 74 65 6e 73 69 6f 6e 20 | /* ex|tension |
|00004ed0| 6f 66 20 62 61 63 6b 75 | 70 20 66 69 6c 65 20 2a |of backu|p file *|
|00004ee0| 2f 0a 58 0a 58 23 69 66 | 64 65 66 20 4f 4f 5a 0a |/.X.X#if|def OOZ.|
|00004ef0| 58 23 64 65 66 69 6e 65 | 20 46 49 52 53 54 5f 41 |X#define| FIRST_A|
|00004f00| 52 47 20 32 0a 58 23 65 | 6e 64 69 66 0a 58 0a 58 |RG 2.X#e|ndif.X.X|
|00004f10| 23 69 66 64 65 66 20 5a | 4f 4f 0a 58 23 64 65 66 |#ifdef Z|OO.X#def|
|00004f20| 69 6e 65 20 46 49 52 53 | 54 5f 41 52 47 20 33 20 |ine FIRS|T_ARG 3 |
|00004f30| 20 20 20 20 20 20 20 2f | 2a 20 61 72 67 75 6d 65 | /|* argume|
|00004f40| 6e 74 20 70 6f 73 69 74 | 69 6f 6e 20 6f 66 20 66 |nt posit|ion of f|
|00004f50| 69 6c 65 6e 61 6d 65 20 | 6c 69 73 74 20 2a 2f 0a |ilename |list */.|
|00004f60| 58 23 65 6e 64 69 66 0a | 58 0a 58 74 79 70 65 64 |X#endif.|X.Xtyped|
|00004f70| 65 66 20 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |ef unsig|ned char|
|00004f80| 20 75 63 68 61 72 3b 0a | 58 0a 58 2f 2a 20 57 41 | uchar;.|X.X/* WA|
|00004f90| 52 4e 49 4e 47 3a 20 20 | 53 74 61 74 69 63 20 69 |RNING: |Static i|
|00004fa0| 6e 69 74 69 61 6c 69 7a | 61 74 69 6f 6e 20 69 6e |nitializ|ation in|
|00004fb0| 20 7a 6f 6f 61 64 64 2e | 63 20 6f 72 20 7a 6f 6f | zooadd.|c or zoo|
|00004fc0| 65 78 74 2e 63 20 64 65 | 70 65 6e 64 73 20 6f 6e |ext.c de|pends on|
|00004fd0| 20 74 68 65 20 0a 58 20 | 20 20 6f 72 64 65 72 20 | the .X | order |
|00004fe0| 6f 66 20 66 69 65 6c 64 | 73 20 69 6e 20 73 74 72 |of field|s in str|
|00004ff0| 75 63 74 20 7a 6f 6f 5f | 68 65 61 64 65 72 20 2a |uct zoo_|header *|
|00005000| 2f 0a 58 73 74 72 75 63 | 74 20 7a 6f 6f 5f 68 65 |/.Xstruc|t zoo_he|
|00005010| 61 64 65 72 20 7b 0a 58 | 20 20 20 63 68 61 72 20 |ader {.X| char |
|00005020| 74 65 78 74 5b 53 49 5a | 5f 54 45 58 54 5d 3b 20 |text[SIZ|_TEXT]; |
|00005030| 20 20 20 20 20 20 2f 2a | 20 61 72 63 68 69 76 65 | /*| archive|
|00005040| 20 68 65 61 64 65 72 20 | 74 65 78 74 20 2a 2f 0a | header |text */.|
|00005050| 58 20 20 20 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |X unsi|gned lon|
|00005060| 67 20 7a 6f 6f 5f 74 61 | 67 3b 20 20 20 20 20 2f |g zoo_ta|g; /|
|00005070| 2a 20 69 64 65 6e 74 69 | 66 69 65 73 20 61 72 63 |* identi|fies arc|
|00005080| 68 69 76 65 73 20 2a 2f | 0a 58 20 20 20 6c 6f 6e |hives */|.X lon|
|00005090| 67 20 7a 6f 6f 5f 73 74 | 61 72 74 3b 20 20 20 20 |g zoo_st|art; |
|000050a0| 20 20 20 20 20 20 20 20 | 2f 2a 20 77 68 65 72 65 | |/* where|
|000050b0| 20 74 68 65 20 61 72 63 | 68 69 76 65 27 73 20 64 | the arc|hive's d|
|000050c0| 61 74 61 20 73 74 61 72 | 74 73 20 2a 2f 0a 58 20 |ata star|ts */.X |
|000050d0| 20 20 6c 6f 6e 67 20 7a | 6f 6f 5f 6d 69 6e 75 73 | long z|oo_minus|
|000050e0| 3b 20 20 20 20 20 20 09 | 09 2f 2a 20 66 6f 72 20 |; .|./* for |
|000050f0| 63 6f 6e 73 69 73 74 65 | 6e 63 79 20 63 68 65 63 |consiste|ncy chec|
|00005100| 6b 69 6e 67 20 6f 66 20 | 7a 6f 6f 5f 73 74 61 72 |king of |zoo_star|
|00005110| 74 20 2a 2f 0a 58 20 20 | 20 75 63 68 61 72 20 6d |t */.X | uchar m|
|00005120| 61 6a 6f 72 5f 76 65 72 | 3b 0a 58 20 20 20 75 63 |ajor_ver|;.X uc|
|00005130| 68 61 72 20 6d 69 6e 6f | 72 5f 76 65 72 3b 20 20 |har mino|r_ver; |
|00005140| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 6d 69 6e 69 | | /* mini|
|00005150| 6d 75 6d 20 76 65 72 73 | 69 6f 6e 20 74 6f 20 65 |mum vers|ion to e|
|00005160| 78 74 72 61 63 74 20 61 | 6c 6c 20 66 69 6c 65 73 |xtract a|ll files|
|00005170| 20 20 20 2a 2f 0a 58 09 | 75 63 68 61 72 20 74 79 | */.X.|uchar ty|
|00005180| 70 65 3b 09 09 09 09 09 | 09 2f 2a 20 74 79 70 65 |pe;.....|./* type|
|00005190| 20 6f 66 20 61 72 63 68 | 69 76 65 20 68 65 61 64 | of arch|ive head|
|000051a0| 65 72 20 2a 2f 0a 58 09 | 6c 6f 6e 67 20 61 63 6d |er */.X.|long acm|
|000051b0| 74 5f 70 6f 73 3b 09 09 | 09 09 09 2f 2a 20 70 6f |t_pos;..|.../* po|
|000051c0| 73 69 74 69 6f 6e 20 6f | 66 20 61 72 63 68 69 76 |sition o|f archiv|
|000051d0| 65 20 63 6f 6d 6d 65 6e | 74 20 2a 2f 0a 58 09 75 |e commen|t */.X.u|
|000051e0| 6e 73 69 67 6e 65 64 20 | 69 6e 74 20 61 63 6d 74 |nsigned |int acmt|
|000051f0| 5f 6c 65 6e 3b 09 09 2f | 2a 20 6c 65 6e 67 74 68 |_len;../|* length|
|00005200| 20 6f 66 20 61 72 63 68 | 69 76 65 20 63 6f 6d 6d | of arch|ive comm|
|00005210| 65 6e 74 20 2a 2f 0a 58 | 09 75 6e 73 69 67 6e 65 |ent */.X|.unsigne|
|00005220| 64 20 69 6e 74 20 76 64 | 61 74 61 3b 09 09 09 2f |d int vd|ata;.../|
|00005230| 2a 20 62 79 74 65 20 69 | 6e 20 61 72 63 68 69 76 |* byte i|n archiv|
|00005240| 65 3b 20 20 64 61 74 61 | 20 61 62 6f 75 74 20 76 |e; data| about v|
|00005250| 65 72 73 69 6f 6e 73 20 | 2a 2f 0a 58 7d 3b 0a 58 |ersions |*/.X};.X|
|00005260| 0a 58 73 74 72 75 63 74 | 20 64 69 72 65 6e 74 72 |.Xstruct| direntr|
|00005270| 79 20 7b 0a 58 20 20 20 | 75 6e 73 69 67 6e 65 64 |y {.X |unsigned|
|00005280| 20 6c 6f 6e 67 20 7a 6f | 6f 5f 74 61 67 3b 20 20 | long zo|o_tag; |
|00005290| 20 20 20 2f 2a 20 74 61 | 67 20 2d 2d 20 72 65 64 | /* ta|g -- red|
|000052a0| 75 6e 64 61 6e 63 79 20 | 63 68 65 63 6b 20 2a 2f |undancy |check */|
|000052b0| 0a 58 20 20 20 75 63 68 | 61 72 20 74 79 70 65 3b |.X uch|ar type;|
|000052c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000052d0| 20 2f 2a 20 74 79 70 65 | 20 6f 66 20 64 69 72 65 | /* type| of dire|
|000052e0| 63 74 6f 72 79 20 65 6e | 74 72 79 2e 20 20 61 6c |ctory en|try. al|
|000052f0| 77 61 79 73 20 31 20 66 | 6f 72 20 6e 6f 77 20 2a |ways 1 f|or now *|
|00005300| 2f 0a 58 20 20 20 75 63 | 68 61 72 20 70 61 63 6b |/.X uc|har pack|
|00005310| 69 6e 67 5f 6d 65 74 68 | 6f 64 3b 20 20 20 20 20 |ing_meth|od; |
|00005320| 20 20 2f 2a 20 30 20 3d | 20 6e 6f 20 70 61 63 6b | /* 0 =| no pack|
|00005330| 69 6e 67 2c 20 31 20 3d | 20 6e 6f 72 6d 61 6c 20 |ing, 1 =| normal |
|00005340| 4c 5a 57 20 2a 2f 0a 58 | 20 20 20 6c 6f 6e 67 20 |LZW */.X| long |
|00005350| 6e 65 78 74 3b 20 20 20 | 20 20 20 20 20 20 20 20 |next; | |
|00005360| 20 20 20 20 20 20 2f 2a | 20 70 6f 73 27 6e 20 6f | /*| pos'n o|
|00005370| 66 20 6e 65 78 74 20 64 | 69 72 65 63 74 6f 72 79 |f next d|irectory|
|00005380| 20 65 6e 74 72 79 20 2a | 2f 0a 58 20 20 20 6c 6f | entry *|/.X lo|
|00005390| 6e 67 20 6f 66 66 73 65 | 74 3b 20 20 20 20 20 20 |ng offse|t; |
|000053a0| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 70 6f 73 69 | | /* posi|
|000053b0| 74 69 6f 6e 20 6f 66 20 | 74 68 69 73 20 66 69 6c |tion of |this fil|
|000053c0| 65 20 2a 2f 0a 58 20 20 | 20 75 6e 73 69 67 6e 65 |e */.X | unsigne|
|000053d0| 64 20 69 6e 74 20 64 61 | 74 65 3b 20 20 20 20 20 |d int da|te; |
|000053e0| 20 20 20 20 2f 2a 20 44 | 4f 53 20 66 6f 72 6d 61 | /* D|OS forma|
|000053f0| 74 20 64 61 74 65 20 2a | 2f 0a 58 20 20 20 75 6e |t date *|/.X un|
|00005400| 73 69 67 6e 65 64 20 69 | 6e 74 20 74 69 6d 65 3b |signed i|nt time;|
|00005410| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 44 4f 53 20 | | /* DOS |
|00005420| 66 6f 72 6d 61 74 20 74 | 69 6d 65 20 2a 2f 0a 58 |format t|ime */.X|
|00005430| 20 20 20 75 6e 73 69 67 | 6e 65 64 20 69 6e 74 20 | unsig|ned int |
|00005440| 66 69 6c 65 5f 63 72 63 | 3b 20 20 20 20 20 2f 2a |file_crc|; /*|
|00005450| 20 43 52 43 20 6f 66 20 | 74 68 69 73 20 66 69 6c | CRC of |this fil|
|00005460| 65 20 2a 2f 0a 58 20 20 | 20 6c 6f 6e 67 20 6f 72 |e */.X | long or|
|00005470| 67 5f 73 69 7a 65 3b 0a | 58 20 20 20 6c 6f 6e 67 |g_size;.|X long|
|00005480| 20 73 69 7a 65 5f 6e 6f | 77 3b 0a 58 20 20 20 75 | size_no|w;.X u|
|00005490| 63 68 61 72 20 6d 61 6a | 6f 72 5f 76 65 72 3b 0a |char maj|or_ver;.|
|000054a0| 58 20 20 20 75 63 68 61 | 72 20 6d 69 6e 6f 72 5f |X ucha|r minor_|
|000054b0| 76 65 72 3b 20 20 20 20 | 20 20 20 20 20 20 20 20 |ver; | |
|000054c0| 2f 2a 20 6d 69 6e 69 6d | 75 6d 20 76 65 72 73 69 |/* minim|um versi|
|000054d0| 6f 6e 20 6e 65 65 64 65 | 64 20 74 6f 20 65 78 74 |on neede|d to ext|
|000054e0| 72 61 63 74 20 2a 2f 0a | 58 20 20 20 75 63 68 61 |ract */.|X ucha|
|000054f0| 72 20 64 65 6c 65 74 65 | 64 3b 20 20 20 20 20 20 |r delete|d; |
|00005500| 20 20 20 20 20 20 20 20 | 2f 2a 20 77 69 6c 6c 20 | |/* will |
|00005510| 62 65 20 31 20 69 66 20 | 64 65 6c 65 74 65 64 2c |be 1 if |deleted,|
|00005520| 20 30 20 69 66 20 6e 6f | 74 20 2a 2f 0a 58 20 20 | 0 if no|t */.X |
|00005530| 20 75 63 68 61 72 20 73 | 74 72 75 63 3b 20 20 20 | uchar s|truc; |
|00005540| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 2f 2a 20 | | /* |
|00005550| 66 69 6c 65 20 73 74 72 | 75 63 74 75 72 65 20 69 |file str|ucture i|
|00005560| 66 20 61 6e 79 20 2a 2f | 0a 58 20 20 20 6c 6f 6e |f any */|.X lon|
|00005570| 67 20 63 6f 6d 6d 65 6e | 74 3b 20 20 20 20 20 20 |g commen|t; |
|00005580| 20 20 20 20 20 20 20 20 | 2f 2a 20 70 6f 69 6e 74 | |/* point|
|00005590| 73 20 74 6f 20 63 6f 6d | 6d 65 6e 74 3b 20 20 7a |s to com|ment; z|
|000055a0| 65 72 6f 20 69 66 20 6e | 6f 6e 65 20 2a 2f 0a 58 |ero if n|one */.X|
|000055b0| 20 20 20 75 6e 73 69 67 | 6e 65 64 20 69 6e 74 20 | unsig|ned int |
|000055c0| 63 6d 74 5f 73 69 7a 65 | 3b 20 09 09 2f 2a 20 6c |cmt_size|; ../* l|
|000055d0| 65 6e 67 74 68 20 6f 66 | 20 63 6f 6d 6d 65 6e 74 |ength of| comment|
|000055e0| 2c 20 30 20 69 66 20 6e | 6f 6e 65 20 2a 2f 0a 58 |, 0 if n|one */.X|
|000055f0| 20 20 20 63 68 61 72 20 | 66 6e 61 6d 65 5b 46 4e | char |fname[FN|
|00005600| 41 4d 45 53 49 5a 45 5d | 3b 20 09 09 2f 2a 20 66 |AMESIZE]|; ../* f|
|00005610| 69 6c 65 6e 61 6d 65 20 | 2a 2f 0a 58 0a 58 20 20 |ilename |*/.X.X |
|00005620| 20 69 6e 74 20 76 61 72 | 5f 64 69 72 5f 6c 65 6e | int var|_dir_len|
|00005630| 3b 20 20 20 20 20 20 20 | 20 20 20 20 2f 2a 20 6c |; | /* l|
|00005640| 65 6e 67 74 68 20 6f 66 | 20 76 61 72 69 61 62 6c |ength of| variabl|
|00005650| 65 20 70 61 72 74 20 6f | 66 20 64 69 72 20 65 6e |e part o|f dir en|
|00005660| 74 72 79 20 2a 2f 0a 58 | 20 20 20 75 63 68 61 72 |try */.X| uchar|
|00005670| 20 74 7a 3b 20 20 20 20 | 20 20 20 20 20 20 20 20 | tz; | |
|00005680| 20 20 20 20 20 20 20 2f | 2a 20 74 69 6d 65 7a 6f | /|* timezo|
|00005690| 6e 65 20 77 68 65 72 65 | 20 66 69 6c 65 20 77 61 |ne where| file wa|
|000056a0| 73 20 61 72 63 68 69 76 | 65 64 20 2a 2f 0a 58 20 |s archiv|ed */.X |
|000056b0| 20 20 75 6e 73 69 67 6e | 65 64 20 69 6e 74 20 64 | unsign|ed int d|
|000056c0| 69 72 5f 63 72 63 3b 20 | 20 20 20 20 20 2f 2a 20 |ir_crc; | /* |
|000056d0| 43 52 43 20 6f 66 20 64 | 69 72 65 63 74 6f 72 79 |CRC of d|irectory|
|000056e0| 20 65 6e 74 72 79 20 2a | 2f 0a 58 0a 58 20 20 20 | entry *|/.X.X |
|000056f0| 2f 2a 20 66 69 65 6c 64 | 73 20 66 6f 72 20 76 61 |/* field|s for va|
|00005700| 72 69 61 62 6c 65 20 70 | 61 72 74 20 6f 66 20 64 |riable p|art of d|
|00005710| 69 72 65 63 74 6f 72 79 | 20 65 6e 74 72 79 20 66 |irectory| entry f|
|00005720| 6f 6c 6c 6f 77 20 2a 2f | 0a 58 20 20 20 75 63 68 |ollow */|.X uch|
|00005730| 61 72 20 6e 61 6d 6c 65 | 6e 3b 20 20 20 20 20 20 |ar namle|n; |
|00005740| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 6c 65 6e 67 | | /* leng|
|00005750| 74 68 20 6f 66 20 6c 6f | 6e 67 20 66 69 6c 65 6e |th of lo|ng filen|
|00005760| 61 6d 65 20 2a 2f 0a 58 | 20 20 20 75 63 68 61 72 |ame */.X| uchar|
|00005770| 20 64 69 72 6c 65 6e 3b | 20 20 20 20 20 20 20 20 | dirlen;| |
|00005780| 20 20 20 20 20 20 20 2f | 2a 20 6c 65 6e 67 74 68 | /|* length|
|00005790| 20 6f 66 20 64 69 72 65 | 63 74 6f 72 79 20 6e 61 | of dire|ctory na|
|000057a0| 6d 65 20 2a 2f 0a 58 20 | 20 20 63 68 61 72 20 6c |me */.X | char l|
|000057b0| 66 6e 61 6d 65 5b 4c 46 | 4e 41 4d 45 53 49 5a 45 |fname[LF|NAMESIZE|
|000057c0| 5d 3b 20 20 20 2f 2a 20 | 6c 6f 6e 67 20 66 69 6c |]; /* |long fil|
|000057d0| 65 6e 61 6d 65 20 2a 2f | 0a 58 20 20 20 63 68 61 |ename */|.X cha|
|000057e0| 72 20 64 69 72 6e 61 6d | 65 5b 50 41 54 48 53 49 |r dirnam|e[PATHSI|
|000057f0| 5a 45 5d 3b 20 20 20 20 | 2f 2a 20 64 69 72 65 63 |ZE]; |/* direc|
|00005800| 74 6f 72 79 20 6e 61 6d | 65 20 2a 2f 0a 58 20 20 |tory nam|e */.X |
|00005810| 20 75 6e 73 69 67 6e 65 | 64 20 69 6e 74 20 73 79 | unsigne|d int sy|
|00005820| 73 74 65 6d 5f 69 64 3b | 20 20 20 20 2f 2a 20 46 |stem_id;| /* F|
|00005830| 69 6c 65 73 79 73 74 65 | 6d 20 49 44 20 2a 2f 0a |ilesyste|m ID */.|
|00005840| 58 09 75 6e 73 69 67 6e | 65 64 20 6c 6f 6e 67 20 |X.unsign|ed long |
|00005850| 66 61 74 74 72 3b 09 09 | 09 2f 2a 20 46 69 6c 65 |fattr;..|./* File|
|00005860| 20 61 74 74 72 69 62 75 | 74 65 73 20 2d 2d 20 32 | attribu|tes -- 2|
|00005870| 34 20 62 69 74 73 20 2a | 2f 0a 58 09 75 6e 73 69 |4 bits *|/.X.unsi|
|00005880| 67 6e 65 64 20 69 6e 74 | 20 76 66 6c 61 67 3b 09 |gned int| vflag;.|
|00005890| 09 09 2f 2a 20 76 65 72 | 73 69 6f 6e 20 66 6c 61 |../* ver|sion fla|
|000058a0| 67 20 62 69 74 73 20 2d | 2d 20 6f 6e 65 20 62 79 |g bits -|- one by|
|000058b0| 74 65 20 69 6e 20 61 72 | 63 68 69 76 65 20 2a 2f |te in ar|chive */|
|000058c0| 0a 58 09 75 6e 73 69 67 | 6e 65 64 20 69 6e 74 20 |.X.unsig|ned int |
|000058d0| 76 65 72 73 69 6f 6e 5f | 6e 6f 3b 09 2f 2a 20 66 |version_|no;./* f|
|000058e0| 69 6c 65 20 76 65 72 73 | 69 6f 6e 20 6e 75 6d 62 |ile vers|ion numb|
|000058f0| 65 72 20 69 66 20 61 6e | 79 20 2a 2f 0a 58 7d 3b |er if an|y */.X};|
|00005900| 0a 58 0a 58 2f 2a 20 56 | 61 6c 75 65 73 20 66 6f |.X.X/* V|alues fo|
|00005910| 72 20 64 69 72 65 6e 74 | 72 79 2e 73 79 73 74 65 |r dirent|ry.syste|
|00005920| 6d 5f 69 64 20 2a 2f 0a | 58 23 64 65 66 69 6e 65 |m_id */.|X#define|
|00005930| 20 53 59 53 49 44 5f 4e | 49 58 20 20 20 20 20 20 | SYSID_N|IX |
|00005940| 20 30 20 20 20 20 20 2f | 2a 20 55 4e 49 58 20 61 | 0 /|* UNIX a|
|00005950| 6e 64 20 73 69 6d 69 6c | 61 72 20 66 69 6c 65 73 |nd simil|ar files|
|00005960| 79 73 74 65 6d 73 20 2a | 2f 0a 58 23 64 65 66 69 |ystems *|/.X#defi|
|00005970| 6e 65 20 53 59 53 49 44 | 5f 4d 53 20 20 20 20 20 |ne SYSID|_MS |
|00005980| 20 20 20 31 20 20 20 20 | 20 2f 2a 20 4d 53 2d 44 | 1 | /* MS-D|
|00005990| 4f 53 20 66 69 6c 65 73 | 79 73 74 65 6d 20 2a 2f |OS files|ystem */|
|000059a0| 0a 58 23 64 65 66 69 6e | 65 20 53 59 53 49 44 5f |.X#defin|e SYSID_|
|000059b0| 50 4f 52 54 41 42 4c 45 | 20 20 32 20 20 20 20 20 |PORTABLE| 2 |
|000059c0| 2f 2a 20 50 6f 72 74 61 | 62 6c 65 20 73 79 6e 74 |/* Porta|ble synt|
|000059d0| 61 78 20 2a 2f 0a 58 0a | 58 2f 2a 20 53 74 72 75 |ax */.X.|X/* Stru|
|000059e0| 63 74 75 72 65 20 6f 66 | 20 68 65 61 64 65 72 20 |cture of| header |
|000059f0| 6f 66 20 73 6d 61 6c 6c | 20 61 72 63 68 69 76 65 |of small| archive|
|00005a00| 20 63 6f 6e 74 61 69 6e | 69 6e 67 20 6a 75 73 74 | contain|ing just|
|00005a10| 20 6f 6e 65 20 66 69 6c | 65 20 2a 2f 0a 58 0a 58 | one fil|e */.X.X|
|00005a20| 23 64 65 66 69 6e 65 20 | 20 54 49 4e 59 54 41 47 |#define | TINYTAG|
|00005a30| 20 20 20 20 20 30 78 30 | 37 46 45 20 20 20 2f 2a | 0x0|7FE /*|
|00005a40| 20 6d 61 67 69 63 20 6e | 75 6d 62 65 72 20 2a 2f | magic n|umber */|
|00005a50| 0a 58 0a 58 23 69 66 6e | 64 65 66 20 50 4f 52 54 |.X.X#ifn|def PORT|
|00005a60| 41 42 4c 45 0a 58 73 74 | 72 75 63 74 20 74 69 6e |ABLE.Xst|ruct tin|
|00005a70| 79 5f 68 65 61 64 65 72 | 20 7b 20 20 20 20 20 20 |y_header| { |
|00005a80| 20 20 20 20 2f 2a 20 6f | 6e 65 2d 66 69 6c 65 20 | /* o|ne-file |
|00005a90| 73 6d 61 6c 6c 20 61 72 | 63 68 69 76 65 20 2a 2f |small ar|chive */|
|00005aa0| 0a 58 20 20 20 69 6e 74 | 20 74 69 6e 79 74 61 67 |.X int| tinytag|
|00005ab0| 3b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |; | |
|00005ac0| 2f 2a 20 6d 61 67 69 63 | 20 6e 75 6d 62 65 72 20 |/* magic| number |
|00005ad0| 2a 2f 0a 58 20 20 20 63 | 68 61 72 20 74 79 70 65 |*/.X c|har type|
|00005ae0| 3b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |; | |
|00005af0| 20 20 2f 2a 20 61 6c 77 | 61 79 73 20 31 20 66 6f | /* alw|ays 1 fo|
|00005b00| 72 20 6e 6f 77 20 2a 2f | 0a 58 20 20 20 63 68 61 |r now */|.X cha|
|00005b10| 72 20 70 61 63 6b 69 6e | 67 5f 6d 65 74 68 6f 64 |r packin|g_method|
|00005b20| 3b 0a 58 20 20 20 75 6e | 73 69 67 6e 65 64 20 69 |;.X un|signed i|
|00005b30| 6e 74 20 64 61 74 65 3b | 0a 58 20 20 20 75 6e 73 |nt date;|.X uns|
|00005b40| 69 67 6e 65 64 20 69 6e | 74 20 74 69 6d 65 3b 0a |igned in|t time;.|
|00005b50| 58 20 20 20 75 6e 73 69 | 67 6e 65 64 20 69 6e 74 |X unsi|gned int|
|00005b60| 20 66 69 6c 65 5f 63 72 | 63 3b 0a 58 20 20 20 6c | file_cr|c;.X l|
|00005b70| 6f 6e 67 20 6f 72 67 5f | 73 69 7a 65 3b 0a 58 20 |ong org_|size;.X |
|00005b80| 20 20 6c 6f 6e 67 20 73 | 69 7a 65 5f 6e 6f 77 3b | long s|ize_now;|
|00005b90| 0a 58 20 20 20 63 68 61 | 72 20 6d 61 6a 6f 72 5f |.X cha|r major_|
|00005ba0| 76 65 72 3b 0a 58 20 20 | 20 63 68 61 72 20 6d 69 |ver;.X | char mi|
|00005bb0| 6e 6f 72 5f 76 65 72 3b | 0a 58 20 20 20 75 6e 73 |nor_ver;|.X uns|
|00005bc0| 69 67 6e 65 64 20 69 6e | 74 20 63 6d 74 5f 73 69 |igned in|t cmt_si|
|00005bd0| 7a 65 3b 20 2f 2a 20 6c | 65 6e 67 74 68 20 6f 66 |ze; /* l|ength of|
|00005be0| 20 63 6f 6d 6d 65 6e 74 | 2c 20 30 20 69 66 20 6e | comment|, 0 if n|
|00005bf0| 6f 6e 65 20 2a 2f 0a 58 | 20 20 20 63 68 61 72 20 |one */.X| char |
|00005c00| 66 6e 61 6d 65 5b 46 4e | 41 4d 45 53 49 5a 45 5d |fname[FN|AMESIZE]|
|00005c10| 3b 20 20 20 20 20 2f 2a | 20 66 69 6c 65 6e 61 6d |; /*| filenam|
|00005c20| 65 20 2a 2f 0a 58 7d 3b | 0a 58 23 65 6e 64 69 66 |e */.X};|.X#endif|
|00005c30| 20 2f 2a 20 69 66 6e 64 | 65 66 20 50 4f 52 54 41 | /* ifnd|ef PORTA|
|00005c40| 42 4c 45 20 2a 2f 0a 58 | 0a 58 23 64 65 66 69 6e |BLE */.X|.X#defin|
|00005c50| 65 09 46 49 58 45 44 5f | 4f 46 46 53 45 54 20 33 |e.FIXED_|OFFSET 3|
|00005c60| 34 09 09 2f 2a 20 7a 6f | 6f 5f 73 74 61 72 74 20 |4../* zo|o_start |
|00005c70| 69 6e 20 6f 6c 64 20 61 | 72 63 68 69 76 65 73 20 |in old a|rchives |
|00005c80| 2a 2f 0a 58 23 64 65 66 | 69 6e 65 09 4d 49 4e 5a |*/.X#def|ine.MINZ|
|00005c90| 4f 4f 48 53 49 5a 20 33 | 34 09 09 09 2f 2a 20 6d |OOHSIZ 3|4.../* m|
|00005ca0| 69 6e 69 6d 75 6d 20 73 | 69 7a 65 20 6f 66 20 61 |inimum s|ize of a|
|00005cb0| 72 63 68 69 76 65 20 68 | 65 61 64 65 72 20 2a 2f |rchive h|eader */|
|00005cc0| 0a 58 23 64 65 66 69 6e | 65 20 20 53 49 5a 5f 5a |.X#defin|e SIZ_Z|
|00005cd0| 4f 4f 48 20 20 34 32 09 | 09 09 2f 2a 20 6c 65 6e |OOH 42.|../* len|
|00005ce0| 67 74 68 20 6f 66 20 63 | 75 72 72 65 6e 74 20 61 |gth of c|urrent a|
|00005cf0| 72 63 68 69 76 65 20 68 | 65 61 64 65 72 20 2a 2f |rchive h|eader */|
|00005d00| 0a 58 0a 58 2f 2a 20 6f | 66 66 73 65 74 73 20 6f |.X.X/* o|ffsets o|
|00005d10| 66 20 69 74 65 6d 73 20 | 77 69 74 68 69 6e 20 74 |f items |within t|
|00005d20| 68 65 20 63 61 6e 6f 6e | 69 63 61 6c 20 7a 6f 6f |he canon|ical zoo|
|00005d30| 20 61 72 63 68 69 76 65 | 20 68 65 61 64 65 72 20 | archive| header |
|00005d40| 2a 2f 0a 58 23 64 65 66 | 69 6e 65 20 20 54 45 58 |*/.X#def|ine TEX|
|00005d50| 54 5f 49 20 20 20 20 30 | 20 20 20 20 20 20 20 09 |T_I 0| .|
|00005d60| 2f 2a 20 74 65 78 74 20 | 69 6e 20 68 65 61 64 65 |/* text |in heade|
|00005d70| 72 20 2a 2f 0a 58 23 64 | 65 66 69 6e 65 20 20 5a |r */.X#d|efine Z|
|00005d80| 54 41 47 5f 49 20 20 20 | 20 32 30 20 20 20 20 20 |TAG_I | 20 |
|00005d90| 20 09 2f 2a 20 7a 6f 6f | 20 74 61 67 20 2a 2f 0a | ./* zoo| tag */.|
|00005da0| 58 23 64 65 66 69 6e 65 | 20 20 5a 53 54 5f 49 20 |X#define| ZST_I |
|00005db0| 20 20 20 20 32 34 20 20 | 20 20 20 20 09 2f 2a 20 | 24 | ./* |
|00005dc0| 73 74 61 72 74 20 6f 66 | 66 73 65 74 20 2a 2f 0a |start of|fset */.|
|00005dd0| 58 23 64 65 66 69 6e 65 | 20 20 5a 53 54 4d 5f 49 |X#define| ZSTM_I|
|00005de0| 20 20 20 20 32 38 20 20 | 20 20 20 20 09 2f 2a 20 | 28 | ./* |
|00005df0| 6e 65 67 61 74 69 76 65 | 20 6f 66 20 73 74 61 72 |negative| of star|
|00005e00| 74 20 6f 66 66 73 65 74 | 20 2a 2f 0a 58 23 64 65 |t offset| */.X#de|
|00005e10| 66 69 6e 65 20 20 4d 41 | 4a 56 5f 49 20 20 20 20 |fine MA|JV_I |
|00005e20| 33 32 20 20 20 20 20 20 | 09 2f 2a 20 6d 61 6a 6f |32 |./* majo|
|00005e30| 72 20 76 65 72 73 69 6f | 6e 20 2a 2f 0a 58 23 64 |r versio|n */.X#d|
|00005e40| 65 66 69 6e 65 20 20 4d | 49 4e 56 5f 49 20 20 20 |efine M|INV_I |
|00005e50| 20 33 33 20 20 20 20 20 | 20 09 2f 2a 20 6d 69 6e | 33 | ./* min|
|00005e60| 6f 72 20 76 65 72 73 69 | 6f 6e 20 2a 2f 0a 58 23 |or versi|on */.X#|
|00005e70| 64 65 66 69 6e 65 09 48 | 54 59 50 45 5f 49 09 20 |define.H|TYPE_I. |
|00005e80| 33 34 09 09 09 2f 2a 20 | 61 72 63 68 69 76 65 20 |34.../* |archive |
|00005e90| 68 65 61 64 65 72 20 74 | 79 70 65 20 2a 2f 0a 58 |header t|ype */.X|
|00005ea0| 23 64 65 66 69 6e 65 09 | 41 43 4d 54 50 4f 53 5f |#define.|ACMTPOS_|
|00005eb0| 49 20 33 35 09 09 09 2f | 2a 20 70 6f 73 69 74 69 |I 35.../|* positi|
|00005ec0| 6f 6e 20 6f 66 20 61 72 | 63 68 69 76 65 20 63 6f |on of ar|chive co|
|00005ed0| 6d 6d 65 6e 74 20 2a 2f | 0a 58 23 64 65 66 69 6e |mment */|.X#defin|
|00005ee0| 65 09 41 43 4d 54 4c 45 | 4e 5f 49 20 33 39 09 09 |e.ACMTLE|N_I 39..|
|00005ef0| 09 2f 2a 20 6c 65 6e 67 | 74 68 20 6f 66 20 61 72 |./* leng|th of ar|
|00005f00| 63 68 69 76 65 20 63 6f | 6d 6d 65 6e 74 20 2a 2f |chive co|mment */|
|00005f10| 0a 58 23 64 65 66 69 6e | 65 09 48 56 44 41 54 41 |.X#defin|e.HVDATA|
|00005f20| 5f 49 09 20 34 31 09 09 | 09 2f 2a 20 76 65 72 73 |_I. 41..|./* vers|
|00005f30| 69 6f 6e 20 64 61 74 61 | 20 2a 2f 0a 58 0a 58 2f |ion data| */.X.X/|
|00005f40| 2a 20 6f 66 66 73 65 74 | 73 20 6f 66 20 69 74 65 |* offset|s of ite|
|00005f50| 6d 73 20 77 69 74 68 69 | 6e 20 74 68 65 20 63 61 |ms withi|n the ca|
|00005f60| 6e 6f 6e 69 63 61 6c 20 | 64 69 72 65 63 74 6f 72 |nonical |director|
|00005f70| 79 20 65 6e 74 72 79 20 | 73 74 72 75 63 74 75 72 |y entry |structur|
|00005f80| 65 20 2a 2f 0a 58 23 64 | 65 66 69 6e 65 20 20 53 |e */.X#d|efine S|
|00005f90| 49 5a 5f 44 49 52 20 20 | 35 31 20 20 20 20 20 20 |IZ_DIR |51 |
|00005fa0| 20 20 20 20 2f 2a 20 6c | 65 6e 67 74 68 20 6f 66 | /* l|ength of|
|00005fb0| 20 74 79 70 65 20 31 20 | 64 69 72 65 63 74 6f 72 | type 1 |director|
|00005fc0| 79 20 65 6e 74 72 79 20 | 2a 2f 0a 58 23 64 65 66 |y entry |*/.X#def|
|00005fd0| 69 6e 65 20 20 53 49 5a | 5f 44 49 52 4c 20 35 36 |ine SIZ|_DIRL 56|
|00005fe0| 20 20 20 20 20 20 20 20 | 20 20 2f 2a 20 6c 65 6e | | /* len|
|00005ff0| 67 74 68 20 6f 66 20 74 | 79 70 65 20 32 20 64 69 |gth of t|ype 2 di|
|00006000| 72 65 63 74 6f 72 79 20 | 65 6e 74 72 79 20 2a 2f |rectory |entry */|
|00006010| 0a 58 23 64 65 66 69 6e | 65 20 20 44 54 41 47 5f |.X#defin|e DTAG_|
|00006020| 49 20 20 20 30 20 20 20 | 20 20 20 20 20 20 20 20 |I 0 | |
|00006030| 2f 2a 20 74 61 67 20 77 | 69 74 68 69 6e 20 64 69 |/* tag w|ithin di|
|00006040| 72 65 63 74 6f 72 79 20 | 65 6e 74 72 79 20 2a 2f |rectory |entry */|
|00006050| 0a 58 23 64 65 66 69 6e | 65 20 20 44 54 59 50 5f |.X#defin|e DTYP_|
|00006060| 49 20 20 20 34 20 20 20 | 20 20 20 20 20 20 20 20 |I 4 | |
|00006070| 2f 2a 20 74 79 70 65 20 | 6f 66 20 64 69 72 65 63 |/* type |of direc|
|00006080| 74 6f 72 79 20 65 6e 74 | 72 79 20 2a 2f 0a 58 23 |tory ent|ry */.X#|
|00006090| 64 65 66 69 6e 65 20 20 | 50 4b 4d 5f 49 20 20 20 |define |PKM_I |
|000060a0| 20 35 20 20 20 20 20 20 | 20 20 20 20 20 2f 2a 20 | 5 | /* |
|000060b0| 70 61 63 6b 69 6e 67 20 | 6d 65 74 68 6f 64 20 2a |packing |method *|
|000060c0| 2f 0a 58 23 64 65 66 69 | 6e 65 20 20 4e 58 54 5f |/.X#defi|ne NXT_|
|000060d0| 49 20 20 20 20 36 20 20 | 20 20 20 20 20 20 20 20 |I 6 | |
|000060e0| 20 2f 2a 20 70 6f 73 27 | 6e 20 6f 66 20 6e 65 78 | /* pos'|n of nex|
|000060f0| 74 20 64 69 72 65 63 74 | 6f 72 79 20 65 6e 74 72 |t direct|ory entr|
|00006100| 79 20 2a 2f 0a 58 23 64 | 65 66 69 6e 65 20 20 4f |y */.X#d|efine O|
|00006110| 46 53 5f 49 20 20 20 20 | 31 30 20 20 20 20 20 20 |FS_I |10 |
|00006120| 20 20 20 20 2f 2a 20 70 | 6f 73 69 74 69 6f 6e 20 | /* p|osition |
|00006130| 28 6f 66 66 73 65 74 29 | 20 6f 66 20 74 68 69 73 |(offset)| of this|
|00006140| 20 66 69 6c 65 20 2a 2f | 0a 58 23 64 65 66 69 6e | file */|.X#defin|
|00006150| 65 20 20 44 41 54 5f 49 | 20 20 20 20 31 34 20 20 |e DAT_I| 14 |
|00006160| 20 20 20 20 20 20 20 20 | 2f 2a 20 44 4f 53 20 66 | |/* DOS f|
|00006170| 6f 72 6d 61 74 20 64 61 | 74 65 20 2a 2f 0a 58 23 |ormat da|te */.X#|
|00006180| 64 65 66 69 6e 65 20 20 | 54 49 4d 5f 49 20 20 20 |define |TIM_I |
|00006190| 20 31 36 20 20 20 20 20 | 20 20 20 20 20 2f 2a 20 | 16 | /* |
|000061a0| 44 4f 53 20 66 6f 72 6d | 61 74 20 74 69 6d 65 20 |DOS form|at time |
|000061b0| 2a 2f 0a 58 23 64 65 66 | 69 6e 65 20 20 43 52 43 |*/.X#def|ine CRC|
|000061c0| 5f 49 20 20 20 20 31 38 | 20 20 20 20 20 20 20 20 |_I 18| |
|000061d0| 20 20 2f 2a 20 43 52 43 | 20 6f 66 20 74 68 69 73 | /* CRC| of this|
|000061e0| 20 66 69 6c 65 20 2a 2f | 0a 58 23 64 65 66 69 6e | file */|.X#defin|
|000061f0| 65 20 20 4f 52 47 53 5f | 49 20 20 20 32 30 20 20 |e ORGS_|I 20 |
|00006200| 20 20 20 20 20 20 20 20 | 2f 2a 20 6f 72 69 67 69 | |/* origi|
|00006210| 6e 61 6c 20 73 69 7a 65 | 20 2a 2f 0a 58 23 64 65 |nal size| */.X#de|
|00006220| 66 69 6e 65 20 20 53 49 | 5a 4e 4f 57 5f 49 20 32 |fine SI|ZNOW_I 2|
|00006230| 34 20 20 20 20 20 20 20 | 20 20 20 2f 2a 20 73 69 |4 | /* si|
|00006240| 7a 65 20 6e 6f 77 20 2a | 2f 0a 58 23 64 65 66 69 |ze now *|/.X#defi|
|00006250| 6e 65 20 20 44 4d 41 4a | 5f 49 20 20 20 32 38 20 |ne DMAJ|_I 28 |
|00006260| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 6d 61 6a 6f | | /* majo|
|00006270| 72 20 76 65 72 73 69 6f | 6e 20 6e 75 6d 62 65 72 |r versio|n number|
|00006280| 20 2a 2f 0a 58 23 64 65 | 66 69 6e 65 20 20 44 4d | */.X#de|fine DM|
|00006290| 49 4e 5f 49 20 20 20 32 | 39 20 20 20 20 20 20 20 |IN_I 2|9 |
|000062a0| 20 20 20 2f 2a 20 6d 69 | 6e 6f 72 20 76 65 72 73 | /* mi|nor vers|
|000062b0| 69 6f 6e 20 6e 75 6d 62 | 65 72 20 2a 2f 0a 58 23 |ion numb|er */.X#|
|000062c0| 64 65 66 69 6e 65 20 20 | 44 45 4c 5f 49 20 20 20 |define |DEL_I |
|000062d0| 20 33 30 20 20 20 20 20 | 20 20 20 20 20 2f 2a 20 | 30 | /* |
|000062e0| 64 65 6c 65 74 65 64 20 | 6f 72 20 6e 6f 74 20 2a |deleted |or not *|
|000062f0| 2f 0a 58 23 64 65 66 69 | 6e 65 20 20 53 54 52 55 |/.X#defi|ne STRU|
|00006300| 43 5f 49 20 20 33 31 20 | 20 20 20 20 20 20 20 20 |C_I 31 | |
|00006310| 20 2f 2a 20 66 69 6c 65 | 20 73 74 72 75 63 74 75 | /* file| structu|
|00006320| 72 65 20 2a 2f 0a 58 23 | 64 65 66 69 6e 65 20 20 |re */.X#|define |
|00006330| 43 4d 54 5f 49 20 20 20 | 20 33 32 20 20 20 20 20 |CMT_I | 32 |
|00006340| 20 20 20 20 20 2f 2a 20 | 63 6f 6d 6d 65 6e 74 20 | /* |comment |
|00006350| 5b 6f 66 66 73 65 74 5d | 20 2a 2f 0a 58 23 64 65 |[offset]| */.X#de|
|00006360| 66 69 6e 65 20 20 43 4d | 54 53 49 5a 5f 49 20 33 |fine CM|TSIZ_I 3|
|00006370| 36 20 20 20 20 20 20 20 | 20 20 20 2f 2a 20 63 6f |6 | /* co|
|00006380| 6d 6d 65 6e 74 20 73 69 | 7a 65 20 2a 2f 0a 58 23 |mment si|ze */.X#|
|00006390| 64 65 66 69 6e 65 20 20 | 46 4e 41 4d 45 5f 49 20 |define |FNAME_I |
|000063a0| 20 33 38 20 20 20 20 20 | 20 20 20 20 20 2f 2a 20 | 38 | /* |
|000063b0| 66 69 6c 65 6e 61 6d 65 | 20 2a 2f 0a 58 23 64 65 |filename| */.X#de|
|000063c0| 66 69 6e 65 20 20 56 41 | 52 44 49 52 4c 45 4e 5f |fine VA|RDIRLEN_|
|000063d0| 49 20 20 35 31 20 20 20 | 20 20 20 2f 2a 20 6c 65 |I 51 | /* le|
|000063e0| 6e 67 74 68 20 6f 66 20 | 76 61 72 2e 20 64 69 72 |ngth of |var. dir|
|000063f0| 65 6e 74 72 79 20 2a 2f | 0a 58 23 64 65 66 69 6e |entry */|.X#defin|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.