home *** CD-ROM | disk | FTP | other *** search
/ RISC DISC 2 / RISC_DISC_2.iso / pd_share / utilities / cli / nspark < prev    next >
ArcFS Archive  |  1995-05-08  |  377.2 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: ArcFS Archive (archive/arcFS).

You can browse this item here: nspark

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert ArcFS Archive (archive/arcFS) magic Supported
100% file RISC OS archive (ArcFS format) default
99% file data default
100% TrID Acorn ArcFS Archive default
100% gt2 Kopftext: 'Archive' default (weak)
100% detectItEasy Archive: ArcFS default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 41 72 63 68 69 76 65 00 | 88 0b 00 00 94 0e 00 00 |Archive.|........|
|00000010| 28 00 00 00 64 00 00 00 | 00 00 00 00 00 00 00 00 |(...d...|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000060| 01 21 21 21 21 21 21 21 | 21 5a 21 00 4f 00 00 00 |.!!!!!!!|!Z!.O...|
|00000070| 00 fd ff ff 00 00 00 00 | 03 00 da 11 4f 00 00 00 |........|....O...|
|00000080| 24 00 00 00 82 61 63 6f | 72 6e 2f 63 00 00 00 00 |$....aco|rn/c....|
|00000090| 44 0a 00 00 45 ff ff ff | 1c a3 00 c3 33 00 df be |D...E...|....3...|
|000000a0| 44 0a 00 00 2b 01 00 00 | 01 41 6c 69 63 65 5f 69 |D...+...|.Alice_i|
|000000b0| 6e 5f 57 00 0b 44 02 00 | 45 ff ff ff 6a a1 34 fc |n_W..D..|E...j.4.|
|000000c0| 03 00 5a c3 0b 44 02 00 | 26 d7 05 00 82 61 72 63 |..Z..D..|&....arc|
|000000d0| 2f 63 00 00 00 00 00 00 | b2 01 00 00 44 ff ff ff |/c......|....D...|
|000000e0| 78 dd 2a cc 33 00 e8 05 | b2 01 00 00 93 0b 00 00 |x.*.3...|........|
|000000f0| 82 61 72 63 2f 68 00 00 | 00 00 00 00 07 01 00 00 |.arc/h..|........|
|00000100| 44 ff ff ff 78 dd 2a cc | 33 00 6d 67 07 01 00 00 |D...x.*.|3.mg....|
|00000110| 69 0d 00 00 82 61 72 63 | 66 73 2f 63 00 00 00 00 |i....arc|fs/c....|
|00000120| 3f 1b 00 00 45 ff ff ff | cc 6c c0 cf 33 00 a6 45 |?...E...|.l..3..E|
|00000130| 3f 1b 00 00 94 0e 00 00 | 82 61 72 63 66 73 2f 68 |?.......|.arcfs/h|
|00000140| 00 00 00 00 e1 01 00 00 | 45 ff ff ff d4 bb 02 c3 |........|E.......|
|00000150| 33 00 a2 f4 e1 01 00 00 | f7 29 00 00 82 42 55 47 |3.......|.)...BUG|
|00000160| 53 00 00 00 00 00 00 00 | f1 01 00 00 45 ff ff ff |S.......|....E...|
|00000170| 0c 6d c1 cf 33 00 3c fe | f1 01 00 00 fc 2b 00 00 |.m..3.<.|.....+..|
|00000180| 82 43 48 41 4e 47 45 53 | 00 00 00 00 15 0f 00 00 |.CHANGES|........|
|00000190| 45 ff ff ff 5c b3 c1 cf | 33 00 7e e7 15 0f 00 00 |E...\...|3.~.....|
|000001a0| 11 2e 00 00 82 63 6f 6d | 70 72 65 73 73 2f 63 00 |.....com|press/c.|
|000001b0| 58 1c 00 00 45 ff ff ff | b8 80 c0 cf 33 00 3f 71 |X...E...|....3.?q|
|000001c0| 58 1c 00 00 4a 3d 00 00 | 82 63 6f 6d 70 72 65 73 |X...J=..|.compres|
|000001d0| 73 2f 68 00 62 01 00 00 | 44 ff ff ff 78 dd 2a cc |s/h.b...|D...x.*.|
|000001e0| 33 00 65 a2 62 01 00 00 | c6 59 00 00 82 63 70 72 |3.e.b...|.Y...cpr|
|000001f0| 6f 74 6f 2f 68 00 00 00 | af 01 00 00 44 ff ff ff |oto/h...|....D...|
|00000200| 40 de 2a cc 33 00 64 65 | af 01 00 00 4c 5b 00 00 |@.*.3.de|....L[..|
|00000210| 82 63 72 63 2f 63 00 00 | 00 00 00 00 fc 0f 00 00 |.crc/c..|........|
|00000220| 45 ff ff ff d0 fb 61 c3 | 33 00 de cc fc 0f 00 00 |E.....a.|3.......|
|00000230| 1f 5d 00 00 82 63 72 63 | 2f 68 00 00 00 00 00 00 |.]...crc|/h......|
|00000240| 32 01 00 00 44 ff ff ff | 40 de 2a cc 33 00 96 3b |2...D...|@.*.3..;|
|00000250| 32 01 00 00 3f 6d 00 00 | 82 64 61 74 65 2f 63 00 |2...?m..|.date/c.|
|00000260| 00 00 00 00 ff 04 00 00 | 44 ff ff ff 78 dd 2a cc |........|D...x.*.|
|00000270| 33 00 62 56 ff 04 00 00 | 95 6e 00 00 82 64 61 74 |3.bV....|.n...dat|
|00000280| 65 2f 68 00 00 00 00 00 | ad 01 00 00 44 ff ff ff |e/h.....|....D...|
|00000290| 40 de 2a cc 33 00 12 38 | ad 01 00 00 b8 73 00 00 |@.*.3..8|.....s..|
|000002a0| 82 65 72 72 6f 72 2f 63 | 00 00 00 00 eb 04 00 00 |.error/c|........|
|000002b0| 44 ff ff ff 78 dd 2a cc | 33 00 ba 1e eb 04 00 00 |D...x.*.|3.......|
|000002c0| 89 75 00 00 82 65 72 72 | 6f 72 2f 68 00 00 00 00 |.u...err|or/h....|
|000002d0| fb 01 00 00 44 ff ff ff | 40 de 2a cc 33 00 1d 40 |....D...|@.*.3..@|
|000002e0| fb 01 00 00 98 7a 00 00 | 82 69 6f 2f 63 00 00 00 |.....z..|.io/c...|
|000002f0| 00 00 00 00 76 15 00 00 | 45 ff ff ff 90 a5 02 c3 |....v...|E.......|
|00000300| 33 00 e9 36 76 15 00 00 | b7 7c 00 00 82 69 6f 2f |3..6v...|.|...io/|
|00000310| 68 00 00 00 00 00 00 00 | 35 03 00 00 45 ff ff ff |h.......|5...E...|
|00000320| 4c 23 fb c2 33 00 ac b2 | 35 03 00 00 51 92 00 00 |L#..3...|5...Q...|
|00000330| 82 6d 61 69 6e 2f 63 00 | 00 00 00 00 68 11 00 00 |.main/c.|....h...|
|00000340| 45 ff ff ff 40 01 01 c3 | 33 00 76 28 68 11 00 00 |E...@...|3.v(h...|
|00000350| aa 95 00 00 82 6d 61 69 | 6e 2f 68 00 00 00 00 00 |.....mai|n/h.....|
|00000360| ee 03 00 00 44 ff ff ff | 40 de 2a cc 33 00 82 eb |....D...|@.*.3...|
|00000370| ee 03 00 00 36 a7 00 00 | 82 4d 61 6b 65 66 69 6c |....6...|.Makefil|
|00000380| 65 00 00 00 b7 09 00 00 | 45 ff ff ff 04 d2 61 c3 |e.......|E.....a.|
|00000390| 33 00 7c 9c b7 09 00 00 | 48 ab 00 00 82 6d 61 6e |3.|.....|H....man|
|000003a0| 00 00 00 00 00 00 00 00 | ff ff ff ff 46 ff ff ff |........|....F...|
|000003b0| cf 59 2b 00 30 00 00 00 | ff ff ff ff 80 04 00 80 |.Y+.0...|........|
|000003c0| 01 21 21 21 21 21 21 21 | 21 5a 21 00 4e 00 00 00 |.!!!!!!!|!Z!.N...|
|000003d0| 00 fd ff ff 00 00 00 00 | 03 00 94 d8 4e 00 00 00 |........|....N...|
|000003e0| 23 b5 00 00 82 61 72 63 | 66 73 2f 35 00 00 00 00 |#....arc|fs/5....|
|000003f0| 43 0f 00 00 45 fd ff ff | a8 a9 09 c3 33 00 8a 44 |C...E...|....3..D|
|00000400| 43 0f 00 00 42 c9 00 00 | 82 61 72 63 66 73 35 2f |C...B...|.arcfs5/|
|00000410| 74 78 74 00 78 14 00 00 | 45 ff ff ff 78 ad 5d c3 |txt.x...|E...x.].|
|00000420| 33 00 e4 47 78 14 00 00 | a9 d8 00 00 82 6e 73 70 |3..Gx...|.....nsp|
|00000430| 61 72 6b 2f 31 00 00 00 | b8 0f 00 00 45 fd ff ff |ark/1...|....E...|
|00000440| 94 f8 5f c3 33 00 1d c9 | b8 0f 00 00 45 ed 00 00 |.._.3...|....E...|
|00000450| 82 6e 73 70 61 72 6b 31 | 2f 74 78 00 fb 13 00 00 |.nspark1|/tx.....|
|00000460| 45 ff ff ff b4 fb 5f c3 | 33 00 71 d1 fb 13 00 00 |E....._.|3.q.....|
|00000470| 23 b5 00 00 82 73 70 61 | 72 6b 2f 35 00 00 00 00 |#....spa|rk/5....|
|00000480| bf 0a 00 00 45 fd ff ff | 60 b5 09 c3 33 00 39 56 |....E...|`...3.9V|
|00000490| bf 0a 00 00 21 fd 00 00 | 82 73 70 61 72 6b 35 2f |....!...|.spark5/|
|000004a0| 74 78 74 00 2a 0e 00 00 | 45 ff ff ff 54 b3 5d c3 |txt.*...|E...T.].|
|000004b0| 33 00 5a da 2a 0e 00 00 | 04 08 01 00 00 00 00 00 |3.Z.*...|........|
|000004c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 53 43 53 49 |........|....SCSI|
|000004d0| 3a 3a 52 69 73 63 44 69 | 73 63 32 2e 00 28 50 44 |::RiscDi|sc2..(PD|
|000004e0| 82 6d 69 73 63 2f 63 00 | 00 00 00 00 f6 1a 00 00 |.misc/c.|........|
|000004f0| 44 ff ff ff 78 dd 2a cc | 33 00 e1 40 f6 1a 00 00 |D...x.*.|3..@....|
|00000500| 52 16 01 00 82 6d 69 73 | 63 2f 68 00 00 00 00 00 |R....mis|c/h.....|
|00000510| ca 03 00 00 44 ff ff ff | 40 de 2a cc 33 00 c5 ec |....D...|@.*.3...|
|00000520| ca 03 00 00 6c 31 01 00 | 82 6d 6b 65 6e 64 69 61 |....l1..|.mkendia|
|00000530| 6e 2f 63 00 a2 04 00 00 | 45 ff ff ff dc ac c0 cf |n/c.....|E.......|
|00000540| 33 00 bc df a2 04 00 00 | 5a 35 01 00 82 6d 73 64 |3.......|Z5...msd|
|00000550| 6f 73 00 00 00 00 00 00 | ff ff ff ff 46 ff ff ff |os......|....F...|
|00000560| 66 b3 2d 00 30 00 00 00 | ff ff ff ff 58 05 00 80 |f.-.0...|....X...|
|00000570| 82 4d 61 6b 65 66 69 6c | 65 00 20 69 cc 07 00 00 |.Makefil|e. i....|
|00000580| 44 fd ff ff a0 96 2b cc | 33 00 c2 e1 cc 07 00 00 |D.....+.|3.......|
|00000590| 20 3a 01 00 00 6f 63 6b | 29 3b 0a 20 20 20 20 69 | :...ock|);. i|
|000005a0| 66 20 28 72 63 20 3d 3d | 20 5f 6b 65 72 6e 65 6c |f (rc ==| _kernel|
|000005b0| 5f 45 52 52 4f 52 29 0a | 82 6e 6f 73 79 73 64 65 |_ERROR).|.nosysde|
|000005c0| 70 2f 73 00 e3 00 00 00 | 44 ff ff ff 40 de 2a cc |p/s.....|D...@.*.|
|000005d0| 33 00 b1 a8 e3 00 00 00 | 24 00 00 00 82 6f 73 2f |3.......|$....os/|
|000005e0| 68 00 00 00 00 00 00 00 | 95 02 00 00 44 ff ff ff |h.......|....D...|
|000005f0| 40 de 2a cc 33 00 67 51 | 95 02 00 00 10 42 01 00 |@.*.3.gQ|.....B..|
|00000600| 82 70 61 63 6b 2f 63 00 | 00 00 00 00 d0 06 00 00 |.pack/c.|........|
|00000610| 45 ff ff ff dc 0b fb c2 | 33 00 91 11 d0 06 00 00 |E.......|3.......|
|00000620| c9 44 01 00 82 70 61 63 | 6b 2f 68 00 00 00 00 00 |.D...pac|k/h.....|
|00000630| d4 01 00 00 45 ff ff ff | b0 f1 fa c2 33 00 42 02 |....E...|....3.B.|
|00000640| d4 01 00 00 bd 4b 01 00 | 82 52 45 41 44 4d 45 00 |.....K..|.README.|
|00000650| 00 00 00 00 ec 0c 00 00 | 45 ff ff ff 2c 70 c1 cf |........|E...,p..|
|00000660| 33 00 25 0c ec 0c 00 00 | b5 4d 01 00 82 72 69 73 |3.%.....|.M...ris|
|00000670| 63 6f 73 00 00 00 00 00 | ff ff ff ff 46 ff ff ff |cos.....|....F...|
|00000680| 32 b6 2d 00 30 00 00 00 | ff ff ff ff e4 06 00 80 |2.-.0...|........|
|00000690| 82 4d 61 6b 65 66 69 6c | 65 00 45 2e ae 09 00 00 |.Makefil|e.E.....|
|000006a0| 45 e1 ff ff 08 ee 5f c3 | 33 00 81 d9 ae 09 00 00 |E....._.|3.......|
|000006b0| c5 5a 01 00 82 6e 73 70 | 61 72 6b 00 4f 44 45 2e |.Z...nsp|ark.ODE.|
|000006c0| 8c 37 00 00 39 f8 ff ff | d8 9f c8 58 33 00 74 1b |.7..9...|...X3.t.|
|000006d0| 8c 37 00 00 97 64 01 00 | 82 52 45 41 44 4d 45 00 |.7...d..|.README.|
|000006e0| 4f 44 45 2e 50 01 00 00 | 45 ff ff ff c4 46 c1 cf |ODE.P...|E....F..|
|000006f0| 33 00 32 fa 50 01 00 00 | 47 9c 01 00 82 72 65 6e |3.2.P...|G....ren|
|00000700| 00 45 2e 43 4f 44 45 2e | 92 02 00 00 45 eb ff ff |.E.CODE.|....E...|
|00000710| 2c 2a 0a c3 33 00 a3 d4 | 92 02 00 00 bb 9d 01 00 |,*..3...|........|
|00000720| 00 53 48 41 52 45 2e 43 | 4f 44 45 2e 6e 73 70 61 |.SHARE.C|ODE.nspa|
|00000730| 72 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |r.......|........|
|00000740| b4 e2 60 0a 82 73 70 61 | 72 6b 2f 68 00 00 00 00 |..`..spa|rk/h....|
|00000750| 58 11 00 00 45 ff ff ff | 28 eb 60 c3 33 00 6b c2 |X...E...|(.`.3.k.|
|00000760| 58 11 00 00 71 a0 01 00 | 82 73 74 6f 72 65 2f 63 |X...q...|.store/c|
|00000770| 00 00 00 00 a2 04 00 00 | 45 ff ff ff dc 19 01 c3 |........|E.......|
|00000780| 33 00 e7 c0 a2 04 00 00 | ed b1 01 00 82 73 74 6f |3.......|.....sto|
|00000790| 72 65 2f 68 00 00 00 00 | 3b 01 00 00 44 ff ff ff |re/h....|;...D...|
|000007a0| 40 de 2a cc 33 00 c0 5d | 3b 01 00 00 b3 b6 01 00 |@.*.3..]|;.......|
|000007b0| 82 75 6e 61 72 63 2f 63 | 00 00 00 00 c5 2b 00 00 |.unarc/c|.....+..|
|000007c0| 45 ff ff ff ac 47 03 c3 | 33 00 f3 15 c5 2b 00 00 |E....G..|3....+..|
|000007d0| 12 b8 01 00 82 75 6e 61 | 72 63 2f 68 00 00 00 00 |.....una|rc/h....|
|000007e0| 15 01 00 00 44 ff ff ff | 40 de 2a cc 33 00 2b 12 |....D...|@.*.3.+.|
|000007f0| 15 01 00 00 fb e3 01 00 | 82 75 6e 69 78 00 00 00 |........|.unix...|
|00000800| 00 00 00 00 ff ff ff ff | 46 ff ff ff f8 b9 2d 00 |........|F.....-.|
|00000810| 30 00 00 00 ff ff ff ff | 68 0a 00 80 82 21 21 21 |0.......|h....!!!|
|00000820| 21 21 21 21 21 5a 21 00 | 50 00 00 00 00 fd ff ff |!!!!!Z!.|P.......|
|00000830| 00 00 00 00 03 00 15 df | 50 00 00 00 34 e5 01 00 |........|P...4...|
|00000840| 82 6c 69 6e 75 78 00 28 | 41 63 6f 72 ff ff ff ff |.linux.(|Acor....|
|00000850| 46 ff ff ff ab bb 2d 00 | 30 00 00 00 ff ff ff ff |F.....-.|0.......|
|00000860| 4c 08 00 80 82 6e 73 70 | 61 72 6b 00 00 00 00 00 |L....nsp|ark.....|
|00000870| 04 54 00 00 45 fd ff ff | f4 c1 c0 cf 33 00 81 9b |.T..E...|....3...|
|00000880| 04 54 00 00 cc b5 02 00 | 00 00 00 00 00 00 00 00 |.T......|........|
|00000890| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000008a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 82 4d 61 6b |........|.....Mak|
|000008b0| 65 66 69 6c 65 00 6f 72 | b5 09 00 00 45 fd ff ff |efile.or|....E...|
|000008c0| fc ef 5f c3 33 00 1b f0 | b5 09 00 00 f4 09 03 00 |.._.3...|........|
|000008d0| 82 6d 69 70 73 2d 75 6c | 74 72 69 00 ff ff ff ff |.mips-ul|tri.....|
|000008e0| 46 ff ff ff 9a ba 2d 00 | 30 00 00 00 ff ff ff ff |F.....-.|0.......|
|000008f0| dc 08 00 80 82 6e 73 70 | 61 72 6b 00 00 00 00 00 |.....nsp|ark.....|
|00000900| 00 d0 00 00 45 fd ff ff | 98 c8 c0 cf 33 00 c6 4d |....E...|....3..M|
|00000910| 00 d0 00 00 a8 e5 01 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000920| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000930| 00 00 00 00 00 00 00 00 | 00 00 00 00 82 6f 73 66 |........|.....osf|
|00000940| 31 2f 76 32 2f 31 00 72 | ff ff ff ff 46 ff ff ff |1/v2/1.r|....F...|
|00000950| 99 bc 2d 00 30 00 00 00 | ff ff ff ff 48 09 00 80 |..-.0...|....H...|
|00000960| 82 6e 73 70 61 72 6b 00 | 00 00 00 00 00 a0 00 00 |.nspark.|........|
|00000970| 45 fd ff ff 74 ce c0 cf | 33 00 a7 be 00 a0 00 00 |E...t...|3.......|
|00000980| cd 13 03 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000990| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000009a0| 00 00 00 00 00 00 00 00 | 82 72 65 6e 00 6e 20 28 |........|.ren.n (|
|000009b0| 41 63 6f 72 b3 00 00 00 | 45 fd ff ff 48 4a 36 33 |Acor....|E...HJ63|
|000009c0| 33 00 b9 08 b3 00 00 00 | f1 b3 03 00 82 73 6f 6c |3.......|.....sol|
|000009d0| 61 72 69 73 32 2f 33 00 | ff ff ff ff 46 ff ff ff |aris2/3.|....F...|
|000009e0| c1 bd 2d 00 30 00 00 00 | ff ff ff ff d8 09 00 80 |..-.0...|........|
|000009f0| 82 6e 73 70 61 72 6b 00 | 00 00 00 00 d4 76 00 00 |.nspark.|.....v..|
|00000a00| 45 fd ff ff ec 52 62 c3 | 33 00 65 d2 d4 76 00 00 |E....Rb.|3.e..v..|
|00000a10| c8 b4 03 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000a20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000a30| 00 00 00 00 00 00 00 00 | 82 73 75 6e 6f 73 34 2f |........|.sunos4/|
|00000a40| 31 2f 33 00 ff ff ff ff | 46 ff ff ff 5c be 2d 00 |1/3.....|F...\.-.|
|00000a50| 30 00 00 00 ff ff ff ff | 44 0a 00 80 82 6e 73 70 |0.......|D....nsp|
|00000a60| 61 72 6b 00 00 00 00 00 | 00 a0 00 00 45 fd ff ff |ark.....|....E...|
|00000a70| 04 b9 61 c3 33 00 c2 f0 | 00 a0 00 00 c0 2b 04 00 |..a.3...|.....+..|
|00000a80| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000a90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000aa0| 00 00 00 00 00 63 74 69 | 6f 6e 20 28 41 63 6f 72 |.....cti|on (Acor|
|00000ab0| 6e 29 0a 20 2a 0a 20 2a | 20 24 48 65 61 64 65 72 |n). *. *| $Header|
|00000ac0| 3a 20 61 63 7b 69 6e 2e | 82 75 6e 69 78 2f 63 00 |: ac{in.|.unix/c.|
|00000ad0| 00 00 00 00 80 0a 00 00 | 45 ff ff ff a0 4e 62 c3 |........|E....Nb.|
|00000ae0| 33 00 18 9f 80 0a 00 00 | e4 cb 04 00 82 77 69 6e |3.......|.....win|
|00000af0| 6e 74 00 00 00 00 00 00 | ff ff ff ff 46 ff ff ff |nt......|....F...|
|00000b00| 66 bf 2d 00 30 00 00 00 | ff ff ff ff 40 0b 00 80 |f.-.0...|....@...|
|00000b10| 82 4d 61 6b 65 66 69 6c | 65 00 20 20 a8 06 00 00 |.Makefil|e. ....|
|00000b20| 45 fd ff ff f8 7b 5f c3 | 33 00 82 6c a8 06 00 00 |E....{_.|3..l....|
|00000b30| 88 d6 04 00 82 6d 73 76 | 63 2f 70 64 62 00 20 20 |.....msv|c/pdb. |
|00000b40| d4 05 00 00 45 fd ff ff | bc 53 5f c3 33 00 e7 e1 |....E...|.S_.3...|
|00000b50| d4 05 00 00 54 dd 04 00 | 82 6e 73 70 61 72 6b 2f |....T...|.nspark/|
|00000b60| 65 78 65 00 00 ec 00 00 | 45 e4 ff ff e0 9e 5e c3 |exe.....|E.....^.|
|00000b70| 33 00 fd c5 00 ec 00 00 | 4c e3 04 00 00 61 6d 65 |3.......|L....ame|
|00000b80| 3b 0a 7b 0a 20 20 20 20 | 69 6e 74 20 72 63 3b 0a |;.{. |int rc;.|
|00000b90| 20 20 20 20 5f 6b 65 72 | 6e 65 6c 5f ab 67 66 69 | _ker|nel_.gfi|
|00000ba0| 82 77 69 6e 6e 74 2f 63 | 00 00 00 00 ad 06 00 00 |.winnt/c|........|
|00000bb0| 45 ff ff ff 30 f2 60 c3 | 33 00 4d a2 ad 06 00 00 |E...0.`.|3.M.....|
|00000bc0| 70 cf 05 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |p.......|........|
|00000bd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000be0| 00 00 00 00 00 00 00 00 | 01 00 00 00 09 00 00 00 |........|........|
|00000bf0| 01 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000c00| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000c10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000c20| 00 00 00 00 00 00 00 00 | 00 6e 6f 73 79 73 64 65 |........|.nosysde|
|00000c30| 70 2f 73 65 64 00 ff 46 | 69 6c 65 44 61 74 61 82 |p/sed..F|ileData.|
|00000c40| 28 43 29 4a 50 54 5f 30 | 30 30 00 e3 00 00 00 44 |(C)JPT_0|00.....D|
|00000c50| fd ff ff 40 de 2a cc 03 | 00 b1 a8 23 20 52 65 6d |...@.*..|...# Rem|
|00000c60| 6f 76 65 20 64 65 70 65 | 6e 64 61 6e 63 69 65 73 |ove depe|ndancies|
|00000c70| 20 6f 6e 20 73 79 73 74 | 65 6d 20 69 6e 63 6c 75 | on syst|em inclu|
|00000c80| 64 65 20 66 69 6c 65 73 | 0a 2f 5b 5e 20 09 5d 2a |de files|./[^ .]*|
|00000c90| 5c 2e 6f 3a 2f 73 2c 2f | 75 73 72 2f 69 6e 63 6c |\.o:/s,/|usr/incl|
|00000ca0| 75 64 65 2f 5b 5e 20 09 | 5d 2a 5b 20 09 5d 2a 2c |ude/[^ .|]*[ .]*,|
|00000cb0| 2c 67 0a 2f 5b 5e 20 09 | 5d 2a 5c 2e 6f 3a 2f 73 |,g./[^ .|]*\.o:/s|
|00000cc0| 2c 2f 75 73 72 2f 69 6e | 63 6c 75 64 65 2f 5b 5e |,/usr/in|clude/[^|
|00000cd0| 20 09 5d 2a 24 2c 2c 0a | 2f 5b 5e 20 09 5d 2a 5c | .]*$,,.|/[^ .]*\|
|00000ce0| 2e 6f 3a 2f 73 2c 2f 75 | 73 72 2f 6c 6f 63 61 6c |.o:/s,/u|sr/local|
|00000cf0| 2f 6c 69 62 2f 5b 5e 20 | 09 5d 2a 5b 20 09 5d 2a |/lib/[^ |.]*[ .]*|
|00000d00| 2c 2c 67 0a 2f 5b 5e 20 | 09 5d 2a 5c 2e 6f 3a 2f |,,g./[^ |.]*\.o:/|
|00000d10| 73 2c 2f 75 73 72 2f 6c | 6f 63 61 6c 2f 6c 69 62 |s,/usr/l|ocal/lib|
|00000d20| 2f 5b 5e 20 09 5d 2a 24 | 2c 2c 0a 2f 5b 5e 09 5d |/[^ .]*$|,,./[^.]|
|00000d30| 2a 5c 2e 6f 3a 5b 20 09 | 5d 2a 24 2f 64 0a 46 69 |*\.o:[ .|]*$/d.Fi|
|00000d40| 6c 65 44 61 74 61 82 61 | 63 6f 72 6e 2f 63 00 00 |leData.a|corn/c..|
|00000d50| 00 00 44 0a 00 00 45 ff | ff ff 1c a3 00 c3 03 00 |..D...E.|........|
|00000d60| df be 2f 2a 0a 20 2a 20 | 4f 70 65 72 61 74 69 6e |../*. * |Operatin|
|00000d70| 67 20 53 79 73 74 65 6d | 20 73 70 65 63 69 66 69 |g System| specifi|
|00000d80| 63 20 66 75 6e 63 74 69 | 6f 6e 20 28 41 63 6f 72 |c functi|on (Acor|
|00000d90| 6e 29 0a 20 2a 0a 20 2a | 20 24 48 65 61 64 65 72 |n). *. *| $Header|
|00000da0| 3a 20 61 63 6f 72 6e 2e | 63 20 31 2e 31 20 39 33 |: acorn.|c 1.1 93|
|00000db0| 2f 30 33 2f 30 35 20 24 | 0a 20 2a 20 24 4c 6f 67 |/03/05 $|. * $Log|
|00000dc0| 3a 09 61 63 6f 72 6e 2e | 63 2c 76 20 24 0a 20 2a |:.acorn.|c,v $. *|
|00000dd0| 20 52 65 76 69 73 69 6f | 6e 20 31 2e 31 20 20 39 | Revisio|n 1.1 9|
|00000de0| 33 2f 30 33 2f 30 35 20 | 20 31 34 3a 33 34 3a 30 |3/03/05 | 14:34:0|
|00000df0| 34 20 20 61 72 62 0a 20 | 2a 20 49 6e 69 74 69 61 |4 arb. |* Initia|
|00000e00| 6c 20 72 65 76 69 73 69 | 6f 6e 0a 20 2a 20 0a 20 |l revisi|on. * . |
|00000e10| 2a 2f 0a 0a 23 69 6e 63 | 6c 75 64 65 20 22 73 70 |*/..#inc|lude "sp|
|00000e20| 61 72 6b 2e 68 22 0a 23 | 69 6e 63 6c 75 64 65 20 |ark.h".#|include |
|00000e30| 22 64 61 74 65 2e 68 22 | 0a 23 69 6e 63 6c 75 64 |"date.h"|.#includ|
|00000e40| 65 20 22 6b 65 72 6e 65 | 6c 2e 68 22 0a 23 69 6e |e "kerne|l.h".#in|
|00000e50| 63 6c 75 64 65 20 22 73 | 77 69 73 2e 68 22 0a 0a |clude "s|wis.h"..|
|00000e60| 23 69 66 64 65 66 20 55 | 4e 49 58 0a 73 74 61 74 |#ifdef U|NIX.stat|
|00000e70| 69 63 20 63 68 61 72 20 | 72 63 73 69 64 5b 5d 20 |ic char |rcsid[] |
|00000e80| 3d 20 22 24 48 65 61 64 | 65 72 3a 20 61 63 6f 72 |= "$Head|er: acor|
|00000e90| 6e 2e 63 20 46 69 6c 65 | 44 61 74 61 82 28 43 29 |n.c File|Data.(C)|
|00000ea0| 4a 50 54 5f 30 30 30 00 | e3 00 00 00 44 fd ff ff |JPT_000.|....D...|
|00000eb0| 40 de 2a cc 03 00 b1 a8 | 23 20 52 65 6d 6f 76 65 |@.*.....|# Remove|
|00000ec0| 20 64 65 70 65 6e 64 61 | 6e 63 69 65 73 20 6f 6e | dependa|ncies on|
|00000ed0| 20 73 79 73 74 65 6d 20 | 69 6e 63 6c 75 64 65 20 | system |include |
|00000ee0| 66 69 6c 65 73 0a 2f 5b | 5e 20 09 5d 2a 5c 2e 6f |files./[|^ .]*\.o|
|00000ef0| 3a 2f 73 2c 2f 75 73 72 | 2f 69 6e 63 6c 75 64 65 |:/s,/usr|/include|
|00000f00| 2f 5b 5e 20 09 5d 2a 5b | 20 09 5d 2a 2c 2c 67 0a |/[^ .]*[| .]*,,g.|
|00000f10| 2f 5b 5e 20 09 5d 2a 5c | 2e 6f 3a 2f 73 2c 2f 75 |/[^ .]*\|.o:/s,/u|
|00000f20| 73 72 2f 69 6e 63 6c 75 | 64 65 2f 5b 5e 20 09 5d |sr/inclu|de/[^ .]|
|00000f30| 2a 24 2c 2c 0a 2f 5b 5e | 20 09 5d 2a 5c 2e 6f 3a |*$,,./[^| .]*\.o:|
|00000f40| 2f 73 2c 2f 75 73 72 2f | 6c 6f 63 61 6c 2f 6c 69 |/s,/usr/|local/li|
|00000f50| 62 2f 5b 5e 20 09 5d 2a | 5b 20 09 5d 2a 2c 2c 67 |b/[^ .]*|[ .]*,,g|
|00000f60| 0a 2f 5b 5e 20 09 5d 2a | 5c 2e 6f 3a 2f 73 2c 2f |./[^ .]*|\.o:/s,/|
|00000f70| 75 73 72 2f 6c 6f 63 61 | 6c 2f 6c 69 62 2f 5b 5e |usr/loca|l/lib/[^|
|00000f80| 20 09 5d 2a 24 2c 2c 0a | 2f 5b 5e 09 5d 2a 5c 2e | .]*$,,.|/[^.]*\.|
|00000f90| 6f 3a 5b 20 09 5d 2a 24 | 2f 64 0a 46 69 6c 65 44 |o:[ .]*$|/d.FileD|
|00000fa0| 61 74 61 82 61 63 6f 72 | 6e 2f 63 00 00 00 00 44 |ata.acor|n/c....D|
|00000fb0| 0a 00 00 45 ff ff ff 1c | a3 00 c3 03 00 df be 2f |...E....|......./|
|00000fc0| 2a 0a 20 2a 20 4f 70 65 | 72 61 74 69 6e 67 20 53 |*. * Ope|rating S|
|00000fd0| 79 73 74 65 6d 20 73 70 | 65 63 69 66 69 63 20 66 |ystem sp|ecific f|
|00000fe0| 75 6e 63 74 69 6f 6e 20 | 28 41 63 6f 72 6e 29 0a |unction |(Acorn).|
|00000ff0| 20 2a 0a 20 2a 20 24 48 | 65 61 64 65 72 3a 20 61 | *. * $H|eader: a|
|00001000| 63 6f 72 6e 2e 63 20 31 | 2e 31 20 39 33 2f 30 33 |corn.c 1|.1 93/03|
|00001010| 2f 30 35 20 24 0a 20 2a | 20 24 4c 6f 67 3a 09 61 |/05 $. *| $Log:.a|
|00001020| 63 6f 72 6e 2e 63 2c 76 | 20 24 0a 20 2a 20 52 65 |corn.c,v| $. * Re|
|00001030| 76 69 73 69 6f 6e 20 31 | 2e 31 20 20 39 33 2f 30 |vision 1|.1 93/0|
|00001040| 33 2f 30 35 20 20 31 34 | 3a 33 34 3a 30 34 20 20 |3/05 14|:34:04 |
|00001050| 61 72 62 0a 20 2a 20 49 | 6e 69 74 69 61 6c 20 72 |arb. * I|nitial r|
|00001060| 65 76 69 73 69 6f 6e 0a | 20 2a 20 0a 20 2a 2f 0a |evision.| * . */.|
|00001070| 0a 23 69 6e 63 6c 75 64 | 65 20 22 73 70 61 72 6b |.#includ|e "spark|
|00001080| 2e 68 22 0a 23 69 6e 63 | 6c 75 64 65 20 22 64 61 |.h".#inc|lude "da|
|00001090| 74 65 2e 68 22 0a 23 69 | 6e 63 6c 75 64 65 20 22 |te.h".#i|nclude "|
|000010a0| 6b 65 72 6e 65 6c 2e 68 | 22 0a 23 69 6e 63 6c 75 |kernel.h|".#inclu|
|000010b0| 64 65 20 22 73 77 69 73 | 2e 68 22 0a 0a 23 69 66 |de "swis|.h"..#if|
|000010c0| 64 65 66 20 55 4e 49 58 | 0a 73 74 61 74 69 63 20 |def UNIX|.static |
|000010d0| 63 68 61 72 20 72 63 73 | 69 64 5b 5d 20 3d 20 22 |char rcs|id[] = "|
|000010e0| 24 48 65 61 64 65 72 3a | 20 61 63 6f 72 6e 2e 63 |$Header:| acorn.c|
|000010f0| 20 31 2e 31 20 39 33 2f | 30 33 2f 30 35 20 24 22 | 1.1 93/|03/05 $"|
|00001100| 3b 0a 23 65 6e 64 69 66 | 0a 0a 2f 2a 0a 20 2a 20 |;.#endif|../*. * |
|00001110| 72 65 74 75 72 6e 20 74 | 68 65 20 6c 65 6e 67 74 |return t|he lengt|
|00001120| 68 20 6f 66 20 61 20 66 | 69 6c 65 0a 20 2a 2f 0a |h of a f|ile. */.|
|00001130| 57 6f 72 64 0a 66 69 6c | 65 73 69 7a 65 28 70 61 |Word.fil|esize(pa|
|00001140| 74 68 6e 61 6d 65 29 0a | 20 20 20 20 63 68 61 72 |thname).| char|
|00001150| 20 2a 70 61 74 68 6e 61 | 6d 65 3b 0a 7b 0a 20 20 | *pathna|me;.{. |
|00001160| 20 20 69 6e 74 20 72 63 | 3b 0a 20 20 20 20 5f 6b | int rc|;. _k|
|00001170| 65 72 6e 65 6c 5f 6f 73 | 66 69 6c 65 5f 62 6c 6f |ernel_os|file_blo|
|00001180| 63 6b 20 6f 73 62 6c 6f | 63 6b 3b 0a 0a 20 20 20 |ck osblo|ck;.. |
|00001190| 20 72 63 20 3d 20 5f 6b | 65 72 6e 65 6c 5f 6f 73 | rc = _k|ernel_os|
|000011a0| 66 69 6c 65 28 31 37 2c | 20 70 61 74 68 6e 61 6d |file(17,| pathnam|
|000011b0| 65 2c 20 26 6f 73 62 6c | 6f 63 6b 29 3b 0a 20 20 |e, &osbl|ock);. |
|000011c0| 20 20 69 66 20 28 72 63 | 20 3d 3d 20 5f 6b 65 72 | if (rc| == _ker|
|000011d0| 6e 65 6c 5f 45 52 52 4f | 52 29 0a 09 72 65 74 75 |nel_ERRO|R)..retu|
|000011e0| 72 6e 28 30 29 3b 0a 20 | 20 20 20 2f 2a 20 42 69 |rn(0);. | /* Bi|
|000011f0| 74 20 31 20 69 73 20 73 | 65 74 20 69 66 20 61 20 |t 1 is s|et if a |
|00001200| 66 69 6c 65 2c 20 62 69 | 74 20 32 20 69 66 20 61 |file, bi|t 2 if a|
|00001210| 20 64 69 72 65 63 74 6f | 72 79 2c 20 62 6f 74 68 | directo|ry, both|
|00001220| 20 69 66 20 69 6d 61 67 | 65 20 66 69 6c 65 20 2a | if imag|e file *|
|00001230| 2f 0a 20 20 20 20 69 66 | 20 28 72 63 20 26 20 31 |/. if| (rc & 1|
|00001240| 29 0a 09 72 65 74 75 72 | 6e 20 28 28 57 6f 72 64 |)..retur|n ((Word|
|00001250| 29 6f 73 62 6c 6f 63 6b | 2e 73 74 61 72 74 29 3b |)osblock|.start);|
|00001260| 0a 20 20 20 20 65 6c 73 | 65 0a 09 72 65 74 75 72 |. els|e..retur|
|00001270| 6e 28 30 29 3b 0a 7d 0a | 0a 2f 2a 0a 20 2a 20 74 |n(0);.}.|./*. * t|
|00001280| 65 73 74 20 66 6f 72 20 | 74 68 65 20 65 78 69 73 |est for |the exis|
|00001290| 74 61 6e 63 65 20 6f 66 | 20 61 20 66 69 6c 65 20 |tance of| a file |
|000012a0| 6f 72 20 64 69 72 65 63 | 74 6f 72 79 0a 20 2a 2f |or direc|tory. */|
|000012b0| 0a 46 74 79 70 65 0a 65 | 78 69 73 74 28 70 61 74 |.Ftype.e|xist(pat|
|000012c0| 68 6e 61 6d 65 29 0a 20 | 20 20 20 63 68 61 72 20 |hname). | char |
|000012d0| 2a 70 61 74 68 6e 61 6d | 65 3b 0a 7b 0a 20 20 20 |*pathnam|e;.{. |
|000012e0| 20 69 6e 74 20 72 63 3b | 0a 20 20 20 20 5f 6b 65 | int rc;|. _ke|
|000012f0| 72 6e 65 6c 5f 6f 73 66 | 69 6c 65 5f 62 6c 6f 63 |rnel_osf|ile_bloc|
|00001300| 6b 20 6f 73 62 6c 6f 63 | 6b 3b 0a 0a 20 20 20 20 |k osbloc|k;.. |
|00001310| 72 63 20 3d 20 5f 6b 65 | 72 6e 65 6c 5f 6f 73 66 |rc = _ke|rnel_osf|
|00001320| 69 6c 65 28 31 37 2c 20 | 70 61 74 68 6e 61 6d 65 |ile(17, |pathname|
|00001330| 2c 20 26 6f 73 62 6c 6f | 63 6b 29 3b 0a 20 20 20 |, &osblo|ck);. |
|00001340| 20 69 66 20 28 72 63 20 | 3d 3d 20 5f 6b 65 72 6e | if (rc |== _kern|
|00001350| 65 6c 5f 45 52 52 4f 52 | 29 0a 09 72 65 74 75 72 |el_ERROR|)..retur|
|00001360| 6e 20 28 4e 4f 45 58 49 | 53 54 29 3b 09 2f 2a 20 |n (NOEXI|ST);./* |
|00001370| 61 73 73 75 6d 65 73 20 | 65 72 72 6f 72 20 77 61 |assumes |error wa|
|00001380| 73 20 62 65 63 61 75 73 | 65 20 66 69 6c 65 0a 09 |s becaus|e file..|
|00001390| 09 09 09 09 20 20 20 64 | 6f 65 73 6e 27 74 20 65 |.... d|oesn't e|
|000013a0| 78 69 73 74 2e 2e 2e 20 | 63 6f 75 6c 64 20 62 65 |xist... |could be|
|000013b0| 20 77 72 6f 6e 67 21 20 | 2a 2f 0a 20 20 20 20 69 | wrong! |*/. i|
|000013c0| 66 20 28 72 63 20 26 20 | 31 29 0a 09 72 65 74 75 |f (rc & |1)..retu|
|000013d0| 72 6e 20 28 49 53 46 49 | 4c 45 29 3b 09 2f 2a 20 |rn (ISFI|LE);./* |
|000013e0| 6d 69 67 68 74 20 6e 6f | 74 20 62 65 20 61 20 72 |might no|t be a r|
|000013f0| 65 67 75 6c 61 72 20 66 | 69 6c 65 2e 2e 2e 20 28 |egular f|ile... (|
|00001400| 65 67 2e 20 69 6d 61 67 | 65 29 20 2a 2f 0a 20 20 |eg. imag|e) */. |
|00001410| 20 20 69 66 20 28 72 63 | 20 26 20 32 29 0a 09 72 | if (rc| & 2)..r|
|00001420| 65 74 75 72 6e 20 28 49 | 53 44 49 52 29 3b 0a 20 |eturn (I|SDIR);. |
|00001430| 20 20 20 65 6c 73 65 0a | 09 72 65 74 75 72 6e 20 | else.|.return |
|00001440| 28 4e 4f 45 58 49 53 54 | 29 3b 0a 7d 0a 09 0a 2f |(NOEXIST|);.}.../|
|00001450| 2a 0a 20 2a 20 6d 61 6b | 65 20 61 20 64 69 72 65 |*. * mak|e a dire|
|00001460| 63 74 6f 72 79 0a 20 2a | 2f 0a 69 6e 74 0a 6d 61 |ctory. *|/.int.ma|
|00001470| 6b 65 64 69 72 28 70 61 | 74 68 6e 61 6d 65 29 0a |kedir(pa|thname).|
|00001480| 20 20 20 20 63 68 61 72 | 20 2a 70 61 74 68 6e 61 | char| *pathna|
|00001490| 6d 65 3b 0a 7b 0a 20 20 | 20 20 69 6e 74 20 72 63 |me;.{. | int rc|
|000014a0| 3b 0a 20 20 20 20 5f 6b | 65 72 6e 65 6c 5f 6f 73 |;. _k|ernel_os|
|000014b0| 66 69 6c 65 5f 62 6c 6f | 63 6b 20 6f 73 62 6c 6f |file_blo|ck osblo|
|000014c0| 63 6b 3b 0a 0a 20 20 20 | 20 6f 73 62 6c 6f 63 6b |ck;.. | osblock|
|000014d0| 2e 73 74 61 72 74 20 3d | 20 30 3b 20 20 20 20 20 |.start =| 0; |
|000014e0| 20 20 20 20 20 20 20 20 | 20 20 20 2f 2a 20 44 65 | | /* De|
|000014f0| 66 61 75 6c 74 20 6e 75 | 6d 62 65 72 20 6f 66 20 |fault nu|mber of |
|00001500| 65 6e 74 72 69 65 73 20 | 2a 2f 0a 20 20 20 20 72 |entries |*/. r|
|00001510| 63 20 3d 20 5f 6b 65 72 | 6e 65 6c 5f 6f 73 66 69 |c = _ker|nel_osfi|
|00001520| 6c 65 28 38 2c 20 70 61 | 74 68 6e 61 6d 65 2c 20 |le(8, pa|thname, |
|00001530| 26 6f 73 62 6c 6f 63 6b | 29 3b 0a 20 20 20 20 69 |&osblock|);. i|
|00001540| 66 20 28 72 63 20 3d 3d | 20 5f 6b 65 72 6e 65 6c |f (rc ==| _kernel|
|00001550| 5f 45 52 52 4f 52 29 0a | 09 72 65 74 75 72 6e 28 |_ERROR).|.return(|
|00001560| 2d 31 29 3b 20 20 20 20 | 20 20 20 20 20 20 20 20 |-1); | |
|00001570| 20 20 20 20 20 20 20 2f | 2a 20 53 68 6f 75 6c 64 | /|* Should|
|00001580| 20 73 65 74 20 65 72 72 | 6e 6f 20 2a 2f 0a 20 20 | set err|no */. |
|00001590| 20 20 65 6c 73 65 0a 09 | 72 65 74 75 72 6e 28 30 | else..|return(0|
|000015a0| 29 3b 0a 7d 0a 0a 2f 2a | 0a 20 2a 20 73 74 61 6d |);.}../*|. * stam|
|000015b0| 70 20 61 20 66 69 6c 65 | 20 77 69 74 68 20 64 61 |p a file| with da|
|000015c0| 74 65 20 61 6e 64 20 74 | 69 6d 65 0a 20 2a 2f 0a |te and t|ime. */.|
|000015d0| 69 6e 74 0a 66 69 6c 65 | 73 74 61 6d 70 28 68 65 |int.file|stamp(he|
|000015e0| 61 64 65 72 2c 20 66 69 | 6c 65 6e 61 6d 65 29 0a |ader, fi|lename).|
|000015f0| 20 20 20 20 48 65 61 64 | 65 72 20 2a 68 65 61 64 | Head|er *head|
|00001600| 65 72 3b 0a 20 20 20 20 | 63 68 61 72 20 2a 66 69 |er;. |char *fi|
|00001610| 6c 65 6e 61 6d 65 3b 0a | 7b 0a 20 20 20 20 69 6e |lename;.|{. in|
|00001620| 74 20 72 63 3b 0a 20 20 | 20 20 5f 6b 65 72 6e 65 |t rc;. | _kerne|
|00001630| 6c 5f 6f 73 66 69 6c 65 | 5f 62 6c 6f 63 6b 20 6f |l_osfile|_block o|
|00001640| 73 62 6c 6f 63 6b 3b 0a | 0a 20 20 20 20 69 66 20 |sblock;.|. if |
|00001650| 28 28 68 65 61 64 65 72 | 2d 3e 6c 6f 61 64 20 26 |((header|->load &|
|00001660| 20 28 57 6f 72 64 29 30 | 78 66 66 66 30 30 30 30 | (Word)0|xfff0000|
|00001670| 30 29 20 21 3d 20 28 57 | 6f 72 64 29 30 78 66 66 |0) != (W|ord)0xff|
|00001680| 66 30 30 30 30 30 29 0a | 09 72 65 74 75 72 6e 20 |f00000).|.return |
|00001690| 28 30 29 3b 09 2f 2a 20 | 6e 6f 74 20 61 20 74 69 |(0);./* |not a ti|
|000016a0| 6d 65 73 74 61 6d 70 20 | 2a 2f 0a 0a 20 20 20 20 |mestamp |*/.. |
|000016b0| 6f 73 62 6c 6f 63 6b 2e | 6c 6f 61 64 20 3d 20 68 |osblock.|load = h|
|000016c0| 65 61 64 65 72 2d 3e 6c | 6f 61 64 3b 0a 20 20 20 |eader->l|oad;. |
|000016d0| 20 6f 73 62 6c 6f 63 6b | 2e 65 78 65 63 20 3d 20 | osblock|.exec = |
|000016e0| 68 65 61 64 65 72 2d 3e | 65 78 65 63 3b 0a 20 20 |header->|exec;. |
|000016f0| 20 20 6f 73 62 6c 6f 63 | 6b 2e 65 6e 64 20 20 3d | osbloc|k.end =|
|00001700| 20 68 65 61 64 65 72 2d | 3e 61 74 74 72 3b 0a 20 | header-|>attr;. |
|00001710| 20 20 20 72 63 20 3d 20 | 5f 6b 65 72 6e 65 6c 5f | rc = |_kernel_|
|00001720| 6f 73 66 69 6c 65 28 31 | 2c 20 66 69 6c 65 6e 61 |osfile(1|, filena|
|00001730| 6d 65 2c 20 26 6f 73 62 | 6c 6f 63 6b 29 3b 0a 20 |me, &osb|lock);. |
|00001740| 20 20 20 69 66 20 28 72 | 63 20 3d 3d 20 5f 6b 65 | if (r|c == _ke|
|00001750| 72 6e 65 6c 5f 45 52 52 | 4f 52 29 0a 09 72 65 74 |rnel_ERR|OR)..ret|
|00001760| 75 72 6e 28 2d 31 29 3b | 0a 20 20 20 20 65 6c 73 |urn(-1);|. els|
|00001770| 65 0a 09 72 65 74 75 72 | 6e 28 30 29 3b 0a 7d 0a |e..retur|n(0);.}.|
|00001780| 0a 2f 2a 0a 20 2a 20 72 | 65 61 64 20 62 79 74 65 |./*. * r|ead byte|
|00001790| 20 66 72 6f 6d 20 73 74 | 72 65 61 6d 20 28 6f 6e | from st|ream (on|
|000017a0| 6c 79 20 6f 6e 65 20 6c | 69 6e 65 20 66 72 6f 6d |ly one l|ine from|
|000017b0| 20 73 74 64 69 6e 20 73 | 75 70 70 6f 72 74 65 64 | stdin s|upported|
|000017c0| 29 0a 20 2a 2f 0a 69 6e | 74 0a 72 65 61 64 28 66 |). */.in|t.read(f|
|000017d0| 64 2c 20 62 75 66 66 65 | 72 2c 20 6c 65 6e 29 0a |d, buffe|r, len).|
|000017e0| 20 20 20 20 69 6e 74 20 | 20 20 66 64 3b 0a 20 20 | int | fd;. |
|000017f0| 20 20 76 6f 69 64 20 2a | 62 75 66 66 65 72 3b 0a | void *|buffer;.|
|00001800| 20 20 20 20 69 6e 74 20 | 20 20 6c 65 6e 3b 0a 7b | int | len;.{|
|00001810| 0a 20 20 20 20 5f 6b 65 | 72 6e 65 6c 5f 73 77 69 |. _ke|rnel_swi|
|00001820| 5f 72 65 67 73 20 72 65 | 67 73 3b 0a 20 20 20 20 |_regs re|gs;. |
|00001830| 69 6e 74 20 63 61 72 72 | 79 3b 0a 0a 20 20 20 20 |int carr|y;.. |
|00001840| 69 66 20 28 66 64 20 21 | 3d 20 30 29 20 20 20 20 |if (fd !|= 0) |
|00001850| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2f | | /|
|00001860| 2a 20 4f 6e 6c 79 20 73 | 74 64 69 6e 2c 20 73 6f |* Only s|tdin, so|
|00001870| 72 72 79 21 20 2a 2f 0a | 09 72 65 74 75 72 6e 28 |rry! */.|.return(|
|00001880| 30 29 3b 0a 20 20 20 20 | 72 65 67 73 2e 72 5b 30 |0);. |regs.r[0|
|00001890| 5d 20 3d 20 28 69 6e 74 | 29 62 75 66 66 65 72 3b |] = (int|)buffer;|
|000018a0| 0a 20 20 20 20 72 65 67 | 73 2e 72 5b 31 5d 20 3d |. reg|s.r[1] =|
|000018b0| 20 6c 65 6e 3b 0a 20 20 | 20 20 72 65 67 73 2e 72 | len;. | regs.r|
|000018c0| 5b 32 5d 20 3d 20 31 3b | 20 20 20 20 20 20 20 20 |[2] = 1;| |
|000018d0| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 4c 6f 77 2f | | /* Low/|
|000018e0| 68 69 67 68 20 76 61 6c | 75 65 73 20 74 6f 20 73 |high val|ues to s|
|000018f0| 74 6f 72 65 20 2a 2f 0a | 20 20 20 20 72 65 67 73 |tore */.| regs|
|00001900| 2e 72 5b 33 5d 20 3d 20 | 32 35 35 3b 0a 20 20 20 |.r[3] = |255;. |
|00001910| 20 69 66 20 28 5f 6b 65 | 72 6e 65 6c 5f 73 77 69 | if (_ke|rnel_swi|
|00001920| 5f 63 28 4f 53 5f 52 65 | 61 64 4c 69 6e 65 2c 20 |_c(OS_Re|adLine, |
|00001930| 26 72 65 67 73 2c 20 26 | 72 65 67 73 2c 20 26 63 |&regs, &|regs, &c|
|00001940| 61 72 72 79 29 29 0a 09 | 72 65 74 75 72 6e 28 2d |arry))..|return(-|
|00001950| 31 29 3b 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |1); | |
|00001960| 20 20 20 2f 2a 20 45 72 | 72 6f 72 20 6f 63 63 75 | /* Er|ror occu|
|00001970| 72 72 65 64 20 2a 2f 0a | 20 20 20 20 69 66 20 28 |rred */.| if (|
|00001980| 63 61 72 72 79 29 0a 09 | 72 65 74 75 72 6e 28 2d |carry)..|return(-|
|00001990| 31 29 3b 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |1); | |
|000019a0| 20 20 20 2f 2a 20 45 73 | 63 61 70 65 20 70 72 65 | /* Es|cape pre|
|000019b0| 73 73 65 64 20 2a 2f 0a | 20 20 20 20 72 65 74 75 |ssed */.| retu|
|000019c0| 72 6e 28 72 65 67 73 2e | 72 5b 31 5d 29 3b 20 20 |rn(regs.|r[1]); |
|000019d0| 20 20 20 20 20 20 20 20 | 20 20 20 2f 2a 20 52 65 | | /* Re|
|000019e0| 74 75 72 6e 20 6e 75 6d | 62 65 72 20 6f 66 20 62 |turn num|ber of b|
|000019f0| 79 74 65 73 20 72 65 61 | 64 20 2a 2f 20 20 20 20 |ytes rea|d */ |
|00001a00| 0a 7d 0a 46 69 6c 65 44 | 61 74 61 82 61 72 63 2f |.}.FileD|ata.arc/|
|00001a10| 63 00 00 00 00 00 00 b2 | 01 00 00 44 ff ff ff 78 |c.......|...D...x|
|00001a20| dd 2a cc 03 00 e8 05 2f | 2a 0a 20 2a 20 61 72 63 |.*...../|*. * arc|
|00001a30| 68 69 76 65 20 66 69 6c | 65 73 0a 20 2a 0a 20 2a |hive fil|es. *. *|
|00001a40| 20 24 48 65 61 64 65 72 | 3a 20 61 72 63 2e 63 20 | $Header|: arc.c |
|00001a50| 31 2e 32 20 39 32 2f 31 | 32 2f 30 37 20 24 0a 20 |1.2 92/1|2/07 $. |
|00001a60| 2a 20 24 4c 6f 67 3a 09 | 61 72 63 2e 63 2c 76 20 |* $Log:.|arc.c,v |
|00001a70| 24 0a 20 2a 20 52 65 76 | 69 73 69 6f 6e 20 31 2e |$. * Rev|ision 1.|
|00001a80| 32 20 20 39 32 2f 31 32 | 2f 30 37 20 20 31 37 3a |2 92/12|/07 17:|
|00001a90| 31 37 3a 30 37 20 20 64 | 75 70 6c 61 69 6e 0a 20 |17:07 d|uplain. |
|00001aa0| 2a 20 72 65 66 6f 72 6d | 61 74 74 65 64 20 73 6f |* reform|atted so|
|00001ab0| 75 72 63 65 2e 0a 20 2a | 20 0a 20 2a 20 52 65 76 |urce.. *| . * Rev|
|00001ac0| 69 73 69 6f 6e 20 31 2e | 31 20 20 39 32 2f 30 39 |ision 1.|1 92/09|
|00001ad0| 2f 32 39 20 20 31 38 3a | 30 32 3a 30 35 20 20 64 |/29 18:|02:05 d|
|00001ae0| 75 70 6c 61 69 6e 0a 20 | 2a 20 49 6e 69 74 69 61 |uplain. |* Initia|
|00001af0| 6c 20 72 65 76 69 73 69 | 6f 6e 0a 20 2a 20 0a 20 |l revisi|on. * . |
|00001b00| 2a 2f 0a 0a 23 69 6e 63 | 6c 75 64 65 20 22 73 70 |*/..#inc|lude "sp|
|00001b10| 61 72 6b 2e 68 22 0a 23 | 69 6e 63 6c 75 64 65 20 |ark.h".#|include |
|00001b20| 22 65 72 72 6f 72 2e 68 | 22 0a 0a 23 69 66 64 65 |"error.h|"..#ifde|
|00001b30| 66 20 55 4e 49 58 0a 73 | 74 61 74 69 63 20 63 68 |f UNIX.s|tatic ch|
|00001b40| 61 72 20 72 63 73 69 64 | 5b 5d 20 3d 20 22 24 48 |ar rcsid|[] = "$H|
|00001b50| 65 61 64 65 72 3a 20 61 | 72 63 2e 63 20 31 2e 32 |eader: a|rc.c 1.2|
|00001b60| 20 39 32 2f 31 32 2f 30 | 37 20 24 22 3b 0a 23 65 | 92/12/0|7 $";.#e|
|00001b70| 6e 64 69 66 20 2f 2a 20 | 55 4e 49 58 20 2a 2f 0a |ndif /* |UNIX */.|
|00001b80| 0a 69 6e 74 0a 64 6f 5f | 61 72 63 28 29 0a 7b 0a |.int.do_|arc().{.|
|00001b90| 20 20 20 20 65 72 72 6f | 72 28 22 61 72 63 68 69 | erro|r("archi|
|00001ba0| 76 69 6e 67 20 6e 6f 74 | 20 73 75 70 70 6f 72 74 |ving not| support|
|00001bb0| 65 64 20 69 6e 20 74 68 | 69 73 20 76 65 72 73 69 |ed in th|is versi|
|00001bc0| 6f 6e 22 29 3b 0a 20 20 | 20 20 72 65 74 75 72 6e |on");. | return|
|00001bd0| 20 28 39 39 29 3b 0a 7d | 0a 46 69 6c 65 44 61 74 | (99);.}|.FileDat|
|00001be0| 61 82 61 72 63 2f 68 00 | 00 00 00 00 00 07 01 00 |a.arc/h.|........|
|00001bf0| 00 44 ff ff ff 78 dd 2a | cc 03 00 6d 67 2f 2a 0a |.D...x.*|...mg/*.|
|00001c00| 20 2a 20 61 72 63 68 69 | 76 65 20 66 75 6e 63 74 | * archi|ve funct|
|00001c10| 69 6f 6e 20 70 72 6f 74 | 6f 74 79 70 65 73 0a 20 |ion prot|otypes. |
|00001c20| 2a 0a 20 2a 20 24 48 65 | 61 64 65 72 3a 20 61 72 |*. * $He|ader: ar|
|00001c30| 63 2e 68 20 31 2e 31 20 | 39 32 2f 30 39 2f 32 39 |c.h 1.1 |92/09/29|
|00001c40| 20 24 0a 20 2a 20 24 4c | 6f 67 3a 09 61 72 63 2e | $. * $L|og:.arc.|
|00001c50| 68 2c 76 20 24 0a 20 2a | 20 52 65 76 69 73 69 6f |h,v $. *| Revisio|
|00001c60| 6e 20 31 2e 31 20 20 39 | 32 2f 30 39 2f 32 39 20 |n 1.1 9|2/09/29 |
|00001c70| 20 31 38 3a 30 32 3a 32 | 39 20 20 64 75 70 6c 61 | 18:02:2|9 dupla|
|00001c80| 69 6e 0a 20 2a 20 49 6e | 69 74 69 61 6c 20 72 65 |in. * In|itial re|
|00001c90| 76 69 73 69 6f 6e 0a 20 | 2a 20 0a 20 2a 2f 0a 0a |vision. |* . */..|
|00001ca0| 23 69 66 6e 64 65 66 20 | 5f 5f 41 52 43 5f 48 0a |#ifndef |__ARC_H.|
|00001cb0| 23 64 65 66 69 6e 65 20 | 5f 5f 41 52 43 5f 48 0a |#define |__ARC_H.|
|00001cc0| 0a 23 69 6e 63 6c 75 64 | 65 20 22 63 70 72 6f 74 |.#includ|e "cprot|
|00001cd0| 6f 2e 68 22 0a 0a 69 6e | 74 20 64 6f 5f 61 72 63 |o.h"..in|t do_arc|
|00001ce0| 20 50 5f 5f 28 28 76 6f | 69 64 29 29 3b 0a 0a 23 | P__((vo|id));..#|
|00001cf0| 65 6e 64 69 66 20 2f 2a | 20 5f 5f 41 52 43 5f 48 |endif /*| __ARC_H|
|00001d00| 20 2a 2f 0a 46 69 6c 65 | 44 61 74 61 82 61 72 63 | */.File|Data.arc|
|00001d10| 66 73 2f 63 00 00 00 00 | 3f 1b 00 00 46 fd ff ff |fs/c....|?...F...|
|00001d20| 8a a7 2d 00 03 00 a6 45 | 2f 2a 0a 20 2a 20 48 61 |..-....E|/*. * Ha|
|00001d30| 6e 64 6c 65 20 41 72 63 | 46 53 20 66 6f 72 6d 61 |ndle Arc|FS forma|
|00001d40| 74 20 61 72 63 68 69 76 | 65 73 0a 20 2a 0a 20 2a |t archiv|es. *. *|
|00001d50| 20 41 75 74 68 6f 72 3a | 20 41 6e 64 72 65 77 20 | Author:| Andrew |
|00001d60| 42 72 6f 6f 6b 73 2c 20 | 61 72 62 40 63 6f 6d 70 |Brooks, |arb@comp|
|00001d70| 2e 6c 61 6e 63 73 2e 61 | 63 2e 75 6b 0a 20 2a 0a |.lancs.a|c.uk. *.|
|00001d80| 20 2a 20 24 48 65 61 64 | 65 72 3a 20 61 72 63 66 | * $Head|er: arcf|
|00001d90| 73 2e 63 20 31 2e 34 20 | 39 35 2f 30 31 2f 30 36 |s.c 1.4 |95/01/06|
|00001da0| 20 24 0a 20 2a 20 24 4c | 6f 67 3a 20 20 20 20 20 | $. * $L|og: |
|00001db0| 20 20 20 61 72 63 66 73 | 2e 63 2c 76 20 24 0a 20 | arcfs|.c,v $. |
|00001dc0| 2a 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 34 20 20 |* Revisi|on 1.4 |
|00001dd0| 39 35 2f 30 31 2f 30 36 | 20 20 31 31 3a 35 38 3a |95/01/06| 11:58:|
|00001de0| 34 35 20 20 61 72 62 0a | 20 2a 20 46 69 78 65 73 |45 arb.| * Fixes|
|00001df0| 20 66 6f 72 20 41 6c 70 | 68 61 2e 0a 20 2a 0a 20 | for Alp|ha.. *. |
|00001e00| 2a 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 33 20 20 |* Revisi|on 1.3 |
|00001e10| 39 34 2f 31 32 2f 31 32 | 20 20 31 37 3a 32 35 3a |94/12/12| 17:25:|
|00001e20| 32 35 20 20 61 72 62 0a | 20 2a 20 46 69 78 65 73 |25 arb.| * Fixes|
|00001e30| 20 66 6f 72 20 77 72 69 | 74 65 73 69 7a 65 2e 0a | for wri|tesize..|
|00001e40| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 31 | *. * Re|vision 1|
|00001e50| 2e 32 20 20 39 34 2f 31 | 30 2f 32 36 20 20 31 35 |.2 94/1|0/26 15|
|00001e60| 3a 30 36 3a 33 35 20 20 | 61 72 62 0a 20 2a 20 46 |:06:35 |arb. * F|
|00001e70| 69 78 65 64 20 64 61 74 | 65 20 61 6e 64 20 74 69 |ixed dat|e and ti|
|00001e80| 6d 65 20 63 6f 6e 76 65 | 72 73 69 6f 6e 2e 0a 20 |me conve|rsion.. |
|00001e90| 2a 0a 20 2a 20 52 65 76 | 69 73 69 6f 6e 20 31 2e |*. * Rev|ision 1.|
|00001ea0| 31 20 20 39 34 2f 30 32 | 2f 32 38 20 20 32 31 3a |1 94/02|/28 21:|
|00001eb0| 34 31 3a 32 33 20 20 61 | 72 62 0a 20 2a 20 46 69 |41:23 a|rb. * Fi|
|00001ec0| 78 65 64 20 68 65 61 64 | 65 72 2c 20 66 69 78 65 |xed head|er, fixe|
|00001ed0| 64 20 69 6e 63 6c 75 64 | 65 20 6f 72 64 65 72 69 |d includ|e orderi|
|00001ee0| 6e 67 2c 20 66 69 78 65 | 64 20 64 69 72 65 63 74 |ng, fixe|d direct|
|00001ef0| 6f 72 79 20 63 68 65 63 | 6b 2c 0a 20 2a 20 61 64 |ory chec|k,. * ad|
|00001f00| 64 65 64 20 73 65 65 6b | 20 74 6f 20 73 74 61 72 |ded seek| to star|
|00001f10| 74 20 6f 66 20 63 6f 6d | 70 72 65 73 73 65 64 20 |t of com|pressed |
|00001f20| 64 61 74 61 2c 20 66 69 | 78 65 64 20 6d 61 78 62 |data, fi|xed maxb|
|00001f30| 69 74 73 2c 20 2e 2e 2e | 0a 20 2a 20 69 65 2e 20 |its, ...|. * ie. |
|00001f40| 67 6f 74 20 74 68 65 20 | 74 68 69 6e 67 20 77 6f |got the |thing wo|
|00001f50| 72 6b 69 6e 67 20 61 74 | 20 6c 61 73 74 21 0a 20 |rking at| last!. |
|00001f60| 2a 0a 20 2a 20 52 65 76 | 69 73 69 6f 6e 20 31 2e |*. * Rev|ision 1.|
|00001f70| 30 20 20 39 33 2f 30 38 | 2f 32 30 20 20 31 32 3a |0 93/08|/20 12:|
|00001f80| 34 30 3a 31 35 20 20 61 | 72 62 0a 20 2a 20 49 6e |40:15 a|rb. * In|
|00001f90| 69 74 69 61 6c 20 72 65 | 76 69 73 69 6f 6e 0a 20 |itial re|vision. |
|00001fa0| 2a 2f 0a 0a 0a 23 69 6e | 63 6c 75 64 65 20 3c 73 |*/...#in|clude <s|
|00001fb0| 74 64 69 6f 2e 68 3e 0a | 23 69 6e 63 6c 75 64 65 |tdio.h>.|#include|
|00001fc0| 20 3c 74 69 6d 65 2e 68 | 3e 0a 23 69 6e 63 6c 75 | <time.h|>.#inclu|
|00001fd0| 64 65 20 22 73 70 61 72 | 6b 2e 68 22 0a 23 69 66 |de "spar|k.h".#if|
|00001fe0| 64 65 66 20 55 4e 49 58 | 0a 23 69 6e 63 6c 75 64 |def UNIX|.#includ|
|00001ff0| 65 20 3c 73 79 73 2f 74 | 79 70 65 73 2e 68 3e 0a |e <sys/t|ypes.h>.|
|00002000| 23 65 6e 64 69 66 20 2f | 2a 20 55 4e 49 58 20 2a |#endif /|* UNIX *|
|00002010| 2f 0a 23 69 66 64 65 66 | 20 52 49 53 43 4f 53 0a |/.#ifdef| RISCOS.|
|00002020| 23 69 6e 63 6c 75 64 65 | 20 3c 73 74 64 6c 69 62 |#include| <stdlib|
|00002030| 2e 68 3e 0a 23 69 6e 63 | 6c 75 64 65 20 3c 73 74 |.h>.#inc|lude <st|
|00002040| 72 69 6e 67 2e 68 3e 0a | 23 65 6e 64 69 66 20 2f |ring.h>.|#endif /|
|00002050| 2a 20 52 49 53 43 4f 53 | 20 2a 2f 0a 23 69 6e 63 |* RISCOS| */.#inc|
|00002060| 6c 75 64 65 20 22 61 72 | 63 66 73 2e 68 22 0a 23 |lude "ar|cfs.h".#|
|00002070| 69 6e 63 6c 75 64 65 20 | 22 69 6f 2e 68 22 0a 0a |include |"io.h"..|
|00002080| 23 69 66 6e 64 65 66 20 | 53 45 45 4b 5f 53 45 54 |#ifndef |SEEK_SET|
|00002090| 0a 23 64 65 66 69 6e 65 | 20 53 45 45 4b 5f 53 45 |.#define| SEEK_SE|
|000020a0| 54 20 30 0a 23 65 6e 64 | 69 66 0a 0a 23 69 66 64 |T 0.#end|if..#ifd|
|000020b0| 65 66 20 55 4e 49 58 0a | 73 74 61 74 69 63 20 63 |ef UNIX.|static c|
|000020c0| 68 61 72 20 72 63 73 69 | 64 5b 5d 20 3d 20 22 24 |har rcsi|d[] = "$|
|000020d0| 48 65 61 64 65 72 3a 20 | 61 72 63 66 73 2e 63 20 |Header: |arcfs.c |
|000020e0| 31 2e 34 20 39 35 2f 30 | 31 2f 30 36 20 24 22 3b |1.4 95/0|1/06 $";|
|000020f0| 0a 23 65 6e 64 69 66 20 | 2f 2a 20 55 4e 49 58 20 |.#endif |/* UNIX |
|00002100| 2a 2f 0a 0a 0a 2f 2a 0a | 20 2a 20 50 75 62 6c 69 |*/.../*.| * Publi|
|00002110| 63 20 66 6c 61 67 20 74 | 6f 20 69 6e 64 69 63 61 |c flag t|o indica|
|00002120| 74 65 20 77 68 65 74 68 | 65 72 20 74 68 65 20 63 |te wheth|er the c|
|00002130| 75 72 72 65 6e 74 20 61 | 72 63 68 69 76 65 20 69 |urrent a|rchive i|
|00002140| 73 20 41 72 63 46 53 20 | 66 6f 72 6d 61 74 0a 20 |s ArcFS |format. |
|00002150| 2a 2f 0a 69 6e 74 20 61 | 72 63 66 73 20 3d 20 30 |*/.int a|rcfs = 0|
|00002160| 3b 0a 0a 0a 2f 2a 0a 20 | 2a 20 50 75 62 6c 69 63 |;.../*. |* Public|
|00002170| 20 6e 75 6d 62 65 72 20 | 6f 66 20 63 6f 6d 70 72 | number |of compr|
|00002180| 65 73 73 69 6f 6e 20 62 | 69 74 73 2c 20 75 73 65 |ession b|its, use|
|00002190| 64 20 69 6e 20 63 6f 6d | 70 72 65 73 73 2e 63 0a |d in com|press.c.|
|000021a0| 20 2a 2f 0a 69 6e 74 20 | 61 72 63 66 73 5f 6d 61 | */.int |arcfs_ma|
|000021b0| 78 62 69 74 73 20 3d 20 | 30 3b 0a 0a 0a 2f 2a 0a |xbits = |0;.../*.|
|000021c0| 20 2a 20 50 75 62 6c 69 | 63 20 73 69 7a 65 20 6f | * Publi|c size o|
|000021d0| 66 20 66 69 6c 65 20 62 | 65 69 6e 67 20 65 78 74 |f file b|eing ext|
|000021e0| 72 61 63 74 65 64 2c 20 | 75 73 65 64 20 69 6e 20 |racted, |used in |
|000021f0| 69 6f 2e 63 2c 20 63 72 | 63 2e 63 0a 20 2a 2f 0a |io.c, cr|c.c. */.|
|00002200| 6c 6f 6e 67 20 77 72 69 | 74 65 73 69 7a 65 3b 0a |long wri|tesize;.|
|00002210| 6c 6f 6e 67 20 63 72 63 | 73 69 7a 65 3b 0a 0a 0a |long crc|size;...|
|00002220| 2f 2a 0a 20 2a 20 41 72 | 63 46 53 20 68 65 61 64 |/*. * Ar|cFS head|
|00002230| 65 72 20 6c 69 73 74 20 | 65 6c 65 6d 65 6e 74 0a |er list |element.|
|00002240| 20 2a 2f 0a 73 74 72 75 | 63 74 20 61 72 63 66 73 | */.stru|ct arcfs|
|00002250| 5f 68 65 61 64 65 72 5f | 73 0a 7b 0a 20 20 20 20 |_header_|s.{. |
|00002260| 73 74 72 75 63 74 20 61 | 72 63 66 73 5f 68 65 61 |struct a|rcfs_hea|
|00002270| 64 65 72 5f 73 20 2a 6e | 65 78 74 3b 0a 20 20 20 |der_s *n|ext;. |
|00002280| 20 42 79 74 65 20 6d 61 | 78 62 69 74 73 3b 0a 20 | Byte ma|xbits;. |
|00002290| 20 20 20 42 79 74 65 20 | 69 73 5f 64 69 72 3b 0a | Byte |is_dir;.|
|000022a0| 20 20 20 20 42 79 74 65 | 20 69 6e 66 6f 5f 62 79 | Byte| info_by|
|000022b0| 74 65 3b 0a 20 20 20 20 | 57 6f 72 64 20 69 6e 66 |te;. |Word inf|
|000022c0| 6f 5f 77 6f 72 64 3b 0a | 20 20 20 20 57 6f 72 64 |o_word;.| Word|
|000022d0| 20 73 65 65 6b 3b 0a 20 | 20 20 20 48 65 61 64 65 | seek;. | Heade|
|000022e0| 72 20 2a 68 65 61 64 65 | 72 3b 0a 7d 3b 0a 74 79 |r *heade|r;.};.ty|
|000022f0| 70 65 64 65 66 20 73 74 | 72 75 63 74 20 61 72 63 |pedef st|ruct arc|
|00002300| 66 73 5f 68 65 61 64 65 | 72 5f 73 20 2a 61 72 63 |fs_heade|r_s *arc|
|00002310| 66 73 5f 68 65 61 64 65 | 72 3b 0a 0a 0a 2f 2a 0a |fs_heade|r;.../*.|
|00002320| 20 2a 20 49 6e 66 6f 20 | 62 79 74 65 0a 20 2a 2f | * Info |byte. */|
|00002330| 0a 23 64 65 66 69 6e 65 | 20 41 46 53 5f 45 4e 44 |.#define| AFS_END|
|00002340| 44 49 52 20 20 20 30 0a | 23 64 65 66 69 6e 65 20 |DIR 0.|#define |
|00002350| 41 46 53 5f 44 45 4c 45 | 54 45 44 20 20 31 0a 23 |AFS_DELE|TED 1.#|
|00002360| 64 65 66 69 6e 65 20 41 | 46 53 5f 53 54 4f 52 45 |define A|FS_STORE|
|00002370| 20 20 20 20 30 78 38 32 | 0a 23 64 65 66 69 6e 65 | 0x82|.#define|
|00002380| 20 41 46 53 5f 50 41 43 | 4b 20 20 20 20 20 30 78 | AFS_PAC|K 0x|
|00002390| 38 33 0a 23 64 65 66 69 | 6e 65 20 41 46 53 5f 43 |83.#defi|ne AFS_C|
|000023a0| 52 55 4e 43 48 20 20 20 | 30 78 38 38 0a 23 64 65 |RUNCH |0x88.#de|
|000023b0| 66 69 6e 65 20 41 46 53 | 5f 43 4f 4d 50 52 45 53 |fine AFS|_COMPRES|
|000023c0| 53 20 30 78 46 46 0a 0a | 0a 2f 2a 0a 20 2a 20 53 |S 0xFF..|./*. * S|
|000023d0| 74 61 74 69 63 20 64 61 | 74 61 0a 20 2a 2f 0a 73 |tatic da|ta. */.s|
|000023e0| 74 61 74 69 63 20 69 6e | 74 20 61 72 63 66 73 5f |tatic in|t arcfs_|
|000023f0| 69 6e 69 74 69 61 6c 69 | 73 65 64 20 3d 20 30 3b |initiali|sed = 0;|
|00002400| 0a 73 74 61 74 69 63 20 | 61 72 63 66 73 5f 68 65 |.static |arcfs_he|
|00002410| 61 64 65 72 20 68 65 61 | 64 65 72 5f 6c 69 73 74 |ader hea|der_list|
|00002420| 20 3d 20 4e 55 4c 4c 3b | 0a 73 74 61 74 69 63 20 | = NULL;|.static |
|00002430| 61 72 63 66 73 5f 68 65 | 61 64 65 72 20 68 65 61 |arcfs_he|ader hea|
|00002440| 64 65 72 5f 70 74 72 20 | 3d 20 4e 55 4c 4c 3b 0a |der_ptr |= NULL;.|
|00002450| 0a 0a 2f 2a 0a 20 2a 20 | 43 6f 6e 76 65 72 74 20 |../*. * |Convert |
|00002460| 52 49 53 43 20 4f 53 20 | 74 69 6d 65 20 74 6f 20 |RISC OS |time to |
|00002470| 55 4e 49 58 20 74 69 6d | 65 2e 0a 20 2a 20 52 49 |UNIX tim|e.. * RI|
|00002480| 53 43 20 4f 53 20 74 69 | 6d 65 20 69 73 20 66 69 |SC OS ti|me is fi|
|00002490| 76 65 20 62 79 74 65 73 | 20 6f 66 20 63 65 6e 74 |ve bytes| of cent|
|000024a0| 69 73 65 63 6f 6e 64 73 | 20 73 69 6e 63 65 20 31 |iseconds| since 1|
|000024b0| 39 30 30 2e 0a 20 2a 20 | 55 4e 49 58 20 74 69 6d |900.. * |UNIX tim|
|000024c0| 65 20 69 73 20 73 65 63 | 6f 6e 64 73 20 73 69 6e |e is sec|onds sin|
|000024d0| 63 65 20 31 39 37 30 2e | 0a 20 2a 20 4d 53 42 20 |ce 1970.|. * MSB |
|000024e0| 6f 66 20 52 49 53 43 20 | 4f 53 20 74 69 6d 65 20 |of RISC |OS time |
|000024f0| 69 73 20 4c 53 42 20 6f | 66 20 60 6c 6f 61 64 27 |is LSB o|f `load'|
|00002500| 20 70 6c 75 73 20 60 65 | 78 65 63 27 2e 0a 20 2a | plus `e|xec'.. *|
|00002510| 2f 0a 73 74 72 75 63 74 | 20 74 6d 20 2a 0a 72 6f |/.struct| tm *.ro|
|00002520| 74 6d 28 6c 6f 61 64 2c | 20 65 78 65 63 29 0a 09 |tm(load,| exec)..|
|00002530| 57 6f 72 64 20 6c 6f 61 | 64 2c 20 65 78 65 63 3b |Word loa|d, exec;|
|00002540| 0a 7b 0a 09 57 6f 72 64 | 20 6c 6f 77 2c 20 68 69 |.{..Word| low, hi|
|00002550| 67 68 3b 0a 09 74 69 6d | 65 5f 74 20 74 3b 0a 0a |gh;..tim|e_t t;..|
|00002560| 09 68 69 67 68 20 3d 20 | 28 6c 6f 61 64 20 26 20 |.high = |(load & |
|00002570| 30 78 66 66 29 20 2d 20 | 30 78 33 33 6c 3b 0a 09 |0xff) - |0x33l;..|
|00002580| 6c 6f 77 20 3d 20 65 78 | 65 63 20 2d 20 30 78 36 |low = ex|ec - 0x6|
|00002590| 65 39 39 36 61 30 30 6c | 3b 0a 09 74 20 3d 20 28 |e996a00l|;..t = (|
|000025a0| 74 69 6d 65 5f 74 29 20 | 28 68 69 67 68 20 2a 20 |time_t) |(high * |
|000025b0| 34 32 39 34 39 36 37 33 | 20 2b 20 6c 6f 77 20 2f |42949673| + low /|
|000025c0| 20 31 30 30 29 3b 0a 09 | 72 65 74 75 72 6e 28 6c | 100);..|return(l|
|000025d0| 6f 63 61 6c 74 69 6d 65 | 28 26 74 29 29 3b 0a 7d |ocaltime|(&t));.}|
|000025e0| 0a 0a 0a 2f 2a 0a 20 2a | 20 43 6f 6e 76 65 72 74 |.../*. *| Convert|
|000025f0| 20 52 49 53 43 20 4f 53 | 20 74 69 6d 65 20 74 6f | RISC OS| time to|
|00002600| 20 53 50 41 52 4b 20 74 | 69 6d 65 0a 20 2a 2f 0a | SPARK t|ime. */.|
|00002610| 76 6f 69 64 0a 61 72 63 | 66 73 5f 66 69 78 74 69 |void.arc|fs_fixti|
|00002620| 6d 65 28 68 64 72 29 0a | 20 20 20 20 48 65 61 64 |me(hdr).| Head|
|00002630| 65 72 20 2a 68 64 72 3b | 0a 7b 0a 20 20 20 20 74 |er *hdr;|.{. t|
|00002640| 69 6d 65 5f 74 20 74 69 | 3b 0a 20 20 20 20 73 74 |ime_t ti|;. st|
|00002650| 72 75 63 74 20 74 6d 20 | 2a 74 69 6d 3b 0a 0a 20 |ruct tm |*tim;.. |
|00002660| 20 20 20 2f 2a 20 43 6f | 6e 76 65 72 74 20 74 6f | /* Co|nvert to|
|00002670| 20 55 4e 49 58 20 74 69 | 6d 65 20 66 69 72 73 74 | UNIX ti|me first|
|00002680| 20 28 61 73 20 69 74 20 | 69 73 20 65 61 73 79 29 | (as it |is easy)|
|00002690| 20 2a 2f 0a 20 20 20 20 | 74 69 6d 20 3d 20 72 6f | */. |tim = ro|
|000026a0| 74 6d 28 68 64 72 2d 3e | 6c 6f 61 64 2c 20 68 64 |tm(hdr->|load, hd|
|000026b0| 72 2d 3e 65 78 65 63 29 | 3b 0a 0a 20 20 20 20 2f |r->exec)|;.. /|
|000026c0| 2a 20 43 6f 6e 76 65 72 | 74 20 55 4e 49 58 20 74 |* Conver|t UNIX t|
|000026d0| 69 6d 65 20 74 6f 20 53 | 50 41 52 4b 20 74 69 6d |ime to S|PARK tim|
|000026e0| 65 20 2a 2f 0a 20 20 20 | 20 68 64 72 2d 3e 64 61 |e */. | hdr->da|
|000026f0| 74 65 20 3d 20 28 74 69 | 6d 2d 3e 74 6d 5f 79 65 |te = (ti|m->tm_ye|
|00002700| 61 72 2d 38 30 29 20 3c | 3c 20 39 3b 0a 20 20 20 |ar-80) <|< 9;. |
|00002710| 20 68 64 72 2d 3e 64 61 | 74 65 20 7c 3d 20 28 74 | hdr->da|te |= (t|
|00002720| 69 6d 2d 3e 74 6d 5f 6d | 6f 6e 2b 31 29 20 20 3c |im->tm_m|on+1) <|
|00002730| 3c 20 35 3b 0a 20 20 20 | 20 68 64 72 2d 3e 64 61 |< 5;. | hdr->da|
|00002740| 74 65 20 7c 3d 20 28 74 | 69 6d 2d 3e 74 6d 5f 6d |te |= (t|im->tm_m|
|00002750| 64 61 79 29 3b 0a 20 20 | 20 20 68 64 72 2d 3e 74 |day);. | hdr->t|
|00002760| 69 6d 65 20 3d 20 28 74 | 69 6d 2d 3e 74 6d 5f 68 |ime = (t|im->tm_h|
|00002770| 6f 75 72 29 20 3c 3c 20 | 31 31 3b 0a 20 20 20 20 |our) << |11;. |
|00002780| 68 64 72 2d 3e 74 69 6d | 65 20 7c 3d 20 28 74 69 |hdr->tim|e |= (ti|
|00002790| 6d 2d 3e 74 6d 5f 6d 69 | 6e 29 20 3c 3c 20 35 3b |m->tm_mi|n) << 5;|
|000027a0| 0a 20 20 20 20 68 64 72 | 2d 3e 74 69 6d 65 20 7c |. hdr|->time ||
|000027b0| 3d 20 28 74 69 6d 2d 3e | 74 6d 5f 73 65 63 29 3b |= (tim->|tm_sec);|
|000027c0| 0a 7d 0a 0a 0a 2f 2a 0a | 20 2a 20 52 65 61 64 20 |.}.../*.| * Read |
|000027d0| 41 72 63 46 53 20 68 65 | 61 64 65 72 0a 20 2a 2f |ArcFS he|ader. */|
|000027e0| 0a 48 65 61 64 65 72 20 | 2a 0a 61 72 63 66 73 5f |.Header |*.arcfs_|
|000027f0| 72 65 61 64 5f 68 65 61 | 64 65 72 28 69 66 70 29 |read_hea|der(ifp)|
|00002800| 0a 20 20 20 20 46 49 4c | 45 20 2a 69 66 70 3b 0a |. FIL|E *ifp;.|
|00002810| 7b 0a 20 20 20 20 73 74 | 61 74 69 63 20 48 65 61 |{. st|atic Hea|
|00002820| 64 65 72 20 6e 75 6c 6c | 5f 68 65 61 64 65 72 3b |der null|_header;|
|00002830| 0a 20 20 20 20 73 74 61 | 74 69 63 20 57 6f 72 64 |. sta|tic Word|
|00002840| 20 64 61 74 61 5f 73 74 | 61 72 74 3b 0a 20 20 20 | data_st|art;. |
|00002850| 20 57 6f 72 64 20 68 65 | 61 64 65 72 5f 6c 65 6e | Word he|ader_len|
|00002860| 67 74 68 20 3d 20 30 3b | 0a 20 20 20 20 48 65 61 |gth = 0;|. Hea|
|00002870| 64 65 72 20 2a 68 65 61 | 64 65 72 3b 0a 20 20 20 |der *hea|der;. |
|00002880| 20 57 6f 72 64 20 76 65 | 72 73 69 6f 6e 3b 0a 20 | Word ve|rsion;. |
|00002890| 20 20 20 69 6e 74 20 69 | 3b 0a 09 42 79 74 65 20 | int i|;..Byte |
|000028a0| 69 6e 66 6f 5f 62 79 74 | 65 2c 20 6e 61 6d 65 5b |info_byt|e, name[|
|000028b0| 31 32 5d 3b 0a 09 57 6f | 72 64 20 6c 65 6e 67 74 |12];..Wo|rd lengt|
|000028c0| 68 2c 20 6c 6f 61 64 2c | 20 65 78 65 63 2c 20 61 |h, load,| exec, a|
|000028d0| 74 74 72 2c 20 63 6f 6d | 70 6c 65 6e 2c 20 69 6e |ttr, com|plen, in|
|000028e0| 66 6f 5f 77 6f 72 64 3b | 0a 09 61 72 63 66 73 5f |fo_word;|..arcfs_|
|000028f0| 68 65 61 64 65 72 20 68 | 65 61 64 65 72 5f 70 72 |header h|eader_pr|
|00002900| 65 76 3b 0a 09 69 6e 74 | 20 6a 3b 0a 0a 20 20 20 |ev;..int| j;.. |
|00002910| 20 2f 2a 20 52 65 74 75 | 72 6e 20 6e 65 78 74 20 | /* Retu|rn next |
|00002920| 68 65 61 64 65 72 20 66 | 72 6f 6d 20 6c 69 73 74 |header f|rom list|
|00002930| 20 2a 2f 0a 20 20 20 20 | 69 66 20 28 61 72 63 66 | */. |if (arcf|
|00002940| 73 5f 69 6e 69 74 69 61 | 6c 69 73 65 64 29 0a 20 |s_initia|lised). |
|00002950| 20 20 20 7b 0a 09 2f 2a | 20 49 66 20 65 6e 64 20 | {../*| If end |
|00002960| 6f 66 20 6c 69 73 74 20 | 72 65 74 75 72 6e 20 61 |of list |return a|
|00002970| 6e 20 65 6d 70 74 79 20 | 68 65 61 64 65 72 20 73 |n empty |header s|
|00002980| 74 72 75 63 74 75 72 65 | 20 74 6f 20 69 6e 64 69 |tructure| to indi|
|00002990| 63 61 74 65 20 45 4f 46 | 20 2a 2f 0a 09 69 66 20 |cate EOF| */..if |
|000029a0| 28 68 65 61 64 65 72 5f | 70 74 72 20 3d 3d 20 4e |(header_|ptr == N|
|000029b0| 55 4c 4c 29 0a 09 20 20 | 20 20 72 65 74 75 72 6e |ULL).. | return|
|000029c0| 28 26 6e 75 6c 6c 5f 68 | 65 61 64 65 72 29 3b 0a |(&null_h|eader);.|
|000029d0| 0a 09 2f 2a 20 52 65 74 | 75 72 6e 20 6e 65 78 74 |../* Ret|urn next|
|000029e0| 20 68 65 61 64 65 72 20 | 69 6e 20 6c 69 73 74 20 | header |in list |
|000029f0| 2a 2f 0a 09 68 65 61 64 | 65 72 20 3d 20 68 65 61 |*/..head|er = hea|
|00002a00| 64 65 72 5f 70 74 72 2d | 3e 68 65 61 64 65 72 3b |der_ptr-|>header;|
|00002a10| 0a 09 2f 2a 20 53 65 65 | 6b 20 74 6f 20 73 74 61 |../* See|k to sta|
|00002a20| 72 74 20 6f 66 20 63 6f | 6d 70 72 65 73 73 65 64 |rt of co|mpressed|
|00002a30| 20 64 61 74 61 20 2a 2f | 0a 09 69 66 20 28 28 21 | data */|..if ((!|
|00002a40| 68 65 61 64 65 72 5f 70 | 74 72 2d 3e 69 73 5f 64 |header_p|tr->is_d|
|00002a50| 69 72 29 20 26 26 20 28 | 66 73 65 65 6b 28 69 66 |ir) && (|fseek(if|
|00002a60| 70 2c 20 28 6c 6f 6e 67 | 29 68 65 61 64 65 72 5f |p, (long|)header_|
|00002a70| 70 74 72 2d 3e 73 65 65 | 6b 2c 20 53 45 45 4b 5f |ptr->see|k, SEEK_|
|00002a80| 53 45 54 29 29 29 0a 09 | 7b 0a 09 09 70 72 69 6e |SET)))..|{...prin|
|00002a90| 74 66 28 22 43 61 6e 6e | 6f 74 20 73 65 65 6b 20 |tf("Cann|ot seek |
|00002aa0| 63 6f 6d 70 72 65 73 73 | 65 64 20 64 61 74 61 20 |compress|ed data |
|00002ab0| 69 6e 20 74 68 69 73 20 | 66 69 6c 65 5c 6e 22 29 |in this |file\n")|
|00002ac0| 3b 0a 09 09 72 65 74 75 | 72 6e 28 26 6e 75 6c 6c |;...retu|rn(&null|
|00002ad0| 5f 68 65 61 64 65 72 29 | 3b 0a 09 7d 0a 09 2f 2a |_header)|;..}../*|
|00002ae0| 20 53 65 74 20 75 70 20 | 6e 75 6d 62 65 72 20 6f | Set up |number o|
|00002af0| 66 20 63 6f 6d 70 72 65 | 73 73 69 6f 6e 20 62 69 |f compre|ssion bi|
|00002b00| 74 73 20 2a 2f 0a 09 61 | 72 63 66 73 5f 6d 61 78 |ts */..a|rcfs_max|
|00002b10| 62 69 74 73 20 3d 20 68 | 65 61 64 65 72 5f 70 74 |bits = h|eader_pt|
|00002b20| 72 2d 3e 6d 61 78 62 69 | 74 73 3b 0a 09 2f 2a 69 |r->maxbi|ts;../*i|
|00002b30| 66 20 28 68 65 61 64 65 | 72 5f 70 74 72 2d 3e 69 |f (heade|r_ptr->i|
|00002b40| 73 5f 64 69 72 29 20 68 | 65 61 64 65 72 20 3d 20 |s_dir) h|eader = |
|00002b50| 26 6e 75 6c 6c 5f 68 65 | 61 64 65 72 3b 2a 2f 0a |&null_he|ader;*/.|
|00002b60| 09 68 65 61 64 65 72 5f | 70 74 72 20 3d 20 68 65 |.header_|ptr = he|
|00002b70| 61 64 65 72 5f 70 74 72 | 20 2d 3e 20 6e 65 78 74 |ader_ptr| -> next|
|00002b80| 3b 0a 09 72 65 74 75 72 | 6e 28 68 65 61 64 65 72 |;..retur|n(header|
|00002b90| 29 3b 0a 20 20 20 20 7d | 0a 0a 20 20 20 20 2f 2a |);. }|.. /*|
|00002ba0| 20 48 65 61 64 65 72 20 | 6c 69 73 74 20 6e 6f 74 | Header |list not|
|00002bb0| 20 63 6f 6e 73 74 72 75 | 63 74 65 64 20 79 65 74 | constru|cted yet|
|00002bc0| 2c 20 73 6f 20 72 65 61 | 64 20 61 6c 6c 20 68 65 |, so rea|d all he|
|00002bd0| 61 64 65 72 73 20 66 72 | 6f 6d 20 66 69 6c 65 20 |aders fr|om file |
|00002be0| 2a 2f 0a 20 20 20 20 61 | 72 63 66 73 5f 69 6e 69 |*/. a|rcfs_ini|
|00002bf0| 74 69 61 6c 69 73 65 64 | 20 3d 20 31 3b 0a 23 69 |tialised| = 1;.#i|
|00002c00| 66 64 65 66 20 42 53 44 | 0a 20 20 20 20 62 7a 65 |fdef BSD|. bze|
|00002c10| 72 6f 28 28 63 68 61 72 | 20 2a 29 26 6e 75 6c 6c |ro((char| *)&null|
|00002c20| 5f 68 65 61 64 65 72 2c | 20 73 69 7a 65 6f 66 28 |_header,| sizeof(|
|00002c30| 6e 75 6c 6c 5f 68 65 61 | 64 65 72 29 29 3b 0a 23 |null_hea|der));.#|
|00002c40| 65 6c 73 65 20 2f 2a 20 | 6e 6f 74 20 42 53 44 20 |else /* |not BSD |
|00002c50| 2a 2f 0a 20 20 20 20 6d | 65 6d 73 65 74 28 28 63 |*/. m|emset((c|
|00002c60| 68 61 72 20 2a 29 26 6e | 75 6c 6c 5f 68 65 61 64 |har *)&n|ull_head|
|00002c70| 65 72 2c 20 27 5c 30 27 | 2c 20 73 69 7a 65 6f 66 |er, '\0'|, sizeof|
|00002c80| 28 6e 75 6c 6c 5f 68 65 | 61 64 65 72 29 29 3b 0a |(null_he|ader));.|
|00002c90| 23 65 6e 64 69 66 20 2f | 2a 20 42 53 44 20 2a 2f |#endif /|* BSD */|
|00002ca0| 0a 20 20 20 20 6e 75 6c | 6c 5f 68 65 61 64 65 72 |. nul|l_header|
|00002cb0| 2e 63 6f 6d 70 74 79 70 | 65 20 3d 20 30 3b 0a 20 |.comptyp|e = 0;. |
|00002cc0| 20 20 20 68 65 61 64 65 | 72 5f 6c 65 6e 67 74 68 | heade|r_length|
|00002cd0| 20 3d 20 72 65 61 64 5f | 77 6f 72 64 28 69 66 70 | = read_|word(ifp|
|00002ce0| 29 3b 0a 20 20 20 20 64 | 61 74 61 5f 73 74 61 72 |);. d|ata_star|
|00002cf0| 74 20 3d 20 72 65 61 64 | 5f 77 6f 72 64 28 69 66 |t = read|_word(if|
|00002d00| 70 29 3b 0a 20 20 20 20 | 69 66 20 28 28 76 65 72 |p);. |if ((ver|
|00002d10| 73 69 6f 6e 20 3d 20 72 | 65 61 64 5f 77 6f 72 64 |sion = r|ead_word|
|00002d20| 28 69 66 70 29 29 20 3e | 20 34 30 29 0a 20 20 20 |(ifp)) >| 40). |
|00002d30| 20 7b 0a 09 70 72 69 6e | 74 66 28 22 41 72 63 68 | {..prin|tf("Arch|
|00002d40| 69 76 65 20 63 72 65 61 | 74 65 64 20 62 79 20 61 |ive crea|ted by a|
|00002d50| 20 6e 65 77 65 72 20 76 | 65 72 73 69 6f 6e 20 6f | newer v|ersion o|
|00002d60| 66 20 41 72 63 46 53 20 | 28 25 2e 32 66 29 5c 6e |f ArcFS |(%.2f)\n|
|00002d70| 22 2c 28 28 66 6c 6f 61 | 74 29 76 65 72 73 69 6f |",((floa|t)versio|
|00002d80| 6e 29 2f 31 30 30 29 3b | 0a 09 72 65 74 75 72 6e |n)/100);|..return|
|00002d90| 28 26 6e 75 6c 6c 5f 68 | 65 61 64 65 72 29 3b 0a |(&null_h|eader);.|
|00002da0| 20 20 20 20 7d 0a 20 20 | 20 20 72 65 61 64 5f 77 | }. | read_w|
|00002db0| 6f 72 64 28 69 66 70 29 | 3b 20 20 20 20 20 2f 2a |ord(ifp)|; /*|
|00002dc0| 20 72 65 61 64 2f 77 72 | 69 74 65 20 76 65 72 73 | read/wr|ite vers|
|00002dd0| 69 6f 6e 20 2a 2f 0a 20 | 20 20 20 69 66 20 28 28 |ion */. | if ((|
|00002de0| 76 65 72 73 69 6f 6e 20 | 3d 20 72 65 61 64 5f 77 |version |= read_w|
|00002df0| 6f 72 64 28 69 66 70 29 | 29 20 3e 20 30 29 0a 20 |ord(ifp)|) > 0). |
|00002e00| 20 20 20 7b 0a 09 70 72 | 69 6e 74 66 28 22 41 72 | {..pr|intf("Ar|
|00002e10| 63 68 69 76 65 20 66 6f | 72 6d 61 74 20 25 64 20 |chive fo|rmat %d |
|00002e20| 6e 6f 74 20 75 6e 64 65 | 72 73 74 6f 6f 64 5c 6e |not unde|rstood\n|
|00002e30| 22 2c 76 65 72 73 69 6f | 6e 29 3b 0a 09 72 65 74 |",versio|n);..ret|
|00002e40| 75 72 6e 28 26 6e 75 6c | 6c 5f 68 65 61 64 65 72 |urn(&nul|l_header|
|00002e50| 29 3b 0a 20 20 20 20 7d | 0a 20 20 20 20 66 6f 72 |);. }|. for|
|00002e60| 20 28 69 3d 30 3b 20 69 | 3c 31 37 3b 20 69 2b 2b | (i=0; i|<17; i++|
|00002e70| 29 20 72 65 61 64 5f 77 | 6f 72 64 28 69 66 70 29 |) read_w|ord(ifp)|
|00002e80| 3b 20 20 20 20 20 2f 2a | 20 72 65 73 65 72 76 65 |; /*| reserve|
|00002e90| 64 20 2a 2f 0a 0a 20 20 | 20 20 2f 2a 20 52 65 61 |d */.. | /* Rea|
|00002ea0| 64 20 6c 69 73 74 20 6f | 66 20 68 65 61 64 65 72 |d list o|f header|
|00002eb0| 73 20 2a 2f 0a 20 20 20 | 20 66 6f 72 20 28 69 3d |s */. | for (i=|
|00002ec0| 30 3b 20 69 20 3c 20 68 | 65 61 64 65 72 5f 6c 65 |0; i < h|eader_le|
|00002ed0| 6e 67 74 68 2f 33 36 3b | 20 69 2b 2b 29 0a 20 20 |ngth/36;| i++). |
|00002ee0| 20 20 7b 0a 09 2f 2a 20 | 43 72 65 61 74 65 20 6c | {../* |Create l|
|00002ef0| 69 73 74 20 69 74 65 6d | 20 2a 2f 0a 09 68 65 61 |ist item| */..hea|
|00002f00| 64 65 72 20 3d 20 28 48 | 65 61 64 65 72 2a 29 20 |der = (H|eader*) |
|00002f10| 6d 61 6c 6c 6f 63 28 73 | 69 7a 65 6f 66 28 48 65 |malloc(s|izeof(He|
|00002f20| 61 64 65 72 29 29 3b 0a | 09 68 65 61 64 65 72 5f |ader));.|.header_|
|00002f30| 70 74 72 20 3d 20 28 61 | 72 63 66 73 5f 68 65 61 |ptr = (a|rcfs_hea|
|00002f40| 64 65 72 29 20 6d 61 6c | 6c 6f 63 28 73 69 7a 65 |der) mal|loc(size|
|00002f50| 6f 66 28 73 74 72 75 63 | 74 20 61 72 63 66 73 5f |of(struc|t arcfs_|
|00002f60| 68 65 61 64 65 72 5f 73 | 29 29 3b 0a 09 69 66 20 |header_s|));..if |
|00002f70| 28 28 68 65 61 64 65 72 | 3d 3d 4e 55 4c 4c 29 20 |((header|==NULL) |
|00002f80| 7c 7c 20 28 68 65 61 64 | 65 72 5f 70 74 72 3d 3d ||| (head|er_ptr==|
|00002f90| 4e 55 4c 4c 29 29 0a 09 | 7b 0a 09 20 20 20 20 70 |NULL))..|{.. p|
|00002fa0| 72 69 6e 74 66 28 22 4f | 75 74 20 6f 66 20 6d 65 |rintf("O|ut of me|
|00002fb0| 6d 6f 72 79 5c 6e 22 29 | 3b 0a 09 20 20 20 20 72 |mory\n")|;.. r|
|00002fc0| 65 74 75 72 6e 28 26 6e | 75 6c 6c 5f 68 65 61 64 |eturn(&n|ull_head|
|00002fd0| 65 72 29 3b 0a 09 7d 0a | 0a 09 2f 2a 20 52 65 61 |er);..}.|../* Rea|
|00002fe0| 64 20 41 72 63 46 53 20 | 66 69 6c 65 20 68 65 61 |d ArcFS |file hea|
|00002ff0| 64 65 72 20 2a 2f 0a 09 | 69 6e 66 6f 5f 62 79 74 |der */..|info_byt|
|00003000| 65 20 3d 20 72 65 61 64 | 5f 62 79 74 65 28 69 66 |e = read|_byte(if|
|00003010| 70 29 3b 0a 09 66 6f 72 | 20 28 6a 3d 30 3b 20 6a |p);..for| (j=0; j|
|00003020| 3c 31 31 3b 20 6a 2b 2b | 29 0a 09 7b 0a 09 20 20 |<11; j++|)..{.. |
|00003030| 20 20 6e 61 6d 65 5b 6a | 5d 20 3d 20 72 65 61 64 | name[j|] = read|
|00003040| 5f 62 79 74 65 28 69 66 | 70 29 3b 0a 09 20 20 20 |_byte(if|p);.. |
|00003050| 20 69 66 20 28 6e 61 6d | 65 5b 6a 5d 20 3d 3d 20 | if (nam|e[j] == |
|00003060| 50 41 54 48 53 45 50 29 | 20 6e 61 6d 65 5b 6a 5d |PATHSEP)| name[j]|
|00003070| 20 3d 20 27 5f 27 3b 0a | 09 20 20 20 20 69 66 20 | = '_';.|. if |
|00003080| 28 6e 61 6d 65 5b 6a 5d | 20 3c 20 27 20 27 20 7c |(name[j]| < ' ' ||
|00003090| 7c 20 6e 61 6d 65 5b 6a | 5d 20 3e 20 27 7e 27 29 || name[j|] > '~')|
|000030a0| 20 6e 61 6d 65 5b 6a 5d | 20 3d 20 27 5c 30 27 3b | name[j]| = '\0';|
|000030b0| 0a 09 7d 0a 09 6e 61 6d | 65 5b 6a 5d 20 3d 20 27 |..}..nam|e[j] = '|
|000030c0| 5c 30 27 3b 0a 09 6c 65 | 6e 67 74 68 20 3d 20 72 |\0';..le|ngth = r|
|000030d0| 65 61 64 5f 77 6f 72 64 | 28 69 66 70 29 3b 0a 09 |ead_word|(ifp);..|
|000030e0| 6c 6f 61 64 20 3d 20 72 | 65 61 64 5f 77 6f 72 64 |load = r|ead_word|
|000030f0| 28 69 66 70 29 3b 0a 09 | 65 78 65 63 20 3d 20 72 |(ifp);..|exec = r|
|00003100| 65 61 64 5f 77 6f 72 64 | 28 69 66 70 29 3b 0a 09 |ead_word|(ifp);..|
|00003110| 61 74 74 72 20 3d 20 72 | 65 61 64 5f 77 6f 72 64 |attr = r|ead_word|
|00003120| 28 69 66 70 29 3b 0a 09 | 63 6f 6d 70 6c 65 6e 20 |(ifp);..|complen |
|00003130| 3d 20 72 65 61 64 5f 77 | 6f 72 64 28 69 66 70 29 |= read_w|ord(ifp)|
|00003140| 3b 0a 09 69 6e 66 6f 5f | 77 6f 72 64 20 3d 20 72 |;..info_|word = r|
|00003150| 65 61 64 5f 77 6f 72 64 | 28 69 66 70 29 3b 0a 0a |ead_word|(ifp);..|
|00003160| 09 2f 2a 20 45 78 61 6d | 69 6e 65 2c 20 61 6e 64 |./* Exam|ine, and|
|00003170| 20 63 72 65 61 74 65 20 | 6e 73 70 61 72 6b 20 68 | create |nspark h|
|00003180| 65 61 64 65 72 20 2a 2f | 0a 09 69 66 20 28 69 6e |eader */|..if (in|
|00003190| 66 6f 5f 62 79 74 65 20 | 3d 3d 20 41 46 53 5f 44 |fo_byte |== AFS_D|
|000031a0| 45 4c 45 54 45 44 29 0a | 09 7b 0a 09 09 66 72 65 |ELETED).|.{...fre|
|000031b0| 65 28 68 65 61 64 65 72 | 29 3b 0a 09 09 66 72 65 |e(header|);...fre|
|000031c0| 65 28 68 65 61 64 65 72 | 5f 70 74 72 29 3b 0a 09 |e(header|_ptr);..|
|000031d0| 09 63 6f 6e 74 69 6e 75 | 65 3b 0a 09 7d 0a 09 68 |.continu|e;..}..h|
|000031e0| 65 61 64 65 72 5f 70 74 | 72 2d 3e 69 73 5f 64 69 |eader_pt|r->is_di|
|000031f0| 72 20 3d 20 28 69 6e 66 | 6f 5f 77 6f 72 64 20 3e |r = (inf|o_word >|
|00003200| 3e 20 33 31 29 3b 0a 09 | 68 65 61 64 65 72 5f 70 |> 31);..|header_p|
|00003210| 74 72 2d 3e 69 6e 66 6f | 5f 62 79 74 65 20 3d 20 |tr->info|_byte = |
|00003220| 69 6e 66 6f 5f 62 79 74 | 65 3b 0a 09 68 65 61 64 |info_byt|e;..head|
|00003230| 65 72 5f 70 74 72 2d 3e | 69 6e 66 6f 5f 77 6f 72 |er_ptr->|info_wor|
|00003240| 64 20 3d 20 69 6e 66 6f | 5f 77 6f 72 64 3b 0a 09 |d = info|_word;..|
|00003250| 68 65 61 64 65 72 5f 70 | 74 72 2d 3e 6d 61 78 62 |header_p|tr->maxb|
|00003260| 69 74 73 20 3d 20 28 61 | 74 74 72 20 26 20 30 78 |its = (a|ttr & 0x|
|00003270| 66 66 30 30 29 20 3e 3e | 20 38 3b 0a 09 68 65 61 |ff00) >>| 8;..hea|
|00003280| 64 65 72 5f 70 74 72 2d | 3e 73 65 65 6b 20 3d 20 |der_ptr-|>seek = |
|00003290| 28 69 6e 66 6f 5f 77 6f | 72 64 20 26 20 30 78 37 |(info_wo|rd & 0x7|
|000032a0| 66 66 66 66 66 66 66 29 | 20 2b 20 64 61 74 61 5f |fffffff)| + data_|
|000032b0| 73 74 61 72 74 3b 0a 09 | 68 65 61 64 65 72 2d 3e |start;..|header->|
|000032c0| 63 6f 6d 70 74 79 70 65 | 20 3d 20 69 6e 66 6f 5f |comptype| = info_|
|000032d0| 62 79 74 65 3b 0a 09 73 | 74 72 63 70 79 28 68 65 |byte;..s|trcpy(he|
|000032e0| 61 64 65 72 2d 3e 6e 61 | 6d 65 2c 20 28 63 68 61 |ader->na|me, (cha|
|000032f0| 72 2a 29 6e 61 6d 65 29 | 3b 0a 09 68 65 61 64 65 |r*)name)|;..heade|
|00003300| 72 2d 3e 63 6f 6d 70 6c | 65 6e 20 3d 20 63 6f 6d |r->compl|en = com|
|00003310| 70 6c 65 6e 3b 0a 09 68 | 65 61 64 65 72 2d 3e 64 |plen;..h|eader->d|
|00003320| 61 74 65 20 3d 20 30 3b | 0a 09 68 65 61 64 65 72 |ate = 0;|..header|
|00003330| 2d 3e 74 69 6d 65 20 3d | 20 30 3b 0a 09 68 65 61 |->time =| 0;..hea|
|00003340| 64 65 72 2d 3e 63 72 63 | 20 3d 20 28 48 61 6c 66 |der->crc| = (Half|
|00003350| 77 6f 72 64 29 28 61 74 | 74 72 20 3e 3e 20 31 36 |word)(at|tr >> 16|
|00003360| 29 3b 0a 09 68 65 61 64 | 65 72 2d 3e 6f 72 69 67 |);..head|er->orig|
|00003370| 6c 65 6e 20 3d 20 6c 65 | 6e 67 74 68 3b 0a 09 68 |len = le|ngth;..h|
|00003380| 65 61 64 65 72 2d 3e 6c | 6f 61 64 20 3d 20 6c 6f |eader->l|oad = lo|
|00003390| 61 64 3b 0a 09 68 65 61 | 64 65 72 2d 3e 65 78 65 |ad;..hea|der->exe|
|000033a0| 63 20 3d 20 65 78 65 63 | 3b 0a 09 68 65 61 64 65 |c = exec|;..heade|
|000033b0| 72 2d 3e 61 74 74 72 20 | 3d 20 61 74 74 72 20 26 |r->attr |= attr &|
|000033c0| 20 30 78 66 66 3b 0a 0a | 09 61 72 63 66 73 5f 66 | 0xff;..|.arcfs_f|
|000033d0| 69 78 74 69 6d 65 28 68 | 65 61 64 65 72 29 3b 0a |ixtime(h|eader);.|
|000033e0| 0a 09 69 66 20 28 69 6e | 66 6f 5f 62 79 74 65 20 |..if (in|fo_byte |
|000033f0| 3d 3d 20 41 46 53 5f 45 | 4e 44 44 49 52 29 0a 09 |== AFS_E|NDDIR)..|
|00003400| 7b 0a 09 09 2f 2a 20 4a | 75 73 74 20 72 65 74 75 |{.../* J|ust retu|
|00003410| 72 6e 20 63 6f 6d 70 74 | 79 70 65 20 3d 3d 20 30 |rn compt|ype == 0|
|00003420| 20 2a 2f 0a 09 09 2a 68 | 65 61 64 65 72 20 3d 20 | */...*h|eader = |
|00003430| 6e 75 6c 6c 5f 68 65 61 | 64 65 72 3b 0a 09 09 68 |null_hea|der;...h|
|00003440| 65 61 64 65 72 5f 70 74 | 72 2d 3e 69 73 5f 64 69 |eader_pt|r->is_di|
|00003450| 72 20 3d 20 30 3b 0a 09 | 09 68 65 61 64 65 72 5f |r = 0;..|.header_|
|00003460| 70 74 72 2d 3e 73 65 65 | 6b 20 3d 20 30 3b 0a 09 |ptr->see|k = 0;..|
|00003470| 7d 0a 0a 09 2f 2a 20 49 | 66 20 69 74 20 69 73 20 |}.../* I|f it is |
|00003480| 61 6e 20 41 72 63 46 53 | 20 64 69 72 65 63 74 6f |an ArcFS| directo|
|00003490| 72 79 20 74 68 65 6e 20 | 63 6f 6e 76 65 72 74 20 |ry then |convert |
|000034a0| 74 6f 20 61 20 53 70 61 | 72 6b 20 64 69 72 65 63 |to a Spa|rk direc|
|000034b0| 74 6f 72 79 20 2a 2f 0a | 09 69 66 20 28 68 65 61 |tory */.|.if (hea|
|000034c0| 64 65 72 5f 70 74 72 2d | 3e 69 73 5f 64 69 72 29 |der_ptr-|>is_dir)|
|000034d0| 0a 09 7b 0a 09 09 2f 2a | 20 4d 61 6b 65 20 73 75 |..{.../*| Make su|
|000034e0| 72 65 20 66 69 6c 65 74 | 79 70 65 20 69 73 20 44 |re filet|ype is D|
|000034f0| 44 43 20 2a 2f 0a 09 09 | 68 65 61 64 65 72 2d 3e |DC */...|header->|
|00003500| 63 6f 6d 70 74 79 70 65 | 20 3d 20 43 54 5f 4e 4f |comptype| = CT_NO|
|00003510| 54 43 4f 4d 50 32 3b 0a | 09 09 68 65 61 64 65 72 |TCOMP2;.|..header|
|00003520| 2d 3e 6c 6f 61 64 20 3d | 20 30 78 66 66 66 64 64 |->load =| 0xfffdd|
|00003530| 63 66 66 3b 0a 09 7d 0a | 0a 09 2f 2a 20 41 64 64 |cff;..}.|../* Add|
|00003540| 20 6c 69 73 74 20 69 74 | 65 6d 20 74 6f 20 6c 69 | list it|em to li|
|00003550| 73 74 20 2a 2f 0a 09 2f | 2a 20 44 6f 69 6e 67 20 |st */../|* Doing |
|00003560| 69 74 20 68 65 72 65 20 | 65 6e 73 75 72 65 73 20 |it here |ensures |
|00003570| 74 68 61 74 20 64 65 6c | 65 74 65 64 20 69 74 65 |that del|eted ite|
|00003580| 6d 73 20 61 72 65 20 6e | 6f 74 20 61 64 64 65 64 |ms are n|ot added|
|00003590| 20 2a 2f 0a 09 68 65 61 | 64 65 72 5f 70 74 72 2d | */..hea|der_ptr-|
|000035a0| 3e 68 65 61 64 65 72 20 | 3d 20 68 65 61 64 65 72 |>header |= header|
|000035b0| 3b 0a 09 69 66 20 28 68 | 65 61 64 65 72 5f 6c 69 |;..if (h|eader_li|
|000035c0| 73 74 20 3d 3d 20 4e 55 | 4c 4c 29 0a 09 20 20 20 |st == NU|LL).. |
|000035d0| 20 68 65 61 64 65 72 5f | 6c 69 73 74 20 3d 20 68 | header_|list = h|
|000035e0| 65 61 64 65 72 5f 70 74 | 72 3b 0a 09 65 6c 73 65 |eader_pt|r;..else|
|000035f0| 0a 09 20 20 20 20 68 65 | 61 64 65 72 5f 70 72 65 |.. he|ader_pre|
|00003600| 76 2d 3e 6e 65 78 74 20 | 3d 20 68 65 61 64 65 72 |v->next |= header|
|00003610| 5f 70 74 72 3b 0a 09 68 | 65 61 64 65 72 5f 70 72 |_ptr;..h|eader_pr|
|00003620| 65 76 20 3d 20 68 65 61 | 64 65 72 5f 70 74 72 3b |ev = hea|der_ptr;|
|00003630| 0a 23 69 66 64 65 66 20 | 44 45 42 55 47 47 49 4e |.#ifdef |DEBUGGIN|
|00003640| 47 0a 09 70 72 69 6e 74 | 5f 68 65 61 64 65 72 28 |G..print|_header(|
|00003650| 68 65 61 64 65 72 29 3b | 0a 23 65 6e 64 69 66 0a |header);|.#endif.|
|00003660| 20 20 20 20 7d 0a 0a 20 | 20 20 20 2f 2a 20 52 65 | }.. | /* Re|
|00003670| 74 75 72 6e 20 66 69 72 | 73 74 20 65 6c 65 6d 65 |turn fir|st eleme|
|00003680| 6e 74 20 2a 2f 0a 20 20 | 20 20 68 65 61 64 65 72 |nt */. | header|
|00003690| 5f 70 74 72 20 3d 20 68 | 65 61 64 65 72 5f 6c 69 |_ptr = h|eader_li|
|000036a0| 73 74 3b 0a 20 20 20 20 | 68 65 61 64 65 72 20 3d |st;. |header =|
|000036b0| 20 68 65 61 64 65 72 5f | 70 74 72 2d 3e 68 65 61 | header_|ptr->hea|
|000036c0| 64 65 72 3b 0a 20 20 20 | 20 2f 2a 20 53 65 65 6b |der;. | /* Seek|
|000036d0| 20 74 6f 20 73 74 61 72 | 74 20 6f 66 20 64 61 74 | to star|t of dat|
|000036e0| 61 20 66 6f 72 20 66 69 | 72 73 74 20 65 6c 65 6d |a for fi|rst elem|
|000036f0| 65 6e 74 20 2a 2f 0a 20 | 20 20 20 69 66 20 28 28 |ent */. | if ((|
|00003700| 21 68 65 61 64 65 72 5f | 70 74 72 2d 3e 69 73 5f |!header_|ptr->is_|
|00003710| 64 69 72 29 20 26 26 20 | 28 66 73 65 65 6b 28 69 |dir) && |(fseek(i|
|00003720| 66 70 2c 20 28 6c 6f 6e | 67 29 68 65 61 64 65 72 |fp, (lon|g)header|
|00003730| 5f 70 74 72 2d 3e 73 65 | 65 6b 2c 20 53 45 45 4b |_ptr->se|ek, SEEK|
|00003740| 5f 53 45 54 29 29 29 0a | 20 20 20 20 7b 0a 09 70 |_SET))).| {..p|
|00003750| 72 69 6e 74 66 28 22 43 | 61 6e 6e 6f 74 20 73 65 |rintf("C|annot se|
|00003760| 65 6b 20 63 6f 6d 70 72 | 65 73 73 65 64 20 64 61 |ek compr|essed da|
|00003770| 74 61 20 69 6e 20 74 68 | 69 73 20 66 69 6c 65 5c |ta in th|is file\|
|00003780| 6e 22 29 3b 0a 09 72 65 | 74 75 72 6e 28 26 6e 75 |n");..re|turn(&nu|
|00003790| 6c 6c 5f 68 65 61 64 65 | 72 29 3b 0a 20 20 20 20 |ll_heade|r);. |
|000037a0| 7d 0a 20 20 20 20 2f 2a | 20 53 65 74 20 75 70 20 |}. /*| Set up |
|000037b0| 6e 75 6d 62 65 72 20 6f | 66 20 63 6f 6d 70 72 65 |number o|f compre|
|000037c0| 73 73 69 6f 6e 20 62 69 | 74 73 20 2a 2f 0a 20 20 |ssion bi|ts */. |
|000037d0| 20 20 61 72 63 66 73 5f | 6d 61 78 62 69 74 73 20 | arcfs_|maxbits |
|000037e0| 3d 20 68 65 61 64 65 72 | 5f 70 74 72 2d 3e 6d 61 |= header|_ptr->ma|
|000037f0| 78 62 69 74 73 3b 0a 20 | 20 20 20 2f 2a 69 66 20 |xbits;. | /*if |
|00003800| 28 68 65 61 64 65 72 5f | 70 74 72 2d 3e 69 73 5f |(header_|ptr->is_|
|00003810| 64 69 72 29 20 68 65 61 | 64 65 72 20 3d 20 26 6e |dir) hea|der = &n|
|00003820| 75 6c 6c 5f 68 65 61 64 | 65 72 3b 2a 2f 0a 20 20 |ull_head|er;*/. |
|00003830| 20 20 68 65 61 64 65 72 | 5f 70 74 72 20 3d 20 68 | header|_ptr = h|
|00003840| 65 61 64 65 72 5f 70 74 | 72 2d 3e 6e 65 78 74 3b |eader_pt|r->next;|
|00003850| 0a 20 20 20 20 72 65 74 | 75 72 6e 28 68 65 61 64 |. ret|urn(head|
|00003860| 65 72 29 3b 0a 7d 0a 46 | 69 6c 65 44 61 74 61 82 |er);.}.F|ileData.|
|00003870| 61 72 63 66 73 2f 68 00 | 00 00 00 e1 01 00 00 45 |arcfs/h.|.......E|
|00003880| ff ff ff d4 bb 02 c3 03 | 00 a2 f4 2f 2a 0a 20 2a |........|.../*. *|
|00003890| 20 41 72 63 46 53 20 73 | 75 70 70 6f 72 74 0a 20 | ArcFS s|upport. |
|000038a0| 2a 20 28 43 29 20 31 39 | 39 33 20 41 6e 64 72 65 |* (C) 19|93 Andre|
|000038b0| 77 20 42 72 6f 6f 6b 73 | 2c 20 61 72 62 40 63 6f |w Brooks|, arb@co|
|000038c0| 6d 70 2e 6c 61 6e 63 73 | 2e 61 63 2e 75 6b 0a 20 |mp.lancs|.ac.uk. |
|000038d0| 2a 2f 0a 0a 23 69 66 6e | 64 65 66 20 5f 5f 41 52 |*/..#ifn|def __AR|
|000038e0| 43 46 53 5f 48 0a 23 64 | 65 66 69 6e 65 20 5f 5f |CFS_H.#d|efine __|
|000038f0| 41 52 43 46 53 5f 48 0a | 0a 23 69 6e 63 6c 75 64 |ARCFS_H.|.#includ|
|00003900| 65 20 22 63 70 72 6f 74 | 6f 2e 68 22 0a 0a 2f 2a |e "cprot|o.h"../*|
|00003910| 0a 20 2a 20 46 6c 61 67 | 20 74 6f 20 69 6e 64 69 |. * Flag| to indi|
|00003920| 63 61 74 65 20 77 68 65 | 74 68 65 72 20 74 68 65 |cate whe|ther the|
|00003930| 20 63 75 72 72 65 6e 74 | 20 61 72 63 68 69 76 65 | current| archive|
|00003940| 20 69 73 20 41 72 63 46 | 53 20 66 6f 72 6d 61 74 | is ArcF|S format|
|00003950| 0a 20 2a 2f 0a 65 78 74 | 65 72 6e 20 69 6e 74 20 |. */.ext|ern int |
|00003960| 61 72 63 66 73 3b 0a 0a | 0a 2f 2a 0a 20 2a 20 4e |arcfs;..|./*. * N|
|00003970| 75 6d 62 65 72 20 6f 66 | 20 62 69 74 73 20 6f 66 |umber of| bits of|
|00003980| 20 63 6f 6d 70 72 65 73 | 73 69 6f 6e 0a 20 2a 2f | compres|sion. */|
|00003990| 0a 65 78 74 65 72 6e 20 | 69 6e 74 20 61 72 63 66 |.extern |int arcf|
|000039a0| 73 5f 6d 61 78 62 69 74 | 73 3b 0a 0a 0a 2f 2a 0a |s_maxbit|s;.../*.|
|000039b0| 20 2a 20 4f 72 69 67 69 | 6e 61 6c 20 73 69 7a 65 | * Origi|nal size|
|000039c0| 20 6f 66 20 66 69 6c 65 | 20 62 65 69 6e 67 20 65 | of file| being e|
|000039d0| 78 74 72 61 63 74 65 64 | 0a 20 2a 2f 0a 65 78 74 |xtracted|. */.ext|
|000039e0| 65 72 6e 20 6c 6f 6e 67 | 20 77 72 69 74 65 73 69 |ern long| writesi|
|000039f0| 7a 65 3b 0a 65 78 74 65 | 72 6e 20 6c 6f 6e 67 20 |ze;.exte|rn long |
|00003a00| 63 72 63 73 69 7a 65 3b | 0a 0a 0a 2f 2a 0a 20 2a |crcsize;|.../*. *|
|00003a10| 20 52 65 61 64 20 41 72 | 63 46 53 20 68 65 61 64 | Read Ar|cFS head|
|00003a20| 65 72 0a 20 2a 2f 0a 48 | 65 61 64 65 72 20 2a 61 |er. */.H|eader *a|
|00003a30| 72 63 66 73 5f 72 65 61 | 64 5f 68 65 61 64 65 72 |rcfs_rea|d_header|
|00003a40| 20 50 5f 5f 28 28 46 49 | 4c 45 20 2a 69 66 70 29 | P__((FI|LE *ifp)|
|00003a50| 29 3b 0a 0a 0a 23 65 6e | 64 69 66 20 2f 2a 20 5f |);...#en|dif /* _|
|00003a60| 5f 41 52 43 46 53 5f 48 | 20 2a 2f 0a 46 69 6c 65 |_ARCFS_H| */.File|
|00003a70| 44 61 74 61 82 42 55 47 | 53 00 00 00 00 00 00 00 |Data.BUG|S.......|
|00003a80| f1 01 00 00 45 fd ff ff | 0c 6d c1 cf 03 00 3c fe |....E...|.m....<.|
|00003a90| 09 54 68 65 73 65 20 61 | 72 65 20 62 75 67 73 20 |.These a|re bugs |
|00003aa0| 49 20 6b 6e 6f 77 20 61 | 62 6f 75 74 20 62 75 74 |I know a|bout but|
|00003ab0| 20 68 61 76 65 6e 27 74 | 20 66 69 78 65 64 20 79 | haven't| fixed y|
|00003ac0| 65 74 2e 0a 0a 09 2a 20 | 46 69 6c 65 73 74 61 6d |et....* |Filestam|
|00003ad0| 70 69 6e 67 20 69 73 20 | 6e 6f 74 20 73 75 70 70 |ping is |not supp|
|00003ae0| 6f 72 74 65 64 20 75 6e | 64 65 72 20 34 2e 32 42 |orted un|der 4.2B|
|00003af0| 53 44 20 6f 72 20 53 79 | 73 56 32 20 28 61 73 20 |SD or Sy|sV2 (as |
|00003b00| 6e 6f 20 6d 6b 74 69 6d | 65 28 33 29 0a 09 20 20 |no mktim|e(3).. |
|00003b10| 6f 72 20 74 69 6d 65 6c | 6f 63 61 6c 28 33 29 20 |or timel|ocal(3) |
|00003b20| 66 75 6e 63 74 69 6f 6e | 73 20 65 78 69 73 74 20 |function|s exist |
|00003b30| 75 6e 64 65 72 20 74 68 | 65 73 65 20 73 79 73 74 |under th|ese syst|
|00003b40| 65 6d 73 29 2e 20 20 54 | 6f 20 63 6f 72 72 65 63 |ems). T|o correc|
|00003b50| 74 0a 09 20 20 74 68 69 | 73 20 49 20 63 6f 75 6c |t.. thi|s I coul|
|00003b60| 64 20 77 72 69 74 65 20 | 6d 79 20 6f 77 6e 20 6f |d write |my own o|
|00003b70| 72 20 70 6f 72 74 20 74 | 68 65 20 6f 6e 65 20 66 |r port t|he one f|
|00003b80| 72 6f 6d 20 33 38 36 42 | 53 44 20 28 73 61 76 65 |rom 386B|SD (save|
|00003b90| 20 74 68 61 74 20 66 6f | 72 0a 09 20 20 61 20 72 | that fo|r.. a r|
|00003ba0| 61 69 6e 79 20 64 61 79 | 29 2e 0a 0a 09 2a 20 44 |ainy day|)....* D|
|00003bb0| 6f 65 73 6e 27 74 20 73 | 75 70 70 6f 72 74 20 4d |oesn't s|upport M|
|00003bc0| 53 44 4f 53 20 79 65 74 | 2e 20 20 57 6f 72 6b 69 |SDOS yet|. Worki|
|00003bd0| 6e 67 20 6f 6e 20 74 68 | 61 74 2e 0a 0a 09 2a 20 |ng on th|at....* |
|00003be0| 49 66 20 63 6f 6d 70 69 | 6c 65 64 20 77 69 74 68 |If compi|led with|
|00003bf0| 20 47 43 43 20 31 2e 34 | 32 20 69 74 20 63 6f 72 | GCC 1.4|2 it cor|
|00003c00| 65 20 64 75 6d 70 73 20 | 77 68 65 6e 20 74 72 79 |e dumps |when try|
|00003c10| 69 6e 67 20 74 6f 20 74 | 65 73 74 0a 09 20 20 28 |ing to t|est.. (|
|00003c20| 6f 72 20 75 6e 61 72 63 | 68 69 76 65 20 3f 29 20 |or unarc|hive ?) |
|00003c30| 61 20 63 6f 72 72 75 70 | 74 20 61 72 63 68 69 76 |a corrup|t archiv|
|00003c40| 65 20 66 69 6c 65 2e 20 | 20 54 68 69 73 20 64 6f |e file. | This do|
|00003c50| 65 73 6e 27 74 20 68 61 | 70 70 65 6e 0a 09 20 20 |esn't ha|ppen.. |
|00003c60| 77 68 65 6e 20 63 6f 6d | 70 69 6c 65 64 20 77 69 |when com|piled wi|
|00003c70| 74 68 20 74 68 65 20 55 | 4e 49 58 20 70 63 63 2e |th the U|NIX pcc.|
|00003c80| 0a 46 69 6c 65 44 61 74 | 61 82 43 48 41 4e 47 45 |.FileDat|a.CHANGE|
|00003c90| 53 00 00 00 00 15 0f 00 | 00 45 fd ff ff 5c b3 c1 |S.......|.E...\..|
|00003ca0| cf 03 00 7e e7 0a 31 2e | 32 2e 34 09 37 74 68 20 |...~..1.|2.4.7th |
|00003cb0| 4f 63 74 20 39 32 09 31 | 73 74 20 70 75 62 6c 69 |Oct 92.1|st publi|
|00003cc0| 63 20 72 65 6c 65 61 73 | 65 2e 0a 0a 31 2e 32 2e |c releas|e...1.2.|
|00003cd0| 35 09 39 74 68 20 4f 63 | 74 20 39 32 09 46 69 78 |5.9th Oc|t 92.Fix|
|00003ce0| 65 64 20 62 75 67 20 69 | 6e 20 6d 69 73 63 2e 63 |ed bug i|n misc.c|
|00003cf0| 3a 3a 72 69 73 63 6f 73 | 5f 70 61 74 68 28 29 20 |::riscos|_path() |
|00003d00| 74 68 61 74 20 63 61 75 | 73 65 64 20 6e 73 70 61 |that cau|sed nspa|
|00003d10| 72 6b 0a 09 09 09 74 6f | 20 63 6f 72 65 20 64 75 |rk....to| core du|
|00003d20| 6d 70 20 75 6e 64 65 72 | 20 53 43 4f 20 55 4e 49 |mp under| SCO UNI|
|00003d30| 58 2e 0a 0a 31 2e 32 2e | 36 09 31 39 74 68 20 4f |X...1.2.|6.19th O|
|00003d40| 63 74 20 39 32 09 41 64 | 64 65 64 20 2d 78 20 6f |ct 92.Ad|ded -x o|
|00003d50| 70 74 69 6f 6e 20 61 73 | 20 61 6e 20 61 6c 74 65 |ption as| an alte|
|00003d60| 72 6e 61 74 69 76 65 20 | 74 6f 20 2d 75 2e 20 20 |rnative |to -u. |
|00003d70| 43 68 61 6e 67 65 64 0a | 09 09 09 75 6e 69 78 2e |Changed.|...unix.|
|00003d80| 63 3a 3a 66 69 6c 65 73 | 74 61 6d 70 28 29 20 73 |c::files|tamp() s|
|00003d90| 6f 20 74 68 61 74 20 74 | 69 6d 65 6c 6f 63 61 6c |o that t|imelocal|
|00003da0| 28 33 29 20 69 73 20 6f | 6e 6c 79 20 75 73 65 64 |(3) is o|nly used|
|00003db0| 0a 09 09 09 66 6f 72 20 | 53 75 6e 4f 53 2c 20 61 |....for |SunOS, a|
|00003dc0| 6e 64 20 6d 6b 74 69 6d | 65 28 33 29 20 69 73 20 |nd mktim|e(3) is |
|00003dd0| 75 73 65 64 20 66 6f 72 | 20 61 6c 6c 20 6f 74 68 |used for| all oth|
|00003de0| 65 72 0a 09 09 09 66 6c | 61 76 6f 75 72 73 20 6f |er....fl|avours o|
|00003df0| 66 20 55 4e 49 58 2e 0a | 0a 31 2e 32 2e 37 09 32 |f UNIX..|.1.2.7.2|
|00003e00| 33 72 64 20 4f 63 74 20 | 39 32 09 4d 69 6e 6f 72 |3rd Oct |92.Minor|
|00003e10| 20 63 6f 73 6d 65 74 69 | 63 20 63 68 61 6e 67 65 | cosmeti|c change|
|00003e20| 73 2e 2e 2e 20 49 20 73 | 68 6f 75 6c 64 20 72 65 |s... I s|hould re|
|00003e30| 61 6c 6c 79 20 6c 65 61 | 76 65 20 74 68 69 73 0a |ally lea|ve this.|
|00003e40| 09 09 09 74 68 69 6e 67 | 20 61 6c 6f 6e 65 2e 0a |...thing| alone..|
|00003e50| 0a 31 2e 32 2e 38 09 36 | 74 68 20 4e 6f 76 20 39 |.1.2.8.6|th Nov 9|
|00003e60| 32 09 46 69 78 65 64 20 | 66 75 6e 63 74 69 6f 6e |2.Fixed |function|
|00003e70| 20 64 65 66 69 6e 69 74 | 69 6f 6e 20 66 6f 72 20 | definit|ion for |
|00003e80| 75 6e 61 72 63 2e 63 3a | 3a 70 72 6f 6d 70 74 5f |unarc.c:|:prompt_|
|00003e90| 75 73 65 72 28 29 0a 09 | 09 09 28 77 61 73 20 64 |user()..|..(was d|
|00003ea0| 65 66 69 6e 65 64 20 74 | 68 65 20 41 4e 53 49 20 |efined t|he ANSI |
|00003eb0| 43 20 77 61 79 29 2e 0a | 0a 09 09 09 46 69 78 65 |C way)..|....Fixe|
|00003ec0| 64 20 69 6f 2e 63 3a 3a | 72 65 61 64 5f 68 65 61 |d io.c::|read_hea|
|00003ed0| 64 65 72 28 29 20 73 6f | 20 69 74 20 64 6f 65 73 |der() so| it does|
|00003ee0| 6e 27 74 20 72 65 61 64 | 20 74 68 65 0a 09 09 09 |n't read| the....|
|00003ef0| 6c 6f 61 64 2f 65 78 65 | 63 2f 61 74 74 72 20 66 |load/exe|c/attr f|
|00003f00| 69 65 6c 64 73 20 69 66 | 20 74 68 65 20 61 72 63 |ields if| the arc|
|00003f10| 68 69 76 65 20 69 73 6e | 27 74 20 61 6e 0a 09 09 |hive isn|'t an...|
|00003f20| 09 41 72 63 68 69 6d 65 | 64 65 73 20 61 72 63 68 |.Archime|des arch|
|00003f30| 69 76 65 2e 0a 09 09 09 | 0a 09 09 09 43 6f 72 72 |ive.....|....Corr|
|00003f40| 65 63 74 65 64 20 63 6f | 6d 6d 65 6e 74 73 20 69 |ected co|mments i|
|00003f50| 6e 20 63 6f 6d 70 72 65 | 73 73 2e 63 20 61 62 6f |n compre|ss.c abo|
|00003f60| 75 74 20 77 68 61 74 20 | 63 72 75 6e 63 68 0a 09 |ut what |crunch..|
|00003f70| 09 09 61 6e 64 20 73 71 | 75 61 73 68 20 6d 65 74 |..and sq|uash met|
|00003f80| 68 6f 64 73 20 77 65 72 | 65 2e 0a 09 09 09 0a 09 |hods wer|e.......|
|00003f90| 09 09 53 6c 69 67 68 74 | 20 63 68 61 6e 67 65 20 |..Slight| change |
|00003fa0| 74 6f 20 61 6c 67 6f 72 | 69 74 68 6d 20 69 6e 20 |to algor|ithm in |
|00003fb0| 63 72 63 2e 63 3a 3a 63 | 61 6c 63 63 72 63 28 29 |crc.c::c|alccrc()|
|00003fc0| 2c 20 74 68 6f 75 67 68 | 0a 09 09 09 6e 6f 20 66 |, though|....no f|
|00003fd0| 75 6e 63 74 69 6f 6e 61 | 6c 20 63 68 61 6e 67 65 |unctiona|l change|
|00003fe0| 73 20 6d 61 64 65 2e 0a | 0a 31 2e 32 2e 39 09 39 |s made..|.1.2.9.9|
|00003ff0| 74 68 20 4e 6f 76 20 39 | 32 09 63 6f 6d 70 72 65 |th Nov 9|2.compre|
|00004000| 73 73 2e 63 3a 20 4d 6f | 76 65 64 20 6f 66 66 73 |ss.c: Mo|ved offs|
|00004010| 65 74 20 61 6e 64 20 73 | 69 7a 65 20 66 72 6f 6d |et and s|ize from|
|00004020| 20 67 65 74 63 6f 64 65 | 28 29 20 69 6e 74 6f 0a | getcode|() into.|
|00004030| 09 09 09 67 6c 6f 62 61 | 6c 20 73 63 6f 70 65 20 |...globa|l scope |
|00004040| 73 6f 20 74 68 61 74 20 | 75 6e 63 6f 6d 70 72 65 |so that |uncompre|
|00004050| 73 73 28 29 20 63 61 6e | 20 72 65 2d 69 6e 69 74 |ss() can| re-init|
|00004060| 69 61 6c 69 73 65 0a 09 | 09 09 74 68 65 6d 20 65 |ialise..|..them e|
|00004070| 61 63 68 20 74 69 6d 65 | 20 69 74 20 69 73 20 63 |ach time| it is c|
|00004080| 61 6c 6c 65 64 2e 0a 0a | 09 09 09 70 61 63 6b 2e |alled...|...pack.|
|00004090| 63 2f 70 61 63 6b 2e 68 | 3a 20 41 64 64 65 64 20 |c/pack.h|: Added |
|000040a0| 70 75 74 63 5f 69 6e 69 | 74 28 29 20 74 6f 20 69 |putc_ini|t() to i|
|000040b0| 6e 69 74 69 61 6c 69 73 | 65 20 74 68 65 0a 09 09 |nitialis|e the...|
|000040c0| 09 73 74 61 74 69 63 20 | 76 61 72 69 61 62 6c 65 |.static |variable|
|000040d0| 73 20 75 73 65 64 20 62 | 79 20 70 75 74 63 5f 6e |s used b|y putc_n|
|000040e0| 63 72 28 29 2e 0a 0a 31 | 2e 32 2e 31 30 09 31 32 |cr()...1|.2.10.12|
|000040f0| 74 68 20 4e 6f 76 20 39 | 32 09 46 69 78 65 64 20 |th Nov 9|2.Fixed |
|00004100| 62 75 67 20 77 69 74 68 | 20 72 65 61 6c 6c 6f 63 |bug with| realloc|
|00004110| 28 29 20 73 69 7a 65 20 | 69 6e 20 6d 69 73 63 2e |() size |in misc.|
|00004120| 63 3a 20 75 70 6c 65 76 | 65 6c 28 29 2e 0a 09 09 |c: uplev|el()....|
|00004130| 09 28 72 65 70 6f 72 74 | 65 64 20 62 79 20 61 72 |.(report|ed by ar|
|00004140| 62 40 63 6f 6d 70 2e 6c | 61 6e 63 73 2e 61 63 2e |b@comp.l|ancs.ac.|
|00004150| 75 6b 29 2e 0a 0a 31 2e | 32 2e 31 31 09 37 74 68 |uk)...1.|2.11.7th|
|00004160| 20 44 65 63 20 39 32 09 | 52 65 66 6f 72 6d 61 74 | Dec 92.|Reformat|
|00004170| 74 65 64 20 61 6c 6c 20 | 73 6f 75 72 63 65 20 66 |ted all |source f|
|00004180| 69 6c 65 73 20 75 73 69 | 6e 67 20 45 6d 61 63 73 |iles usi|ng Emacs|
|00004190| 20 43 2d 4d 6f 64 65 20 | 28 34 2d 0a 09 09 09 73 | C-Mode |(4-....s|
|000041a0| 70 61 63 65 20 74 61 62 | 73 20 65 74 63 2e 29 2e |pace tab|s etc.).|
|000041b0| 20 20 53 6c 69 67 68 74 | 20 63 68 61 6e 67 65 20 | Slight| change |
|000041c0| 74 6f 20 75 6e 61 72 63 | 2e 63 3a 3a 75 6e 61 72 |to unarc|.c::unar|
|000041d0| 63 28 29 0a 09 09 09 6c | 6f 67 69 63 20 77 68 65 |c()....l|ogic whe|
|000041e0| 6e 20 70 72 69 6e 74 69 | 6e 67 20 66 69 6c 65 20 |n printi|ng file |
|000041f0| 64 65 74 61 69 6c 73 20 | 64 75 72 69 6e 67 20 75 |details |during u|
|00004200| 6e 61 72 63 68 69 76 69 | 6e 67 2e 0a 0a 31 2e 33 |narchivi|ng...1.3|
|00004210| 42 65 74 61 20 38 74 68 | 20 44 65 63 20 39 32 09 |Beta 8th| Dec 92.|
|00004220| 41 64 64 65 64 20 2d 61 | 20 6f 70 74 69 6f 6e 20 |Added -a| option |
|00004230| 74 6f 20 61 6c 6c 6f 77 | 20 66 69 6c 65 74 79 70 |to allow| filetyp|
|00004240| 65 73 20 74 6f 20 62 65 | 20 61 70 70 65 6e 64 65 |es to be| appende|
|00004250| 64 0a 09 09 09 74 6f 20 | 66 69 6c 65 6e 61 6d 65 |d....to |filename|
|00004260| 73 20 61 73 20 74 68 65 | 79 20 61 72 65 20 75 6e |s as the|y are un|
|00004270| 61 72 63 68 69 76 65 64 | 2e 20 20 54 68 69 73 20 |archived|. This |
|00004280| 69 73 20 74 6f 20 61 6c | 6c 6f 77 0a 09 09 09 41 |is to al|low....A|
|00004290| 63 6f 72 6e 20 3c 2d 3e | 20 55 4e 49 58 20 4e 46 |corn <->| UNIX NF|
|000042a0| 53 20 74 6f 20 77 6f 72 | 6b 20 63 6f 72 72 65 63 |S to wor|k correc|
|000042b0| 74 6c 79 2e 0a 09 09 09 | 28 72 65 71 75 65 73 74 |tly.....|(request|
|000042c0| 65 64 20 62 79 20 64 68 | 6d 79 72 64 61 6c 40 70 |ed by dh|myrdal@p|
|000042d0| 76 76 2e 75 6e 69 74 2e | 6e 6f 29 0a 0a 31 2e 33 |vv.unit.|no)..1.3|
|000042e0| 09 39 74 68 20 44 65 63 | 20 39 32 09 43 68 61 6e |.9th Dec| 92.Chan|
|000042f0| 67 65 64 20 2d 61 20 6f | 70 74 69 6f 6e 20 74 6f |ged -a o|ption to|
|00004300| 20 2d 54 2c 20 6d 61 64 | 65 20 66 69 6c 65 74 79 | -T, mad|e filety|
|00004310| 70 65 73 20 61 70 70 65 | 6e 64 20 69 6e 0a 09 09 |pes appe|nd in...|
|00004320| 09 6c 6f 77 65 72 63 61 | 73 65 20 68 65 78 20 72 |.lowerca|se hex r|
|00004330| 61 74 68 65 72 20 74 68 | 61 6e 20 75 70 70 65 72 |ather th|an upper|
|00004340| 63 61 73 65 2e 0a 0a 31 | 2e 33 2e 31 09 39 74 68 |case...1|.3.1.9th|
|00004350| 20 44 65 63 20 39 32 09 | 43 68 61 6e 67 65 64 20 | Dec 92.|Changed |
|00004360| 72 65 74 20 66 72 6f 6d | 20 69 6e 74 20 69 6e 20 |ret from| int in |
|00004370| 69 6f 2e 63 3a 3a 63 68 | 65 63 6b 5f 73 74 72 65 |io.c::ch|eck_stre|
|00004380| 61 6d 28 29 2e 20 20 23 | 69 66 64 65 66 27 64 0a |am(). #|ifdef'd.|
|00004390| 09 09 09 6f 75 74 20 77 | 72 69 74 65 5f 68 61 6c |...out w|rite_hal|
|000043a0| 66 77 6f 72 64 28 29 20 | 61 6e 64 20 77 72 69 74 |fword() |and writ|
|000043b0| 65 5f 77 6f 72 64 28 29 | 20 69 6e 20 69 6f 2e 63 |e_word()| in io.c|
|000043c0| 2f 69 6f 2e 68 20 2e 0a | 0a 31 2e 33 2e 32 09 32 |/io.h ..|.1.3.2.2|
|000043d0| 32 6e 64 20 44 65 63 20 | 39 32 09 6d 69 73 63 2e |2nd Dec |92.misc.|
|000043e0| 63 3a 20 43 68 61 6e 67 | 65 64 20 23 69 6e 63 6c |c: Chang|ed #incl|
|000043f0| 75 64 65 20 3c 6d 61 6c | 6c 6f 63 2e 68 3e 20 74 |ude <mal|loc.h> t|
|00004400| 6f 0a 09 09 09 23 69 6e | 63 6c 75 64 65 20 3c 73 |o....#in|clude <s|
|00004410| 74 64 6c 69 62 2e 68 3e | 0a 0a 31 2e 34 09 32 33 |tdlib.h>|..1.4.23|
|00004420| 72 64 20 44 65 63 20 39 | 32 09 75 6e 61 72 63 2e |rd Dec 9|2.unarc.|
|00004430| 63 3a 20 61 64 64 65 64 | 20 74 6f 74 61 6c 2d 70 |c: added| total-p|
|00004440| 72 69 6e 74 69 6e 67 20 | 69 66 20 69 6e 20 76 65 |rinting |if in ve|
|00004450| 72 62 6f 73 65 20 6d 6f | 64 65 2e 0a 0a 4e 45 57 |rbose mo|de...NEW|
|00004460| 20 4d 41 49 4e 54 41 49 | 4e 45 52 3a 20 41 6e 64 | MAINTAI|NER: And|
|00004470| 72 65 77 20 42 72 6f 6f | 6b 73 2c 20 61 72 62 40 |rew Broo|ks, arb@|
|00004480| 63 6f 6d 70 2e 6c 61 6e | 63 73 2e 61 63 2e 75 6b |comp.lan|cs.ac.uk|
|00004490| 2e 0a 0a 31 2e 35 09 35 | 74 68 20 4d 61 72 20 39 |...1.5.5|th Mar 9|
|000044a0| 33 09 41 64 64 65 64 20 | 63 6f 64 65 20 74 6f 20 |3.Added |code to |
|000044b0| 63 6f 6d 70 69 6c 65 20 | 6f 6e 20 52 49 53 43 20 |compile |on RISC |
|000044c0| 4f 53 3a 20 6d 6b 66 69 | 6c 65 73 2f 61 63 6f 72 |OS: mkfi|les/acor|
|000044d0| 6e 2c 0a 09 09 09 61 63 | 6f 72 6e 2e 63 2c 20 63 |n,....ac|orn.c, c|
|000044e0| 68 61 6e 67 65 73 20 74 | 6f 20 69 6f 2e 63 2c 20 |hanges t|o io.c, |
|000044f0| 75 6e 61 72 63 2e 63 2c | 20 6d 61 69 6e 2e 63 2c |unarc.c,| main.c,|
|00004500| 20 69 6f 2e 68 20 74 6f | 0a 09 09 09 61 64 64 20 | io.h to|....add |
|00004510| 70 72 6f 74 6f 74 79 70 | 65 73 20 6e 65 65 64 65 |prototyp|es neede|
|00004520| 64 2e 0a 0a 31 2e 36 09 | 32 30 74 68 20 41 75 67 |d...1.6.|20th Aug|
|00004530| 20 39 33 20 20 20 20 20 | 6d 61 69 6e 2e 63 3a 20 | 93 |main.c: |
|00004540| 41 64 64 20 2d 43 20 6f | 70 74 69 6f 6e 20 74 6f |Add -C o|ption to|
|00004550| 20 63 6f 6e 76 65 72 74 | 20 66 69 6c 65 6e 61 6d | convert| filenam|
|00004560| 65 73 20 74 6f 20 6c 6f | 77 65 72 63 61 73 65 0a |es to lo|wercase.|
|00004570| 09 09 09 69 6f 2e 63 3a | 20 61 6c 6c 6f 77 20 74 |...io.c:| allow t|
|00004580| 6f 70 2d 62 69 74 2d 73 | 65 74 20 63 68 61 72 61 |op-bit-s|et chara|
|00004590| 63 74 65 72 73 20 69 6e | 20 52 49 53 43 4f 53 20 |cters in| RISCOS |
|000045a0| 66 69 6c 65 6e 61 6d 65 | 73 2e 0a 09 09 09 63 6f |filename|s.....co|
|000045b0| 6d 70 72 65 73 73 2e 63 | 2c 20 75 6e 61 72 63 2e |mpress.c|, unarc.|
|000045c0| 63 3a 20 70 72 65 76 65 | 6e 74 20 6f 75 74 70 75 |c: preve|nt outpu|
|000045d0| 74 20 69 66 20 69 6e 20 | 71 75 69 65 74 20 6d 6f |t if in |quiet mo|
|000045e0| 64 65 2e 0a 0a 31 2e 37 | 09 32 30 74 68 20 41 75 |de...1.7|.20th Au|
|000045f0| 67 20 39 33 09 41 64 64 | 65 64 20 63 6f 64 65 20 |g 93.Add|ed code |
|00004600| 74 6f 20 72 65 61 64 20 | 68 65 61 64 65 72 73 20 |to read |headers |
|00004610| 66 72 6f 6d 20 41 72 63 | 46 53 20 61 72 63 68 69 |from Arc|FS archi|
|00004620| 76 65 73 2e 0a 09 09 09 | 43 68 61 6e 67 65 73 20 |ves.....|Changes |
|00004630| 74 6f 20 69 6f 2e 63 2c | 20 75 6e 61 72 63 2e 63 |to io.c,| unarc.c|
|00004640| 2c 20 6d 6b 66 69 6c 65 | 73 2e 20 20 41 64 64 65 |, mkfile|s. Adde|
|00004650| 64 20 61 72 63 66 73 2e | 5b 63 68 5d 0a 09 09 09 |d arcfs.|[ch]....|
|00004660| 57 41 52 4e 49 4e 47 3a | 20 43 6f 64 65 20 69 73 |WARNING:| Code is|
|00004670| 20 75 6e 66 69 6e 69 73 | 68 65 64 3a 20 6f 6e 6c | unfinis|hed: onl|
|00004680| 79 20 74 68 65 20 6c 69 | 73 74 20 6f 70 74 69 6f |y the li|st optio|
|00004690| 6e 20 28 2d 6c 29 0a 09 | 09 09 63 61 6e 20 62 65 |n (-l)..|..can be|
|000046a0| 20 75 73 65 64 20 28 61 | 6e 64 20 74 69 6d 65 73 | used (a|nd times|
|000046b0| 74 61 6d 70 73 20 77 69 | 6c 6c 20 62 65 20 69 6e |tamps wi|ll be in|
|000046c0| 63 6f 72 72 65 63 74 29 | 2e 20 20 54 72 79 69 6e |correct)|. Tryin|
|000046d0| 67 0a 09 09 09 74 6f 20 | 74 65 73 74 20 6f 72 20 |g....to |test or |
|000046e0| 65 78 74 72 61 63 74 20 | 66 72 6f 6d 20 74 68 65 |extract |from the|
|000046f0| 20 61 72 63 68 69 76 65 | 20 77 69 6c 6c 20 66 61 | archive| will fa|
|00004700| 69 6c 2c 20 61 6e 64 0a | 09 09 09 70 72 6f 62 61 |il, and.|...proba|
|00004710| 62 6c 79 20 64 75 6d 70 | 20 63 6f 72 65 2e 20 20 |bly dump| core. |
|00004720| 50 6c 65 61 73 65 20 61 | 64 64 20 74 68 65 20 6e |Please a|dd the n|
|00004730| 65 63 65 73 73 61 72 79 | 0a 09 09 09 63 6f 64 65 |ecessary|....code|
|00004740| 20 69 66 20 79 6f 75 20 | 63 61 6e 2c 20 49 20 64 | if you |can, I d|
|00004750| 6f 6e 27 74 20 68 61 76 | 65 20 74 69 6d 65 20 61 |on't hav|e time a|
|00004760| 74 20 74 68 65 20 6d 6f | 6d 65 6e 74 2e 0a 0a 31 |t the mo|ment...1|
|00004770| 2e 37 2e 31 20 20 20 34 | 74 68 20 4d 61 72 20 39 |.7.1 4|th Mar 9|
|00004780| 34 09 46 69 78 65 64 20 | 6d 61 6e 79 20 62 75 67 |4.Fixed |many bug|
|00004790| 73 20 69 6e 20 41 72 63 | 46 53 20 63 6f 64 65 3a |s in Arc|FS code:|
|000047a0| 20 63 68 61 6e 67 65 73 | 20 74 6f 20 75 6e 61 72 | changes| to unar|
|000047b0| 63 2e 63 2c 0a 09 09 09 | 63 6f 6d 70 72 65 73 73 |c.c,....|compress|
|000047c0| 2e 63 20 61 6c 73 6f 2e | 20 20 53 74 69 6c 6c 20 |.c also.| Still |
|000047d0| 6e 6f 20 74 69 6d 65 73 | 74 61 6d 70 73 2c 20 61 |no times|tamps, a|
|000047e0| 6e 64 20 66 69 6c 65 73 | 0a 09 09 09 65 78 74 72 |nd files|....extr|
|000047f0| 61 63 74 65 64 20 61 72 | 65 20 74 6f 6f 20 6c 6f |acted ar|e too lo|
|00004800| 6e 67 20 62 79 20 61 20 | 66 65 77 20 6e 75 6c 6c |ng by a |few null|
|00004810| 20 62 79 74 65 73 20 66 | 6f 72 20 73 6f 6d 65 0a | bytes f|or some.|
|00004820| 09 09 09 72 65 61 73 6f | 6e 20 28 63 6f 6d 70 6c |...reaso|n (compl|
|00004830| 65 6e 20 69 73 20 74 6f | 6f 20 6c 61 72 67 65 2c |en is to|o large,|
|00004840| 20 62 75 74 20 77 68 79 | 3f 29 2c 20 73 6f 20 43 | but why|?), so C|
|00004850| 52 43 20 66 61 69 6c 73 | 2e 0a 0a 31 2e 37 2e 32 |RC fails|...1.7.2|
|00004860| 20 20 20 32 36 74 68 20 | 4f 63 74 20 39 34 09 46 | 26th |Oct 94.F|
|00004870| 69 78 65 64 20 64 61 74 | 65 20 61 6e 64 20 74 69 |ixed dat|e and ti|
|00004880| 6d 65 20 63 6f 6e 76 65 | 72 73 69 6f 6e 20 66 6f |me conve|rsion fo|
|00004890| 72 20 41 72 63 46 53 20 | 61 72 63 68 69 76 65 73 |r ArcFS |archives|
|000048a0| 2e 0a 09 09 09 41 64 64 | 65 64 20 6d 61 6e 75 61 |.....Add|ed manua|
|000048b0| 6c 20 70 61 67 65 73 20 | 73 75 70 70 6c 69 65 64 |l pages |supplied|
|000048c0| 20 62 79 20 44 75 6e 63 | 61 6e 20 28 3f 29 0a 09 | by Dunc|an (?)..|
|000048d0| 09 09 28 6d 39 31 64 70 | 73 40 65 63 73 2e 6f 78 |..(m91dp|s@ecs.ox|
|000048e0| 66 6f 72 64 2e 61 63 2e | 75 6b 29 2e 0a 0a 31 2e |ford.ac.|uk)...1.|
|000048f0| 37 2e 32 61 09 39 74 68 | 20 4e 6f 76 20 39 34 09 |7.2a.9th| Nov 94.|
|00004900| 41 6c 74 65 72 65 64 20 | 75 6e 69 78 20 6d 61 6b |Altered |unix mak|
|00004910| 65 66 69 6c 65 20 74 6f | 20 63 61 6c 6c 20 2e 2f |efile to| call ./|
|00004920| 6d 6b 65 6e 64 69 61 6e | 20 6e 6f 74 20 6d 6b 65 |mkendian| not mke|
|00004930| 6e 64 69 61 6e 0a 09 09 | 09 61 73 20 73 75 67 67 |ndian...|.as sugg|
|00004940| 65 73 74 65 64 20 62 79 | 20 54 6f 6d 20 54 72 6f |ested by| Tom Tro|
|00004950| 6d 65 79 20 28 74 72 6f | 6d 65 79 40 62 75 73 63 |mey (tro|mey@busc|
|00004960| 6f 2e 6c 61 6e 6c 2e 67 | 6f 76 29 2e 0a 09 09 09 |o.lanl.g|ov).....|
|00004970| 41 64 64 65 64 20 72 65 | 6e 61 6d 65 20 73 63 72 |Added re|name scr|
|00004980| 69 70 74 73 20 66 6f 72 | 20 52 49 53 43 20 4f 53 |ipts for| RISC OS|
|00004990| 2f 55 4e 49 58 2e 0a 0a | 31 2e 37 2e 33 09 31 32 |/UNIX...|1.7.3.12|
|000049a0| 74 68 20 44 65 63 20 39 | 34 09 46 69 6e 61 6c 6c |th Dec 9|4.Finall|
|000049b0| 79 20 66 69 78 20 41 72 | 63 46 53 20 61 72 63 68 |y fix Ar|cFS arch|
|000049c0| 69 76 65 20 65 78 74 72 | 61 63 74 69 6f 6e 2c 20 |ive extr|action, |
|000049d0| 66 69 78 65 73 20 69 6e | 0a 09 09 09 61 72 63 66 |fixes in|....arcf|
|000049e0| 73 2e 63 2c 20 75 6e 61 | 72 63 2e 63 2c 20 69 6f |s.c, una|rc.c, io|
|000049f0| 2e 63 20 61 6e 64 20 63 | 72 63 2e 63 2e 20 20 4d |.c and c|rc.c. M|
|00004a00| 6f 64 69 66 69 63 61 74 | 69 6f 6e 73 0a 09 09 09 |odificat|ions....|
|00004a10| 74 6f 20 6d 61 6e 75 61 | 6c 20 70 61 67 65 73 20 |to manua|l pages |
|00004a20| 74 6f 20 63 6f 72 72 65 | 63 74 20 65 72 72 6f 72 |to corre|ct error|
|00004a30| 73 20 61 6e 64 20 61 64 | 64 20 6e 65 77 20 64 65 |s and ad|d new de|
|00004a40| 74 61 69 6c 73 2e 0a 0a | 31 2e 37 2e 34 09 36 74 |tails...|1.7.4.6t|
|00004a50| 68 20 4a 61 6e 20 39 35 | 09 41 64 64 65 64 20 57 |h Jan 95|.Added W|
|00004a60| 69 6e 64 6f 77 73 20 4e | 54 20 61 6e 64 20 41 6c |indows N|T and Al|
|00004a70| 70 68 61 20 73 75 70 70 | 6f 72 74 20 62 79 20 41 |pha supp|ort by A|
|00004a80| 6c 75 6e 20 4a 6f 6e 65 | 73 0a 09 09 09 28 61 75 |lun Jone|s....(au|
|00004a90| 6a 40 61 62 65 72 2e 61 | 63 2e 75 6b 29 2e 0a 09 |j@aber.a|c.uk)...|
|00004aa0| 09 09 52 65 73 74 72 75 | 63 74 75 72 65 64 20 64 |..Restru|ctured d|
|00004ab0| 69 72 65 63 74 6f 72 69 | 65 73 20 61 6e 64 20 61 |irectori|es and a|
|00004ac0| 64 64 65 64 20 65 78 65 | 63 75 74 61 62 6c 65 73 |dded exe|cutables|
|00004ad0| 20 66 6f 72 0a 09 09 09 | 52 49 53 43 20 4f 53 2c | for....|RISC OS,|
|00004ae0| 20 53 75 6e 20 4f 53 20 | 34 2e 31 2e 33 20 61 6e | Sun OS |4.1.3 an|
|00004af0| 64 20 53 6f 6c 61 72 69 | 73 20 32 2e 33 2e 0a 09 |d Solari|s 2.3...|
|00004b00| 09 09 41 64 64 65 64 20 | 65 78 65 63 75 74 61 62 |..Added |executab|
|00004b10| 6c 65 73 20 66 6f 72 20 | 4c 69 6e 75 78 2c 20 4d |les for |Linux, M|
|00004b20| 49 50 53 20 61 6e 64 20 | 41 6c 70 68 61 20 73 75 |IPS and |Alpha su|
|00004b30| 70 70 6c 69 65 64 0a 09 | 09 09 62 79 20 41 6c 75 |pplied..|..by Alu|
|00004b40| 6e 20 4a 6f 6e 65 73 2e | 0a 09 09 09 55 70 64 61 |n Jones.|....Upda|
|00004b50| 74 65 64 20 6d 61 6e 75 | 61 6c 20 70 61 67 65 73 |ted manu|al pages|
|00004b60| 20 66 6f 72 20 6e 65 77 | 20 66 69 6c 65 20 66 6f | for new| file fo|
|00004b70| 72 6d 61 74 73 2e 0a 09 | 09 09 41 64 64 65 64 20 |rmats...|..Added |
|00004b80| 74 65 78 74 20 76 65 72 | 73 69 6f 6e 73 20 6f 66 |text ver|sions of|
|00004b90| 20 6d 61 6e 75 61 6c 20 | 70 61 67 65 73 20 66 6f | manual |pages fo|
|00004ba0| 72 20 74 68 6f 73 65 20 | 77 69 74 68 6f 75 74 0a |r those |without.|
|00004bb0| 09 09 09 6e 72 6f 66 66 | 2e 0a 46 69 6c 65 44 61 |...nroff|..FileDa|
|00004bc0| 74 61 82 63 6f 6d 70 72 | 65 73 73 2f 63 00 58 1c |ta.compr|ess/c.X.|
|00004bd0| 00 00 46 fd ff ff 76 a9 | 2d 00 03 00 3f 71 2f 2a |..F...v.|-...?q/*|
|00004be0| 0a 20 2a 20 63 6f 6d 70 | 72 65 73 73 2f 75 6e 63 |. * comp|ress/unc|
|00004bf0| 6f 6d 70 72 65 73 73 20 | 61 72 63 68 69 76 65 0a |ompress |archive.|
|00004c00| 20 2a 0a 20 2a 20 41 75 | 74 68 6f 72 73 3a 09 53 | *. * Au|thors:.S|
|00004c10| 70 65 6e 63 65 72 20 57 | 2e 20 54 68 6f 6d 61 73 |pencer W|. Thomas|
|00004c20| 09 28 64 65 63 76 61 78 | 21 75 74 61 68 2d 63 73 |.(decvax|!utah-cs|
|00004c30| 21 74 68 6f 6d 61 73 29 | 0a 20 2a 09 09 4a 69 6d |!thomas)|. *..Jim|
|00004c40| 20 4d 63 4b 69 65 09 09 | 28 64 65 63 76 61 78 21 | McKie..|(decvax!|
|00004c50| 6d 63 76 61 78 21 6a 69 | 6d 29 0a 20 2a 09 09 53 |mcvax!ji|m). *..S|
|00004c60| 74 65 76 65 20 44 61 76 | 69 65 73 09 09 28 64 65 |teve Dav|ies..(de|
|00004c70| 63 76 61 78 21 76 61 78 | 31 33 35 21 70 65 74 73 |cvax!vax|135!pets|
|00004c80| 64 21 70 65 6f 72 61 21 | 73 72 64 29 0a 20 2a 09 |d!peora!|srd). *.|
|00004c90| 09 4b 65 6e 20 54 75 72 | 6b 6f 77 73 6b 69 09 09 |.Ken Tur|kowski..|
|00004ca0| 28 64 65 63 76 61 78 21 | 64 65 63 77 72 6c 21 74 |(decvax!|decwrl!t|
|00004cb0| 75 72 74 6c 65 76 61 78 | 21 6b 65 6e 29 0a 20 2a |urtlevax|!ken). *|
|00004cc0| 09 09 4a 61 6d 65 73 20 | 41 2e 20 57 6f 6f 64 73 |..James |A. Woods|
|00004cd0| 09 09 28 64 65 63 76 61 | 78 21 69 68 6e 70 34 21 |..(decva|x!ihnp4!|
|00004ce0| 61 6d 65 73 21 6a 61 77 | 29 0a 20 2a 09 09 4a 6f |ames!jaw|). *..Jo|
|00004cf0| 65 20 4f 72 6f 73 74 09 | 09 28 64 65 63 76 61 78 |e Orost.|.(decvax|
|00004d00| 21 76 61 78 31 33 35 21 | 70 65 74 73 64 21 6a 6f |!vax135!|petsd!jo|
|00004d10| 65 29 0a 20 2a 0a 20 2a | 20 4e 4f 54 45 3a 20 74 |e). *. *| NOTE: t|
|00004d20| 68 65 73 65 20 66 75 6e | 63 74 69 6f 6e 73 20 61 |hese fun|ctions a|
|00004d30| 6c 73 6f 20 73 75 70 70 | 6f 72 74 20 22 73 71 75 |lso supp|ort "squ|
|00004d40| 61 73 68 22 20 28 77 68 | 69 63 68 20 69 73 20 6a |ash" (wh|ich is j|
|00004d50| 75 73 74 20 61 0a 20 2a | 20 31 33 2d 62 69 74 20 |ust a. *| 13-bit |
|00004d60| 63 6f 6d 70 72 65 73 73 | 29 2c 20 61 6e 64 20 22 |compress|), and "|
|00004d70| 63 72 75 6e 63 68 22 20 | 28 77 68 69 63 68 20 69 |crunch" |(which i|
|00004d80| 73 20 61 20 31 32 2d 62 | 69 74 20 63 6f 6d 70 72 |s a 12-b|it compr|
|00004d90| 65 73 73 0a 20 2a 20 77 | 69 74 68 20 61 64 64 69 |ess. * w|ith addi|
|00004da0| 74 69 6f 6e 61 6c 20 72 | 75 6e 2d 6c 65 6e 67 74 |tional r|un-lengt|
|00004db0| 68 20 65 6e 63 6f 64 69 | 6e 67 29 2e 20 20 41 4a |h encodi|ng). AJ|
|00004dc0| 44 0a 20 2a 0a 20 2a 20 | 24 48 65 61 64 65 72 3a |D. *. * |$Header:|
|00004dd0| 20 63 6f 6d 70 72 65 73 | 73 2e 63 20 31 2e 39 20 | compres|s.c 1.9 |
|00004de0| 39 35 2f 30 31 2f 30 36 | 20 24 0a 20 2a 20 24 4c |95/01/06| $. * $L|
|00004df0| 6f 67 3a 09 63 6f 6d 70 | 72 65 73 73 2e 63 2c 76 |og:.comp|ress.c,v|
|00004e00| 20 24 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 31 | $. * Re|vision 1|
|00004e10| 2e 39 20 20 39 35 2f 30 | 31 2f 30 36 20 20 31 32 |.9 95/0|1/06 12|
|00004e20| 3a 30 30 3a 30 36 20 20 | 61 72 62 0a 20 2a 20 46 |:00:06 |arb. * F|
|00004e30| 69 78 65 73 20 66 6f 72 | 20 41 6c 70 68 61 2e 0a |ixes for| Alpha..|
|00004e40| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 31 | *. * Re|vision 1|
|00004e50| 2e 38 20 20 39 34 2f 30 | 32 2f 32 38 20 20 32 33 |.8 94/0|2/28 23|
|00004e60| 3a 35 37 3a 35 35 20 20 | 61 72 62 0a 20 2a 20 46 |:57:55 |arb. * F|
|00004e70| 69 78 65 64 20 6e 75 6d | 62 65 72 20 6f 66 20 63 |ixed num|ber of c|
|00004e80| 6f 6d 70 72 65 73 73 69 | 6f 6e 20 62 69 74 73 20 |ompressi|on bits |
|00004e90| 66 6f 72 20 41 72 63 46 | 53 20 66 6f 72 6d 61 74 |for ArcF|S format|
|00004ea0| 20 61 72 63 68 69 76 65 | 73 0a 20 2a 0a 20 2a 20 | archive|s. *. * |
|00004eb0| 52 65 76 69 73 69 6f 6e | 20 31 2e 37 20 20 39 33 |Revision| 1.7 93|
|00004ec0| 2f 30 38 2f 32 30 20 20 | 31 31 3a 33 35 3a 32 30 |/08/20 |11:35:20|
|00004ed0| 20 20 61 72 62 0a 20 2a | 20 50 72 65 76 65 6e 74 | arb. *| Prevent|
|00004ee0| 20 70 72 69 6e 74 69 6e | 67 20 6f 66 20 22 75 6e | printin|g of "un|
|00004ef0| 63 6f 6d 70 72 65 73 73 | 65 64 22 20 65 74 63 2e |compress|ed" etc.|
|00004f00| 20 69 66 20 71 75 69 65 | 74 20 66 6c 61 67 20 69 | if quie|t flag i|
|00004f10| 73 20 73 65 74 0a 20 2a | 0a 20 2a 20 52 65 76 69 |s set. *|. * Revi|
|00004f20| 73 69 6f 6e 20 31 2e 36 | 20 20 39 32 2f 31 32 2f |sion 1.6| 92/12/|
|00004f30| 30 37 20 20 31 37 3a 31 | 37 3a 32 38 20 20 64 75 |07 17:1|7:28 du|
|00004f40| 70 6c 61 69 6e 0a 20 2a | 20 72 65 66 6f 72 6d 61 |plain. *| reforma|
|00004f50| 74 74 65 64 20 73 6f 75 | 72 63 65 2e 0a 20 2a 20 |tted sou|rce.. * |
|00004f60| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 31 2e 35 |. * Revi|sion 1.5|
|00004f70| 20 20 39 32 2f 31 31 2f | 30 39 20 20 31 34 3a 34 | 92/11/|09 14:4|
|00004f80| 38 3a 30 30 20 20 64 75 | 70 6c 61 69 6e 0a 20 2a |8:00 du|plain. *|
|00004f90| 20 49 6e 69 74 69 61 6c | 69 73 65 64 20 6f 66 66 | Initial|ised off|
|00004fa0| 73 65 74 20 61 6e 64 20 | 73 69 7a 65 20 66 72 6f |set and |size fro|
|00004fb0| 6d 20 67 65 74 63 6f 64 | 65 28 29 20 65 61 63 68 |m getcod|e() each|
|00004fc0| 20 74 69 6d 65 20 75 6e | 63 6f 6d 70 72 65 73 73 | time un|compress|
|00004fd0| 28 29 20 63 61 6c 6c 65 | 64 2e 0a 20 2a 20 0a 20 |() calle|d.. * . |
|00004fe0| 2a 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 34 20 20 |* Revisi|on 1.4 |
|00004ff0| 39 32 2f 31 31 2f 30 32 | 20 20 31 31 3a 34 33 3a |92/11/02| 11:43:|
|00005000| 31 34 20 20 64 75 70 6c | 61 69 6e 0a 20 2a 20 43 |14 dupl|ain. * C|
|00005010| 6f 72 72 65 63 74 20 63 | 6f 6d 6d 65 6e 74 20 61 |orrect c|omment a|
|00005020| 62 6f 75 74 20 63 72 75 | 6e 63 68 2f 73 71 75 61 |bout cru|nch/squa|
|00005030| 73 68 20 69 6e 20 68 65 | 61 64 65 72 2e 0a 20 2a |sh in he|ader.. *|
|00005040| 20 0a 20 2a 20 52 65 76 | 69 73 69 6f 6e 20 31 2e | . * Rev|ision 1.|
|00005050| 33 20 20 39 32 2f 31 30 | 2f 32 33 20 20 31 34 3a |3 92/10|/23 14:|
|00005060| 30 38 3a 31 33 20 20 64 | 75 70 6c 61 69 6e 0a 20 |08:13 d|uplain. |
|00005070| 2a 20 4d 69 6e 6f 72 20 | 63 68 61 6e 67 65 73 20 |* Minor |changes |
|00005080| 74 6f 20 70 72 69 6e 74 | 66 27 73 20 61 74 20 65 |to print|f's at e|
|00005090| 6e 64 20 6f 66 20 75 6e | 63 6f 6d 70 72 65 73 73 |nd of un|compress|
|000050a0| 2e 0a 20 2a 20 0a 20 2a | 20 52 65 76 69 73 69 6f |.. * . *| Revisio|
|000050b0| 6e 20 31 2e 32 20 20 39 | 32 2f 31 30 2f 30 31 20 |n 1.2 9|2/10/01 |
|000050c0| 20 31 31 3a 32 30 3a 31 | 39 20 20 64 75 70 6c 61 | 11:20:1|9 dupla|
|000050d0| 69 6e 0a 20 2a 20 41 64 | 64 65 64 20 63 68 65 63 |in. * Ad|ded chec|
|000050e0| 6b 20 66 6f 72 20 45 4f | 46 2e 0a 20 2a 20 0a 20 |k for EO|F.. * . |
|000050f0| 2a 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 31 20 20 |* Revisi|on 1.1 |
|00005100| 39 32 2f 30 39 2f 32 39 | 20 20 31 38 3a 30 32 3a |92/09/29| 18:02:|
|00005110| 31 34 20 20 64 75 70 6c | 61 69 6e 0a 20 2a 20 49 |14 dupl|ain. * I|
|00005120| 6e 69 74 69 61 6c 20 72 | 65 76 69 73 69 6f 6e 0a |nitial r|evision.|
|00005130| 20 2a 20 0a 20 2a 2f 0a | 0a 23 69 6e 63 6c 75 64 | * . */.|.#includ|
|00005140| 65 20 3c 73 74 64 69 6f | 2e 68 3e 0a 23 69 6e 63 |e <stdio|.h>.#inc|
|00005150| 6c 75 64 65 20 22 73 70 | 61 72 6b 2e 68 22 0a 23 |lude "sp|ark.h".#|
|00005160| 69 6e 63 6c 75 64 65 20 | 22 70 61 63 6b 2e 68 22 |include |"pack.h"|
|00005170| 0a 23 69 6e 63 6c 75 64 | 65 20 22 6d 61 69 6e 2e |.#includ|e "main.|
|00005180| 68 22 0a 23 69 6e 63 6c | 75 64 65 20 22 63 72 63 |h".#incl|ude "crc|
|00005190| 2e 68 22 0a 23 69 6e 63 | 6c 75 64 65 20 22 69 6f |.h".#inc|lude "io|
|000051a0| 2e 68 22 0a 23 69 6e 63 | 6c 75 64 65 20 22 61 72 |.h".#inc|lude "ar|
|000051b0| 63 66 73 2e 68 22 0a 0a | 23 69 66 64 65 66 20 55 |cfs.h"..|#ifdef U|
|000051c0| 4e 49 58 0a 73 74 61 74 | 69 63 20 63 68 61 72 20 |NIX.stat|ic char |
|000051d0| 72 63 73 69 64 5b 5d 20 | 3d 20 22 24 48 65 61 64 |rcsid[] |= "$Head|
|000051e0| 65 72 3a 20 63 6f 6d 70 | 72 65 73 73 2e 63 20 31 |er: comp|ress.c 1|
|000051f0| 2e 39 20 39 35 2f 30 31 | 2f 30 36 20 24 22 3b 0a |.9 95/01|/06 $";.|
|00005200| 23 65 6e 64 69 66 20 2f | 2a 20 55 4e 49 58 20 2a |#endif /|* UNIX *|
|00005210| 2f 0a 0a 23 64 65 66 69 | 6e 65 20 50 42 49 54 53 |/..#defi|ne PBITS|
|00005220| 20 31 36 0a 23 64 65 66 | 69 6e 65 20 43 52 55 4e | 16.#def|ine CRUN|
|00005230| 43 48 42 49 54 53 20 31 | 32 0a 23 64 65 66 69 6e |CHBITS 1|2.#defin|
|00005240| 65 20 53 51 55 41 53 48 | 42 49 54 53 20 31 33 0a |e SQUASH|BITS 13.|
|00005250| 23 64 65 66 69 6e 65 20 | 43 4f 4d 50 52 45 53 53 |#define |COMPRESS|
|00005260| 42 49 54 53 20 31 36 0a | 23 64 65 66 69 6e 65 20 |BITS 16.|#define |
|00005270| 48 53 49 5a 45 20 36 35 | 35 33 36 0a 23 64 65 66 |HSIZE 65|536.#def|
|00005280| 69 6e 65 20 49 4e 49 54 | 5f 42 49 54 53 20 39 09 |ine INIT|_BITS 9.|
|00005290| 09 2f 2a 20 69 6e 69 74 | 69 61 6c 20 6e 75 6d 62 |./* init|ial numb|
|000052a0| 65 72 20 6f 66 20 62 69 | 74 73 2f 63 6f 64 65 20 |er of bi|ts/code |
|000052b0| 2a 2f 0a 23 64 65 66 69 | 6e 65 20 4d 41 58 43 4f |*/.#defi|ne MAXCO|
|000052c0| 44 45 28 6e 5f 62 69 74 | 73 29 09 28 28 31 20 3c |DE(n_bit|s).((1 <|
|000052d0| 3c 20 28 6e 5f 62 69 74 | 73 29 29 20 2d 20 31 29 |< (n_bit|s)) - 1)|
|000052e0| 0a 23 64 65 66 69 6e 65 | 20 68 74 61 62 6f 66 28 |.#define| htabof(|
|000052f0| 69 29 20 68 74 61 62 5b | 69 5d 0a 23 64 65 66 69 |i) htab[|i].#defi|
|00005300| 6e 65 20 63 6f 64 65 74 | 61 62 6f 66 28 69 29 20 |ne codet|abof(i) |
|00005310| 63 6f 64 65 74 61 62 5b | 69 5d 0a 23 64 65 66 69 |codetab[|i].#defi|
|00005320| 6e 65 20 74 61 62 5f 70 | 72 65 66 69 78 6f 66 28 |ne tab_p|refixof(|
|00005330| 69 29 09 63 6f 64 65 74 | 61 62 6f 66 28 69 29 0a |i).codet|abof(i).|
|00005340| 23 64 65 66 69 6e 65 20 | 74 61 62 5f 73 75 66 66 |#define |tab_suff|
|00005350| 69 78 6f 66 28 69 29 09 | 28 28 63 68 61 72 5f 74 |ixof(i).|((char_t|
|00005360| 79 70 65 20 2a 29 28 68 | 74 61 62 29 29 5b 69 5d |ype *)(h|tab))[i]|
|00005370| 0a 23 64 65 66 69 6e 65 | 20 64 65 5f 73 74 61 63 |.#define| de_stac|
|00005380| 6b 20 28 28 63 68 61 72 | 5f 74 79 70 65 20 2a 29 |k ((char|_type *)|
|00005390| 26 74 61 62 5f 73 75 66 | 66 69 78 6f 66 28 31 3c |&tab_suf|fixof(1<|
|000053a0| 3c 43 4f 4d 50 52 45 53 | 53 42 49 54 53 29 29 0a |<COMPRES|SBITS)).|
|000053b0| 23 64 65 66 69 6e 65 20 | 46 49 52 53 54 20 32 35 |#define |FIRST 25|
|000053c0| 37 09 09 2f 2a 20 66 69 | 72 73 74 20 66 72 65 65 |7../* fi|rst free|
|000053d0| 20 65 6e 74 72 79 20 2a | 2f 0a 23 64 65 66 69 6e | entry *|/.#defin|
|000053e0| 65 09 43 4c 45 41 52 20 | 32 35 36 09 09 2f 2a 20 |e.CLEAR |256../* |
|000053f0| 74 61 62 6c 65 20 63 6c | 65 61 72 20 6f 75 74 70 |table cl|ear outp|
|00005400| 75 74 20 63 6f 64 65 20 | 2a 2f 0a 0a 74 79 70 65 |ut code |*/..type|
|00005410| 64 65 66 20 57 6f 72 64 | 20 63 6f 64 65 5f 69 6e |def Word| code_in|
|00005420| 74 3b 0a 74 79 70 65 64 | 65 66 20 57 6f 72 64 20 |t;.typed|ef Word |
|00005430| 63 6f 75 6e 74 5f 69 6e | 74 3b 0a 74 79 70 65 64 |count_in|t;.typed|
|00005440| 65 66 20 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |ef unsig|ned char|
|00005450| 20 63 68 61 72 5f 74 79 | 70 65 3b 0a 0a 73 74 61 | char_ty|pe;..sta|
|00005460| 74 69 63 20 69 6e 74 20 | 6e 5f 62 69 74 73 3b 09 |tic int |n_bits;.|
|00005470| 09 2f 2a 20 6e 75 6d 62 | 65 72 20 6f 66 20 62 69 |./* numb|er of bi|
|00005480| 74 73 2f 63 6f 64 65 20 | 2a 2f 0a 73 74 61 74 69 |ts/code |*/.stati|
|00005490| 63 20 69 6e 74 20 6d 61 | 78 62 69 74 73 3b 09 09 |c int ma|xbits;..|
|000054a0| 2f 2a 20 75 73 65 72 20 | 73 65 74 74 61 62 6c 65 |/* user |settable|
|000054b0| 20 6d 61 78 20 23 20 62 | 69 74 73 2f 63 6f 64 65 | max # b|its/code|
|000054c0| 20 2a 2f 0a 73 74 61 74 | 69 63 20 63 6f 64 65 5f | */.stat|ic code_|
|000054d0| 69 6e 74 20 6d 61 78 63 | 6f 64 65 3b 09 2f 2a 20 |int maxc|ode;./* |
|000054e0| 6d 61 78 69 6d 75 6d 20 | 63 6f 64 65 2c 20 67 69 |maximum |code, gi|
|000054f0| 76 65 6e 20 6e 5f 62 69 | 74 73 20 2a 2f 0a 73 74 |ven n_bi|ts */.st|
|00005500| 61 74 69 63 20 63 6f 64 | 65 5f 69 6e 74 20 6d 61 |atic cod|e_int ma|
|00005510| 78 6d 61 78 63 6f 64 65 | 3b 09 2f 2a 20 73 68 6f |xmaxcode|;./* sho|
|00005520| 75 6c 64 20 4e 45 56 45 | 52 20 67 65 6e 65 72 61 |uld NEVE|R genera|
|00005530| 74 65 20 74 68 69 73 20 | 63 6f 64 65 20 2a 2f 0a |te this |code */.|
|00005540| 73 74 61 74 69 63 20 63 | 6f 75 6e 74 5f 69 6e 74 |static c|ount_int|
|00005550| 20 68 74 61 62 5b 48 53 | 49 5a 45 5d 3b 0a 73 74 | htab[HS|IZE];.st|
|00005560| 61 74 69 63 20 75 6e 73 | 69 67 6e 65 64 20 73 68 |atic uns|igned sh|
|00005570| 6f 72 74 20 63 6f 64 65 | 74 61 62 5b 48 53 49 5a |ort code|tab[HSIZ|
|00005580| 45 5d 3b 0a 73 74 61 74 | 69 63 20 63 68 61 72 5f |E];.stat|ic char_|
|00005590| 74 79 70 65 20 72 6d 61 | 73 6b 5b 39 5d 20 3d 7b |type rma|sk[9] ={|
|000055a0| 30 78 30 30 2c 20 30 78 | 30 31 2c 20 30 78 30 33 |0x00, 0x|01, 0x03|
|000055b0| 2c 20 30 78 30 37 2c 20 | 30 78 30 66 2c 20 30 78 |, 0x07, |0x0f, 0x|
|000055c0| 31 66 2c 20 30 78 33 66 | 2c 20 30 78 37 66 2c 20 |1f, 0x3f|, 0x7f, |
|000055d0| 30 78 66 66 7d 3b 0a 73 | 74 61 74 69 63 20 63 6f |0xff};.s|tatic co|
|000055e0| 64 65 5f 69 6e 74 20 66 | 72 65 65 5f 65 6e 74 3b |de_int f|ree_ent;|
|000055f0| 09 2f 2a 20 66 69 72 73 | 74 20 75 6e 75 73 65 64 |./* firs|t unused|
|00005600| 20 65 6e 74 72 79 20 2a | 2f 0a 73 74 61 74 69 63 | entry *|/.static|
|00005610| 20 69 6e 74 20 63 6c 65 | 61 72 5f 66 6c 67 3b 0a | int cle|ar_flg;.|
|00005620| 73 74 61 74 69 63 20 6c | 6f 6e 67 20 72 65 61 64 |static l|ong read|
|00005630| 73 69 7a 65 3b 09 09 2f | 2a 20 6e 75 6d 62 65 72 |size;../|* number|
|00005640| 20 6f 66 20 62 79 74 65 | 73 20 6c 65 66 74 20 74 | of byte|s left t|
|00005650| 6f 20 72 65 61 64 20 2a | 2f 0a 73 74 61 74 69 63 |o read *|/.static|
|00005660| 20 69 6e 74 20 6f 66 66 | 73 65 74 2c 20 73 69 7a | int off|set, siz|
|00005670| 65 3b 09 2f 2a 20 66 72 | 6f 6d 20 67 65 74 63 6f |e;./* fr|om getco|
|00005680| 64 65 28 29 20 2a 2f 0a | 0a 73 74 61 74 69 63 20 |de() */.|.static |
|00005690| 63 6f 64 65 5f 69 6e 74 | 20 67 65 74 63 6f 64 65 |code_int| getcode|
|000056a0| 20 50 5f 5f 28 28 46 49 | 4c 45 20 2a 69 66 70 29 | P__((FI|LE *ifp)|
|000056b0| 29 3b 0a 0a 53 74 61 74 | 75 73 0a 75 6e 63 6f 6d |);..Stat|us.uncom|
|000056c0| 70 72 65 73 73 28 68 65 | 61 64 65 72 2c 20 69 66 |press(he|ader, if|
|000056d0| 70 2c 20 6f 66 70 2c 20 | 74 79 70 65 29 0a 20 20 |p, ofp, |type). |
|000056e0| 20 20 48 65 61 64 65 72 | 20 2a 68 65 61 64 65 72 | Header| *header|
|000056f0| 3b 0a 20 20 20 20 46 49 | 4c 45 20 2a 69 66 70 2c |;. FI|LE *ifp,|
|00005700| 20 2a 6f 66 70 3b 0a 20 | 20 20 20 43 6f 6d 70 54 | *ofp;. | CompT|
|00005710| 79 70 65 20 74 79 70 65 | 3b 0a 7b 0a 20 20 20 20 |ype type|;.{. |
|00005720| 72 65 67 69 73 74 65 72 | 20 63 68 61 72 5f 74 79 |register| char_ty|
|00005730| 70 65 20 2a 73 74 61 63 | 6b 70 3b 0a 20 20 20 20 |pe *stac|kp;. |
|00005740| 72 65 67 69 73 74 65 72 | 20 69 6e 74 20 66 69 6e |register| int fin|
|00005750| 63 68 61 72 3b 0a 20 20 | 20 20 72 65 67 69 73 74 |char;. | regist|
|00005760| 65 72 20 63 6f 64 65 5f | 69 6e 74 20 63 6f 64 65 |er code_|int code|
|00005770| 2c 20 6f 6c 64 63 6f 64 | 65 2c 20 69 6e 63 6f 64 |, oldcod|e, incod|
|00005780| 65 3b 0a 20 20 20 20 63 | 68 61 72 20 2a 6d 65 73 |e;. c|har *mes|
|00005790| 73 61 67 65 3b 0a 0a 20 | 20 20 20 63 72 63 20 3d |sage;.. | crc =|
|000057a0| 20 30 3b 0a 20 20 20 20 | 63 6c 65 61 72 5f 66 6c | 0;. |clear_fl|
|000057b0| 67 20 3d 20 30 3b 0a 20 | 20 20 20 6f 66 66 73 65 |g = 0;. | offse|
|000057c0| 74 20 3d 20 30 3b 0a 20 | 20 20 20 73 69 7a 65 20 |t = 0;. | size |
|000057d0| 3d 20 30 3b 0a 20 20 20 | 20 72 65 61 64 73 69 7a |= 0;. | readsiz|
|000057e0| 65 20 3d 20 68 65 61 64 | 65 72 2d 3e 63 6f 6d 70 |e = head|er->comp|
|000057f0| 6c 65 6e 3b 0a 0a 20 20 | 20 20 69 66 20 28 74 79 |len;.. | if (ty|
|00005800| 70 65 20 3d 3d 20 53 51 | 55 41 53 48 29 0a 09 6d |pe == SQ|UASH)..m|
|00005810| 61 78 62 69 74 73 20 3d | 20 53 51 55 41 53 48 42 |axbits =| SQUASHB|
|00005820| 49 54 53 3b 0a 20 20 20 | 20 65 6c 73 65 20 7b 0a |ITS;. | else {.|
|00005830| 09 69 66 20 28 61 72 63 | 66 73 29 0a 09 09 6d 61 |.if (arc|fs)...ma|
|00005840| 78 62 69 74 73 20 3d 20 | 61 72 63 66 73 5f 6d 61 |xbits = |arcfs_ma|
|00005850| 78 62 69 74 73 3b 0a 09 | 65 6c 73 65 0a 09 7b 0a |xbits;..|else..{.|
|00005860| 09 20 20 20 20 6d 61 78 | 62 69 74 73 20 3d 20 72 |. max|bits = r|
|00005870| 65 61 64 5f 62 79 74 65 | 28 69 66 70 29 3b 0a 09 |ead_byte|(ifp);..|
|00005880| 20 20 20 20 72 65 61 64 | 73 69 7a 65 2d 2d 3b 0a | read|size--;.|
|00005890| 09 7d 0a 20 20 20 20 7d | 0a 20 20 20 20 6d 61 78 |.}. }|. max|
|000058a0| 6d 61 78 63 6f 64 65 20 | 3d 20 31 20 3c 3c 20 6d |maxcode |= 1 << m|
|000058b0| 61 78 62 69 74 73 3b 0a | 0a 20 20 20 20 2f 2a 0a |axbits;.|. /*.|
|000058c0| 20 20 20 20 20 2a 20 41 | 73 20 61 62 6f 76 65 2c | * A|s above,|
|000058d0| 20 69 6e 69 74 69 61 6c | 69 7a 65 20 74 68 65 20 | initial|ize the |
|000058e0| 66 69 72 73 74 20 32 35 | 36 20 65 6e 74 72 69 65 |first 25|6 entrie|
|000058f0| 73 20 69 6e 20 74 68 65 | 20 74 61 62 6c 65 2e 0a |s in the| table..|
|00005900| 20 20 20 20 20 2a 2f 0a | 20 20 20 20 6d 61 78 63 | */.| maxc|
|00005910| 6f 64 65 20 3d 20 4d 41 | 58 43 4f 44 45 28 6e 5f |ode = MA|XCODE(n_|
|00005920| 62 69 74 73 20 3d 20 49 | 4e 49 54 5f 42 49 54 53 |bits = I|NIT_BITS|
|00005930| 29 3b 0a 20 20 20 20 66 | 6f 72 20 28 63 6f 64 65 |);. f|or (code|
|00005940| 20 3d 20 32 35 35 3b 20 | 63 6f 64 65 20 3e 3d 20 | = 255; |code >= |
|00005950| 30 3b 20 63 6f 64 65 2d | 2d 29 20 7b 0a 09 74 61 |0; code-|-) {..ta|
|00005960| 62 5f 70 72 65 66 69 78 | 6f 66 28 63 6f 64 65 29 |b_prefix|of(code)|
|00005970| 20 3d 20 30 3b 0a 09 74 | 61 62 5f 73 75 66 66 69 | = 0;..t|ab_suffi|
|00005980| 78 6f 66 28 63 6f 64 65 | 29 20 3d 20 28 63 68 61 |xof(code|) = (cha|
|00005990| 72 5f 74 79 70 65 29 20 | 63 6f 64 65 3b 0a 20 20 |r_type) |code;. |
|000059a0| 20 20 7d 0a 20 20 20 20 | 66 72 65 65 5f 65 6e 74 | }. |free_ent|
|000059b0| 20 3d 20 46 49 52 53 54 | 3b 0a 0a 20 20 20 20 66 | = FIRST|;.. f|
|000059c0| 69 6e 63 68 61 72 20 3d | 20 6f 6c 64 63 6f 64 65 |inchar =| oldcode|
|000059d0| 20 3d 20 67 65 74 63 6f | 64 65 28 69 66 70 29 3b | = getco|de(ifp);|
|000059e0| 0a 20 20 20 20 69 66 20 | 28 6f 6c 64 63 6f 64 65 |. if |(oldcode|
|000059f0| 20 3d 3d 20 2d 31 29 09 | 2f 2a 20 45 4f 46 20 61 | == -1).|/* EOF a|
|00005a00| 6c 72 65 61 64 79 3f 20 | 2a 2f 0a 09 67 6f 74 6f |lready? |*/..goto|
|00005a10| 20 63 6f 6d 70 72 65 73 | 73 5f 65 78 69 74 3b 09 | compres|s_exit;.|
|00005a20| 2f 2a 20 47 65 74 20 6f | 75 74 20 6f 66 20 68 65 |/* Get o|ut of he|
|00005a30| 72 65 20 2a 2f 0a 0a 20 | 20 20 20 2f 2a 20 66 69 |re */.. | /* fi|
|00005a40| 72 73 74 20 63 6f 64 65 | 20 6d 75 73 74 20 62 65 |rst code| must be|
|00005a50| 20 38 20 62 69 74 73 20 | 3d 20 63 68 61 72 20 2a | 8 bits |= char *|
|00005a60| 2f 0a 20 20 20 20 69 66 | 20 28 74 79 70 65 20 3d |/. if| (type =|
|00005a70| 3d 20 43 52 55 4e 43 48 | 29 20 7b 0a 09 70 75 74 |= CRUNCH|) {..put|
|00005a80| 63 5f 69 6e 69 74 28 29 | 3b 0a 09 70 75 74 63 5f |c_init()|;..putc_|
|00005a90| 6e 63 72 28 6f 66 70 2c | 20 66 69 6e 63 68 61 72 |ncr(ofp,| finchar|
|00005aa0| 29 3b 0a 20 20 20 20 7d | 20 65 6c 73 65 20 7b 0a |);. }| else {.|
|00005ab0| 09 69 66 20 28 21 74 65 | 73 74 69 6e 67 29 0a 09 |.if (!te|sting)..|
|00005ac0| 20 20 20 20 77 72 69 74 | 65 5f 62 79 74 65 28 6f | writ|e_byte(o|
|00005ad0| 66 70 2c 20 66 69 6e 63 | 68 61 72 29 3b 0a 09 63 |fp, finc|har);..c|
|00005ae0| 61 6c 63 63 72 63 28 66 | 69 6e 63 68 61 72 29 3b |alccrc(f|inchar);|
|00005af0| 0a 20 20 20 20 7d 0a 0a | 20 20 20 20 73 74 61 63 |. }..| stac|
|00005b00| 6b 70 20 3d 20 64 65 5f | 73 74 61 63 6b 3b 0a 0a |kp = de_|stack;..|
|00005b10| 20 20 20 20 77 68 69 6c | 65 20 28 28 63 6f 64 65 | whil|e ((code|
|00005b20| 20 3d 20 67 65 74 63 6f | 64 65 28 69 66 70 29 29 | = getco|de(ifp))|
|00005b30| 20 21 3d 20 2d 31 29 20 | 7b 0a 09 69 66 20 28 63 | != -1) |{..if (c|
|00005b40| 68 65 63 6b 5f 73 74 72 | 65 61 6d 28 69 66 70 29 |heck_str|eam(ifp)|
|00005b50| 20 21 3d 20 46 4e 4f 45 | 52 52 29 0a 09 20 20 20 | != FNOE|RR).. |
|00005b60| 20 62 72 65 61 6b 3b 0a | 09 69 66 20 28 63 6f 64 | break;.|.if (cod|
|00005b70| 65 20 3d 3d 20 43 4c 45 | 41 52 29 20 7b 0a 09 20 |e == CLE|AR) {.. |
|00005b80| 20 20 20 66 6f 72 20 28 | 63 6f 64 65 20 3d 20 32 | for (|code = 2|
|00005b90| 35 35 3b 20 63 6f 64 65 | 20 3e 3d 20 30 3b 20 63 |55; code| >= 0; c|
|00005ba0| 6f 64 65 2d 2d 29 0a 09 | 09 74 61 62 5f 70 72 65 |ode--)..|.tab_pre|
|00005bb0| 66 69 78 6f 66 28 63 6f | 64 65 29 20 3d 20 30 3b |fixof(co|de) = 0;|
|00005bc0| 0a 09 20 20 20 20 63 6c | 65 61 72 5f 66 6c 67 20 |.. cl|ear_flg |
|00005bd0| 3d 20 31 3b 0a 09 20 20 | 20 20 66 72 65 65 5f 65 |= 1;.. | free_e|
|00005be0| 6e 74 20 3d 20 46 49 52 | 53 54 20 2d 20 31 3b 0a |nt = FIR|ST - 1;.|
|00005bf0| 09 20 20 20 20 69 66 20 | 28 28 63 6f 64 65 20 3d |. if |((code =|
|00005c00| 20 67 65 74 63 6f 64 65 | 28 69 66 70 29 29 20 3d | getcode|(ifp)) =|
|00005c10| 3d 20 2d 31 29 09 2f 2a | 20 4f 2c 20 75 6e 74 69 |= -1)./*| O, unti|
|00005c20| 6d 65 6c 79 20 64 65 61 | 74 68 21 20 2a 2f 0a 09 |mely dea|th! */..|
|00005c30| 09 62 72 65 61 6b 3b 0a | 09 7d 0a 09 69 6e 63 6f |.break;.|.}..inco|
|00005c40| 64 65 20 3d 20 63 6f 64 | 65 3b 0a 09 2f 2a 0a 09 |de = cod|e;../*..|
|00005c50| 20 2a 20 53 70 65 63 69 | 61 6c 20 63 61 73 65 20 | * Speci|al case |
|00005c60| 66 6f 72 20 4b 77 4b 77 | 4b 20 73 74 72 69 6e 67 |for KwKw|K string|
|00005c70| 2e 0a 09 20 2a 2f 0a 09 | 69 66 20 28 63 6f 64 65 |... */..|if (code|
|00005c80| 20 3e 3d 20 66 72 65 65 | 5f 65 6e 74 29 20 7b 0a | >= free|_ent) {.|
|00005c90| 09 20 20 20 20 2a 73 74 | 61 63 6b 70 2b 2b 20 3d |. *st|ackp++ =|
|00005ca0| 20 66 69 6e 63 68 61 72 | 3b 0a 09 20 20 20 20 63 | finchar|;.. c|
|00005cb0| 6f 64 65 20 3d 20 6f 6c | 64 63 6f 64 65 3b 0a 09 |ode = ol|dcode;..|
|00005cc0| 7d 0a 09 2f 2a 0a 09 20 | 2a 20 47 65 6e 65 72 61 |}../*.. |* Genera|
|00005cd0| 74 65 20 6f 75 74 70 75 | 74 20 63 68 61 72 61 63 |te outpu|t charac|
|00005ce0| 74 65 72 73 20 69 6e 20 | 72 65 76 65 72 73 65 20 |ters in |reverse |
|00005cf0| 6f 72 64 65 72 0a 09 20 | 2a 2f 0a 0a 09 77 68 69 |order.. |*/...whi|
|00005d00| 6c 65 20 28 63 6f 64 65 | 20 3e 3d 20 32 35 36 29 |le (code| >= 256)|
|00005d10| 20 7b 0a 09 20 20 20 20 | 2a 73 74 61 63 6b 70 2b | {.. |*stackp+|
|00005d20| 2b 20 3d 20 74 61 62 5f | 73 75 66 66 69 78 6f 66 |+ = tab_|suffixof|
|00005d30| 28 63 6f 64 65 29 3b 0a | 09 20 20 20 20 63 6f 64 |(code);.|. cod|
|00005d40| 65 20 3d 20 74 61 62 5f | 70 72 65 66 69 78 6f 66 |e = tab_|prefixof|
|00005d50| 28 63 6f 64 65 29 3b 0a | 09 7d 0a 09 2a 73 74 61 |(code);.|.}..*sta|
|00005d60| 63 6b 70 2b 2b 20 3d 20 | 66 69 6e 63 68 61 72 20 |ckp++ = |finchar |
|00005d70| 3d 20 74 61 62 5f 73 75 | 66 66 69 78 6f 66 28 63 |= tab_su|ffixof(c|
|00005d80| 6f 64 65 29 3b 0a 09 0a | 09 2f 2a 0a 09 20 2a 20 |ode);...|./*.. * |
|00005d90| 41 6e 64 20 70 75 74 20 | 74 68 65 6d 20 6f 75 74 |And put |them out|
|00005da0| 20 69 6e 20 66 6f 72 77 | 61 72 64 20 6f 72 64 65 | in forw|ard orde|
|00005db0| 72 0a 09 20 2a 2f 0a 09 | 77 68 69 6c 65 20 28 73 |r.. */..|while (s|
|00005dc0| 74 61 63 6b 70 20 3e 20 | 64 65 5f 73 74 61 63 6b |tackp > |de_stack|
|00005dd0| 29 20 7b 0a 09 20 20 20 | 20 73 74 61 63 6b 70 2d |) {.. | stackp-|
|00005de0| 2d 3b 0a 09 20 20 20 20 | 69 66 20 28 74 79 70 65 |-;.. |if (type|
|00005df0| 20 3d 3d 20 43 52 55 4e | 43 48 29 0a 09 09 70 75 | == CRUN|CH)...pu|
|00005e00| 74 63 5f 6e 63 72 28 6f | 66 70 2c 20 2a 73 74 61 |tc_ncr(o|fp, *sta|
|00005e10| 63 6b 70 29 3b 0a 09 20 | 20 20 20 65 6c 73 65 20 |ckp);.. | else |
|00005e20| 7b 0a 09 09 69 66 20 28 | 21 74 65 73 74 69 6e 67 |{...if (|!testing|
|00005e30| 29 0a 09 09 20 20 20 20 | 77 72 69 74 65 5f 62 79 |)... |write_by|
|00005e40| 74 65 28 6f 66 70 2c 20 | 2a 73 74 61 63 6b 70 29 |te(ofp, |*stackp)|
|00005e50| 3b 0a 09 09 63 61 6c 63 | 63 72 63 28 2a 73 74 61 |;...calc|crc(*sta|
|00005e60| 63 6b 70 29 3b 0a 09 20 | 20 20 20 7d 0a 09 7d 0a |ckp);.. | }..}.|
|00005e70| 0a 09 2f 2a 0a 09 20 2a | 20 47 65 6e 65 72 61 74 |../*.. *| Generat|
|00005e80| 65 20 74 68 65 20 6e 65 | 77 20 65 6e 74 72 79 2e |e the ne|w entry.|
|00005e90| 0a 09 20 2a 2f 0a 09 69 | 66 20 28 28 63 6f 64 65 |.. */..i|f ((code|
|00005ea0| 20 3d 20 66 72 65 65 5f | 65 6e 74 29 20 3c 20 6d | = free_|ent) < m|
|00005eb0| 61 78 6d 61 78 63 6f 64 | 65 29 20 7b 0a 09 20 20 |axmaxcod|e) {.. |
|00005ec0| 20 20 74 61 62 5f 70 72 | 65 66 69 78 6f 66 28 63 | tab_pr|efixof(c|
|00005ed0| 6f 64 65 29 20 3d 20 6f | 6c 64 63 6f 64 65 3b 0a |ode) = o|ldcode;.|
|00005ee0| 09 20 20 20 20 74 61 62 | 5f 73 75 66 66 69 78 6f |. tab|_suffixo|
|00005ef0| 66 28 63 6f 64 65 29 20 | 3d 20 66 69 6e 63 68 61 |f(code) |= fincha|
|00005f00| 72 3b 0a 09 20 20 20 20 | 66 72 65 65 5f 65 6e 74 |r;.. |free_ent|
|00005f10| 20 3d 20 63 6f 64 65 20 | 2b 20 31 3b 0a 09 7d 0a | = code |+ 1;..}.|
|00005f20| 09 2f 2a 0a 09 20 2a 20 | 52 65 6d 65 6d 62 65 72 |./*.. * |Remember|
|00005f30| 20 70 72 65 76 69 6f 75 | 73 20 63 6f 64 65 2e 0a | previou|s code..|
|00005f40| 09 20 2a 2f 0a 09 6f 6c | 64 63 6f 64 65 20 3d 20 |. */..ol|dcode = |
|00005f50| 69 6e 63 6f 64 65 3b 0a | 20 20 20 20 7d 0a 63 6f |incode;.| }.co|
|00005f60| 6d 70 72 65 73 73 5f 65 | 78 69 74 3a 0a 20 20 20 |mpress_e|xit:. |
|00005f70| 20 69 66 20 28 63 68 65 | 63 6b 5f 73 74 72 65 61 | if (che|ck_strea|
|00005f80| 6d 28 69 66 70 29 20 3d | 3d 20 46 52 57 45 52 52 |m(ifp) =|= FRWERR|
|00005f90| 29 0a 09 72 65 74 75 72 | 6e 20 28 52 45 52 52 29 |)..retur|n (RERR)|
|00005fa0| 3b 0a 20 20 20 20 69 66 | 20 28 21 74 65 73 74 69 |;. if| (!testi|
|00005fb0| 6e 67 20 26 26 20 63 68 | 65 63 6b 5f 73 74 72 65 |ng && ch|eck_stre|
|00005fc0| 61 6d 28 6f 66 70 29 20 | 3d 3d 20 46 52 57 45 52 |am(ofp) |== FRWER|
|00005fd0| 52 29 0a 09 72 65 74 75 | 72 6e 20 28 57 45 52 52 |R)..retu|rn (WERR|
|00005fe0| 29 3b 0a 20 20 20 20 69 | 66 20 28 28 48 61 6c 66 |);. i|f ((Half|
|00005ff0| 77 6f 72 64 29 63 72 63 | 20 21 3d 20 68 65 61 64 |word)crc| != head|
|00006000| 65 72 2d 3e 63 72 63 29 | 0a 09 72 65 74 75 72 6e |er->crc)|..return|
|00006010| 20 28 43 52 43 45 52 52 | 29 3b 0a 20 20 20 20 69 | (CRCERR|);. i|
|00006020| 66 20 28 74 65 73 74 69 | 6e 67 29 0a 09 73 77 69 |f (testi|ng)..swi|
|00006030| 74 63 68 28 74 79 70 65 | 29 20 7b 0a 09 63 61 73 |tch(type|) {..cas|
|00006040| 65 20 43 4f 4d 50 52 45 | 53 53 3a 0a 09 20 20 20 |e COMPRE|SS:.. |
|00006050| 20 6d 65 73 73 61 67 65 | 20 3d 20 22 4f 4b 20 28 | message| = "OK (|
|00006060| 63 6f 6d 70 72 65 73 73 | 65 64 29 22 3b 0a 09 20 |compress|ed)";.. |
|00006070| 20 20 20 62 72 65 61 6b | 3b 0a 09 63 61 73 65 20 | break|;..case |
|00006080| 43 52 55 4e 43 48 3a 0a | 09 20 20 20 20 6d 65 73 |CRUNCH:.|. mes|
|00006090| 73 61 67 65 20 3d 20 22 | 4f 4b 20 28 63 72 75 6e |sage = "|OK (crun|
|000060a0| 63 68 65 64 29 22 3b 0a | 09 20 20 20 20 62 72 65 |ched)";.|. bre|
|000060b0| 61 6b 3b 0a 09 63 61 73 | 65 20 53 51 55 41 53 48 |ak;..cas|e SQUASH|
|000060c0| 3a 0a 09 20 20 20 20 6d | 65 73 73 61 67 65 20 3d |:.. m|essage =|
|000060d0| 20 22 4f 4b 20 28 73 71 | 75 61 73 68 65 64 29 22 | "OK (sq|uashed)"|
|000060e0| 3b 0a 09 20 20 20 20 62 | 72 65 61 6b 3b 0a 09 64 |;.. b|reak;..d|
|000060f0| 65 66 61 75 6c 74 3a 0a | 09 20 20 20 20 6d 65 73 |efault:.|. mes|
|00006100| 73 61 67 65 20 3d 20 22 | 69 6e 74 65 72 6e 61 6c |sage = "|internal|
|00006110| 20 65 72 72 6f 72 22 3b | 0a 09 20 20 20 20 62 72 | error";|.. br|
|00006120| 65 61 6b 3b 0a 09 7d 0a | 20 20 20 20 65 6c 73 65 |eak;..}.| else|
|00006130| 0a 09 73 77 69 74 63 68 | 28 74 79 70 65 29 20 7b |..switch|(type) {|
|00006140| 0a 09 63 61 73 65 20 43 | 4f 4d 50 52 45 53 53 3a |..case C|OMPRESS:|
|00006150| 0a 09 20 20 20 20 6d 65 | 73 73 61 67 65 20 3d 20 |.. me|ssage = |
|00006160| 22 75 6e 63 6f 6d 70 72 | 65 73 73 65 64 22 3b 0a |"uncompr|essed";.|
|00006170| 09 20 20 20 20 62 72 65 | 61 6b 3b 0a 09 63 61 73 |. bre|ak;..cas|
|00006180| 65 20 43 52 55 4e 43 48 | 3a 0a 09 20 20 20 20 6d |e CRUNCH|:.. m|
|00006190| 65 73 73 61 67 65 20 3d | 20 22 75 6e 63 72 75 6e |essage =| "uncrun|
|000061a0| 63 68 65 64 22 3b 0a 09 | 20 20 20 20 62 72 65 61 |ched";..| brea|
|000061b0| 6b 3b 0a 09 63 61 73 65 | 20 53 51 55 41 53 48 3a |k;..case| SQUASH:|
|000061c0| 0a 09 20 20 20 20 6d 65 | 73 73 61 67 65 20 3d 20 |.. me|ssage = |
|000061d0| 22 75 6e 73 71 75 61 73 | 68 65 64 22 3b 0a 09 20 |"unsquas|hed";.. |
|000061e0| 20 20 20 62 72 65 61 6b | 3b 0a 09 64 65 66 61 75 | break|;..defau|
|000061f0| 6c 74 3a 0a 09 20 20 20 | 20 6d 65 73 73 61 67 65 |lt:.. | message|
|00006200| 20 3d 20 22 69 6e 74 65 | 72 6e 61 6c 20 65 72 72 | = "inte|rnal err|
|00006210| 6f 72 22 3b 0a 09 20 20 | 20 20 62 72 65 61 6b 3b |or";.. | break;|
|00006220| 0a 09 7d 0a 20 20 20 20 | 69 66 20 28 21 71 75 69 |..}. |if (!qui|
|00006230| 65 74 29 20 70 72 69 6e | 74 66 28 6d 65 73 73 61 |et) prin|tf(messa|
|00006240| 67 65 29 3b 0a 20 20 20 | 20 72 65 74 75 72 6e 20 |ge);. | return |
|00006250| 28 4e 4f 45 52 52 29 3b | 0a 7d 0a 0a 2f 2a 0a 20 |(NOERR);|.}../*. |
|00006260| 2a 20 52 65 61 64 20 6f | 6e 65 20 63 6f 64 65 20 |* Read o|ne code |
|00006270| 66 72 6f 6d 20 74 68 65 | 20 69 6e 70 75 74 2e 20 |from the| input. |
|00006280| 20 49 66 20 45 4f 46 2c | 20 72 65 74 75 72 6e 20 | If EOF,| return |
|00006290| 2d 31 2e 0a 20 2a 2f 0a | 73 74 61 74 69 63 20 63 |-1.. */.|static c|
|000062a0| 6f 64 65 5f 69 6e 74 0a | 67 65 74 63 6f 64 65 28 |ode_int.|getcode(|
|000062b0| 69 66 70 29 0a 20 20 20 | 20 46 49 4c 45 20 2a 69 |ifp). | FILE *i|
|000062c0| 66 70 3b 0a 7b 0a 20 20 | 20 20 72 65 67 69 73 74 |fp;.{. | regist|
|000062d0| 65 72 20 63 6f 64 65 5f | 69 6e 74 20 63 6f 64 65 |er code_|int code|
|000062e0| 3b 0a 20 20 20 20 73 74 | 61 74 69 63 20 63 68 61 |;. st|atic cha|
|000062f0| 72 5f 74 79 70 65 20 62 | 75 66 5b 43 4f 4d 50 52 |r_type b|uf[COMPR|
|00006300| 45 53 53 42 49 54 53 5d | 3b 0a 20 20 20 20 72 65 |ESSBITS]|;. re|
|00006310| 67 69 73 74 65 72 20 69 | 6e 74 20 72 5f 6f 66 66 |gister i|nt r_off|
|00006320| 2c 20 62 69 74 73 3b 0a | 20 20 20 20 72 65 67 69 |, bits;.| regi|
|00006330| 73 74 65 72 20 63 68 61 | 72 5f 74 79 70 65 20 2a |ster cha|r_type *|
|00006340| 62 70 20 3d 20 62 75 66 | 3b 0a 0a 20 20 20 20 69 |bp = buf|;.. i|
|00006350| 66 20 28 63 6c 65 61 72 | 5f 66 6c 67 20 3e 20 30 |f (clear|_flg > 0|
|00006360| 20 7c 7c 20 6f 66 66 73 | 65 74 20 3e 3d 20 73 69 | || offs|et >= si|
|00006370| 7a 65 20 7c 7c 20 66 72 | 65 65 5f 65 6e 74 20 3e |ze || fr|ee_ent >|
|00006380| 20 6d 61 78 63 6f 64 65 | 29 20 7b 0a 09 2f 2a 0a | maxcode|) {../*.|
|00006390| 09 20 2a 20 49 66 20 74 | 68 65 20 6e 65 78 74 20 |. * If t|he next |
|000063a0| 65 6e 74 72 79 20 77 69 | 6c 6c 20 62 65 20 74 6f |entry wi|ll be to|
|000063b0| 6f 20 62 69 67 20 66 6f | 72 20 74 68 65 20 63 75 |o big fo|r the cu|
|000063c0| 72 72 65 6e 74 20 63 6f | 64 65 0a 09 20 2a 20 73 |rrent co|de.. * s|
|000063d0| 69 7a 65 2c 20 74 68 65 | 6e 20 77 65 20 6d 75 73 |ize, the|n we mus|
|000063e0| 74 20 69 6e 63 72 65 61 | 73 65 20 74 68 65 20 73 |t increa|se the s|
|000063f0| 69 7a 65 2e 20 20 54 68 | 69 73 20 69 6d 70 6c 69 |ize. Th|is impli|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.