home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume11 / newsbreak1.08 < prev    next >
SHell self-extracting ARchive  |  1990-03-25  |  13.7 KB

view JSON data     |     view as text     |     open on a Mac     |     open on a PC

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

You can browse this item here: newsbreak1.08

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file C source, ASCII text default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/329 Shell Archive Format default
100% detectItEasy Format: plain text[LF] default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 4e 65 77 73 67 72 6f 75 | 70 73 3a 20 63 6f 6d 70 |Newsgrou|ps: comp|
|00000010| 2e 73 6f 75 72 63 65 73 | 2e 6d 69 73 63 0a 73 75 |.sources|.misc.su|
|00000020| 62 6a 65 63 74 3a 20 76 | 31 31 69 30 36 31 3a 20 |bject: v|11i061: |
|00000030| 6e 65 77 73 62 72 65 61 | 6b 20 31 2e 30 38 0a 66 |newsbrea|k 1.08.f|
|00000040| 72 6f 6d 3a 20 67 72 77 | 61 6c 74 65 72 40 77 61 |rom: grw|alter@wa|
|00000050| 74 66 75 6e 2e 77 61 74 | 65 72 6c 6f 6f 2e 65 64 |tfun.wat|erloo.ed|
|00000060| 75 20 28 46 72 65 64 20 | 57 61 6c 74 65 72 29 0a |u (Fred |Walter).|
|00000070| 53 65 6e 64 65 72 3a 20 | 61 6c 6c 62 65 72 79 40 |Sender: |allbery@|
|00000080| 75 75 6e 65 74 2e 55 55 | 2e 4e 45 54 20 28 42 72 |uunet.UU|.NET (Br|
|00000090| 61 6e 64 6f 6e 20 53 2e | 20 41 6c 6c 62 65 72 79 |andon S.| Allbery|
|000000a0| 20 2d 20 63 6f 6d 70 2e | 73 6f 75 72 63 65 73 2e | - comp.|sources.|
|000000b0| 6d 69 73 63 29 0a 0a 50 | 6f 73 74 69 6e 67 2d 6e |misc)..P|osting-n|
|000000c0| 75 6d 62 65 72 3a 20 56 | 6f 6c 75 6d 65 20 31 31 |umber: V|olume 11|
|000000d0| 2c 20 49 73 73 75 65 20 | 36 31 0a 53 75 62 6d 69 |, Issue |61.Submi|
|000000e0| 74 74 65 64 2d 62 79 3a | 20 67 72 77 61 6c 74 65 |tted-by:| grwalte|
|000000f0| 72 40 77 61 74 66 75 6e | 2e 77 61 74 65 72 6c 6f |r@watfun|.waterlo|
|00000100| 6f 2e 65 64 75 20 28 46 | 72 65 64 20 57 61 6c 74 |o.edu (F|red Walt|
|00000110| 65 72 29 0a 41 72 63 68 | 69 76 65 2d 6e 61 6d 65 |er).Arch|ive-name|
|00000120| 3a 20 6e 65 77 73 62 72 | 65 61 6b 31 2e 30 38 0a |: newsbr|eak1.08.|
|00000130| 0a 49 27 76 65 20 6d 61 | 64 65 20 73 6f 6d 65 20 |.I've ma|de some |
|00000140| 63 68 61 6e 67 65 73 20 | 74 6f 20 6e 65 77 73 62 |changes |to newsb|
|00000150| 72 65 61 6b 20 73 69 6e | 63 65 20 74 68 65 20 6c |reak sin|ce the l|
|00000160| 61 73 74 20 72 65 6c 65 | 61 73 65 2e 20 48 65 72 |ast rele|ase. Her|
|00000170| 65 20 69 73 20 61 0a 73 | 75 6d 6d 61 72 79 20 3a |e is a.s|ummary :|
|00000180| 0a 0a 2a 20 31 2e 30 37 | 20 2d 20 61 64 64 65 64 |..* 1.07| - added|
|00000190| 20 69 66 64 65 66 27 73 | 20 61 72 6f 75 6e 64 20 | ifdef's| around |
|000001a0| 63 6f 64 65 20 6e 65 65 | 64 65 64 20 73 6f 20 74 |code nee|ded so t|
|000001b0| 68 69 73 20 63 6f 6d 70 | 69 6c 65 73 20 75 6e 64 |his comp|iles und|
|000001c0| 65 72 20 53 79 73 74 65 | 6d 20 56 0a 2a 20 20 20 |er Syste|m V.* |
|000001d0| 20 20 20 2d 20 63 68 61 | 6e 67 65 73 20 62 79 20 | - cha|nges by |
|000001e0| 61 6d 65 73 21 75 74 73 | 2e 61 6d 64 61 68 6c 2e |ames!uts|.amdahl.|
|000001f0| 63 6f 6d 21 64 77 6c 31 | 30 40 6d 61 69 6c 72 75 |com!dwl1|0@mailru|
|00000200| 73 20 28 44 61 76 65 20 | 4c 6f 77 72 65 79 29 0a |s (Dave |Lowrey).|
|00000210| 2a 20 31 2e 30 38 20 2d | 20 6e 6f 77 20 63 68 65 |* 1.08 -| now che|
|00000220| 63 6b 20 66 6f 72 20 22 | 3a 20 54 68 69 73 20 69 |ck for "|: This i|
|00000230| 73 20 61 20 73 68 61 72 | 20 61 72 63 68 69 76 65 |s a shar| archive|
|00000240| 2e 22 20 77 68 65 6e 20 | 63 68 65 63 6b 69 6e 67 |." when |checking|
|00000250| 0a 2a 20 20 20 20 20 20 | 20 20 69 66 20 61 20 66 |.* | if a f|
|00000260| 69 6c 65 20 69 73 20 61 | 20 73 68 61 72 20 61 72 |ile is a| shar ar|
|00000270| 63 68 69 76 65 0a 2a 20 | 20 20 20 20 20 2d 20 6e |chive.* | - n|
|00000280| 6f 77 20 63 68 65 63 6b | 20 66 6f 72 20 22 23 20 |ow check| for "# |
|00000290| 54 68 69 73 20 69 73 20 | 74 68 65 20 66 69 72 73 |This is |the firs|
|000002a0| 74 20 6c 69 6e 65 20 6f | 66 20 61 20 5c 22 73 68 |t line o|f a \"sh|
|000002b0| 65 6c 6c 20 61 72 63 68 | 69 76 65 5c 22 22 0a 2a |ell arch|ive\"".*|
|000002c0| 20 20 20 20 20 20 20 20 | 77 68 65 6e 20 63 68 65 | |when che|
|000002d0| 63 6b 69 6e 67 20 69 66 | 20 61 20 66 69 6c 65 20 |cking if| a file |
|000002e0| 69 73 20 61 20 73 68 61 | 72 20 61 72 63 68 69 76 |is a sha|r archiv|
|000002f0| 65 0a 2a 20 20 20 20 20 | 20 2d 20 62 75 69 6c 64 |e.* | - build|
|00000300| 20 75 70 20 61 20 6c 69 | 73 74 20 6f 66 20 66 69 | up a li|st of fi|
|00000310| 6c 65 73 20 69 6e 20 74 | 68 65 20 63 75 72 72 65 |les in t|he curre|
|00000320| 6e 74 20 64 69 72 65 63 | 74 6f 72 79 20 62 65 66 |nt direc|tory bef|
|00000330| 6f 72 65 20 75 6e 73 68 | 61 72 27 69 6e 67 0a 2a |ore unsh|ar'ing.*|
|00000340| 20 20 20 20 20 20 2d 20 | 73 63 61 6e 20 74 68 65 | - |scan the|
|00000350| 73 65 20 66 69 6c 65 73 | 20 74 6f 20 73 65 65 20 |se files| to see |
|00000360| 77 68 69 63 68 20 6f 6e | 65 73 20 73 68 6f 75 6c |which on|es shoul|
|00000370| 64 20 62 65 20 75 6e 73 | 68 61 72 27 65 64 20 61 |d be uns|har'ed a|
|00000380| 6e 64 20 74 72 79 0a 2a | 20 20 20 20 20 20 20 20 |nd try.*| |
|00000390| 74 6f 20 64 65 74 65 72 | 6d 69 6e 65 20 74 68 65 |to deter|mine the|
|000003a0| 20 62 65 73 74 20 6f 72 | 64 65 72 69 6e 67 20 66 | best or|dering f|
|000003b0| 6f 72 20 75 6e 73 68 61 | 72 27 69 6e 67 20 28 75 |or unsha|r'ing (u|
|000003c0| 73 69 6e 67 20 74 68 65 | 20 73 65 63 6f 6e 64 61 |sing the| seconda|
|000003d0| 72 79 0a 2a 20 20 20 20 | 20 20 20 20 68 65 61 64 |ry.* | head|
|000003e0| 65 72 20 22 41 72 63 68 | 69 76 65 2d 6e 61 6d 65 |er "Arch|ive-name|
|000003f0| 3a 22 20 69 66 20 69 74 | 20 65 78 69 73 74 73 2c |:" if it| exists,|
|00000400| 20 6f 74 68 65 72 77 69 | 73 65 20 75 73 69 6e 67 | otherwi|se using|
|00000410| 20 66 69 6c 65 20 6e 61 | 6d 65 29 0a 2a 20 20 20 | file na|me).* |
|00000420| 20 20 20 2d 20 70 72 69 | 6e 74 20 77 68 61 74 20 | - pri|nt what |
|00000430| 64 69 72 65 63 74 6f 72 | 79 20 69 73 20 62 65 69 |director|y is bei|
|00000440| 6e 67 20 73 65 61 72 63 | 68 65 64 20 66 6f 72 20 |ng searc|hed for |
|00000450| 75 75 65 6e 63 6f 64 65 | 64 20 66 69 6c 65 73 0a |uuencode|d files.|
|00000460| 2a 20 20 20 20 20 20 2d | 20 70 72 69 6e 74 20 77 |* -| print w|
|00000470| 68 61 74 20 69 73 20 62 | 65 69 6e 67 20 75 75 64 |hat is b|eing uud|
|00000480| 65 63 6f 64 65 64 0a 0a | 4e 6f 77 2c 20 69 66 20 |ecoded..|Now, if |
|00000490| 79 6f 75 20 68 61 76 65 | 20 61 20 6d 75 6c 74 69 |you have| a multi|
|000004a0| 2d 73 68 61 72 20 64 69 | 73 74 72 69 62 75 74 69 |-shar di|stributi|
|000004b0| 6f 6e 2c 20 69 6e 20 77 | 68 69 63 68 20 74 68 65 |on, in w|hich the|
|000004c0| 20 6f 72 64 65 72 20 74 | 68 61 74 20 69 74 20 69 | order t|hat it i|
|000004d0| 73 0a 75 6e 70 61 63 6b | 65 64 20 6d 61 74 74 65 |s.unpack|ed matte|
|000004e0| 72 73 2c 20 61 6e 64 20 | 74 68 65 79 20 64 6f 6e |rs, and |they don|
|000004f0| 27 74 20 61 72 72 69 76 | 65 20 61 74 20 79 6f 75 |'t arriv|e at you|
|00000500| 72 20 73 79 73 74 65 6d | 20 69 6e 20 74 68 65 20 |r system| in the |
|00000510| 63 6f 72 72 65 63 74 0a | 6f 72 64 65 72 2c 20 62 |correct.|order, b|
|00000520| 75 74 20 74 68 65 20 70 | 6f 73 74 69 6e 67 73 20 |ut the p|ostings |
|00000530| 64 6f 20 68 61 76 65 20 | 61 6e 20 41 72 63 68 69 |do have |an Archi|
|00000540| 76 65 2d 6e 61 6d 65 20 | 73 65 63 6f 6e 64 61 72 |ve-name |secondar|
|00000550| 79 20 68 65 61 64 65 72 | 20 77 68 69 63 68 0a 63 |y header| which.c|
|00000560| 6f 72 72 65 63 74 6c 79 | 20 72 65 66 6c 65 63 74 |orrectly| reflect|
|00000570| 73 20 74 68 65 20 6f 72 | 64 65 72 20 6e 65 65 64 |s the or|der need|
|00000580| 65 64 20 28 49 45 2e 20 | 62 79 20 70 61 72 74 23 |ed (IE. |by part#|
|00000590| 29 2c 20 74 68 65 6e 20 | 69 74 20 77 69 6c 6c 20 |), then |it will |
|000005a0| 62 65 20 75 6e 70 61 63 | 6b 65 64 0a 63 6f 72 72 |be unpac|ked.corr|
|000005b0| 65 63 74 6c 79 2e 0a 0a | 57 68 65 77 2c 20 77 68 |ectly...|Whew, wh|
|000005c0| 61 74 20 61 20 72 75 6e | 2d 6f 6e 20 73 65 6e 74 |at a run|-on sent|
|000005d0| 65 6e 63 65 2e 0a 0a 09 | 66 72 65 64 0a 0a 2d 2d |ence....|fred..--|
|000005e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 63 75 74 2d 6d |--------|---cut-m|
|000005f0| 65 2d 68 65 72 65 2d 6f | 72 2d 75 73 65 2d 6e 65 |e-here-o|r-use-ne|
|00000600| 77 73 62 72 65 61 6b 2d | 2d 2d 2d 2d 2d 2d 2d 2d |wsbreak-|--------|
|00000610| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0a 23 21 20 2f 62 |--------|--.#! /b|
|00000620| 69 6e 2f 73 68 0a 23 20 | 54 68 69 73 20 69 73 20 |in/sh.# |This is |
|00000630| 61 20 73 68 65 6c 6c 20 | 61 72 63 68 69 76 65 2e |a shell |archive.|
|00000640| 20 20 52 65 6d 6f 76 65 | 20 61 6e 79 74 68 69 6e | Remove| anythin|
|00000650| 67 20 62 65 66 6f 72 65 | 20 74 68 69 73 20 6c 69 |g before| this li|
|00000660| 6e 65 2c 20 74 68 65 6e | 20 75 6e 70 61 63 6b 0a |ne, then| unpack.|
|00000670| 23 20 69 74 20 62 79 20 | 73 61 76 69 6e 67 20 69 |# it by |saving i|
|00000680| 74 20 69 6e 74 6f 20 61 | 20 66 69 6c 65 20 61 6e |t into a| file an|
|00000690| 64 20 74 79 70 69 6e 67 | 20 22 73 68 20 66 69 6c |d typing| "sh fil|
|000006a0| 65 22 2e 20 20 54 6f 20 | 6f 76 65 72 77 72 69 74 |e". To |overwrit|
|000006b0| 65 20 65 78 69 73 74 69 | 6e 67 0a 23 20 66 69 6c |e existi|ng.# fil|
|000006c0| 65 73 2c 20 74 79 70 65 | 20 22 73 68 20 66 69 6c |es, type| "sh fil|
|000006d0| 65 20 2d 63 22 2e 20 20 | 59 6f 75 20 63 61 6e 20 |e -c". |You can |
|000006e0| 61 6c 73 6f 20 66 65 65 | 64 20 74 68 69 73 20 61 |also fee|d this a|
|000006f0| 73 20 73 74 61 6e 64 61 | 72 64 20 69 6e 70 75 74 |s standa|rd input|
|00000700| 20 76 69 61 0a 23 20 75 | 6e 73 68 61 72 2c 20 6f | via.# u|nshar, o|
|00000710| 72 20 62 79 20 74 79 70 | 69 6e 67 20 22 73 68 20 |r by typ|ing "sh |
|00000720| 3c 66 69 6c 65 22 2c 20 | 65 2e 67 2e 2e 20 20 49 |<file", |e.g.. I|
|00000730| 66 20 74 68 69 73 20 61 | 72 63 68 69 76 65 20 69 |f this a|rchive i|
|00000740| 73 20 63 6f 6d 70 6c 65 | 74 65 2c 20 79 6f 75 0a |s comple|te, you.|
|00000750| 23 20 77 69 6c 6c 20 73 | 65 65 20 74 68 65 20 66 |# will s|ee the f|
|00000760| 6f 6c 6c 6f 77 69 6e 67 | 20 6d 65 73 73 61 67 65 |ollowing| message|
|00000770| 20 61 74 20 74 68 65 20 | 65 6e 64 3a 0a 23 09 09 | at the |end:.#..|
|00000780| 22 45 6e 64 20 6f 66 20 | 73 68 65 6c 6c 20 61 72 |"End of |shell ar|
|00000790| 63 68 69 76 65 2e 22 0a | 23 20 43 6f 6e 74 65 6e |chive.".|# Conten|
|000007a0| 74 73 3a 20 20 6e 65 77 | 73 62 72 65 61 6b 2e 63 |ts: new|sbreak.c|
|000007b0| 0a 23 20 57 72 61 70 70 | 65 64 20 62 79 20 67 72 |.# Wrapp|ed by gr|
|000007c0| 77 61 6c 74 65 72 40 77 | 61 74 66 75 6e 20 6f 6e |walter@w|atfun on|
|000007d0| 20 54 75 65 20 4d 61 72 | 20 31 33 20 31 31 3a 32 | Tue Mar| 13 11:2|
|000007e0| 36 3a 33 37 20 31 39 39 | 30 0a 50 41 54 48 3d 2f |6:37 199|0.PATH=/|
|000007f0| 62 69 6e 3a 2f 75 73 72 | 2f 62 69 6e 3a 2f 75 73 |bin:/usr|/bin:/us|
|00000800| 72 2f 75 63 62 20 3b 20 | 65 78 70 6f 72 74 20 50 |r/ucb ; |export P|
|00000810| 41 54 48 0a 69 66 20 74 | 65 73 74 20 2d 66 20 27 |ATH.if t|est -f '|
|00000820| 6e 65 77 73 62 72 65 61 | 6b 2e 63 27 20 2d 61 20 |newsbrea|k.c' -a |
|00000830| 22 24 7b 31 7d 22 20 21 | 3d 20 22 2d 63 22 20 3b |"${1}" !|= "-c" ;|
|00000840| 20 74 68 65 6e 20 0a 20 | 20 65 63 68 6f 20 73 68 | then . | echo sh|
|00000850| 61 72 3a 20 57 69 6c 6c | 20 6e 6f 74 20 63 6c 6f |ar: Will| not clo|
|00000860| 62 62 65 72 20 65 78 69 | 73 74 69 6e 67 20 66 69 |bber exi|sting fi|
|00000870| 6c 65 20 5c 22 27 6e 65 | 77 73 62 72 65 61 6b 2e |le \"'ne|wsbreak.|
|00000880| 63 27 5c 22 0a 65 6c 73 | 65 0a 65 63 68 6f 20 73 |c'\".els|e.echo s|
|00000890| 68 61 72 3a 20 45 78 74 | 72 61 63 74 69 6e 67 20 |har: Ext|racting |
|000008a0| 5c 22 27 6e 65 77 73 62 | 72 65 61 6b 2e 63 27 5c |\"'newsb|reak.c'\|
|000008b0| 22 20 5c 28 31 30 37 39 | 32 20 63 68 61 72 61 63 |" \(1079|2 charac|
|000008c0| 74 65 72 73 5c 29 0a 73 | 65 64 20 22 73 2f 5e 58 |ters\).s|ed "s/^X|
|000008d0| 2f 2f 22 20 3e 27 6e 65 | 77 73 62 72 65 61 6b 2e |//" >'ne|wsbreak.|
|000008e0| 63 27 20 3c 3c 27 45 4e | 44 5f 4f 46 5f 46 49 4c |c' <<'EN|D_OF_FIL|
|000008f0| 45 27 0a 58 23 64 65 66 | 69 6e 65 20 56 45 52 53 |E'.X#def|ine VERS|
|00000900| 49 4f 4e 20 22 6e 65 77 | 73 62 72 65 61 6b 20 31 |ION "new|sbreak 1|
|00000910| 2e 30 38 20 62 79 20 47 | 2e 20 52 2e 20 57 61 6c |.08 by G|. R. Wal|
|00000920| 74 65 72 22 0a 58 0a 58 | 2f 2a 0a 58 20 2a 20 6e |ter".X.X|/*.X * n|
|00000930| 65 77 73 62 72 65 61 6b | 2e 63 0a 58 20 2a 0a 58 |ewsbreak|.c.X *.X|
|00000940| 20 2a 20 62 79 20 47 2e | 20 52 2e 20 57 61 6c 74 | * by G.| R. Walt|
|00000950| 65 72 20 28 46 72 65 64 | 29 20 44 65 63 65 6d 62 |er (Fred|) Decemb|
|00000960| 65 72 20 33 30 2c 20 31 | 39 38 38 0a 58 20 2a 0a |er 30, 1|988.X *.|
|00000970| 58 20 2a 20 54 4f 20 43 | 4f 4d 50 49 4c 45 3a 0a |X * TO C|OMPILE:.|
|00000980| 58 20 2a 20 20 20 20 20 | 55 6e 64 65 72 20 42 53 |X * |Under BS|
|00000990| 44 20 34 2e 33 0a 58 20 | 2a 20 20 20 20 20 20 20 |D 4.3.X |* |
|000009a0| 20 20 63 63 20 6e 65 77 | 73 62 72 65 61 6b 2e 63 | cc new|sbreak.c|
|000009b0| 20 2d 6f 20 6e 65 77 73 | 62 72 65 61 6b 2e 63 0a | -o news|break.c.|
|000009c0| 58 20 2a 20 20 20 20 20 | 55 6e 64 65 72 20 53 79 |X * |Under Sy|
|000009d0| 73 74 65 6d 20 56 20 28 | 6f 6e 6c 79 20 74 68 6f |stem V (|only tho|
|000009e0| 73 65 20 76 61 72 69 61 | 6e 74 73 20 74 68 61 74 |se varia|nts that|
|000009f0| 20 61 6c 6c 6f 77 20 2d | 6c 62 73 64 2c 20 77 68 | allow -|lbsd, wh|
|00000a00| 69 63 68 20 69 73 0a 58 | 20 2a 20 20 20 20 20 20 |ich is.X| * |
|00000a10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 72 | | r|
|00000a20| 65 71 75 69 72 65 64 20 | 66 6f 72 20 73 63 61 6e |equired |for scan|
|00000a30| 64 69 72 20 61 6e 64 20 | 61 6c 70 68 61 73 6f 72 |dir and |alphasor|
|00000a40| 74 29 0a 58 20 2a 20 20 | 20 20 20 20 20 20 20 63 |t).X * | c|
|00000a50| 63 20 6e 65 77 73 62 72 | 65 61 6b 2e 63 20 2d 44 |c newsbr|eak.c -D|
|00000a60| 53 59 53 54 45 4d 5f 56 | 20 2d 6c 62 73 64 20 2d |SYSTEM_V| -lbsd -|
|00000a70| 6f 20 6e 65 77 73 62 72 | 65 61 6b 2e 63 0a 58 20 |o newsbr|eak.c.X |
|00000a80| 2a 0a 58 20 2a 20 44 45 | 53 43 52 49 50 54 49 4f |*.X * DE|SCRIPTIO|
|00000a90| 4e 3a 0a 58 20 2a 20 20 | 20 20 20 54 61 6b 65 73 |N:.X * | Takes|
|00000aa0| 20 61 20 73 65 72 69 65 | 73 20 6f 66 20 66 69 6c | a serie|s of fil|
|00000ab0| 65 73 20 77 68 69 63 68 | 20 61 72 65 20 73 68 61 |es which| are sha|
|00000ac0| 72 20 66 69 6c 65 73 20 | 28 73 74 72 69 70 73 20 |r files |(strips |
|00000ad0| 61 6e 79 0a 58 20 2a 20 | 20 20 20 20 67 61 72 62 |any.X * | garb|
|00000ae0| 61 67 65 20 61 74 20 74 | 68 65 20 73 74 61 72 74 |age at t|he start|
|00000af0| 20 6f 66 20 74 68 65 20 | 73 68 61 72 20 66 69 6c | of the |shar fil|
|00000b00| 65 29 20 74 68 61 74 20 | 68 61 76 65 20 62 65 65 |e) that |have bee|
|00000b10| 6e 20 70 6f 73 74 65 64 | 20 74 6f 0a 58 20 2a 20 |n posted| to.X * |
|00000b20| 20 20 20 20 63 6f 6d 70 | 2e 7b 73 6f 75 72 63 65 | comp|.{source|
|00000b30| 73 7c 62 69 6e 61 72 69 | 65 73 7d 2e 2a 20 61 6e |s|binari|es}.* an|
|00000b40| 64 20 66 65 65 64 73 20 | 74 68 65 6d 20 74 68 72 |d feeds |them thr|
|00000b50| 6f 75 67 68 20 73 68 2e | 0a 58 20 2a 20 20 20 20 |ough sh.|.X * |
|00000b60| 20 41 66 74 65 72 20 74 | 68 65 79 20 68 61 76 65 | After t|hey have|
|00000b70| 20 62 65 65 6e 20 66 65 | 64 20 74 68 72 6f 75 67 | been fe|d throug|
|00000b80| 68 20 73 68 20 74 68 65 | 20 6f 72 69 67 69 6e 61 |h sh the| origina|
|00000b90| 6c 20 66 69 6c 65 73 20 | 61 72 65 0a 58 20 2a 20 |l files |are.X * |
|00000ba0| 20 20 20 20 64 65 6c 65 | 74 65 64 2e 20 54 68 65 | dele|ted. The|
|00000bb0| 6e 20 61 6e 79 20 75 75 | 65 6e 63 6f 64 65 64 20 |n any uu|encoded |
|00000bc0| 66 69 6c 65 73 20 61 72 | 65 20 75 75 64 65 63 6f |files ar|e uudeco|
|00000bd0| 64 65 64 2c 20 61 66 74 | 65 72 20 77 68 69 63 68 |ded, aft|er which|
|00000be0| 0a 58 20 2a 20 20 20 20 | 20 74 68 65 20 75 75 65 |.X * | the uue|
|00000bf0| 6e 63 6f 64 65 64 20 66 | 69 6c 65 73 20 61 72 65 |ncoded f|iles are|
|00000c00| 20 61 6c 73 6f 20 64 65 | 6c 65 74 65 64 2e 0a 58 | also de|leted..X|
|00000c10| 20 2a 0a 58 20 2a 20 4e | 4f 54 45 53 3a 0a 58 20 | *.X * N|OTES:.X |
|00000c20| 2a 20 20 20 20 20 31 29 | 20 54 68 69 73 20 70 72 |* 1)| This pr|
|00000c30| 6f 67 72 61 6d 20 61 73 | 73 75 6d 65 73 20 74 68 |ogram as|sumes th|
|00000c40| 61 74 20 61 6c 6c 20 6e | 65 63 65 73 73 61 72 79 |at all n|ecessary|
|00000c50| 20 73 68 61 72 20 66 69 | 6c 65 73 20 61 72 65 20 | shar fi|les are |
|00000c60| 69 6e 20 74 68 65 0a 58 | 20 2a 20 20 20 20 20 20 |in the.X| * |
|00000c70| 20 20 63 75 72 72 65 6e | 74 20 64 69 72 65 63 74 | curren|t direct|
|00000c80| 6f 72 79 2e 20 49 74 20 | 61 74 74 65 6d 70 74 73 |ory. It |attempts|
|00000c90| 20 74 6f 20 6e 6f 74 20 | 64 65 6c 65 74 65 20 73 | to not |delete s|
|00000ca0| 74 75 66 66 20 69 66 20 | 69 74 20 63 61 6e 27 74 |tuff if |it can't|
|00000cb0| 0a 58 20 2a 20 20 20 20 | 20 20 20 20 68 61 6e 64 |.X * | hand|
|00000cc0| 6c 65 20 69 74 20 28 6c | 69 6b 65 20 77 68 65 6e |le it (l|ike when|
|00000cd0| 20 6e 6f 74 20 61 6c 6c | 20 74 68 65 20 70 61 72 | not all| the par|
|00000ce0| 74 73 20 6f 66 20 61 20 | 6d 75 6c 74 69 2d 70 61 |ts of a |multi-pa|
|00000cf0| 72 74 20 75 75 65 6e 63 | 6f 64 65 64 0a 58 20 2a |rt uuenc|oded.X *|
|00000d00| 20 20 20 20 20 20 20 20 | 66 69 6c 65 20 61 72 65 | |file are|
|00000d10| 20 61 76 61 69 6c 61 62 | 6c 65 29 2e 0a 58 20 2a | availab|le)..X *|
|00000d20| 20 20 20 20 20 32 29 20 | 57 68 65 6e 20 74 68 65 | 2) |When the|
|00000d30| 72 65 20 61 72 65 20 6d | 75 6c 74 69 70 6c 65 20 |re are m|ultiple |
|00000d40| 70 61 72 74 73 20 74 6f | 20 61 20 75 75 65 6e 63 |parts to| a uuenc|
|00000d50| 6f 64 65 64 20 66 69 6c | 65 2c 20 61 20 6d 61 78 |oded fil|e, a max|
|00000d60| 69 6d 75 6d 0a 58 20 2a | 20 20 20 20 20 20 20 20 |imum.X *| |
|00000d70| 6f 66 20 39 39 20 70 61 | 72 74 73 20 61 72 65 20 |of 99 pa|rts are |
|00000d80| 63 75 72 72 65 6e 74 6c | 79 20 68 61 6e 64 6c 65 |currentl|y handle|
|00000d90| 64 2e 0a 58 20 2a 0a 58 | 20 2a 20 48 49 53 54 4f |d..X *.X| * HISTO|
|00000da0| 52 59 3a 0a 58 20 2a 20 | 31 2e 30 30 20 2d 20 6f |RY:.X * |1.00 - o|
|00000db0| 72 69 67 69 6e 61 6c 20 | 76 65 72 73 69 6f 6e 0a |riginal |version.|
|00000dc0| 58 20 2a 20 31 2e 30 31 | 20 2d 20 73 6d 61 6c 6c |X * 1.01| - small|
|00000dd0| 20 65 6e 68 61 6e 63 65 | 6d 65 6e 74 73 2f 62 75 | enhance|ments/bu|
|00000de0| 67 20 66 69 78 65 73 0a | 58 20 2a 20 31 2e 30 32 |g fixes.|X * 1.02|
|00000df0| 20 2d 20 6e 6f 77 20 68 | 61 6e 64 6c 65 20 2e 7a | - now h|andle .z|
|00000e00| 75 27 73 20 77 69 74 68 | 20 3e 20 39 20 70 61 72 |u's with| > 9 par|
|00000e10| 74 73 20 63 6f 72 72 65 | 63 74 6c 79 0a 58 20 2a |ts corre|ctly.X *|
|00000e20| 20 31 2e 30 33 20 2d 20 | 6e 6f 77 20 63 68 65 63 | 1.03 - |now chec|
|00000e30| 6b 20 66 6f 72 20 22 3a | 5c 74 73 68 61 72 5c 3a |k for ":|\tshar\:|
|00000e40| 53 68 65 6c 6c 20 41 72 | 63 68 69 76 65 72 22 20 |Shell Ar|chiver" |
|00000e50| 77 68 65 6e 20 63 68 65 | 63 6b 69 6e 67 20 69 66 |when che|cking if|
|00000e60| 20 61 20 66 69 6c 65 0a | 58 20 2a 20 20 20 20 20 | a file.|X * |
|00000e70| 20 20 20 69 73 20 61 20 | 73 68 61 72 20 61 72 63 | is a |shar arc|
|00000e80| 68 69 76 65 0a 58 20 2a | 20 20 20 20 20 20 2d 20 |hive.X *| - |
|00000e90| 6e 6f 77 20 68 61 6e 64 | 6c 65 73 20 66 69 6c 65 |now hand|les file|
|00000ea0| 73 20 65 6e 64 69 6e 67 | 20 69 6e 20 2e 75 75 23 |s ending| in .uu#|
|00000eb0| 0a 58 20 2a 20 31 2e 30 | 34 20 2d 20 6e 6f 77 20 |.X * 1.0|4 - now |
|00000ec0| 63 68 65 63 6b 20 66 6f | 72 20 22 3a 20 72 75 6e |check fo|r ": run|
|00000ed0| 20 73 68 20 6f 6e 20 74 | 68 69 73 20 66 69 6c 65 | sh on t|his file|
|00000ee0| 20 74 6f 20 75 6e 62 75 | 6e 64 6c 65 22 20 77 68 | to unbu|ndle" wh|
|00000ef0| 65 6e 20 63 68 65 63 6b | 69 6e 67 0a 58 20 2a 20 |en check|ing.X * |
|00000f00| 20 20 20 20 20 20 20 69 | 66 20 61 20 66 69 6c 65 | i|f a file|
|00000f10| 20 69 73 20 61 20 73 68 | 61 72 20 61 72 63 68 69 | is a sh|ar archi|
|00000f20| 76 65 0a 58 20 2a 20 31 | 2e 30 35 20 2d 20 6e 6f |ve.X * 1|.05 - no|
|00000f30| 77 20 63 68 65 63 6b 20 | 66 6f 72 20 22 23 20 54 |w check |for "# T|
|00000f40| 68 69 73 20 69 73 20 61 | 20 73 68 65 6c 6c 20 61 |his is a| shell a|
|00000f50| 72 63 68 69 76 65 2e 22 | 20 77 68 65 6e 20 63 68 |rchive."| when ch|
|00000f60| 65 63 6b 69 6e 67 0a 58 | 20 2a 20 20 20 20 20 20 |ecking.X| * |
|00000f70| 20 20 69 66 20 61 20 66 | 69 6c 65 20 69 73 20 61 | if a f|ile is a|
|00000f80| 20 73 68 61 72 20 61 72 | 63 68 69 76 65 0a 58 20 | shar ar|chive.X |
|00000f90| 2a 20 20 20 20 20 20 2d | 20 6e 6f 77 20 70 72 69 |* -| now pri|
|00000fa0| 6e 74 73 20 6f 75 74 20 | 74 68 65 20 76 65 72 73 |nts out |the vers|
|00000fb0| 69 6f 6e 20 28 61 6e 64 | 20 61 75 74 68 6f 72 20 |ion (and| author |
|00000fc0| 6e 61 6d 65 29 20 77 68 | 65 6e 20 72 75 6e 0a 58 |name) wh|en run.X|
|00000fd0| 20 2a 20 31 2e 30 36 20 | 2d 20 6e 6f 77 20 63 68 | * 1.06 |- now ch|
|00000fe0| 65 63 6b 20 66 6f 72 20 | 22 41 72 63 68 69 76 65 |eck for |"Archive|
|00000ff0| 2d 6e 61 6d 65 3a 22 20 | 74 6f 20 73 65 65 20 77 |-name:" |to see w|
|00001000| 68 61 74 20 64 69 72 65 | 63 74 6f 72 79 20 74 68 |hat dire|ctory th|
|00001010| 65 0a 58 20 2a 20 20 20 | 20 20 20 20 20 72 65 73 |e.X * | res|
|00001020| 75 6c 74 69 6e 67 20 66 | 69 6c 65 73 20 73 68 6f |ulting f|iles sho|
|00001030| 75 6c 64 20 62 65 20 70 | 75 74 20 69 6e 2e 20 4e |uld be p|ut in. N|
|00001040| 4f 54 45 3a 20 61 6e 79 | 20 70 61 72 74 73 20 61 |OTE: any| parts a|
|00001050| 66 74 65 72 0a 58 20 2a | 20 20 20 20 20 20 20 20 |fter.X *| |
|00001060| 61 20 22 70 61 72 74 2a | 22 20 73 65 63 74 69 6f |a "part*|" sectio|
|00001070| 6e 20 69 6e 20 74 68 65 | 20 70 61 74 68 20 61 72 |n in the| path ar|
|00001080| 65 20 6e 6f 74 20 6d 6b | 64 69 72 27 65 64 0a 58 |e not mk|dir'ed.X|
|00001090| 20 2a 20 20 20 20 20 20 | 2d 20 6e 6f 77 20 68 61 | * |- now ha|
|000010a0| 6e 64 6c 65 73 20 66 69 | 6c 65 73 20 65 6e 64 69 |ndles fi|les endi|
|000010b0| 6e 67 20 69 6e 20 2e 7a | 75 75 23 0a 58 20 2a 20 |ng in .z|uu#.X * |
|000010c0| 20 20 20 20 20 2d 20 6e | 6f 77 20 68 61 6e 64 6c | - n|ow handl|
|000010d0| 65 73 20 66 69 6c 65 73 | 20 65 6e 64 69 6e 67 20 |es files| ending |
|000010e0| 69 6e 20 2e 75 75 23 20 | 70 72 6f 70 65 72 6c 79 |in .uu# |properly|
|000010f0| 0a 58 20 2a 20 20 20 20 | 20 20 2d 20 6e 6f 77 20 |.X * | - now |
|00001100| 64 6f 65 73 6e 27 74 20 | 61 74 74 65 6d 70 74 20 |doesn't |attempt |
|00001110| 74 6f 20 70 72 6f 63 65 | 73 73 20 66 69 6c 65 73 |to proce|ss files|
|00001120| 20 73 74 61 72 74 69 6e | 67 20 69 6e 20 22 2e 22 | startin|g in "."|
|00001130| 0a 58 20 2a 20 20 20 20 | 20 20 2d 20 6e 6f 77 20 |.X * | - now |
|00001140| 70 72 69 6e 74 73 20 73 | 6f 6d 65 20 75 73 65 66 |prints s|ome usef|
|00001150| 75 6c 20 69 6e 66 6f 20 | 28 73 6f 20 79 6f 75 20 |ul info |(so you |
|00001160| 6b 6e 6f 77 20 77 68 61 | 74 20 69 74 20 69 73 20 |know wha|t it is |
|00001170| 64 6f 69 6e 67 29 0a 58 | 20 2a 20 20 20 20 20 20 |doing).X| * |
|00001180| 2d 20 6e 6f 77 20 63 68 | 65 63 6b 20 66 6f 72 20 |- now ch|eck for |
|00001190| 22 23 20 41 66 74 65 72 | 20 79 6f 75 20 75 6e 70 |"# After| you unp|
|000011a0| 61 63 6b 20 65 76 65 72 | 79 74 68 69 6e 67 22 20 |ack ever|ything" |
|000011b0| 77 68 65 6e 20 63 68 65 | 63 6b 69 6e 67 0a 58 20 |when che|cking.X |
|000011c0| 2a 20 20 20 20 20 20 20 | 20 69 66 20 61 20 66 69 |* | if a fi|
|000011d0| 6c 65 20 69 73 20 61 20 | 73 68 61 72 20 61 72 63 |le is a |shar arc|
|000011e0| 68 69 76 65 0a 58 20 2a | 20 20 20 20 20 20 2d 20 |hive.X *| - |
|000011f0| 6d 61 6b 65 20 73 75 72 | 65 20 49 20 64 6f 6e 27 |make sur|e I don'|
|00001200| 74 20 74 72 79 20 74 6f | 20 75 75 64 65 63 6f 64 |t try to| uudecod|
|00001210| 65 20 64 69 72 65 63 74 | 6f 72 69 65 73 0a 58 20 |e direct|ories.X |
|00001220| 2a 20 20 20 20 20 20 2d | 20 72 65 63 75 72 73 69 |* -| recursi|
|00001230| 76 65 6c 79 20 64 65 73 | 63 65 6e 64 20 64 69 72 |vely des|cend dir|
|00001240| 65 63 74 6f 72 69 65 73 | 20 77 68 65 6e 20 75 75 |ectories| when uu|
|00001250| 64 65 63 6f 64 69 6e 67 | 0a 58 20 2a 20 31 2e 30 |decoding|.X * 1.0|
|00001260| 37 20 2d 20 61 64 64 65 | 64 20 69 66 64 65 66 27 |7 - adde|d ifdef'|
|00001270| 73 20 61 72 6f 75 6e 64 | 20 63 6f 64 65 20 6e 65 |s around| code ne|
|00001280| 65 64 65 64 20 73 6f 20 | 74 68 69 73 20 63 6f 6d |eded so |this com|
|00001290| 70 69 6c 65 73 20 75 6e | 64 65 72 20 53 79 73 74 |piles un|der Syst|
|000012a0| 65 6d 20 56 0a 58 20 2a | 20 20 20 20 20 20 2d 20 |em V.X *| - |
|000012b0| 63 68 61 6e 67 65 73 20 | 62 79 20 61 6d 65 73 21 |changes |by ames!|
|000012c0| 75 74 73 2e 61 6d 64 61 | 68 6c 2e 63 6f 6d 21 64 |uts.amda|hl.com!d|
|000012d0| 77 6c 31 30 40 6d 61 69 | 6c 72 75 73 20 28 44 61 |wl10@mai|lrus (Da|
|000012e0| 76 65 20 4c 6f 77 72 65 | 79 29 0a 58 20 2a 20 31 |ve Lowre|y).X * 1|
|000012f0| 2e 30 38 20 2d 20 6e 6f | 77 20 63 68 65 63 6b 20 |.08 - no|w check |
|00001300| 66 6f 72 20 22 3a 20 54 | 68 69 73 20 69 73 20 61 |for ": T|his is a|
|00001310| 20 73 68 61 72 20 61 72 | 63 68 69 76 65 2e 22 20 | shar ar|chive." |
|00001320| 77 68 65 6e 20 63 68 65 | 63 6b 69 6e 67 0a 58 20 |when che|cking.X |
|00001330| 2a 20 20 20 20 20 20 20 | 20 69 66 20 61 20 66 69 |* | if a fi|
|00001340| 6c 65 20 69 73 20 61 20 | 73 68 61 72 20 61 72 63 |le is a |shar arc|
|00001350| 68 69 76 65 0a 58 20 2a | 20 20 20 20 20 20 2d 20 |hive.X *| - |
|00001360| 6e 6f 77 20 63 68 65 63 | 6b 20 66 6f 72 20 22 23 |now chec|k for "#|
|00001370| 20 54 68 69 73 20 69 73 | 20 74 68 65 20 66 69 72 | This is| the fir|
|00001380| 73 74 20 6c 69 6e 65 20 | 6f 66 20 61 20 5c 22 73 |st line |of a \"s|
|00001390| 68 65 6c 6c 20 61 72 63 | 68 69 76 65 5c 22 22 0a |hell arc|hive\"".|
|000013a0| 58 20 2a 20 20 20 20 20 | 20 20 20 77 68 65 6e 20 |X * | when |
|000013b0| 63 68 65 63 6b 69 6e 67 | 20 69 66 20 61 20 66 69 |checking| if a fi|
|000013c0| 6c 65 20 69 73 20 61 20 | 73 68 61 72 20 61 72 63 |le is a |shar arc|
|000013d0| 68 69 76 65 0a 58 20 2a | 20 20 20 20 20 20 2d 20 |hive.X *| - |
|000013e0| 62 75 69 6c 64 20 75 70 | 20 61 20 6c 69 73 74 20 |build up| a list |
|000013f0| 6f 66 20 66 69 6c 65 73 | 20 69 6e 20 74 68 65 20 |of files| in the |
|00001400| 63 75 72 72 65 6e 74 20 | 64 69 72 65 63 74 6f 72 |current |director|
|00001410| 79 20 62 65 66 6f 72 65 | 20 75 6e 73 68 61 72 27 |y before| unshar'|
|00001420| 69 6e 67 0a 58 20 2a 20 | 20 20 20 20 20 2d 20 73 |ing.X * | - s|
|00001430| 63 61 6e 20 74 68 65 73 | 65 20 66 69 6c 65 73 20 |can thes|e files |
|00001440| 74 6f 20 73 65 65 20 77 | 68 69 63 68 20 6f 6e 65 |to see w|hich one|
|00001450| 73 20 73 68 6f 75 6c 64 | 20 62 65 20 75 6e 73 68 |s should| be unsh|
|00001460| 61 72 27 65 64 20 61 6e | 64 20 74 72 79 0a 58 20 |ar'ed an|d try.X |
|00001470| 2a 20 20 20 20 20 20 20 | 20 74 6f 20 64 65 74 65 |* | to dete|
|00001480| 72 6d 69 6e 65 20 74 68 | 65 20 62 65 73 74 20 6f |rmine th|e best o|
|00001490| 72 64 65 72 69 6e 67 20 | 66 6f 72 20 75 6e 73 68 |rdering |for unsh|
|000014a0| 61 72 27 69 6e 67 20 28 | 75 73 69 6e 67 20 74 68 |ar'ing (|using th|
|000014b0| 65 20 73 65 63 6f 6e 64 | 61 72 79 0a 58 20 2a 20 |e second|ary.X * |
|000014c0| 20 20 20 20 20 20 20 68 | 65 61 64 65 72 20 22 41 | h|eader "A|
|000014d0| 72 63 68 69 76 65 2d 6e | 61 6d 65 3a 22 20 69 66 |rchive-n|ame:" if|
|000014e0| 20 69 74 20 65 78 69 73 | 74 73 2c 20 6f 74 68 65 | it exis|ts, othe|
|000014f0| 72 77 69 73 65 20 75 73 | 69 6e 67 20 66 69 6c 65 |rwise us|ing file|
|00001500| 20 6e 61 6d 65 29 0a 58 | 20 2a 20 20 20 20 20 20 | name).X| * |
|00001510| 2d 20 70 72 69 6e 74 20 | 77 68 61 74 20 64 69 72 |- print |what dir|
|00001520| 65 63 74 6f 72 79 20 69 | 73 20 62 65 69 6e 67 20 |ectory i|s being |
|00001530| 73 65 61 72 63 68 65 64 | 20 66 6f 72 20 75 75 65 |searched| for uue|
|00001540| 6e 63 6f 64 65 64 20 66 | 69 6c 65 73 0a 58 20 2a |ncoded f|iles.X *|
|00001550| 20 20 20 20 20 20 2d 20 | 70 72 69 6e 74 20 77 68 | - |print wh|
|00001560| 61 74 20 69 73 20 62 65 | 69 6e 67 20 75 75 64 65 |at is be|ing uude|
|00001570| 63 6f 64 65 64 0a 58 20 | 2a 2f 0a 58 0a 58 23 69 |coded.X |*/.X.X#i|
|00001580| 6e 63 6c 75 64 65 20 3c | 73 74 64 69 6f 2e 68 3e |nclude <|stdio.h>|
|00001590| 0a 58 23 69 6e 63 6c 75 | 64 65 20 3c 63 74 79 70 |.X#inclu|de <ctyp|
|000015a0| 65 2e 68 3e 0a 58 23 69 | 6e 63 6c 75 64 65 20 3c |e.h>.X#i|nclude <|
|000015b0| 73 79 73 2f 74 79 70 65 | 73 2e 68 3e 0a 58 23 69 |sys/type|s.h>.X#i|
|000015c0| 6e 63 6c 75 64 65 20 3c | 73 79 73 2f 66 69 6c 65 |nclude <|sys/file|
|000015d0| 2e 68 3e 0a 58 23 69 6e | 63 6c 75 64 65 20 3c 73 |.h>.X#in|clude <s|
|000015e0| 79 73 2f 73 74 61 74 2e | 68 3e 0a 58 23 69 6e 63 |ys/stat.|h>.X#inc|
|000015f0| 6c 75 64 65 20 3c 73 79 | 73 2f 64 69 72 2e 68 3e |lude <sy|s/dir.h>|
|00001600| 0a 58 23 69 66 6e 64 65 | 66 20 53 59 53 54 45 4d |.X#ifnde|f SYSTEM|
|00001610| 5f 56 0a 58 63 68 61 72 | 20 20 20 20 20 20 20 20 |_V.Xchar| |
|00001620| 20 20 20 2a 67 65 74 77 | 64 28 29 3b 0a 58 23 65 | *getw|d();.X#e|
|00001630| 6c 73 65 0a 58 23 20 69 | 6e 63 6c 75 64 65 20 3c |lse.X# i|nclude <|
|00001640| 64 69 72 65 6e 74 2e 68 | 3e 0a 58 63 68 61 72 20 |dirent.h|>.Xchar |
|00001650| 20 20 20 20 20 20 20 20 | 20 20 2a 67 65 74 63 77 | | *getcw|
|00001660| 64 28 29 3b 0a 58 23 65 | 6e 64 69 66 0a 58 0a 58 |d();.X#e|ndif.X.X|
|00001670| 63 68 61 72 20 20 20 20 | 20 20 20 20 20 20 20 2a |char | *|
|00001680| 6d 61 6c 6c 6f 63 28 29 | 3b 0a 58 63 68 61 72 20 |malloc()|;.Xchar |
|00001690| 20 20 20 20 20 20 20 20 | 20 20 2a 73 74 72 63 70 | | *strcp|
|000016a0| 79 28 29 3b 0a 58 0a 58 | 74 79 70 65 64 65 66 20 |y();.X.X|typedef |
|000016b0| 73 74 72 75 63 74 20 7b | 0a 58 20 20 20 20 63 68 |struct {|.X ch|
|000016c0| 61 72 20 20 20 20 20 20 | 20 20 20 20 20 2a 66 69 |ar | *fi|
|000016d0| 6c 65 6e 61 6d 65 3b 0a | 58 20 20 20 20 63 68 61 |lename;.|X cha|
|000016e0| 72 20 20 20 20 20 20 20 | 20 20 20 20 2a 61 72 63 |r | *arc|
|000016f0| 68 69 76 65 6e 61 6d 65 | 3b 0a 58 7d 20 20 20 20 |hivename|;.X} |
|00001700| 20 20 20 20 20 20 20 20 | 20 20 20 4e 61 6d 65 3b | | Name;|
|00001710| 0a 58 0a 58 63 68 61 72 | 20 20 20 20 20 20 20 20 |.X.Xchar| |
|00001720| 20 20 20 20 41 72 63 68 | 69 76 65 4e 61 6d 65 5b | Arch|iveName[|
|00001730| 32 30 30 5d 3b 0a 58 0a | 58 23 64 65 66 69 6e 65 |200];.X.|X#define|
|00001740| 20 41 4e 5f 41 52 43 48 | 49 56 45 28 42 55 46 29 | AN_ARCH|IVE(BUF)|
|00001750| 20 5c 0a 58 28 20 5c 0a | 58 20 20 20 28 21 73 74 | \.X( \.|X (!st|
|00001760| 72 6e 63 6d 70 28 42 55 | 46 2c 20 22 23 21 2f 62 |rncmp(BU|F, "#!/b|
|00001770| 69 6e 2f 73 68 22 2c 20 | 39 29 29 20 5c 0a 58 7c |in/sh", |9)) \.X||
|00001780| 7c 20 28 21 73 74 72 6e | 63 6d 70 28 42 55 46 2c || (!strn|cmp(BUF,|
|00001790| 20 22 23 21 20 2f 62 69 | 6e 2f 73 68 22 2c 20 31 | "#! /bi|n/sh", 1|
|000017a0| 30 29 29 20 5c 0a 58 7c | 7c 20 28 21 73 74 72 6e |0)) \.X||| (!strn|
|000017b0| 63 6d 70 28 42 55 46 2c | 20 22 23 20 54 68 69 73 |cmp(BUF,| "# This|
|000017c0| 20 69 73 20 61 20 73 68 | 65 6c 6c 20 61 72 63 68 | is a sh|ell arch|
|000017d0| 69 76 65 2e 22 2c 20 32 | 36 29 29 20 5c 0a 58 7c |ive.", 2|6)) \.X||
|000017e0| 7c 20 28 21 73 74 72 6e | 63 6d 70 28 42 55 46 2c || (!strn|cmp(BUF,|
|000017f0| 20 22 3a 20 54 68 69 73 | 20 69 73 20 61 20 73 68 | ": This| is a sh|
|00001800| 61 72 20 61 72 63 68 69 | 76 65 2e 22 2c 20 32 35 |ar archi|ve.", 25|
|00001810| 29 29 20 5c 0a 58 7c 7c | 20 28 21 73 74 72 6e 63 |)) \.X||| (!strnc|
|00001820| 6d 70 28 42 55 46 2c 20 | 22 3a 5c 74 73 68 61 72 |mp(BUF, |":\tshar|
|00001830| 3a 5c 74 53 68 65 6c 6c | 20 41 72 63 68 69 76 65 |:\tShell| Archive|
|00001840| 72 22 2c 20 32 32 29 29 | 20 5c 0a 58 7c 7c 20 28 |r", 22))| \.X|| (|
|00001850| 21 73 74 72 6e 63 6d 70 | 28 42 55 46 2c 20 22 3a |!strncmp|(BUF, ":|
|00001860| 20 72 75 6e 20 73 68 20 | 6f 6e 20 74 68 69 73 20 | run sh |on this |
|00001870| 66 69 6c 65 20 74 6f 20 | 75 6e 62 75 6e 64 6c 65 |file to |unbundle|
|00001880| 22 2c 20 33 33 29 29 20 | 5c 0a 58 7c 7c 20 28 21 |", 33)) |\.X|| (!|
|00001890| 73 74 72 6e 63 6d 70 28 | 42 55 46 2c 20 22 23 20 |strncmp(|BUF, "# |
|000018a0| 41 66 74 65 72 20 79 6f | 75 20 75 6e 70 61 63 6b |After yo|u unpack|
|000018b0| 20 65 76 65 72 79 74 68 | 69 6e 67 22 2c 20 32 39 | everyth|ing", 29|
|000018c0| 29 29 20 5c 0a 58 7c 7c | 20 28 21 73 74 72 6e 63 |)) \.X||| (!strnc|
|000018d0| 6d 70 28 42 55 46 2c 20 | 22 23 20 54 68 69 73 20 |mp(BUF, |"# This |
|000018e0| 69 73 20 74 68 65 20 66 | 69 72 73 74 20 6c 69 6e |is the f|irst lin|
|000018f0| 65 20 6f 66 20 61 20 5c | 22 73 68 65 6c 6c 20 61 |e of a \|"shell a|
|00001900| 72 63 68 69 76 65 5c 22 | 22 2c 20 34 35 29 29 20 |rchive\"|", 45)) |
|00001910| 5c 0a 58 29 0a 58 0a 58 | 6d 61 69 6e 28 29 0a 58 |\.X).X.X|main().X|
|00001920| 7b 0a 58 23 69 66 6e 64 | 65 66 20 53 59 53 54 45 |{.X#ifnd|ef SYSTE|
|00001930| 4d 5f 56 0a 58 20 20 20 | 20 73 74 72 75 63 74 20 |M_V.X | struct |
|00001940| 64 69 72 65 63 74 20 2a | 2a 64 70 3b 0a 58 23 65 |direct *|*dp;.X#e|
|00001950| 6c 73 65 0a 58 20 20 20 | 20 73 74 72 75 63 74 20 |lse.X | struct |
|00001960| 64 69 72 65 6e 74 20 2a | 2a 64 70 3b 0a 58 23 65 |dirent *|*dp;.X#e|
|00001970| 6e 64 69 66 0a 58 20 20 | 20 20 73 74 72 75 63 74 |ndif.X | struct|
|00001980| 20 73 74 61 74 20 20 20 | 20 20 73 74 61 74 5f 62 | stat | stat_b|
|00001990| 75 66 3b 0a 58 20 20 20 | 20 69 6e 74 20 20 20 20 |uf;.X | int |
|000019a0| 20 20 20 20 20 20 20 20 | 20 73 69 7a 65 3b 0a 58 | | size;.X|
|000019b0| 20 20 20 20 69 6e 74 20 | 20 20 20 20 20 20 20 20 | int | |
|000019c0| 20 20 20 20 69 3b 0a 58 | 20 20 20 20 69 6e 74 20 | i;.X| int |
|000019d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 6a 3b 0a 58 | | j;.X|
|000019e0| 20 20 20 20 4e 61 6d 65 | 20 20 20 20 20 20 20 20 | Name| |
|000019f0| 20 20 20 2a 61 72 72 61 | 79 3b 0a 58 0a 58 20 20 | *arra|y;.X.X |
|00001a00| 20 20 69 6e 74 20 20 20 | 20 20 20 20 20 20 20 20 | int | |
|00001a10| 20 20 53 65 6c 65 63 74 | 28 29 3b 0a 58 20 20 20 | Select|();.X |
|00001a20| 20 65 78 74 65 72 6e 20 | 69 6e 74 20 20 20 20 20 | extern |int |
|00001a30| 20 61 6c 70 68 61 73 6f | 72 74 28 29 3b 0a 58 20 | alphaso|rt();.X |
|00001a40| 20 20 20 69 6e 74 20 20 | 20 20 20 20 20 20 20 20 | int | |
|00001a50| 20 20 20 63 6f 6d 70 61 | 72 65 28 29 3b 0a 58 20 | compa|re();.X |
|00001a60| 20 20 20 76 6f 69 64 20 | 20 20 20 20 20 20 20 20 | void | |
|00001a70| 20 20 20 75 6e 73 68 61 | 72 28 29 3b 0a 58 20 20 | unsha|r();.X |
|00001a80| 20 20 76 6f 69 64 20 20 | 20 20 20 20 20 20 20 20 | void | |
|00001a90| 20 20 75 75 64 65 63 6f | 64 65 28 29 3b 0a 58 0a | uudeco|de();.X.|
|00001aa0| 58 20 20 20 20 66 70 72 | 69 6e 74 66 28 73 74 64 |X fpr|intf(std|
|00001ab0| 65 72 72 2c 20 22 25 73 | 5c 6e 22 2c 20 56 45 52 |err, "%s|\n", VER|
|00001ac0| 53 49 4f 4e 29 3b 0a 58 | 0a 58 20 20 20 20 2f 2a |SION);.X|.X /*|
|00001ad0| 0a 58 20 20 20 20 20 2a | 20 43 6f 75 6e 74 20 74 |.X *| Count t|
|00001ae0| 68 65 20 73 68 61 72 66 | 69 6c 65 73 20 69 6e 20 |he sharf|iles in |
|00001af0| 74 68 65 20 63 75 72 72 | 65 6e 74 20 64 69 72 65 |the curr|ent dire|
|00001b00| 63 74 6f 72 79 2e 20 49 | 66 20 74 68 65 72 65 20 |ctory. I|f there |
|00001b10| 61 72 65 20 61 6e 79 2c | 20 70 75 74 0a 58 20 20 |are any,| put.X |
|00001b20| 20 20 20 2a 20 74 68 65 | 20 66 69 6c 65 6e 61 6d | * the| filenam|
|00001b30| 65 73 20 61 6e 64 20 61 | 72 63 68 69 76 65 2d 6e |es and a|rchive-n|
|00001b40| 61 6d 65 73 20 28 69 66 | 20 61 6e 79 29 20 69 6e |ames (if| any) in|
|00001b50| 74 6f 20 61 6e 20 61 72 | 72 61 79 20 61 6e 64 20 |to an ar|ray and |
|00001b60| 73 6f 72 74 20 69 74 2e | 0a 58 20 20 20 20 20 2a |sort it.|.X *|
|00001b70| 20 54 68 65 6e 20 75 6e | 73 68 61 72 2e 20 28 54 | Then un|shar. (T|
|00001b80| 68 69 73 20 63 6f 64 65 | 20 61 73 73 75 6d 65 73 |his code| assumes|
|00001b90| 20 74 68 61 74 20 74 68 | 65 20 63 75 72 72 65 6e | that th|e curren|
|00001ba0| 74 20 64 69 72 65 63 74 | 6f 72 79 20 63 6f 6e 74 |t direct|ory cont|
|00001bb0| 65 6e 74 73 0a 58 20 20 | 20 20 20 2a 20 64 6f 6e |ents.X | * don|
|00001bc0| 27 74 20 63 68 61 6e 67 | 65 20 75 6e 64 65 72 6e |'t chang|e undern|
|00001bd0| 65 61 74 68 20 79 6f 75 | 2e 29 20 0a 58 20 20 20 |eath you|.) .X |
|00001be0| 20 20 2a 2f 0a 58 20 20 | 20 20 73 69 7a 65 20 3d | */.X | size =|
|00001bf0| 20 73 63 61 6e 64 69 72 | 28 22 2e 22 2c 20 26 64 | scandir|(".", &d|
|00001c00| 70 2c 20 53 65 6c 65 63 | 74 2c 20 61 6c 70 68 61 |p, Selec|t, alpha|
|00001c10| 73 6f 72 74 29 3b 0a 58 | 20 20 20 20 69 66 20 28 |sort);.X| if (|
|00001c20| 73 69 7a 65 20 3e 20 30 | 29 20 7b 0a 58 09 61 72 |size > 0|) {.X.ar|
|00001c30| 72 61 79 20 3d 20 28 4e | 61 6d 65 20 2a 29 20 6d |ray = (N|ame *) m|
|00001c40| 61 6c 6c 6f 63 28 28 75 | 6e 73 69 67 6e 65 64 29 |alloc((u|nsigned)|
|00001c50| 20 28 73 69 7a 65 6f 66 | 28 4e 61 6d 65 29 20 2a | (sizeof|(Name) *|
|00001c60| 20 73 69 7a 65 29 29 3b | 0a 58 09 66 6f 72 20 28 | size));|.X.for (|
|00001c70| 69 20 3d 20 30 2c 20 6a | 20 3d 20 30 3b 20 69 20 |i = 0, j| = 0; i |
|00001c80| 3c 20 73 69 7a 65 3b 20 | 69 2b 2b 29 20 7b 0a 58 |< size; |i++) {.X|
|00001c90| 09 20 20 20 20 69 66 20 | 28 73 74 61 74 28 64 70 |. if |(stat(dp|
|00001ca0| 5b 69 5d 2d 3e 64 5f 6e | 61 6d 65 2c 20 26 73 74 |[i]->d_n|ame, &st|
|00001cb0| 61 74 5f 62 75 66 29 29 | 09 2f 2a 20 63 61 6e 27 |at_buf))|./* can'|
|00001cc0| 74 20 73 74 61 74 20 21 | 3f 21 3f 21 3f 20 2a 2f |t stat !|?!?!? */|
|00001cd0| 0a 58 09 09 63 6f 6e 74 | 69 6e 75 65 3b 0a 58 0a |.X..cont|inue;.X.|
|00001ce0| 58 09 20 20 20 20 69 66 | 20 28 28 73 74 61 74 5f |X. if| ((stat_|
|00001cf0| 62 75 66 2e 73 74 5f 6d | 6f 64 65 20 26 20 53 5f |buf.st_m|ode & S_|
|00001d00| 49 46 44 49 52 29 29 09 | 2f 2a 20 61 20 64 69 72 |IFDIR)).|/* a dir|
|00001d10| 65 63 74 6f 72 79 20 2a | 2f 0a 58 09 09 63 6f 6e |ectory *|/.X..con|
|00001d20| 74 69 6e 75 65 3b 0a 58 | 0a 58 09 20 20 20 20 69 |tinue;.X|.X. i|
|00001d30| 66 20 28 69 73 5f 61 5f | 73 68 61 72 66 69 6c 65 |f (is_a_|sharfile|
|00001d40| 28 64 70 5b 69 5d 2d 3e | 64 5f 6e 61 6d 65 29 29 |(dp[i]->|d_name))|
|00001d50| 20 7b 0a 58 09 09 61 72 | 72 61 79 5b 6a 5d 2e 66 | {.X..ar|ray[j].f|
|00001d60| 69 6c 65 6e 61 6d 65 20 | 3d 0a 58 09 09 20 20 20 |ilename |=.X.. |
|00001d70| 20 6d 61 6c 6c 6f 63 28 | 28 75 6e 73 69 67 6e 65 | malloc(|(unsigne|
|00001d80| 64 29 20 28 73 74 72 6c | 65 6e 28 64 70 5b 69 5d |d) (strl|en(dp[i]|
|00001d90| 2d 3e 64 5f 6e 61 6d 65 | 29 20 2b 20 31 29 29 3b |->d_name|) + 1));|
|00001da0| 0a 58 09 09 73 74 72 63 | 70 79 28 61 72 72 61 79 |.X..strc|py(array|
|00001db0| 5b 6a 5d 2e 66 69 6c 65 | 6e 61 6d 65 2c 20 64 70 |[j].file|name, dp|
|00001dc0| 5b 69 5d 2d 3e 64 5f 6e | 61 6d 65 29 3b 0a 58 09 |[i]->d_n|ame);.X.|
|00001dd0| 09 61 72 72 61 79 5b 6a | 5d 2e 61 72 63 68 69 76 |.array[j|].archiv|
|00001de0| 65 6e 61 6d 65 20 3d 0a | 58 09 09 20 20 20 20 6d |ename =.|X.. m|
|00001df0| 61 6c 6c 6f 63 28 28 75 | 6e 73 69 67 6e 65 64 29 |alloc((u|nsigned)|
|00001e00| 20 28 73 74 72 6c 65 6e | 28 41 72 63 68 69 76 65 | (strlen|(Archive|
|00001e10| 4e 61 6d 65 29 20 2b 20 | 31 29 29 3b 0a 58 09 09 |Name) + |1));.X..|
|00001e20| 73 74 72 63 70 79 28 61 | 72 72 61 79 5b 6a 5d 2e |strcpy(a|rray[j].|
|00001e30| 61 72 63 68 69 76 65 6e | 61 6d 65 2c 20 41 72 63 |archiven|ame, Arc|
|00001e40| 68 69 76 65 4e 61 6d 65 | 29 3b 0a 58 09 09 6a 2b |hiveName|);.X..j+|
|00001e50| 2b 3b 0a 58 09 20 20 20 | 20 7d 0a 58 09 7d 0a 58 |+;.X. | }.X.}.X|
|00001e60| 09 73 69 7a 65 20 3d 20 | 6a 3b 0a 58 09 69 66 20 |.size = |j;.X.if |
|00001e70| 28 73 69 7a 65 20 3e 20 | 30 29 20 7b 0a 58 09 20 |(size > |0) {.X. |
|00001e80| 20 20 20 66 70 72 69 6e | 74 66 28 73 74 64 65 72 | fprin|tf(stder|
|00001e90| 72 2c 20 22 5c 6e 4e 6f | 77 20 70 65 72 66 6f 72 |r, "\nNo|w perfor|
|00001ea0| 6d 69 6e 67 20 74 68 65 | 20 75 6e 73 68 61 72 20 |ming the| unshar |
|00001eb0| 70 61 73 73 2e 5c 6e 22 | 29 3b 0a 58 0a 58 09 20 |pass.\n"|);.X.X. |
|00001ec0| 20 20 20 71 73 6f 72 74 | 28 28 63 68 61 72 20 2a | qsort|((char *|
|00001ed0| 29 20 61 72 72 61 79 2c | 20 73 69 7a 65 2c 20 28 |) array,| size, (|
|00001ee0| 69 6e 74 29 20 73 69 7a | 65 6f 66 28 4e 61 6d 65 |int) siz|eof(Name|
|00001ef0| 29 2c 20 63 6f 6d 70 61 | 72 65 29 3b 0a 58 0a 58 |), compa|re);.X.X|
|00001f00| 09 20 20 20 20 2f 2a 20 | 6e 6f 77 20 75 6e 73 68 |. /* |now unsh|
|00001f10| 61 72 20 65 76 65 72 79 | 74 68 69 6e 67 20 2a 2f |ar every|thing */|
|00001f20| 0a 58 09 20 20 20 20 66 | 6f 72 20 28 69 20 3d 20 |.X. f|or (i = |
|00001f30| 30 3b 20 69 20 3c 20 73 | 69 7a 65 3b 20 69 2b 2b |0; i < s|ize; i++|
|00001f40| 29 0a 58 09 09 75 6e 73 | 68 61 72 28 61 72 72 61 |).X..uns|har(arra|
|00001f50| 79 5b 69 5d 2e 66 69 6c | 65 6e 61 6d 65 2c 20 61 |y[i].fil|ename, a|
|00001f60| 72 72 61 79 5b 69 5d 2e | 61 72 63 68 69 76 65 6e |rray[i].|archiven|
|00001f70| 61 6d 65 29 3b 0a 58 09 | 7d 0a 58 09 66 70 72 69 |ame);.X.|}.X.fpri|
|00001f80| 6e 74 66 28 73 74 64 65 | 72 72 2c 20 22 5c 6e 4e |ntf(stde|rr, "\nN|
|00001f90| 6f 77 20 70 65 72 66 6f | 72 6d 69 6e 67 20 74 68 |ow perfo|rming th|
|00001fa0| 65 20 75 75 64 65 63 6f | 64 65 20 70 61 73 73 2e |e uudeco|de pass.|
|00001fb0| 5c 6e 22 29 3b 0a 58 0a | 58 09 75 75 64 65 63 6f |\n");.X.|X.uudeco|
|00001fc0| 64 65 28 22 2e 22 2c 20 | 30 29 3b 0a 58 20 20 20 |de(".", |0);.X |
|00001fd0| 20 7d 0a 58 20 20 20 20 | 2f 2a 0a 58 20 20 20 20 | }.X |/*.X |
|00001fe0| 20 2a 20 49 6e 20 74 68 | 65 6f 72 79 20 49 20 73 | * In th|eory I s|
|00001ff0| 68 6f 75 6c 64 20 66 72 | 65 65 20 61 6c 6c 20 61 |hould fr|ee all a|
|00002000| 6c 6c 6f 63 61 74 65 64 | 20 6d 65 6d 6f 72 79 2c |llocated| memory,|
|00002010| 20 62 75 74 20 69 74 20 | 77 69 6c 6c 20 62 65 20 | but it |will be |
|00002020| 66 72 65 65 27 64 0a 58 | 20 20 20 20 20 2a 20 75 |free'd.X| * u|
|00002030| 70 6f 6e 20 65 78 69 74 | 74 69 6e 67 2e 20 0a 58 |pon exit|ting. .X|
|00002040| 20 20 20 20 20 2a 2f 0a | 58 20 20 20 20 65 78 69 | */.|X exi|
|00002050| 74 28 30 29 3b 0a 58 7d | 0a 58 0a 58 76 6f 69 64 |t(0);.X}|.X.Xvoid|
|00002060| 0a 58 75 6e 73 68 61 72 | 28 6e 61 6d 65 2c 20 61 |.Xunshar|(name, a|
|00002070| 72 63 68 69 76 65 6e 61 | 6d 65 29 0a 58 20 20 20 |rchivena|me).X |
|00002080| 20 63 68 61 72 20 20 20 | 20 20 20 20 20 20 20 20 | char | |
|00002090| 2a 6e 61 6d 65 3b 0a 58 | 20 20 20 20 63 68 61 72 |*name;.X| char|
|000020a0| 20 20 20 20 20 20 20 20 | 20 20 20 2a 61 72 63 68 | | *arch|
|000020b0| 69 76 65 6e 61 6d 65 3b | 0a 58 7b 0a 58 20 20 20 |ivename;|.X{.X |
|000020c0| 20 46 49 4c 45 20 20 20 | 20 20 20 20 20 20 20 20 | FILE | |
|000020d0| 2a 66 69 6e 3b 0a 58 20 | 20 20 20 46 49 4c 45 20 |*fin;.X | FILE |
|000020e0| 20 20 20 20 20 20 20 20 | 20 20 2a 66 6f 75 74 3b | | *fout;|
|000020f0| 0a 58 20 20 20 20 63 68 | 61 72 20 20 20 20 20 20 |.X ch|ar |
|00002100| 20 20 20 20 20 20 62 75 | 66 5b 32 30 30 5d 3b 0a | bu|f[200];.|
|00002110| 58 20 20 20 20 63 68 61 | 72 20 20 20 20 20 20 20 |X cha|r |
|00002120| 20 20 20 20 20 64 69 72 | 5b 32 30 30 5d 3b 0a 58 | dir|[200];.X|
|00002130| 20 20 20 20 63 68 61 72 | 20 20 20 20 20 20 20 20 | char| |
|00002140| 20 20 20 20 70 61 74 68 | 5b 32 30 30 5d 3b 0a 58 | path|[200];.X|
|00002150| 20 20 20 20 63 68 61 72 | 20 20 20 20 20 20 20 20 | char| |
|00002160| 20 20 20 2a 70 3b 0a 58 | 0a 58 20 20 20 20 66 70 | *p;.X|.X fp|
|00002170| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 20 22 41 |rintf(st|derr, "A|
|00002180| 74 74 65 6d 70 74 69 6e | 67 20 74 6f 20 75 6e 73 |ttemptin|g to uns|
|00002190| 68 61 72 20 25 73 5c 6e | 22 2c 20 6e 61 6d 65 29 |har %s\n|", name)|
|000021a0| 3b 0a 58 20 20 20 20 66 | 69 6e 20 3d 20 66 6f 70 |;.X f|in = fop|
|000021b0| 65 6e 28 6e 61 6d 65 2c | 20 22 72 22 29 3b 0a 58 |en(name,| "r");.X|
|000021c0| 20 20 20 20 69 66 20 28 | 66 69 6e 20 3d 3d 20 4e | if (|fin == N|
|000021d0| 55 4c 4c 29 09 09 2f 2a | 20 66 69 6c 65 20 64 6f |ULL)../*| file do|
|000021e0| 65 73 6e 27 74 20 65 78 | 69 73 74 20 21 3f 20 2a |esn't ex|ist !? *|
|000021f0| 2f 0a 58 09 72 65 74 75 | 72 6e 3b 0a 58 0a 58 20 |/.X.retu|rn;.X.X |
|00002200| 20 20 20 73 74 72 63 70 | 79 28 64 69 72 2c 20 22 | strcp|y(dir, "|
|00002210| 2e 22 29 3b 09 09 2f 2a | 20 73 65 74 75 70 20 64 |.");../*| setup d|
|00002220| 69 72 65 63 74 6f 72 79 | 20 74 6f 20 75 73 65 20 |irectory| to use |
|00002230| 2a 2f 0a 58 20 20 20 20 | 69 66 20 28 61 72 63 68 |*/.X |if (arch|
|00002240| 69 76 65 6e 61 6d 65 5b | 30 5d 20 21 3d 20 27 5c |ivename[|0] != '\|
|00002250| 30 27 29 20 7b 0a 58 09 | 73 74 72 63 70 79 28 64 |0') {.X.|strcpy(d|
|00002260| 69 72 2c 20 61 72 63 68 | 69 76 65 6e 61 6d 65 29 |ir, arch|ivename)|
|00002270| 3b 0a 58 09 70 61 74 68 | 5b 30 5d 20 3d 20 27 5c |;.X.path|[0] = '\|
|00002280| 30 27 3b 0a 58 09 66 6f | 72 20 28 70 20 3d 20 64 |0';.X.fo|r (p = d|
|00002290| 69 72 3b 20 2a 70 20 21 | 3d 20 4e 55 4c 4c 3b 20 |ir; *p !|= NULL; |
|000022a0| 70 2b 2b 29 0a 58 09 20 | 20 20 20 69 66 20 28 2a |p++).X. | if (*|
|000022b0| 70 20 3d 3d 20 27 2f 27 | 29 20 7b 0a 58 09 09 2a |p == '/'|) {.X..*|
|000022c0| 70 20 3d 20 4e 55 4c 4c | 3b 0a 58 09 09 69 66 20 |p = NULL|;.X..if |
|000022d0| 28 73 74 72 6e 63 6d 70 | 28 70 20 2b 20 31 2c 20 |(strncmp|(p + 1, |
|000022e0| 22 70 61 72 74 22 2c 20 | 34 29 20 3d 3d 20 30 29 |"part", |4) == 0)|
|000022f0| 0a 58 09 09 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 |.X.. |break;.X|
|00002300| 09 09 69 66 20 28 61 63 | 63 65 73 73 28 64 69 72 |..if (ac|cess(dir|
|00002310| 2c 20 46 5f 4f 4b 29 20 | 3c 20 30 29 0a 58 09 09 |, F_OK) |< 0).X..|
|00002320| 20 20 20 20 69 66 20 28 | 6d 6b 64 69 72 28 64 69 | if (|mkdir(di|
|00002330| 72 2c 20 30 37 37 37 29 | 20 3c 20 30 29 0a 58 09 |r, 0777)| < 0).X.|
|00002340| 09 09 67 6f 74 6f 20 41 | 42 4f 52 54 5f 41 54 54 |..goto A|BORT_ATT|
|00002350| 45 4d 50 54 3b 0a 58 09 | 09 73 74 72 63 70 79 28 |EMPT;.X.|.strcpy(|
|00002360| 70 61 74 68 2c 20 61 72 | 63 68 69 76 65 6e 61 6d |path, ar|chivenam|
|00002370| 65 29 3b 0a 58 09 09 2a | 70 20 3d 20 27 2f 27 3b |e);.X..*|p = '/';|
|00002380| 0a 58 09 20 20 20 20 7d | 0a 58 09 69 66 20 28 61 |.X. }|.X.if (a|
|00002390| 63 63 65 73 73 28 64 69 | 72 2c 20 46 5f 4f 4b 29 |ccess(di|r, F_OK)|
|000023a0| 20 3c 20 30 29 20 7b 0a | 58 09 20 20 20 20 69 66 | < 0) {.|X. if|
|000023b0| 20 28 6d 6b 64 69 72 28 | 64 69 72 2c 20 30 37 37 | (mkdir(|dir, 077|
|000023c0| 37 29 20 3c 20 30 29 20 | 7b 0a 58 09 41 42 4f 52 |7) < 0) |{.X.ABOR|
|000023d0| 54 5f 41 54 54 45 4d 50 | 54 3a 0a 58 09 09 66 70 |T_ATTEMP|T:.X..fp|
|000023e0| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 20 22 43 |rintf(st|derr, "C|
|000023f0| 6f 75 6c 64 6e 27 74 20 | 6d 6b 64 69 72 20 25 73 |ouldn't |mkdir %s|
|00002400| 5c 6e 22 2c 20 64 69 72 | 29 3b 0a 58 09 09 66 70 |\n", dir|);.X..fp|
|00002410| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 20 22 41 |rintf(st|derr, "A|
|00002420| 62 6f 72 74 69 6e 67 20 | 74 68 69 73 20 61 74 74 |borting |this att|
|00002430| 65 6d 70 74 5c 6e 22 29 | 3b 0a 58 09 09 69 66 20 |empt\n")|;.X..if |
|00002440| 28 70 61 74 68 5b 30 5d | 20 21 3d 20 27 5c 30 27 |(path[0]| != '\0'|
|00002450| 29 0a 58 09 09 20 20 20 | 20 28 76 6f 69 64 29 20 |).X.. | (void) |
|00002460| 75 6e 6c 69 6e 6b 28 70 | 61 74 68 29 3b 0a 58 09 |unlink(p|ath);.X.|
|00002470| 09 66 63 6c 6f 73 65 28 | 66 69 6e 29 3b 0a 58 09 |.fclose(|fin);.X.|
|00002480| 09 72 65 74 75 72 6e 3b | 0a 58 09 20 20 20 20 7d |.return;|.X. }|
|00002490| 0a 58 09 7d 0a 58 20 20 | 20 20 7d 0a 58 20 20 20 |.X.}.X | }.X |
|000024a0| 20 66 70 72 69 6e 74 66 | 28 73 74 64 65 72 72 2c | fprintf|(stderr,|
|000024b0| 20 22 75 6e 73 68 61 72 | 69 6e 67 20 69 6e 74 6f | "unshar|ing into|
|000024c0| 20 64 69 72 65 63 74 6f | 72 79 20 5c 22 25 73 5c | directo|ry \"%s\|
|000024d0| 22 5c 6e 22 2c 20 64 69 | 72 29 3b 0a 58 0a 58 20 |"\n", di|r);.X.X |
|000024e0| 20 20 20 66 6f 72 20 28 | 3b 3b 29 20 7b 0a 58 09 | for (|;;) {.X.|
|000024f0| 69 66 20 28 66 67 65 74 | 73 28 62 75 66 2c 20 32 |if (fget|s(buf, 2|
|00002500| 30 30 2c 20 66 69 6e 29 | 20 3d 3d 20 4e 55 4c 4c |00, fin)| == NULL|
|00002510| 29 20 7b 09 2f 2a 20 6e | 6f 74 20 61 20 73 68 61 |) {./* n|ot a sha|
|00002520| 72 20 66 69 6c 65 20 21 | 3f 20 2a 2f 0a 58 09 20 |r file !|? */.X. |
|00002530| 20 20 20 66 63 6c 6f 73 | 65 28 66 69 6e 29 3b 0a | fclos|e(fin);.|
|00002540| 58 09 20 20 20 20 72 65 | 74 75 72 6e 3b 0a 58 09 |X. re|turn;.X.|
|00002550| 7d 0a 58 09 69 66 20 28 | 41 4e 5f 41 52 43 48 49 |}.X.if (|AN_ARCHI|
|00002560| 56 45 28 62 75 66 29 29 | 0a 58 09 20 20 20 20 62 |VE(buf))|.X. b|
|00002570| 72 65 61 6b 3b 0a 58 20 | 20 20 20 7d 0a 58 0a 58 |reak;.X | }.X.X|
|00002580| 20 20 20 20 73 70 72 69 | 6e 74 66 28 70 61 74 68 | spri|ntf(path|
|00002590| 2c 20 22 25 73 2f 2e 75 | 6e 73 68 61 72 2e 74 65 |, "%s/.u|nshar.te|
|000025a0| 6d 70 2e 66 69 6c 65 22 | 2c 20 64 69 72 29 3b 0a |mp.file"|, dir);.|
|000025b0| 58 20 20 20 20 66 6f 75 | 74 20 3d 20 66 6f 70 65 |X fou|t = fope|
|000025c0| 6e 28 70 61 74 68 2c 20 | 22 77 22 29 3b 0a 58 20 |n(path, |"w");.X |
|000025d0| 20 20 20 77 68 69 6c 65 | 20 28 66 67 65 74 73 28 | while| (fgets(|
|000025e0| 62 75 66 2c 20 32 30 30 | 2c 20 66 69 6e 29 20 21 |buf, 200|, fin) !|
|000025f0| 3d 20 4e 55 4c 4c 29 0a | 58 09 66 70 72 69 6e 74 |= NULL).|X.fprint|
|00002600| 66 28 66 6f 75 74 2c 20 | 22 25 73 22 2c 20 62 75 |f(fout, |"%s", bu|
|00002610| 66 29 3b 0a 58 20 20 20 | 20 66 63 6c 6f 73 65 28 |f);.X | fclose(|
|00002620| 66 6f 75 74 29 3b 0a 58 | 20 20 20 20 66 63 6c 6f |fout);.X| fclo|
|00002630| 73 65 28 66 69 6e 29 3b | 0a 58 0a 58 20 20 20 20 |se(fin);|.X.X |
|00002640| 73 70 72 69 6e 74 66 28 | 62 75 66 2c 20 22 63 64 |sprintf(|buf, "cd|
|00002650| 20 25 73 3b 20 73 68 20 | 2e 75 6e 73 68 61 72 2e | %s; sh |.unshar.|
|00002660| 74 65 6d 70 2e 66 69 6c | 65 22 2c 20 64 69 72 29 |temp.fil|e", dir)|
|00002670| 3b 0a 58 20 20 20 20 69 | 66 20 28 73 79 73 74 65 |;.X i|f (syste|
|00002680| 6d 28 62 75 66 29 20 3d | 3d 20 30 29 20 7b 0a 58 |m(buf) =|= 0) {.X|
|00002690| 09 28 76 6f 69 64 29 20 | 75 6e 6c 69 6e 6b 28 6e |.(void) |unlink(n|
|000026a0| 61 6d 65 29 3b 0a 58 20 | 20 20 20 7d 20 65 6c 73 |ame);.X | } els|
|000026b0| 65 20 7b 0a 58 09 66 70 | 72 69 6e 74 66 28 73 74 |e {.X.fp|rintf(st|
|000026c0| 64 65 72 72 2c 20 22 65 | 78 69 74 20 73 74 61 74 |derr, "e|xit stat|
|000026d0| 75 73 20 6e 6f 6e 2d 7a | 65 72 6f 2c 20 6e 6f 74 |us non-z|ero, not|
|000026e0| 20 64 65 6c 65 74 69 6e | 67 20 25 73 5c 6e 22 2c | deletin|g %s\n",|
|000026f0| 20 6e 61 6d 65 29 3b 0a | 58 20 20 20 20 7d 0a 58 | name);.|X }.X|
|00002700| 0a 58 20 20 20 20 28 76 | 6f 69 64 29 20 75 6e 6c |.X (v|oid) unl|
|00002710| 69 6e 6b 28 70 61 74 68 | 29 3b 0a 58 7d 0a 58 0a |ink(path|);.X}.X.|
|00002720| 58 76 6f 69 64 0a 58 75 | 75 64 65 63 6f 64 65 28 |Xvoid.Xu|udecode(|
|00002730| 6e 61 6d 65 2c 20 6c 65 | 76 65 6c 29 0a 58 20 20 |name, le|vel).X |
|00002740| 20 20 63 68 61 72 20 20 | 20 20 20 20 20 20 20 20 | char | |
|00002750| 20 2a 6e 61 6d 65 3b 0a | 58 20 20 20 20 69 6e 74 | *name;.|X int|
|00002760| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 6c 65 76 | | lev|
|00002770| 65 6c 3b 0a 58 7b 0a 58 | 23 69 66 6e 64 65 66 20 |el;.X{.X|#ifndef |
|00002780| 53 59 53 54 45 4d 5f 56 | 0a 58 20 20 20 20 73 74 |SYSTEM_V|.X st|
|00002790| 72 75 63 74 20 64 69 72 | 65 63 74 20 2a 2a 64 70 |ruct dir|ect **dp|
|000027a0| 3b 0a 58 23 65 6c 73 65 | 0a 58 20 20 20 20 73 74 |;.X#else|.X st|
|000027b0| 72 75 63 74 20 64 69 72 | 65 6e 74 20 2a 2a 64 70 |ruct dir|ent **dp|
|000027c0| 3b 0a 58 23 65 6e 64 69 | 66 0a 58 20 20 20 20 46 |;.X#endi|f.X F|
|000027d0| 49 4c 45 20 20 20 20 20 | 20 20 20 20 20 20 2a 66 |ILE | *f|
|000027e0| 69 6c 65 3b 0a 58 20 20 | 20 20 63 68 61 72 20 20 |ile;.X | char |
|000027f0| 20 20 20 20 20 20 20 20 | 20 20 62 75 66 5b 32 30 | | buf[20|
|00002800| 30 5d 3b 0a 58 20 20 20 | 20 63 68 61 72 20 20 20 |0];.X | char |
|00002810| 20 20 20 20 20 20 20 20 | 20 6e 61 6d 65 5f 62 75 | | name_bu|
|00002820| 66 5b 32 30 30 5d 3b 0a | 58 20 20 20 20 63 68 61 |f[200];.|X cha|
|00002830| 72 20 20 20 20 20 20 20 | 20 20 20 20 20 70 61 74 |r | pat|
|00002840| 68 5b 32 30 30 5d 3b 0a | 58 20 20 20 20 63 68 61 |h[200];.|X cha|
|00002850| 72 20 20 20 20 20 20 20 | 20 20 20 20 2a 70 3b 0a |r | *p;.|
|00002860| 58 20 20 20 20 73 74 72 | 75 63 74 20 73 74 61 74 |X str|uct stat|
|00002870| 20 20 20 20 20 73 74 61 | 74 5f 62 75 66 3b 0a 58 | sta|t_buf;.X|
|00002880| 20 20 20 20 63 68 61 72 | 20 20 20 20 20 20 20 20 | char| |
|00002890| 20 20 20 20 64 69 67 69 | 74 3b 0a 58 20 20 20 20 | digi|t;.X |
|000028a0| 69 6e 74 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |int | |
|000028b0| 69 3b 0a 58 20 20 20 20 | 69 6e 74 20 20 20 20 20 |i;.X |int |
|000028c0| 20 20 20 20 20 20 20 20 | 73 69 7a 65 3b 0a 58 0a | |size;.X.|
|000028d0| 58 20 20 20 20 69 6e 74 | 20 20 20 20 20 20 20 20 |X int| |
|000028e0| 20 20 20 20 20 53 65 6c | 65 63 74 28 29 3b 0a 58 | Sel|ect();.X|
|000028f0| 20 20 20 20 65 78 74 65 | 72 6e 20 69 6e 74 20 20 | exte|rn int |
|00002900| 20 20 20 20 61 6c 70 68 | 61 73 6f 72 74 28 29 3b | alph|asort();|
|00002910| 0a 58 0a 58 20 20 20 20 | 69 66 20 28 73 74 61 74 |.X.X |if (stat|
|00002920| 28 6e 61 6d 65 2c 20 26 | 73 74 61 74 5f 62 75 66 |(name, &|stat_buf|
|00002930| 29 29 09 2f 2a 20 63 61 | 6e 27 74 20 73 74 61 74 |))./* ca|n't stat|
|00002940| 20 21 3f 21 3f 21 3f 21 | 20 2a 2f 0a 58 09 72 65 | !?!?!?!| */.X.re|
|00002950| 74 75 72 6e 3b 0a 58 0a | 58 20 20 20 20 69 66 20 |turn;.X.|X if |
|00002960| 28 28 73 74 61 74 5f 62 | 75 66 2e 73 74 5f 6d 6f |((stat_b|uf.st_mo|
|00002970| 64 65 20 26 20 53 5f 49 | 46 44 49 52 29 29 20 7b |de & S_I|FDIR)) {|
|00002980| 0a 58 09 2f 2a 20 75 75 | 64 65 63 6f 64 65 20 65 |.X./* uu|decode e|
|00002990| 76 65 72 79 74 68 69 6e | 67 20 69 6e 20 74 68 69 |verythin|g in thi|
|000029a0| 73 20 64 69 72 65 63 74 | 6f 72 79 20 2a 2f 0a 58 |s direct|ory */.X|
|000029b0| 23 69 66 6e 64 65 66 20 | 53 59 53 54 45 4d 5f 56 |#ifndef |SYSTEM_V|
|000029c0| 0a 58 09 69 66 20 28 21 | 67 65 74 77 64 28 70 61 |.X.if (!|getwd(pa|
|000029d0| 74 68 29 29 0a 58 09 20 | 20 20 20 72 65 74 75 72 |th)).X. | retur|
|000029e0| 6e 3b 0a 58 23 65 6c 73 | 65 0a 58 09 69 66 20 28 |n;.X#els|e.X.if (|
|000029f0| 21 67 65 74 63 77 64 28 | 70 61 74 68 2c 20 32 30 |!getcwd(|path, 20|
|00002a00| 30 29 29 0a 58 09 20 20 | 20 20 72 65 74 75 72 6e |0)).X. | return|
|00002a10| 3b 0a 58 23 65 6e 64 69 | 66 0a 58 09 73 69 7a 65 |;.X#endi|f.X.size|
|00002a20| 20 3d 20 73 63 61 6e 64 | 69 72 28 6e 61 6d 65 2c | = scand|ir(name,|
|00002a30| 20 26 64 70 2c 20 53 65 | 6c 65 63 74 2c 20 61 6c | &dp, Se|lect, al|
|00002a40| 70 68 61 73 6f 72 74 29 | 3b 0a 58 09 69 66 20 28 |phasort)|;.X.if (|
|00002a50| 73 69 7a 65 20 3c 3d 20 | 30 29 0a 58 09 20 20 20 |size <= |0).X. |
|00002a60| 20 72 65 74 75 72 6e 3b | 0a 58 0a 58 09 69 66 20 | return;|.X.X.if |
|00002a70| 28 63 68 64 69 72 28 6e | 61 6d 65 29 29 0a 58 09 |(chdir(n|ame)).X.|
|00002a80| 20 20 20 20 72 65 74 75 | 72 6e 3b 0a 58 0a 58 09 | retu|rn;.X.X.|
|00002a90| 6c 65 76 65 6c 2b 2b 3b | 0a 58 09 69 66 20 28 6c |level++;|.X.if (l|
|00002aa0| 65 76 65 6c 20 3d 3d 20 | 31 29 0a 58 09 20 20 20 |evel == |1).X. |
|00002ab0| 20 66 70 72 69 6e 74 66 | 28 73 74 64 65 72 72 2c | fprintf|(stderr,|
|00002ac0| 20 22 75 75 64 65 63 6f | 64 69 6e 67 20 69 6e 20 | "uudeco|ding in |
|00002ad0| 64 69 72 65 63 74 6f 72 | 79 20 5c 22 25 73 5c 22 |director|y \"%s\"|
|00002ae0| 5c 6e 22 2c 20 70 61 74 | 68 29 3b 0a 58 09 65 6c |\n", pat|h);.X.el|
|00002af0| 73 65 0a 58 09 20 20 20 | 20 66 70 72 69 6e 74 66 |se.X. | fprintf|
|00002b00| 28 73 74 64 65 72 72 2c | 20 22 75 75 64 65 63 6f |(stderr,| "uudeco|
|00002b10| 64 69 6e 67 20 69 6e 20 | 64 69 72 65 63 74 6f 72 |ding in |director|
|00002b20| 79 20 5c 22 25 73 2f 25 | 73 5c 22 5c 6e 22 2c 20 |y \"%s/%|s\"\n", |
|00002b30| 70 61 74 68 2c 20 6e 61 | 6d 65 29 3b 0a 58 09 66 |path, na|me);.X.f|
|00002b40| 6f 72 20 28 69 20 3d 20 | 30 3b 20 69 20 3c 20 73 |or (i = |0; i < s|
|00002b50| 69 7a 65 3b 20 69 2b 2b | 29 0a 58 09 20 20 20 20 |ize; i++|).X. |
|00002b60| 75 75 64 65 63 6f 64 65 | 28 64 70 5b 69 5d 2d 3e |uudecode|(dp[i]->|
|00002b70| 64 5f 6e 61 6d 65 2c 20 | 6c 65 76 65 6c 29 3b 0a |d_name, |level);.|
|00002b80| 58 09 28 76 6f 69 64 29 | 20 63 68 64 69 72 28 70 |X.(void)| chdir(p|
|00002b90| 61 74 68 29 3b 0a 58 09 | 69 66 20 28 6c 65 76 65 |ath);.X.|if (leve|
|00002ba0| 6c 20 3e 20 31 29 0a 58 | 09 20 20 20 20 66 70 72 |l > 1).X|. fpr|
|00002bb0| 69 6e 74 66 28 73 74 64 | 65 72 72 2c 20 22 75 75 |intf(std|err, "uu|
|00002bc0| 64 65 63 6f 64 69 6e 67 | 20 69 6e 20 64 69 72 65 |decoding| in dire|
|00002bd0| 63 74 6f 72 79 20 5c 22 | 25 73 5c 22 5c 6e 22 2c |ctory \"|%s\"\n",|
|00002be0| 20 70 61 74 68 29 3b 0a | 58 09 72 65 74 75 72 6e | path);.|X.return|
|00002bf0| 3b 0a 58 20 20 20 20 7d | 0a 58 20 20 20 20 2f 2a |;.X }|.X /*|
|00002c00| 0a 58 20 20 20 20 20 2a | 20 49 66 20 74 68 65 20 |.X *| If the |
|00002c10| 66 69 6c 65 20 65 6e 64 | 73 20 69 6e 20 22 2e 75 |file end|s in ".u|
|00002c20| 75 65 22 20 6f 72 20 22 | 2e 7a 75 75 22 20 6f 72 |ue" or "|.zuu" or|
|00002c30| 20 22 2e 75 75 22 20 6a | 75 73 74 20 75 75 64 65 | ".uu" j|ust uude|
|00002c40| 63 6f 64 65 20 69 74 2e | 20 48 61 6e 64 6c 65 0a |code it.| Handle.|
|00002c50| 58 20 20 20 20 20 2a 20 | 22 2e 7a 75 75 23 22 2c |X * |".zuu#",|
|00002c60| 20 22 2e 7a 75 23 22 20 | 61 6e 64 20 22 2e 75 75 | ".zu#" |and ".uu|
|00002c70| 23 22 20 77 68 65 72 65 | 20 23 20 69 73 20 61 20 |#" where| # is a |
|00002c80| 6e 75 6d 62 65 72 2e 20 | 0a 58 20 20 20 20 20 2a |number. |.X *|
|00002c90| 2f 0a 58 20 20 20 20 70 | 20 3d 20 6e 61 6d 65 20 |/.X p| = name |
|00002ca0| 2b 20 73 74 72 6c 65 6e | 28 6e 61 6d 65 29 20 2d |+ strlen|(name) -|
|00002cb0| 20 34 3b 0a 58 20 20 20 | 20 69 66 20 28 73 74 72 | 4;.X | if (str|
|00002cc0| 63 6d 70 28 70 2c 20 22 | 2e 75 75 65 22 29 20 26 |cmp(p, "|.uue") &|
|00002cd0| 26 20 73 74 72 63 6d 70 | 28 70 2c 20 22 2e 7a 75 |& strcmp|(p, ".zu|
|00002ce0| 75 22 29 20 26 26 20 73 | 74 72 63 6d 70 28 70 20 |u") && s|trcmp(p |
|00002cf0| 2b 20 31 2c 20 22 2e 75 | 75 22 29 29 20 7b 0a 58 |+ 1, ".u|u")) {.X|
|00002d00| 09 70 20 2b 3d 20 33 3b | 0a 58 09 77 68 69 6c 65 |.p += 3;|.X.while|
|00002d10| 20 28 69 73 64 69 67 69 | 74 28 2a 70 29 29 0a 58 | (isdigi|t(*p)).X|
|00002d20| 09 20 20 20 20 70 2d 2d | 3b 0a 58 0a 58 09 64 69 |. p--|;.X.X.di|
|00002d30| 67 69 74 20 3d 20 70 5b | 31 5d 3b 0a 58 09 70 5b |git = p[|1];.X.p[|
|00002d40| 31 5d 20 3d 20 27 5c 30 | 27 3b 0a 58 09 70 20 2d |1] = '\0|';.X.p -|
|00002d50| 3d 20 32 3b 0a 58 09 69 | 66 20 28 21 73 74 72 63 |= 2;.X.i|f (!strc|
|00002d60| 6d 70 28 70 2c 20 22 2e | 75 75 22 29 20 7c 7c 20 |mp(p, ".|uu") || |
|00002d70| 21 73 74 72 63 6d 70 28 | 70 2c 20 22 2e 7a 75 22 |!strcmp(|p, ".zu"|
|00002d80| 29 29 20 7b 0a 58 09 20 | 20 20 20 69 66 20 28 64 |)) {.X. | if (d|
|00002d90| 69 67 69 74 20 3d 3d 20 | 27 30 27 29 20 7b 0a 58 |igit == |'0') {.X|
|00002da0| 09 09 73 70 72 69 6e 74 | 66 28 62 75 66 2c 20 22 |..sprint|f(buf, "|
|00002db0| 63 61 74 20 25 73 2a 20 | 7c 20 75 75 64 65 63 6f |cat %s* || uudeco|
|00002dc0| 64 65 22 2c 20 6e 61 6d | 65 29 3b 0a 58 09 20 20 |de", nam|e);.X. |
|00002dd0| 20 20 7d 20 65 6c 73 65 | 20 7b 0a 58 09 09 73 70 | } else| {.X..sp|
|00002de0| 72 69 6e 74 66 28 6e 61 | 6d 65 5f 62 75 66 2c 20 |rintf(na|me_buf, |
|00002df0| 22 25 73 31 30 22 2c 20 | 6e 61 6d 65 29 3b 0a 58 |"%s10", |name);.X|
|00002e00| 09 09 66 69 6c 65 20 3d | 20 66 6f 70 65 6e 28 6e |..file =| fopen(n|
|00002e10| 61 6d 65 5f 62 75 66 2c | 20 22 72 22 29 3b 0a 58 |ame_buf,| "r");.X|
|00002e20| 09 09 69 66 20 28 66 69 | 6c 65 20 3d 3d 20 4e 55 |..if (fi|le == NU|
|00002e30| 4c 4c 29 20 7b 0a 58 09 | 09 20 20 20 20 73 70 72 |LL) {.X.|. spr|
|00002e40| 69 6e 74 66 28 62 75 66 | 2c 20 22 63 61 74 20 25 |intf(buf|, "cat %|
|00002e50| 73 3f 20 7c 20 75 75 64 | 65 63 6f 64 65 22 2c 20 |s? | uud|ecode", |
|00002e60| 6e 61 6d 65 29 3b 0a 58 | 09 09 7d 20 65 6c 73 65 |name);.X|..} else|
|00002e70| 20 7b 0a 58 09 09 20 20 | 20 20 66 63 6c 6f 73 65 | {.X.. | fclose|
|00002e80| 28 66 69 6c 65 29 3b 0a | 58 09 09 20 20 20 20 73 |(file);.|X.. s|
|00002e90| 70 72 69 6e 74 66 28 62 | 75 66 2c 20 22 63 61 74 |printf(b|uf, "cat|
|00002ea0| 20 25 73 3f 20 25 73 3f | 3f 20 7c 20 75 75 64 65 | %s? %s?|? | uude|
|00002eb0| 63 6f 64 65 22 2c 20 6e | 61 6d 65 2c 20 6e 61 6d |code", n|ame, nam|
|00002ec0| 65 29 3b 0a 58 09 09 7d | 0a 58 09 20 20 20 20 7d |e);.X..}|.X. }|
|00002ed0| 0a 58 09 7d 20 65 6c 73 | 65 20 69 66 20 28 73 74 |.X.} els|e if (st|
|00002ee0| 72 63 6d 70 28 70 20 2d | 20 31 2c 20 22 2e 7a 75 |rcmp(p -| 1, ".zu|
|00002ef0| 75 22 29 29 20 7b 0a 58 | 09 20 20 20 20 72 65 74 |u")) {.X|. ret|
|00002f00| 75 72 6e 3b 0a 58 09 7d | 0a 58 20 20 20 20 7d 0a |urn;.X.}|.X }.|
|00002f10| 58 20 20 20 20 73 70 72 | 69 6e 74 66 28 62 75 66 |X spr|intf(buf|
|00002f20| 2c 20 22 63 61 74 20 25 | 73 2a 20 7c 20 75 75 64 |, "cat %|s* | uud|
|00002f30| 65 63 6f 64 65 22 2c 20 | 6e 61 6d 65 29 3b 0a 58 |ecode", |name);.X|
|00002f40| 20 20 20 20 66 70 72 69 | 6e 74 66 28 73 74 64 65 | fpri|ntf(stde|
|00002f50| 72 72 2c 20 22 25 73 5c | 6e 22 2c 20 62 75 66 29 |rr, "%s\|n", buf)|
|00002f60| 3b 0a 58 20 20 20 20 69 | 66 20 28 73 79 73 74 65 |;.X i|f (syste|
|00002f70| 6d 28 62 75 66 29 20 3d | 3d 20 30 29 20 7b 0a 58 |m(buf) =|= 0) {.X|
|00002f80| 09 73 70 72 69 6e 74 66 | 28 62 75 66 2c 20 22 72 |.sprintf|(buf, "r|
|00002f90| 6d 20 25 73 2a 22 2c 20 | 6e 61 6d 65 29 3b 0a 58 |m %s*", |name);.X|
|00002fa0| 09 73 79 73 74 65 6d 28 | 62 75 66 29 3b 0a 58 20 |.system(|buf);.X |
|00002fb0| 20 20 20 7d 20 65 6c 73 | 65 20 7b 0a 58 09 66 70 | } els|e {.X.fp|
|00002fc0| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 20 22 65 |rintf(st|derr, "e|
|00002fd0| 78 69 74 20 73 74 61 74 | 75 73 20 6e 6f 6e 2d 7a |xit stat|us non-z|
|00002fe0| 65 72 6f 2c 20 6e 6f 74 | 20 64 65 6c 65 74 69 6e |ero, not| deletin|
|00002ff0| 67 20 66 69 6c 65 28 73 | 29 5c 6e 22 29 3b 0a 58 |g file(s|)\n");.X|
|00003000| 20 20 20 20 7d 0a 58 7d | 0a 58 0a 58 69 6e 74 0a | }.X}|.X.Xint.|
|00003010| 58 63 6f 6d 70 61 72 65 | 28 65 6c 65 6d 65 6e 74 |Xcompare|(element|
|00003020| 31 2c 20 65 6c 65 6d 65 | 6e 74 32 29 0a 58 20 20 |1, eleme|nt2).X |
|00003030| 20 20 4e 61 6d 65 20 20 | 20 20 20 20 20 20 20 20 | Name | |
|00003040| 20 2a 65 6c 65 6d 65 6e | 74 31 3b 0a 58 20 20 20 | *elemen|t1;.X |
|00003050| 20 4e 61 6d 65 20 20 20 | 20 20 20 20 20 20 20 20 | Name | |
|00003060| 2a 65 6c 65 6d 65 6e 74 | 32 3b 0a 58 7b 0a 58 20 |*element|2;.X{.X |
|00003070| 20 20 20 69 6e 74 20 20 | 20 20 20 20 20 20 20 20 | int | |
|00003080| 20 20 20 72 65 73 75 6c | 74 3b 0a 58 0a 58 20 20 | resul|t;.X.X |
|00003090| 20 20 72 65 73 75 6c 74 | 20 3d 20 73 74 72 63 6d | result| = strcm|
|000030a0| 70 28 65 6c 65 6d 65 6e | 74 31 2d 3e 61 72 63 68 |p(elemen|t1->arch|
|000030b0| 69 76 65 6e 61 6d 65 2c | 20 65 6c 65 6d 65 6e 74 |ivename,| element|
|000030c0| 32 2d 3e 61 72 63 68 69 | 76 65 6e 61 6d 65 29 3b |2->archi|vename);|
|000030d0| 0a 58 20 20 20 20 69 66 | 20 28 72 65 73 75 6c 74 |.X if| (result|
|000030e0| 20 3d 3d 20 30 29 0a 58 | 09 72 65 73 75 6c 74 20 | == 0).X|.result |
|000030f0| 3d 20 73 74 72 63 6d 70 | 28 65 6c 65 6d 65 6e 74 |= strcmp|(element|
|00003100| 31 2d 3e 66 69 6c 65 6e | 61 6d 65 2c 20 65 6c 65 |1->filen|ame, ele|
|00003110| 6d 65 6e 74 32 2d 3e 66 | 69 6c 65 6e 61 6d 65 29 |ment2->f|ilename)|
|00003120| 3b 0a 58 0a 58 20 20 20 | 20 72 65 74 75 72 6e 20 |;.X.X | return |
|00003130| 28 72 65 73 75 6c 74 29 | 3b 0a 58 7d 0a 58 0a 58 |(result)|;.X}.X.X|
|00003140| 2f 2a 0a 58 20 2a 20 69 | 73 5f 61 5f 73 68 61 72 |/*.X * i|s_a_shar|
|00003150| 66 69 6c 65 20 2d 20 72 | 65 74 75 72 6e 20 2d 31 |file - r|eturn -1|
|00003160| 20 69 66 20 61 20 73 68 | 61 72 66 69 6c 65 2c 20 | if a sh|arfile, |
|00003170| 30 20 6f 74 68 65 72 77 | 69 73 65 2e 0a 58 20 2a |0 otherw|ise..X *|
|00003180| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2d | | -|
|00003190| 20 61 73 20 77 65 6c 6c | 2c 20 73 65 74 20 74 68 | as well|, set th|
|000031a0| 65 20 67 6c 6f 62 61 6c | 20 76 61 72 69 61 62 6c |e global| variabl|
|000031b0| 65 20 41 72 63 68 69 76 | 65 4e 61 6d 65 0a 58 20 |e Archiv|eName.X |
|000031c0| 2a 2f 0a 58 0a 58 69 6e | 74 0a 58 69 73 5f 61 5f |*/.X.Xin|t.Xis_a_|
|000031d0| 73 68 61 72 66 69 6c 65 | 28 6e 61 6d 65 29 0a 58 |sharfile|(name).X|
|000031e0| 20 20 20 20 63 68 61 72 | 20 20 20 20 20 20 20 20 | char| |
|000031f0| 20 20 20 2a 6e 61 6d 65 | 3b 0a 58 7b 0a 58 20 20 | *name|;.X{.X |
|00003200| 20 20 46 49 4c 45 20 20 | 20 20 20 20 20 20 20 20 | FILE | |
|00003210| 20 2a 66 69 6e 3b 0a 58 | 20 20 20 20 63 68 61 72 | *fin;.X| char|
|00003220| 20 20 20 20 20 20 20 20 | 20 20 20 20 62 75 66 5b | | buf[|
|00003230| 32 30 30 5d 3b 0a 58 0a | 58 20 20 20 20 41 72 63 |200];.X.|X Arc|
|00003240| 68 69 76 65 4e 61 6d 65 | 5b 30 5d 20 3d 20 27 5c |hiveName|[0] = '\|
|00003250| 30 27 3b 0a 58 0a 58 20 | 20 20 20 66 69 6e 20 3d |0';.X.X | fin =|
|00003260| 20 66 6f 70 65 6e 28 6e | 61 6d 65 2c 20 22 72 22 | fopen(n|ame, "r"|
|00003270| 29 3b 0a 58 20 20 20 20 | 69 66 20 28 66 69 6e 20 |);.X |if (fin |
|00003280| 3d 3d 20 4e 55 4c 4c 29 | 09 09 2f 2a 20 66 69 6c |== NULL)|../* fil|
|00003290| 65 20 64 6f 65 73 6e 27 | 74 20 65 78 69 73 74 20 |e doesn'|t exist |
|000032a0| 21 3f 20 2a 2f 0a 58 09 | 72 65 74 75 72 6e 20 28 |!? */.X.|return (|
|000032b0| 30 29 3b 0a 58 0a 58 20 | 20 20 20 66 6f 72 20 28 |0);.X.X | for (|
|000032c0| 3b 3b 29 20 7b 0a 58 09 | 69 66 20 28 66 67 65 74 |;;) {.X.|if (fget|
|000032d0| 73 28 62 75 66 2c 20 32 | 30 30 2c 20 66 69 6e 29 |s(buf, 2|00, fin)|
|000032e0| 20 3d 3d 20 4e 55 4c 4c | 29 20 7b 09 2f 2a 20 6e | == NULL|) {./* n|
|000032f0| 6f 74 20 61 20 73 68 61 | 72 20 66 69 6c 65 20 21 |ot a sha|r file !|
|00003300| 3f 20 2a 2f 0a 58 09 20 | 20 20 20 62 72 65 61 6b |? */.X. | break|
|00003310| 3b 0a 58 09 7d 20 65 6c | 73 65 20 69 66 20 28 73 |;.X.} el|se if (s|
|00003320| 74 72 6e 63 6d 70 28 62 | 75 66 2c 20 22 41 72 63 |trncmp(b|uf, "Arc|
|00003330| 68 69 76 65 2d 6e 61 6d | 65 3a 22 2c 20 31 33 29 |hive-nam|e:", 13)|
|00003340| 20 3d 3d 20 30 29 20 7b | 0a 58 09 20 20 20 20 73 | == 0) {|.X. s|
|00003350| 73 63 61 6e 66 28 62 75 | 66 2c 20 22 41 72 63 68 |scanf(bu|f, "Arch|
|00003360| 69 76 65 2d 6e 61 6d 65 | 3a 20 25 73 22 2c 20 41 |ive-name|: %s", A|
|00003370| 72 63 68 69 76 65 4e 61 | 6d 65 29 3b 0a 58 09 7d |rchiveNa|me);.X.}|
|00003380| 20 65 6c 73 65 20 69 66 | 20 28 41 4e 5f 41 52 43 | else if| (AN_ARC|
|00003390| 48 49 56 45 28 62 75 66 | 29 29 20 7b 0a 58 09 20 |HIVE(buf|)) {.X. |
|000033a0| 20 20 20 66 63 6c 6f 73 | 65 28 66 69 6e 29 3b 0a | fclos|e(fin);.|
|000033b0| 58 09 20 20 20 20 72 65 | 74 75 72 6e 20 28 2d 31 |X. re|turn (-1|
|000033c0| 29 3b 0a 58 09 7d 0a 58 | 20 20 20 20 7d 0a 58 20 |);.X.}.X| }.X |
|000033d0| 20 20 20 66 63 6c 6f 73 | 65 28 66 69 6e 29 3b 0a | fclos|e(fin);.|
|000033e0| 58 20 20 20 20 72 65 74 | 75 72 6e 20 28 30 29 3b |X ret|urn (0);|
|000033f0| 0a 58 7d 0a 58 0a 58 69 | 6e 74 0a 58 53 65 6c 65 |.X}.X.Xi|nt.XSele|
|00003400| 63 74 28 64 70 29 0a 58 | 23 69 66 6e 64 65 66 20 |ct(dp).X|#ifndef |
|00003410| 53 59 53 54 45 4d 5f 56 | 0a 58 20 20 20 20 73 74 |SYSTEM_V|.X st|
|00003420| 72 75 63 74 20 64 69 72 | 65 63 74 20 20 2a 64 70 |ruct dir|ect *dp|
|00003430| 3b 0a 58 23 65 6c 73 65 | 0a 58 20 20 20 20 73 74 |;.X#else|.X st|
|00003440| 72 75 63 74 20 64 69 72 | 65 6e 74 20 20 2a 64 70 |ruct dir|ent *dp|
|00003450| 3b 0a 58 23 65 6e 64 69 | 66 0a 58 7b 0a 58 20 20 |;.X#endi|f.X{.X |
|00003460| 20 20 69 66 20 28 64 70 | 2d 3e 64 5f 6e 61 6d 65 | if (dp|->d_name|
|00003470| 5b 30 5d 20 21 3d 20 27 | 2e 27 29 0a 58 09 72 65 |[0] != '|.').X.re|
|00003480| 74 75 72 6e 20 28 2d 31 | 29 3b 0a 58 20 20 20 20 |turn (-1|);.X |
|00003490| 65 6c 73 65 0a 58 09 72 | 65 74 75 72 6e 20 28 30 |else.X.r|eturn (0|
|000034a0| 29 3b 0a 58 7d 0a 45 4e | 44 5f 4f 46 5f 46 49 4c |);.X}.EN|D_OF_FIL|
|000034b0| 45 0a 69 66 20 74 65 73 | 74 20 31 30 37 39 32 20 |E.if tes|t 10792 |
|000034c0| 2d 6e 65 20 60 77 63 20 | 2d 63 20 3c 27 6e 65 77 |-ne `wc |-c <'new|
|000034d0| 73 62 72 65 61 6b 2e 63 | 27 60 3b 20 74 68 65 6e |sbreak.c|'`; then|
|000034e0| 0a 20 20 20 20 65 63 68 | 6f 20 73 68 61 72 3a 20 |. ech|o shar: |
|000034f0| 5c 22 27 6e 65 77 73 62 | 72 65 61 6b 2e 63 27 5c |\"'newsb|reak.c'\|
|00003500| 22 20 75 6e 70 61 63 6b | 65 64 20 77 69 74 68 20 |" unpack|ed with |
|00003510| 77 72 6f 6e 67 20 73 69 | 7a 65 21 0a 66 69 0a 23 |wrong si|ze!.fi.#|
|00003520| 20 65 6e 64 20 6f 66 20 | 27 6e 65 77 73 62 72 65 | end of |'newsbre|
|00003530| 61 6b 2e 63 27 0a 66 69 | 0a 65 63 68 6f 20 73 68 |ak.c'.fi|.echo sh|
|00003540| 61 72 3a 20 45 6e 64 20 | 6f 66 20 73 68 65 6c 6c |ar: End |of shell|
|00003550| 20 61 72 63 68 69 76 65 | 2e 0a 65 78 69 74 20 30 | archive|..exit 0|
|00003560| 0a 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 63 75 |.-------|------cu|
|00003570| 74 2d 6d 65 2d 68 65 72 | 65 2d 6f 72 2d 75 73 65 |t-me-her|e-or-use|
|00003580| 2d 6e 65 77 73 62 72 65 | 61 6b 2d 2d 2d 2d 2d 2d |-newsbre|ak------|
|00003590| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0a 0a 67 |--------|-----..g|
|000035a0| 72 77 61 6c 74 65 72 40 | 77 61 74 6d 61 74 68 2e |rwalter@|watmath.|
|000035b0| 75 77 61 74 65 72 6c 6f | 6f 2e 63 61 20 20 20 20 |uwaterlo|o.ca |
|000035c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 43 | | (C|
|000035d0| 61 6e 61 64 69 61 6e 20 | 64 6f 6d 61 69 6e 29 0a |anadian |domain).|
|000035e0| 67 72 77 61 6c 74 65 72 | 40 77 61 74 6d 61 74 68 |grwalter|@watmath|
|000035f0| 2e 77 61 74 65 72 6c 6f | 6f 2e 65 64 75 20 20 20 |.waterlo|o.edu |
|00003600| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 28 | | (|
|00003610| 55 53 20 49 6e 74 65 72 | 6e 65 74 2c 20 69 6e 63 |US Inter|net, inc|
|00003620| 6c 75 64 69 6e 67 20 43 | 53 4e 45 54 29 0a 67 72 |luding C|SNET).gr|
|00003630| 77 61 6c 74 65 72 40 77 | 61 74 6d 61 74 68 2e 77 |walter@w|atmath.w|
|00003640| 61 74 65 72 6c 6f 6f 2e | 63 64 6e 20 20 20 20 20 |aterloo.|cdn |
|00003650| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 28 43 44 | | (CD|
|00003660| 4e 6e 65 74 20 61 6e 64 | 20 73 6f 6d 65 20 45 75 |Nnet and| some Eu|
|00003670| 72 6f 70 65 61 6e 20 6e | 65 74 73 29 0a 77 61 74 |ropean n|ets).wat|
|00003680| 6d 61 74 68 21 67 72 77 | 61 6c 74 65 72 20 20 20 |math!grw|alter |
|00003690| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000036a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 55 55 43 | | (UUC|
|000036b0| 50 29 0a 0a | |P).. | |
+--------+-------------------------+-------------------------+--------+--------+