home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
You can browse this item here: newsbrek.08
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 20 64 65 63 | 77 72 6c 21 75 75 6e 65 |From dec|wrl!uune|
|00000010| 74 21 61 6c 6c 62 65 72 | 79 20 53 75 6e 20 4d 61 |t!allber|y Sun Ma|
|00000020| 72 20 32 35 20 31 38 3a | 34 32 3a 31 36 20 50 53 |r 25 18:|42:16 PS|
|00000030| 54 20 31 39 39 30 0a 41 | 72 74 69 63 6c 65 20 31 |T 1990.A|rticle 1|
|00000040| 34 33 36 20 6f 66 20 63 | 6f 6d 70 2e 73 6f 75 72 |436 of c|omp.sour|
|00000050| 63 65 73 2e 6d 69 73 63 | 3a 0a 50 61 74 68 3a 20 |ces.misc|:.Path: |
|00000060| 64 65 63 77 72 6c 21 75 | 75 6e 65 74 21 61 6c 6c |decwrl!u|unet!all|
|00000070| 62 65 72 79 0a 46 72 6f | 6d 3a 20 67 72 77 61 6c |bery.Fro|m: grwal|
|00000080| 74 65 72 40 77 61 74 66 | 75 6e 2e 77 61 74 65 72 |ter@watf|un.water|
|00000090| 6c 6f 6f 2e 65 64 75 20 | 28 46 72 65 64 20 57 61 |loo.edu |(Fred Wa|
|000000a0| 6c 74 65 72 29 0a 4e 65 | 77 73 67 72 6f 75 70 73 |lter).Ne|wsgroups|
|000000b0| 3a 20 63 6f 6d 70 2e 73 | 6f 75 72 63 65 73 2e 6d |: comp.s|ources.m|
|000000c0| 69 73 63 0a 53 75 62 6a | 65 63 74 3a 20 76 31 31 |isc.Subj|ect: v11|
|000000d0| 69 30 36 31 3a 20 6e 65 | 77 73 62 72 65 61 6b 20 |i061: ne|wsbreak |
|000000e0| 31 2e 30 38 0a 4d 65 73 | 73 61 67 65 2d 49 44 3a |1.08.Mes|sage-ID:|
|000000f0| 20 3c 38 32 33 35 33 40 | 75 75 6e 65 74 2e 55 55 | <82353@|uunet.UU|
|00000100| 2e 4e 45 54 3e 0a 44 61 | 74 65 3a 20 32 36 20 4d |.NET>.Da|te: 26 M|
|00000110| 61 72 20 39 30 20 30 30 | 3a 30 33 3a 33 30 20 47 |ar 90 00|:03:30 G|
|00000120| 4d 54 0a 53 65 6e 64 65 | 72 3a 20 61 6c 6c 62 65 |MT.Sende|r: allbe|
|00000130| 72 79 40 75 75 6e 65 74 | 2e 55 55 2e 4e 45 54 0a |ry@uunet|.UU.NET.|
|00000140| 4c 69 6e 65 73 3a 20 34 | 35 35 0a 41 70 70 72 6f |Lines: 4|55.Appro|
|00000150| 76 65 64 3a 20 61 6c 6c | 62 65 72 79 40 75 75 6e |ved: all|bery@uun|
|00000160| 65 74 2e 55 55 2e 4e 45 | 54 20 28 42 72 61 6e 64 |et.UU.NE|T (Brand|
|00000170| 6f 6e 20 53 2e 20 41 6c | 6c 62 65 72 79 20 2d 20 |on S. Al|lbery - |
|00000180| 63 6f 6d 70 2e 73 6f 75 | 72 63 65 73 2e 6d 69 73 |comp.sou|rces.mis|
|00000190| 63 29 0a 0a 50 6f 73 74 | 69 6e 67 2d 6e 75 6d 62 |c)..Post|ing-numb|
|000001a0| 65 72 3a 20 56 6f 6c 75 | 6d 65 20 31 31 2c 20 49 |er: Volu|me 11, I|
|000001b0| 73 73 75 65 20 36 31 0a | 53 75 62 6d 69 74 74 65 |ssue 61.|Submitte|
|000001c0| 64 2d 62 79 3a 20 67 72 | 77 61 6c 74 65 72 40 77 |d-by: gr|walter@w|
|000001d0| 61 74 66 75 6e 2e 77 61 | 74 65 72 6c 6f 6f 2e 65 |atfun.wa|terloo.e|
|000001e0| 64 75 20 28 46 72 65 64 | 20 57 61 6c 74 65 72 29 |du (Fred| Walter)|
|000001f0| 0a 41 72 63 68 69 76 65 | 2d 6e 61 6d 65 3a 20 6e |.Archive|-name: n|
|00000200| 65 77 73 62 72 65 61 6b | 31 2e 30 38 0a 0a 49 27 |ewsbreak|1.08..I'|
|00000210| 76 65 20 6d 61 64 65 20 | 73 6f 6d 65 20 63 68 61 |ve made |some cha|
|00000220| 6e 67 65 73 20 74 6f 20 | 6e 65 77 73 62 72 65 61 |nges to |newsbrea|
|00000230| 6b 20 73 69 6e 63 65 20 | 74 68 65 20 6c 61 73 74 |k since |the last|
|00000240| 20 72 65 6c 65 61 73 65 | 2e 20 48 65 72 65 20 69 | release|. Here i|
|00000250| 73 20 61 0a 73 75 6d 6d | 61 72 79 20 3a 0a 0a 2a |s a.summ|ary :..*|
|00000260| 20 31 2e 30 37 20 2d 20 | 61 64 64 65 64 20 69 66 | 1.07 - |added if|
|00000270| 64 65 66 27 73 20 61 72 | 6f 75 6e 64 20 63 6f 64 |def's ar|ound cod|
|00000280| 65 20 6e 65 65 64 65 64 | 20 73 6f 20 74 68 69 73 |e needed| so this|
|00000290| 20 63 6f 6d 70 69 6c 65 | 73 20 75 6e 64 65 72 20 | compile|s under |
|000002a0| 53 79 73 74 65 6d 20 56 | 0a 2a 20 20 20 20 20 20 |System V|.* |
|000002b0| 2d 20 63 68 61 6e 67 65 | 73 20 62 79 20 61 6d 65 |- change|s by ame|
|000002c0| 73 21 75 74 73 2e 61 6d | 64 61 68 6c 2e 63 6f 6d |s!uts.am|dahl.com|
|000002d0| 21 64 77 6c 31 30 40 6d | 61 69 6c 72 75 73 20 28 |!dwl10@m|ailrus (|
|000002e0| 44 61 76 65 20 4c 6f 77 | 72 65 79 29 0a 2a 20 31 |Dave Low|rey).* 1|
|000002f0| 2e 30 38 20 2d 20 6e 6f | 77 20 63 68 65 63 6b 20 |.08 - no|w check |
|00000300| 66 6f 72 20 22 3a 20 54 | 68 69 73 20 69 73 20 61 |for ": T|his is a|
|00000310| 20 73 68 61 72 20 61 72 | 63 68 69 76 65 2e 22 20 | shar ar|chive." |
|00000320| 77 68 65 6e 20 63 68 65 | 63 6b 69 6e 67 0a 2a 20 |when che|cking.* |
|00000330| 20 20 20 20 20 20 20 69 | 66 20 61 20 66 69 6c 65 | i|f a file|
|00000340| 20 69 73 20 61 20 73 68 | 61 72 20 61 72 63 68 69 | is a sh|ar archi|
|00000350| 76 65 0a 2a 20 20 20 20 | 20 20 2d 20 6e 6f 77 20 |ve.* | - now |
|00000360| 63 68 65 63 6b 20 66 6f | 72 20 22 23 20 54 68 69 |check fo|r "# Thi|
|00000370| 73 20 69 73 20 74 68 65 | 20 66 69 72 73 74 20 6c |s is the| first l|
|00000380| 69 6e 65 20 6f 66 20 61 | 20 5c 22 73 68 65 6c 6c |ine of a| \"shell|
|00000390| 20 61 72 63 68 69 76 65 | 5c 22 22 0a 2a 20 20 20 | archive|\"".* |
|000003a0| 20 20 20 20 20 77 68 65 | 6e 20 63 68 65 63 6b 69 | whe|n checki|
|000003b0| 6e 67 20 69 66 20 61 20 | 66 69 6c 65 20 69 73 20 |ng if a |file is |
|000003c0| 61 20 73 68 61 72 20 61 | 72 63 68 69 76 65 0a 2a |a shar a|rchive.*|
|000003d0| 20 20 20 20 20 20 2d 20 | 62 75 69 6c 64 20 75 70 | - |build up|
|000003e0| 20 61 20 6c 69 73 74 20 | 6f 66 20 66 69 6c 65 73 | a list |of files|
|000003f0| 20 69 6e 20 74 68 65 20 | 63 75 72 72 65 6e 74 20 | in the |current |
|00000400| 64 69 72 65 63 74 6f 72 | 79 20 62 65 66 6f 72 65 |director|y before|
|00000410| 20 75 6e 73 68 61 72 27 | 69 6e 67 0a 2a 20 20 20 | unshar'|ing.* |
|00000420| 20 20 20 2d 20 73 63 61 | 6e 20 74 68 65 73 65 20 | - sca|n these |
|00000430| 66 69 6c 65 73 20 74 6f | 20 73 65 65 20 77 68 69 |files to| see whi|
|00000440| 63 68 20 6f 6e 65 73 20 | 73 68 6f 75 6c 64 20 62 |ch ones |should b|
|00000450| 65 20 75 6e 73 68 61 72 | 27 65 64 20 61 6e 64 20 |e unshar|'ed and |
|00000460| 74 72 79 0a 2a 20 20 20 | 20 20 20 20 20 74 6f 20 |try.* | to |
|00000470| 64 65 74 65 72 6d 69 6e | 65 20 74 68 65 20 62 65 |determin|e the be|
|00000480| 73 74 20 6f 72 64 65 72 | 69 6e 67 20 66 6f 72 20 |st order|ing for |
|00000490| 75 6e 73 68 61 72 27 69 | 6e 67 20 28 75 73 69 6e |unshar'i|ng (usin|
|000004a0| 67 20 74 68 65 20 73 65 | 63 6f 6e 64 61 72 79 0a |g the se|condary.|
|000004b0| 2a 20 20 20 20 20 20 20 | 20 68 65 61 64 65 72 20 |* | header |
|000004c0| 22 41 72 63 68 69 76 65 | 2d 6e 61 6d 65 3a 22 20 |"Archive|-name:" |
|000004d0| 69 66 20 69 74 20 65 78 | 69 73 74 73 2c 20 6f 74 |if it ex|ists, ot|
|000004e0| 68 65 72 77 69 73 65 20 | 75 73 69 6e 67 20 66 69 |herwise |using fi|
|000004f0| 6c 65 20 6e 61 6d 65 29 | 0a 2a 20 20 20 20 20 20 |le name)|.* |
|00000500| 2d 20 70 72 69 6e 74 20 | 77 68 61 74 20 64 69 72 |- print |what dir|
|00000510| 65 63 74 6f 72 79 20 69 | 73 20 62 65 69 6e 67 20 |ectory i|s being |
|00000520| 73 65 61 72 63 68 65 64 | 20 66 6f 72 20 75 75 65 |searched| for uue|
|00000530| 6e 63 6f 64 65 64 20 66 | 69 6c 65 73 0a 2a 20 20 |ncoded f|iles.* |
|00000540| 20 20 20 20 2d 20 70 72 | 69 6e 74 20 77 68 61 74 | - pr|int what|
|00000550| 20 69 73 20 62 65 69 6e | 67 20 75 75 64 65 63 6f | is bein|g uudeco|
|00000560| 64 65 64 0a 0a 4e 6f 77 | 2c 20 69 66 20 79 6f 75 |ded..Now|, if you|
|00000570| 20 68 61 76 65 20 61 20 | 6d 75 6c 74 69 2d 73 68 | have a |multi-sh|
|00000580| 61 72 20 64 69 73 74 72 | 69 62 75 74 69 6f 6e 2c |ar distr|ibution,|
|00000590| 20 69 6e 20 77 68 69 63 | 68 20 74 68 65 20 6f 72 | in whic|h the or|
|000005a0| 64 65 72 20 74 68 61 74 | 20 69 74 20 69 73 0a 75 |der that| it is.u|
|000005b0| 6e 70 61 63 6b 65 64 20 | 6d 61 74 74 65 72 73 2c |npacked |matters,|
|000005c0| 20 61 6e 64 20 74 68 65 | 79 20 64 6f 6e 27 74 20 | and the|y don't |
|000005d0| 61 72 72 69 76 65 20 61 | 74 20 79 6f 75 72 20 73 |arrive a|t your s|
|000005e0| 79 73 74 65 6d 20 69 6e | 20 74 68 65 20 63 6f 72 |ystem in| the cor|
|000005f0| 72 65 63 74 0a 6f 72 64 | 65 72 2c 20 62 75 74 20 |rect.ord|er, but |
|00000600| 74 68 65 20 70 6f 73 74 | 69 6e 67 73 20 64 6f 20 |the post|ings do |
|00000610| 68 61 76 65 20 61 6e 20 | 41 72 63 68 69 76 65 2d |have an |Archive-|
|00000620| 6e 61 6d 65 20 73 65 63 | 6f 6e 64 61 72 79 20 68 |name sec|ondary h|
|00000630| 65 61 64 65 72 20 77 68 | 69 63 68 0a 63 6f 72 72 |eader wh|ich.corr|
|00000640| 65 63 74 6c 79 20 72 65 | 66 6c 65 63 74 73 20 74 |ectly re|flects t|
|00000650| 68 65 20 6f 72 64 65 72 | 20 6e 65 65 64 65 64 20 |he order| needed |
|00000660| 28 49 45 2e 20 62 79 20 | 70 61 72 74 23 29 2c 20 |(IE. by |part#), |
|00000670| 74 68 65 6e 20 69 74 20 | 77 69 6c 6c 20 62 65 20 |then it |will be |
|00000680| 75 6e 70 61 63 6b 65 64 | 0a 63 6f 72 72 65 63 74 |unpacked|.correct|
|00000690| 6c 79 2e 0a 0a 57 68 65 | 77 2c 20 77 68 61 74 20 |ly...Whe|w, what |
|000006a0| 61 20 72 75 6e 2d 6f 6e | 20 73 65 6e 74 65 6e 63 |a run-on| sentenc|
|000006b0| 65 2e 0a 0a 09 66 72 65 | 64 0a 0a 2d 2d 2d 2d 2d |e....fre|d..-----|
|000006c0| 2d 2d 2d 2d 2d 2d 2d 2d | 63 75 74 2d 6d 65 2d 68 |--------|cut-me-h|
|000006d0| 65 72 65 2d 6f 72 2d 75 | 73 65 2d 6e 65 77 73 62 |ere-or-u|se-newsb|
|000006e0| 72 65 61 6b 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |reak----|--------|
|000006f0| 2d 2d 2d 2d 2d 2d 2d 0a | 23 21 20 2f 62 69 6e 2f |-------.|#! /bin/|
|00000700| 73 68 0a 23 20 54 68 69 | 73 20 69 73 20 61 20 73 |sh.# Thi|s is a s|
|00000710| 68 65 6c 6c 20 61 72 63 | 68 69 76 65 2e 20 20 52 |hell arc|hive. R|
|00000720| 65 6d 6f 76 65 20 61 6e | 79 74 68 69 6e 67 20 62 |emove an|ything b|
|00000730| 65 66 6f 72 65 20 74 68 | 69 73 20 6c 69 6e 65 2c |efore th|is line,|
|00000740| 20 74 68 65 6e 20 75 6e | 70 61 63 6b 0a 23 20 69 | then un|pack.# i|
|00000750| 74 20 62 79 20 73 61 76 | 69 6e 67 20 69 74 20 69 |t by sav|ing it i|
|00000760| 6e 74 6f 20 61 20 66 69 | 6c 65 20 61 6e 64 20 74 |nto a fi|le and t|
|00000770| 79 70 69 6e 67 20 22 73 | 68 20 66 69 6c 65 22 2e |yping "s|h file".|
|00000780| 20 20 54 6f 20 6f 76 65 | 72 77 72 69 74 65 20 65 | To ove|rwrite e|
|00000790| 78 69 73 74 69 6e 67 0a | 23 20 66 69 6c 65 73 2c |xisting.|# files,|
|000007a0| 20 74 79 70 65 20 22 73 | 68 20 66 69 6c 65 20 2d | type "s|h file -|
|000007b0| 63 22 2e 20 20 59 6f 75 | 20 63 61 6e 20 61 6c 73 |c". You| can als|
|000007c0| 6f 20 66 65 65 64 20 74 | 68 69 73 20 61 73 20 73 |o feed t|his as s|
|000007d0| 74 61 6e 64 61 72 64 20 | 69 6e 70 75 74 20 76 69 |tandard |input vi|
|000007e0| 61 0a 23 20 75 6e 73 68 | 61 72 2c 20 6f 72 20 62 |a.# unsh|ar, or b|
|000007f0| 79 20 74 79 70 69 6e 67 | 20 22 73 68 20 3c 66 69 |y typing| "sh <fi|
|00000800| 6c 65 22 2c 20 65 2e 67 | 2e 2e 20 20 49 66 20 74 |le", e.g|.. If t|
|00000810| 68 69 73 20 61 72 63 68 | 69 76 65 20 69 73 20 63 |his arch|ive is c|
|00000820| 6f 6d 70 6c 65 74 65 2c | 20 79 6f 75 0a 23 20 77 |omplete,| you.# w|
|00000830| 69 6c 6c 20 73 65 65 20 | 74 68 65 20 66 6f 6c 6c |ill see |the foll|
|00000840| 6f 77 69 6e 67 20 6d 65 | 73 73 61 67 65 20 61 74 |owing me|ssage at|
|00000850| 20 74 68 65 20 65 6e 64 | 3a 0a 23 09 09 22 45 6e | the end|:.#.."En|
|00000860| 64 20 6f 66 20 73 68 65 | 6c 6c 20 61 72 63 68 69 |d of she|ll archi|
|00000870| 76 65 2e 22 0a 23 20 43 | 6f 6e 74 65 6e 74 73 3a |ve.".# C|ontents:|
|00000880| 20 20 6e 65 77 73 62 72 | 65 61 6b 2e 63 0a 23 20 | newsbr|eak.c.# |
|00000890| 57 72 61 70 70 65 64 20 | 62 79 20 67 72 77 61 6c |Wrapped |by grwal|
|000008a0| 74 65 72 40 77 61 74 66 | 75 6e 20 6f 6e 20 54 75 |ter@watf|un on Tu|
|000008b0| 65 20 4d 61 72 20 31 33 | 20 31 31 3a 32 36 3a 33 |e Mar 13| 11:26:3|
|000008c0| 37 20 31 39 39 30 0a 50 | 41 54 48 3d 2f 62 69 6e |7 1990.P|ATH=/bin|
|000008d0| 3a 2f 75 73 72 2f 62 69 | 6e 3a 2f 75 73 72 2f 75 |:/usr/bi|n:/usr/u|
|000008e0| 63 62 20 3b 20 65 78 70 | 6f 72 74 20 50 41 54 48 |cb ; exp|ort PATH|
|000008f0| 0a 69 66 20 74 65 73 74 | 20 2d 66 20 27 6e 65 77 |.if test| -f 'new|
|00000900| 73 62 72 65 61 6b 2e 63 | 27 20 2d 61 20 22 24 7b |sbreak.c|' -a "${|
|00000910| 31 7d 22 20 21 3d 20 22 | 2d 63 22 20 3b 20 74 68 |1}" != "|-c" ; th|
|00000920| 65 6e 20 0a 20 20 65 63 | 68 6f 20 73 68 61 72 3a |en . ec|ho shar:|
|00000930| 20 57 69 6c 6c 20 6e 6f | 74 20 63 6c 6f 62 62 65 | Will no|t clobbe|
|00000940| 72 20 65 78 69 73 74 69 | 6e 67 20 66 69 6c 65 20 |r existi|ng file |
|00000950| 5c 22 27 6e 65 77 73 62 | 72 65 61 6b 2e 63 27 5c |\"'newsb|reak.c'\|
|00000960| 22 0a 65 6c 73 65 0a 65 | 63 68 6f 20 73 68 61 72 |".else.e|cho shar|
|00000970| 3a 20 45 78 74 72 61 63 | 74 69 6e 67 20 5c 22 27 |: Extrac|ting \"'|
|00000980| 6e 65 77 73 62 72 65 61 | 6b 2e 63 27 5c 22 20 5c |newsbrea|k.c'\" \|
|00000990| 28 31 30 37 39 32 20 63 | 68 61 72 61 63 74 65 72 |(10792 c|haracter|
|000009a0| 73 5c 29 0a 73 65 64 20 | 22 73 2f 5e 58 2f 2f 22 |s\).sed |"s/^X//"|
|000009b0| 20 3e 27 6e 65 77 73 62 | 72 65 61 6b 2e 63 27 20 | >'newsb|reak.c' |
|000009c0| 3c 3c 27 45 4e 44 5f 4f | 46 5f 46 49 4c 45 27 0a |<<'END_O|F_FILE'.|
|000009d0| 58 23 64 65 66 69 6e 65 | 20 56 45 52 53 49 4f 4e |X#define| VERSION|
|000009e0| 20 22 6e 65 77 73 62 72 | 65 61 6b 20 31 2e 30 38 | "newsbr|eak 1.08|
|000009f0| 20 62 79 20 47 2e 20 52 | 2e 20 57 61 6c 74 65 72 | by G. R|. Walter|
|00000a00| 22 0a 58 0a 58 2f 2a 0a | 58 20 2a 20 6e 65 77 73 |".X.X/*.|X * news|
|00000a10| 62 72 65 61 6b 2e 63 0a | 58 20 2a 0a 58 20 2a 20 |break.c.|X *.X * |
|00000a20| 62 79 20 47 2e 20 52 2e | 20 57 61 6c 74 65 72 20 |by G. R.| Walter |
|00000a30| 28 46 72 65 64 29 20 44 | 65 63 65 6d 62 65 72 20 |(Fred) D|ecember |
|00000a40| 33 30 2c 20 31 39 38 38 | 0a 58 20 2a 0a 58 20 2a |30, 1988|.X *.X *|
|00000a50| 20 54 4f 20 43 4f 4d 50 | 49 4c 45 3a 0a 58 20 2a | TO COMP|ILE:.X *|
|00000a60| 20 20 20 20 20 55 6e 64 | 65 72 20 42 53 44 20 34 | Und|er BSD 4|
|00000a70| 2e 33 0a 58 20 2a 20 20 | 20 20 20 20 20 20 20 63 |.3.X * | c|
|00000a80| 63 20 6e 65 77 73 62 72 | 65 61 6b 2e 63 20 2d 6f |c newsbr|eak.c -o|
|00000a90| 20 6e 65 77 73 62 72 65 | 61 6b 2e 63 0a 58 20 2a | newsbre|ak.c.X *|
|00000aa0| 20 20 20 20 20 55 6e 64 | 65 72 20 53 79 73 74 65 | Und|er Syste|
|00000ab0| 6d 20 56 20 28 6f 6e 6c | 79 20 74 68 6f 73 65 20 |m V (onl|y those |
|00000ac0| 76 61 72 69 61 6e 74 73 | 20 74 68 61 74 20 61 6c |variants| that al|
|00000ad0| 6c 6f 77 20 2d 6c 62 73 | 64 2c 20 77 68 69 63 68 |low -lbs|d, which|
|00000ae0| 20 69 73 0a 58 20 2a 20 | 20 20 20 20 20 20 20 20 | is.X * | |
|00000af0| 20 20 20 20 20 20 20 20 | 20 20 20 20 72 65 71 75 | | requ|
|00000b00| 69 72 65 64 20 66 6f 72 | 20 73 63 61 6e 64 69 72 |ired for| scandir|
|00000b10| 20 61 6e 64 20 61 6c 70 | 68 61 73 6f 72 74 29 0a | and alp|hasort).|
|00000b20| 58 20 2a 20 20 20 20 20 | 20 20 20 20 63 63 20 6e |X * | cc n|
|00000b30| 65 77 73 62 72 65 61 6b | 2e 63 20 2d 44 53 59 53 |ewsbreak|.c -DSYS|
|00000b40| 54 45 4d 5f 56 20 2d 6c | 62 73 64 20 2d 6f 20 6e |TEM_V -l|bsd -o n|
|00000b50| 65 77 73 62 72 65 61 6b | 2e 63 0a 58 20 2a 0a 58 |ewsbreak|.c.X *.X|
|00000b60| 20 2a 20 44 45 53 43 52 | 49 50 54 49 4f 4e 3a 0a | * DESCR|IPTION:.|
|00000b70| 58 20 2a 20 20 20 20 20 | 54 61 6b 65 73 20 61 20 |X * |Takes a |
|00000b80| 73 65 72 69 65 73 20 6f | 66 20 66 69 6c 65 73 20 |series o|f files |
|00000b90| 77 68 69 63 68 20 61 72 | 65 20 73 68 61 72 20 66 |which ar|e shar f|
|00000ba0| 69 6c 65 73 20 28 73 74 | 72 69 70 73 20 61 6e 79 |iles (st|rips any|
|00000bb0| 0a 58 20 2a 20 20 20 20 | 20 67 61 72 62 61 67 65 |.X * | garbage|
|00000bc0| 20 61 74 20 74 68 65 20 | 73 74 61 72 74 20 6f 66 | at the |start of|
|00000bd0| 20 74 68 65 20 73 68 61 | 72 20 66 69 6c 65 29 20 | the sha|r file) |
|00000be0| 74 68 61 74 20 68 61 76 | 65 20 62 65 65 6e 20 70 |that hav|e been p|
|00000bf0| 6f 73 74 65 64 20 74 6f | 0a 58 20 2a 20 20 20 20 |osted to|.X * |
|00000c00| 20 63 6f 6d 70 2e 7b 73 | 6f 75 72 63 65 73 7c 62 | comp.{s|ources|b|
|00000c10| 69 6e 61 72 69 65 73 7d | 2e 2a 20 61 6e 64 20 66 |inaries}|.* and f|
|00000c20| 65 65 64 73 20 74 68 65 | 6d 20 74 68 72 6f 75 67 |eeds the|m throug|
|00000c30| 68 20 73 68 2e 0a 58 20 | 2a 20 20 20 20 20 41 66 |h sh..X |* Af|
|00000c40| 74 65 72 20 74 68 65 79 | 20 68 61 76 65 20 62 65 |ter they| have be|
|00000c50| 65 6e 20 66 65 64 20 74 | 68 72 6f 75 67 68 20 73 |en fed t|hrough s|
|00000c60| 68 20 74 68 65 20 6f 72 | 69 67 69 6e 61 6c 20 66 |h the or|iginal f|
|00000c70| 69 6c 65 73 20 61 72 65 | 0a 58 20 2a 20 20 20 20 |iles are|.X * |
|00000c80| 20 64 65 6c 65 74 65 64 | 2e 20 54 68 65 6e 20 61 | deleted|. Then a|
|00000c90| 6e 79 20 75 75 65 6e 63 | 6f 64 65 64 20 66 69 6c |ny uuenc|oded fil|
|00000ca0| 65 73 20 61 72 65 20 75 | 75 64 65 63 6f 64 65 64 |es are u|udecoded|
|00000cb0| 2c 20 61 66 74 65 72 20 | 77 68 69 63 68 0a 58 20 |, after |which.X |
|00000cc0| 2a 20 20 20 20 20 74 68 | 65 20 75 75 65 6e 63 6f |* th|e uuenco|
|00000cd0| 64 65 64 20 66 69 6c 65 | 73 20 61 72 65 20 61 6c |ded file|s are al|
|00000ce0| 73 6f 20 64 65 6c 65 74 | 65 64 2e 0a 58 20 2a 0a |so delet|ed..X *.|
|00000cf0| 58 20 2a 20 4e 4f 54 45 | 53 3a 0a 58 20 2a 20 20 |X * NOTE|S:.X * |
|00000d00| 20 20 20 31 29 20 54 68 | 69 73 20 70 72 6f 67 72 | 1) Th|is progr|
|00000d10| 61 6d 20 61 73 73 75 6d | 65 73 20 74 68 61 74 20 |am assum|es that |
|00000d20| 61 6c 6c 20 6e 65 63 65 | 73 73 61 72 79 20 73 68 |all nece|ssary sh|
|00000d30| 61 72 20 66 69 6c 65 73 | 20 61 72 65 20 69 6e 20 |ar files| are in |
|00000d40| 74 68 65 0a 58 20 2a 20 | 20 20 20 20 20 20 20 63 |the.X * | c|
|00000d50| 75 72 72 65 6e 74 20 64 | 69 72 65 63 74 6f 72 79 |urrent d|irectory|
|00000d60| 2e 20 49 74 20 61 74 74 | 65 6d 70 74 73 20 74 6f |. It att|empts to|
|00000d70| 20 6e 6f 74 20 64 65 6c | 65 74 65 20 73 74 75 66 | not del|ete stuf|
|00000d80| 66 20 69 66 20 69 74 20 | 63 61 6e 27 74 0a 58 20 |f if it |can't.X |
|00000d90| 2a 20 20 20 20 20 20 20 | 20 68 61 6e 64 6c 65 20 |* | handle |
|00000da0| 69 74 20 28 6c 69 6b 65 | 20 77 68 65 6e 20 6e 6f |it (like| when no|
|00000db0| 74 20 61 6c 6c 20 74 68 | 65 20 70 61 72 74 73 20 |t all th|e parts |
|00000dc0| 6f 66 20 61 20 6d 75 6c | 74 69 2d 70 61 72 74 20 |of a mul|ti-part |
|00000dd0| 75 75 65 6e 63 6f 64 65 | 64 0a 58 20 2a 20 20 20 |uuencode|d.X * |
|00000de0| 20 20 20 20 20 66 69 6c | 65 20 61 72 65 20 61 76 | fil|e are av|
|00000df0| 61 69 6c 61 62 6c 65 29 | 2e 0a 58 20 2a 20 20 20 |ailable)|..X * |
|00000e00| 20 20 32 29 20 57 68 65 | 6e 20 74 68 65 72 65 20 | 2) Whe|n there |
|00000e10| 61 72 65 20 6d 75 6c 74 | 69 70 6c 65 20 70 61 72 |are mult|iple par|
|00000e20| 74 73 20 74 6f 20 61 20 | 75 75 65 6e 63 6f 64 65 |ts to a |uuencode|
|00000e30| 64 20 66 69 6c 65 2c 20 | 61 20 6d 61 78 69 6d 75 |d file, |a maximu|
|00000e40| 6d 0a 58 20 2a 20 20 20 | 20 20 20 20 20 6f 66 20 |m.X * | of |
|00000e50| 39 39 20 70 61 72 74 73 | 20 61 72 65 20 63 75 72 |99 parts| are cur|
|00000e60| 72 65 6e 74 6c 79 20 68 | 61 6e 64 6c 65 64 2e 0a |rently h|andled..|
|00000e70| 58 20 2a 0a 58 20 2a 20 | 48 49 53 54 4f 52 59 3a |X *.X * |HISTORY:|
|00000e80| 0a 58 20 2a 20 31 2e 30 | 30 20 2d 20 6f 72 69 67 |.X * 1.0|0 - orig|
|00000e90| 69 6e 61 6c 20 76 65 72 | 73 69 6f 6e 0a 58 20 2a |inal ver|sion.X *|
|00000ea0| 20 31 2e 30 31 20 2d 20 | 73 6d 61 6c 6c 20 65 6e | 1.01 - |small en|
|00000eb0| 68 61 6e 63 65 6d 65 6e | 74 73 2f 62 75 67 20 66 |hancemen|ts/bug f|
|00000ec0| 69 78 65 73 0a 58 20 2a | 20 31 2e 30 32 20 2d 20 |ixes.X *| 1.02 - |
|00000ed0| 6e 6f 77 20 68 61 6e 64 | 6c 65 20 2e 7a 75 27 73 |now hand|le .zu's|
|00000ee0| 20 77 69 74 68 20 3e 20 | 39 20 70 61 72 74 73 20 | with > |9 parts |
|00000ef0| 63 6f 72 72 65 63 74 6c | 79 0a 58 20 2a 20 31 2e |correctl|y.X * 1.|
|00000f00| 30 33 20 2d 20 6e 6f 77 | 20 63 68 65 63 6b 20 66 |03 - now| check f|
|00000f10| 6f 72 20 22 3a 5c 74 73 | 68 61 72 5c 3a 53 68 65 |or ":\ts|har\:She|
|00000f20| 6c 6c 20 41 72 63 68 69 | 76 65 72 22 20 77 68 65 |ll Archi|ver" whe|
|00000f30| 6e 20 63 68 65 63 6b 69 | 6e 67 20 69 66 20 61 20 |n checki|ng if a |
|00000f40| 66 69 6c 65 0a 58 20 2a | 20 20 20 20 20 20 20 20 |file.X *| |
|00000f50| 69 73 20 61 20 73 68 61 | 72 20 61 72 63 68 69 76 |is a sha|r archiv|
|00000f60| 65 0a 58 20 2a 20 20 20 | 20 20 20 2d 20 6e 6f 77 |e.X * | - now|
|00000f70| 20 68 61 6e 64 6c 65 73 | 20 66 69 6c 65 73 20 65 | handles| files e|
|00000f80| 6e 64 69 6e 67 20 69 6e | 20 2e 75 75 23 0a 58 20 |nding in| .uu#.X |
|00000f90| 2a 20 31 2e 30 34 20 2d | 20 6e 6f 77 20 63 68 65 |* 1.04 -| now che|
|00000fa0| 63 6b 20 66 6f 72 20 22 | 3a 20 72 75 6e 20 73 68 |ck for "|: run sh|
|00000fb0| 20 6f 6e 20 74 68 69 73 | 20 66 69 6c 65 20 74 6f | on this| file to|
|00000fc0| 20 75 6e 62 75 6e 64 6c | 65 22 20 77 68 65 6e 20 | unbundl|e" when |
|00000fd0| 63 68 65 63 6b 69 6e 67 | 0a 58 20 2a 20 20 20 20 |checking|.X * |
|00000fe0| 20 20 20 20 69 66 20 61 | 20 66 69 6c 65 20 69 73 | if a| file is|
|00000ff0| 20 61 20 73 68 61 72 20 | 61 72 63 68 69 76 65 0a | a shar |archive.|
|00001000| 58 20 2a 20 31 2e 30 35 | 20 2d 20 6e 6f 77 20 63 |X * 1.05| - now c|
|00001010| 68 65 63 6b 20 66 6f 72 | 20 22 23 20 54 68 69 73 |heck for| "# This|
|00001020| 20 69 73 20 61 20 73 68 | 65 6c 6c 20 61 72 63 68 | is a sh|ell arch|
|00001030| 69 76 65 2e 22 20 77 68 | 65 6e 20 63 68 65 63 6b |ive." wh|en check|
|00001040| 69 6e 67 0a 58 20 2a 20 | 20 20 20 20 20 20 20 69 |ing.X * | i|
|00001050| 66 20 61 20 66 69 6c 65 | 20 69 73 20 61 20 73 68 |f a file| is a sh|
|00001060| 61 72 20 61 72 63 68 69 | 76 65 0a 58 20 2a 20 20 |ar archi|ve.X * |
|00001070| 20 20 20 20 2d 20 6e 6f | 77 20 70 72 69 6e 74 73 | - no|w prints|
|00001080| 20 6f 75 74 20 74 68 65 | 20 76 65 72 73 69 6f 6e | out the| version|
|00001090| 20 28 61 6e 64 20 61 75 | 74 68 6f 72 20 6e 61 6d | (and au|thor nam|
|000010a0| 65 29 20 77 68 65 6e 20 | 72 75 6e 0a 58 20 2a 20 |e) when |run.X * |
|000010b0| 31 2e 30 36 20 2d 20 6e | 6f 77 20 63 68 65 63 6b |1.06 - n|ow check|
|000010c0| 20 66 6f 72 20 22 41 72 | 63 68 69 76 65 2d 6e 61 | for "Ar|chive-na|
|000010d0| 6d 65 3a 22 20 74 6f 20 | 73 65 65 20 77 68 61 74 |me:" to |see what|
|000010e0| 20 64 69 72 65 63 74 6f | 72 79 20 74 68 65 0a 58 | directo|ry the.X|
|000010f0| 20 2a 20 20 20 20 20 20 | 20 20 72 65 73 75 6c 74 | * | result|
|00001100| 69 6e 67 20 66 69 6c 65 | 73 20 73 68 6f 75 6c 64 |ing file|s should|
|00001110| 20 62 65 20 70 75 74 20 | 69 6e 2e 20 4e 4f 54 45 | be put |in. NOTE|
|00001120| 3a 20 61 6e 79 20 70 61 | 72 74 73 20 61 66 74 65 |: any pa|rts afte|
|00001130| 72 0a 58 20 2a 20 20 20 | 20 20 20 20 20 61 20 22 |r.X * | a "|
|00001140| 70 61 72 74 2a 22 20 73 | 65 63 74 69 6f 6e 20 69 |part*" s|ection i|
|00001150| 6e 20 74 68 65 20 70 61 | 74 68 20 61 72 65 20 6e |n the pa|th are n|
|00001160| 6f 74 20 6d 6b 64 69 72 | 27 65 64 0a 58 20 2a 20 |ot mkdir|'ed.X * |
|00001170| 20 20 20 20 20 2d 20 6e | 6f 77 20 68 61 6e 64 6c | - n|ow handl|
|00001180| 65 73 20 66 69 6c 65 73 | 20 65 6e 64 69 6e 67 20 |es files| ending |
|00001190| 69 6e 20 2e 7a 75 75 23 | 0a 58 20 2a 20 20 20 20 |in .zuu#|.X * |
|000011a0| 20 20 2d 20 6e 6f 77 20 | 68 61 6e 64 6c 65 73 20 | - now |handles |
|000011b0| 66 69 6c 65 73 20 65 6e | 64 69 6e 67 20 69 6e 20 |files en|ding in |
|000011c0| 2e 75 75 23 20 70 72 6f | 70 65 72 6c 79 0a 58 20 |.uu# pro|perly.X |
|000011d0| 2a 20 20 20 20 20 20 2d | 20 6e 6f 77 20 64 6f 65 |* -| now doe|
|000011e0| 73 6e 27 74 20 61 74 74 | 65 6d 70 74 20 74 6f 20 |sn't att|empt to |
|000011f0| 70 72 6f 63 65 73 73 20 | 66 69 6c 65 73 20 73 74 |process |files st|
|00001200| 61 72 74 69 6e 67 20 69 | 6e 20 22 2e 22 0a 58 20 |arting i|n ".".X |
|00001210| 2a 20 20 20 20 20 20 2d | 20 6e 6f 77 20 70 72 69 |* -| now pri|
|00001220| 6e 74 73 20 73 6f 6d 65 | 20 75 73 65 66 75 6c 20 |nts some| useful |
|00001230| 69 6e 66 6f 20 28 73 6f | 20 79 6f 75 20 6b 6e 6f |info (so| you kno|
|00001240| 77 20 77 68 61 74 20 69 | 74 20 69 73 20 64 6f 69 |w what i|t is doi|
|00001250| 6e 67 29 0a 58 20 2a 20 | 20 20 20 20 20 2d 20 6e |ng).X * | - n|
|00001260| 6f 77 20 63 68 65 63 6b | 20 66 6f 72 20 22 23 20 |ow check| for "# |
|00001270| 41 66 74 65 72 20 79 6f | 75 20 75 6e 70 61 63 6b |After yo|u unpack|
|00001280| 20 65 76 65 72 79 74 68 | 69 6e 67 22 20 77 68 65 | everyth|ing" whe|
|00001290| 6e 20 63 68 65 63 6b 69 | 6e 67 0a 58 20 2a 20 20 |n checki|ng.X * |
|000012a0| 20 20 20 20 20 20 69 66 | 20 61 20 66 69 6c 65 20 | if| a file |
|000012b0| 69 73 20 61 20 73 68 61 | 72 20 61 72 63 68 69 76 |is a sha|r archiv|
|000012c0| 65 0a 58 20 2a 20 20 20 | 20 20 20 2d 20 6d 61 6b |e.X * | - mak|
|000012d0| 65 20 73 75 72 65 20 49 | 20 64 6f 6e 27 74 20 74 |e sure I| don't t|
|000012e0| 72 79 20 74 6f 20 75 75 | 64 65 63 6f 64 65 20 64 |ry to uu|decode d|
|000012f0| 69 72 65 63 74 6f 72 69 | 65 73 0a 58 20 2a 20 20 |irectori|es.X * |
|00001300| 20 20 20 20 2d 20 72 65 | 63 75 72 73 69 76 65 6c | - re|cursivel|
|00001310| 79 20 64 65 73 63 65 6e | 64 20 64 69 72 65 63 74 |y descen|d direct|
|00001320| 6f 72 69 65 73 20 77 68 | 65 6e 20 75 75 64 65 63 |ories wh|en uudec|
|00001330| 6f 64 69 6e 67 0a 58 20 | 2a 20 31 2e 30 37 20 2d |oding.X |* 1.07 -|
|00001340| 20 61 64 64 65 64 20 69 | 66 64 65 66 27 73 20 61 | added i|fdef's a|
|00001350| 72 6f 75 6e 64 20 63 6f | 64 65 20 6e 65 65 64 65 |round co|de neede|
|00001360| 64 20 73 6f 20 74 68 69 | 73 20 63 6f 6d 70 69 6c |d so thi|s compil|
|00001370| 65 73 20 75 6e 64 65 72 | 20 53 79 73 74 65 6d 20 |es under| System |
|00001380| 56 0a 58 20 2a 20 20 20 | 20 20 20 2d 20 63 68 61 |V.X * | - cha|
|00001390| 6e 67 65 73 20 62 79 20 | 61 6d 65 73 21 75 74 73 |nges by |ames!uts|
|000013a0| 2e 61 6d 64 61 68 6c 2e | 63 6f 6d 21 64 77 6c 31 |.amdahl.|com!dwl1|
|000013b0| 30 40 6d 61 69 6c 72 75 | 73 20 28 44 61 76 65 20 |0@mailru|s (Dave |
|000013c0| 4c 6f 77 72 65 79 29 0a | 58 20 2a 20 31 2e 30 38 |Lowrey).|X * 1.08|
|000013d0| 20 2d 20 6e 6f 77 20 63 | 68 65 63 6b 20 66 6f 72 | - now c|heck for|
|000013e0| 20 22 3a 20 54 68 69 73 | 20 69 73 20 61 20 73 68 | ": This| is a sh|
|000013f0| 61 72 20 61 72 63 68 69 | 76 65 2e 22 20 77 68 65 |ar archi|ve." whe|
|00001400| 6e 20 63 68 65 63 6b 69 | 6e 67 0a 58 20 2a 20 20 |n checki|ng.X * |
|00001410| 20 20 20 20 20 20 69 66 | 20 61 20 66 69 6c 65 20 | if| a file |
|00001420| 69 73 20 61 20 73 68 61 | 72 20 61 72 63 68 69 76 |is a sha|r archiv|
|00001430| 65 0a 58 20 2a 20 20 20 | 20 20 20 2d 20 6e 6f 77 |e.X * | - now|
|00001440| 20 63 68 65 63 6b 20 66 | 6f 72 20 22 23 20 54 68 | check f|or "# Th|
|00001450| 69 73 20 69 73 20 74 68 | 65 20 66 69 72 73 74 20 |is is th|e first |
|00001460| 6c 69 6e 65 20 6f 66 20 | 61 20 5c 22 73 68 65 6c |line of |a \"shel|
|00001470| 6c 20 61 72 63 68 69 76 | 65 5c 22 22 0a 58 20 2a |l archiv|e\"".X *|
|00001480| 20 20 20 20 20 20 20 20 | 77 68 65 6e 20 63 68 65 | |when che|
|00001490| 63 6b 69 6e 67 20 69 66 | 20 61 20 66 69 6c 65 20 |cking if| a file |
|000014a0| 69 73 20 61 20 73 68 61 | 72 20 61 72 63 68 69 76 |is a sha|r archiv|
|000014b0| 65 0a 58 20 2a 20 20 20 | 20 20 20 2d 20 62 75 69 |e.X * | - bui|
|000014c0| 6c 64 20 75 70 20 61 20 | 6c 69 73 74 20 6f 66 20 |ld up a |list of |
|000014d0| 66 69 6c 65 73 20 69 6e | 20 74 68 65 20 63 75 72 |files in| the cur|
|000014e0| 72 65 6e 74 20 64 69 72 | 65 63 74 6f 72 79 20 62 |rent dir|ectory b|
|000014f0| 65 66 6f 72 65 20 75 6e | 73 68 61 72 27 69 6e 67 |efore un|shar'ing|
|00001500| 0a 58 20 2a 20 20 20 20 | 20 20 2d 20 73 63 61 6e |.X * | - scan|
|00001510| 20 74 68 65 73 65 20 66 | 69 6c 65 73 20 74 6f 20 | these f|iles to |
|00001520| 73 65 65 20 77 68 69 63 | 68 20 6f 6e 65 73 20 73 |see whic|h ones s|
|00001530| 68 6f 75 6c 64 20 62 65 | 20 75 6e 73 68 61 72 27 |hould be| unshar'|
|00001540| 65 64 20 61 6e 64 20 74 | 72 79 0a 58 20 2a 20 20 |ed and t|ry.X * |
|00001550| 20 20 20 20 20 20 74 6f | 20 64 65 74 65 72 6d 69 | to| determi|
|00001560| 6e 65 20 74 68 65 20 62 | 65 73 74 20 6f 72 64 65 |ne the b|est orde|
|00001570| 72 69 6e 67 20 66 6f 72 | 20 75 6e 73 68 61 72 27 |ring for| unshar'|
|00001580| 69 6e 67 20 28 75 73 69 | 6e 67 20 74 68 65 20 73 |ing (usi|ng the s|
|00001590| 65 63 6f 6e 64 61 72 79 | 0a 58 20 2a 20 20 20 20 |econdary|.X * |
|000015a0| 20 20 20 20 68 65 61 64 | 65 72 20 22 41 72 63 68 | head|er "Arch|
|000015b0| 69 76 65 2d 6e 61 6d 65 | 3a 22 20 69 66 20 69 74 |ive-name|:" if it|
|000015c0| 20 65 78 69 73 74 73 2c | 20 6f 74 68 65 72 77 69 | exists,| otherwi|
|000015d0| 73 65 20 75 73 69 6e 67 | 20 66 69 6c 65 20 6e 61 |se using| file na|
|000015e0| 6d 65 29 0a 58 20 2a 20 | 20 20 20 20 20 2d 20 70 |me).X * | - p|
|000015f0| 72 69 6e 74 20 77 68 61 | 74 20 64 69 72 65 63 74 |rint wha|t direct|
|00001600| 6f 72 79 20 69 73 20 62 | 65 69 6e 67 20 73 65 61 |ory is b|eing sea|
|00001610| 72 63 68 65 64 20 66 6f | 72 20 75 75 65 6e 63 6f |rched fo|r uuenco|
|00001620| 64 65 64 20 66 69 6c 65 | 73 0a 58 20 2a 20 20 20 |ded file|s.X * |
|00001630| 20 20 20 2d 20 70 72 69 | 6e 74 20 77 68 61 74 20 | - pri|nt what |
|00001640| 69 73 20 62 65 69 6e 67 | 20 75 75 64 65 63 6f 64 |is being| uudecod|
|00001650| 65 64 0a 58 20 2a 2f 0a | 58 0a 58 23 69 6e 63 6c |ed.X */.|X.X#incl|
|00001660| 75 64 65 20 3c 73 74 64 | 69 6f 2e 68 3e 0a 58 23 |ude <std|io.h>.X#|
|00001670| 69 6e 63 6c 75 64 65 20 | 3c 63 74 79 70 65 2e 68 |include |<ctype.h|
|00001680| 3e 0a 58 23 69 6e 63 6c | 75 64 65 20 3c 73 79 73 |>.X#incl|ude <sys|
|00001690| 2f 74 79 70 65 73 2e 68 | 3e 0a 58 23 69 6e 63 6c |/types.h|>.X#incl|
|000016a0| 75 64 65 20 3c 73 79 73 | 2f 66 69 6c 65 2e 68 3e |ude <sys|/file.h>|
|000016b0| 0a 58 23 69 6e 63 6c 75 | 64 65 20 3c 73 79 73 2f |.X#inclu|de <sys/|
|000016c0| 73 74 61 74 2e 68 3e 0a | 58 23 69 6e 63 6c 75 64 |stat.h>.|X#includ|
|000016d0| 65 20 3c 73 79 73 2f 64 | 69 72 2e 68 3e 0a 58 23 |e <sys/d|ir.h>.X#|
|000016e0| 69 66 6e 64 65 66 20 53 | 59 53 54 45 4d 5f 56 0a |ifndef S|YSTEM_V.|
|000016f0| 58 63 68 61 72 20 20 20 | 20 20 20 20 20 20 20 20 |Xchar | |
|00001700| 2a 67 65 74 77 64 28 29 | 3b 0a 58 23 65 6c 73 65 |*getwd()|;.X#else|
|00001710| 0a 58 23 20 69 6e 63 6c | 75 64 65 20 3c 64 69 72 |.X# incl|ude <dir|
|00001720| 65 6e 74 2e 68 3e 0a 58 | 63 68 61 72 20 20 20 20 |ent.h>.X|char |
|00001730| 20 20 20 20 20 20 20 2a | 67 65 74 63 77 64 28 29 | *|getcwd()|
|00001740| 3b 0a 58 23 65 6e 64 69 | 66 0a 58 0a 58 63 68 61 |;.X#endi|f.X.Xcha|
|00001750| 72 20 20 20 20 20 20 20 | 20 20 20 20 2a 6d 61 6c |r | *mal|
|00001760| 6c 6f 63 28 29 3b 0a 58 | 63 68 61 72 20 20 20 20 |loc();.X|char |
|00001770| 20 20 20 20 20 20 20 2a | 73 74 72 63 70 79 28 29 | *|strcpy()|
|00001780| 3b 0a 58 0a 58 74 79 70 | 65 64 65 66 20 73 74 72 |;.X.Xtyp|edef str|
|00001790| 75 63 74 20 7b 0a 58 20 | 20 20 20 63 68 61 72 20 |uct {.X | char |
|000017a0| 20 20 20 20 20 20 20 20 | 20 20 2a 66 69 6c 65 6e | | *filen|
|000017b0| 61 6d 65 3b 0a 58 20 20 | 20 20 63 68 61 72 20 20 |ame;.X | char |
|000017c0| 20 20 20 20 20 20 20 20 | 20 2a 61 72 63 68 69 76 | | *archiv|
|000017d0| 65 6e 61 6d 65 3b 0a 58 | 7d 20 20 20 20 20 20 20 |ename;.X|} |
|000017e0| 20 20 20 20 20 20 20 20 | 4e 61 6d 65 3b 0a 58 0a | |Name;.X.|
|000017f0| 58 63 68 61 72 20 20 20 | 20 20 20 20 20 20 20 20 |Xchar | |
|00001800| 20 41 72 63 68 69 76 65 | 4e 61 6d 65 5b 32 30 30 | Archive|Name[200|
|00001810| 5d 3b 0a 58 0a 58 23 64 | 65 66 69 6e 65 20 41 4e |];.X.X#d|efine AN|
|00001820| 5f 41 52 43 48 49 56 45 | 28 42 55 46 29 20 5c 0a |_ARCHIVE|(BUF) \.|
|00001830| 58 28 20 5c 0a 58 20 20 | 20 28 21 73 74 72 6e 63 |X( \.X | (!strnc|
|00001840| 6d 70 28 42 55 46 2c 20 | 22 23 21 2f 62 69 6e 2f |mp(BUF, |"#!/bin/|
|00001850| 73 68 22 2c 20 39 29 29 | 20 5c 0a 58 7c 7c 20 28 |sh", 9))| \.X|| (|
|00001860| 21 73 74 72 6e 63 6d 70 | 28 42 55 46 2c 20 22 23 |!strncmp|(BUF, "#|
|00001870| 21 20 2f 62 69 6e 2f 73 | 68 22 2c 20 31 30 29 29 |! /bin/s|h", 10))|
|00001880| 20 5c 0a 58 7c 7c 20 28 | 21 73 74 72 6e 63 6d 70 | \.X|| (|!strncmp|
|00001890| 28 42 55 46 2c 20 22 23 | 20 54 68 69 73 20 69 73 |(BUF, "#| This is|
|000018a0| 20 61 20 73 68 65 6c 6c | 20 61 72 63 68 69 76 65 | a shell| archive|
|000018b0| 2e 22 2c 20 32 36 29 29 | 20 5c 0a 58 7c 7c 20 28 |.", 26))| \.X|| (|
|000018c0| 21 73 74 72 6e 63 6d 70 | 28 42 55 46 2c 20 22 3a |!strncmp|(BUF, ":|
|000018d0| 20 54 68 69 73 20 69 73 | 20 61 20 73 68 61 72 20 | This is| a shar |
|000018e0| 61 72 63 68 69 76 65 2e | 22 2c 20 32 35 29 29 20 |archive.|", 25)) |
|000018f0| 5c 0a 58 7c 7c 20 28 21 | 73 74 72 6e 63 6d 70 28 |\.X|| (!|strncmp(|
|00001900| 42 55 46 2c 20 22 3a 5c | 74 73 68 61 72 3a 5c 74 |BUF, ":\|tshar:\t|
|00001910| 53 68 65 6c 6c 20 41 72 | 63 68 69 76 65 72 22 2c |Shell Ar|chiver",|
|00001920| 20 32 32 29 29 20 5c 0a | 58 7c 7c 20 28 21 73 74 | 22)) \.|X|| (!st|
|00001930| 72 6e 63 6d 70 28 42 55 | 46 2c 20 22 3a 20 72 75 |rncmp(BU|F, ": ru|
|00001940| 6e 20 73 68 20 6f 6e 20 | 74 68 69 73 20 66 69 6c |n sh on |this fil|
|00001950| 65 20 74 6f 20 75 6e 62 | 75 6e 64 6c 65 22 2c 20 |e to unb|undle", |
|00001960| 33 33 29 29 20 5c 0a 58 | 7c 7c 20 28 21 73 74 72 |33)) \.X||| (!str|
|00001970| 6e 63 6d 70 28 42 55 46 | 2c 20 22 23 20 41 66 74 |ncmp(BUF|, "# Aft|
|00001980| 65 72 20 79 6f 75 20 75 | 6e 70 61 63 6b 20 65 76 |er you u|npack ev|
|00001990| 65 72 79 74 68 69 6e 67 | 22 2c 20 32 39 29 29 20 |erything|", 29)) |
|000019a0| 5c 0a 58 7c 7c 20 28 21 | 73 74 72 6e 63 6d 70 28 |\.X|| (!|strncmp(|
|000019b0| 42 55 46 2c 20 22 23 20 | 54 68 69 73 20 69 73 20 |BUF, "# |This is |
|000019c0| 74 68 65 20 66 69 72 73 | 74 20 6c 69 6e 65 20 6f |the firs|t line o|
|000019d0| 66 20 61 20 5c 22 73 68 | 65 6c 6c 20 61 72 63 68 |f a \"sh|ell arch|
|000019e0| 69 76 65 5c 22 22 2c 20 | 34 35 29 29 20 5c 0a 58 |ive\"", |45)) \.X|
|000019f0| 29 0a 58 0a 58 6d 61 69 | 6e 28 29 0a 58 7b 0a 58 |).X.Xmai|n().X{.X|
|00001a00| 23 69 66 6e 64 65 66 20 | 53 59 53 54 45 4d 5f 56 |#ifndef |SYSTEM_V|
|00001a10| 0a 58 20 20 20 20 73 74 | 72 75 63 74 20 64 69 72 |.X st|ruct dir|
|00001a20| 65 63 74 20 2a 2a 64 70 | 3b 0a 58 23 65 6c 73 65 |ect **dp|;.X#else|
|00001a30| 0a 58 20 20 20 20 73 74 | 72 75 63 74 20 64 69 72 |.X st|ruct dir|
|00001a40| 65 6e 74 20 2a 2a 64 70 | 3b 0a 58 23 65 6e 64 69 |ent **dp|;.X#endi|
|00001a50| 66 0a 58 20 20 20 20 73 | 74 72 75 63 74 20 73 74 |f.X s|truct st|
|00001a60| 61 74 20 20 20 20 20 73 | 74 61 74 5f 62 75 66 3b |at s|tat_buf;|
|00001a70| 0a 58 20 20 20 20 69 6e | 74 20 20 20 20 20 20 20 |.X in|t |
|00001a80| 20 20 20 20 20 20 73 69 | 7a 65 3b 0a 58 20 20 20 | si|ze;.X |
|00001a90| 20 69 6e 74 20 20 20 20 | 20 20 20 20 20 20 20 20 | int | |
|00001aa0| 20 69 3b 0a 58 20 20 20 | 20 69 6e 74 20 20 20 20 | i;.X | int |
|00001ab0| 20 20 20 20 20 20 20 20 | 20 6a 3b 0a 58 20 20 20 | | j;.X |
|00001ac0| 20 4e 61 6d 65 20 20 20 | 20 20 20 20 20 20 20 20 | Name | |
|00001ad0| 2a 61 72 72 61 79 3b 0a | 58 0a 58 20 20 20 20 69 |*array;.|X.X i|
|00001ae0| 6e 74 20 20 20 20 20 20 | 20 20 20 20 20 20 20 53 |nt | S|
|00001af0| 65 6c 65 63 74 28 29 3b | 0a 58 20 20 20 20 65 78 |elect();|.X ex|
|00001b00| 74 65 72 6e 20 69 6e 74 | 20 20 20 20 20 20 61 6c |tern int| al|
|00001b10| 70 68 61 73 6f 72 74 28 | 29 3b 0a 58 20 20 20 20 |phasort(|);.X |
|00001b20| 69 6e 74 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |int | |
|00001b30| 63 6f 6d 70 61 72 65 28 | 29 3b 0a 58 20 20 20 20 |compare(|);.X |
|00001b40| 76 6f 69 64 20 20 20 20 | 20 20 20 20 20 20 20 20 |void | |
|00001b50| 75 6e 73 68 61 72 28 29 | 3b 0a 58 20 20 20 20 76 |unshar()|;.X v|
|00001b60| 6f 69 64 20 20 20 20 20 | 20 20 20 20 20 20 20 75 |oid | u|
|00001b70| 75 64 65 63 6f 64 65 28 | 29 3b 0a 58 0a 58 20 20 |udecode(|);.X.X |
|00001b80| 20 20 66 70 72 69 6e 74 | 66 28 73 74 64 65 72 72 | fprint|f(stderr|
|00001b90| 2c 20 22 25 73 5c 6e 22 | 2c 20 56 45 52 53 49 4f |, "%s\n"|, VERSIO|
|00001ba0| 4e 29 3b 0a 58 0a 58 20 | 20 20 20 2f 2a 0a 58 20 |N);.X.X | /*.X |
|00001bb0| 20 20 20 20 2a 20 43 6f | 75 6e 74 20 74 68 65 20 | * Co|unt the |
|00001bc0| 73 68 61 72 66 69 6c 65 | 73 20 69 6e 20 74 68 65 |sharfile|s in the|
|00001bd0| 20 63 75 72 72 65 6e 74 | 20 64 69 72 65 63 74 6f | current| directo|
|00001be0| 72 79 2e 20 49 66 20 74 | 68 65 72 65 20 61 72 65 |ry. If t|here are|
|00001bf0| 20 61 6e 79 2c 20 70 75 | 74 0a 58 20 20 20 20 20 | any, pu|t.X |
|00001c00| 2a 20 74 68 65 20 66 69 | 6c 65 6e 61 6d 65 73 20 |* the fi|lenames |
|00001c10| 61 6e 64 20 61 72 63 68 | 69 76 65 2d 6e 61 6d 65 |and arch|ive-name|
|00001c20| 73 20 28 69 66 20 61 6e | 79 29 20 69 6e 74 6f 20 |s (if an|y) into |
|00001c30| 61 6e 20 61 72 72 61 79 | 20 61 6e 64 20 73 6f 72 |an array| and sor|
|00001c40| 74 20 69 74 2e 0a 58 20 | 20 20 20 20 2a 20 54 68 |t it..X | * Th|
|00001c50| 65 6e 20 75 6e 73 68 61 | 72 2e 20 28 54 68 69 73 |en unsha|r. (This|
|00001c60| 20 63 6f 64 65 20 61 73 | 73 75 6d 65 73 20 74 68 | code as|sumes th|
|00001c70| 61 74 20 74 68 65 20 63 | 75 72 72 65 6e 74 20 64 |at the c|urrent d|
|00001c80| 69 72 65 63 74 6f 72 79 | 20 63 6f 6e 74 65 6e 74 |irectory| content|
|00001c90| 73 0a 58 20 20 20 20 20 | 2a 20 64 6f 6e 27 74 20 |s.X |* don't |
|00001ca0| 63 68 61 6e 67 65 20 75 | 6e 64 65 72 6e 65 61 74 |change u|nderneat|
|00001cb0| 68 20 79 6f 75 2e 29 20 | 0a 58 20 20 20 20 20 2a |h you.) |.X *|
|00001cc0| 2f 0a 58 20 20 20 20 73 | 69 7a 65 20 3d 20 73 63 |/.X s|ize = sc|
|00001cd0| 61 6e 64 69 72 28 22 2e | 22 2c 20 26 64 70 2c 20 |andir(".|", &dp, |
|00001ce0| 53 65 6c 65 63 74 2c 20 | 61 6c 70 68 61 73 6f 72 |Select, |alphasor|
|00001cf0| 74 29 3b 0a 58 20 20 20 | 20 69 66 20 28 73 69 7a |t);.X | if (siz|
|00001d00| 65 20 3e 20 30 29 20 7b | 0a 58 09 61 72 72 61 79 |e > 0) {|.X.array|
|00001d10| 20 3d 20 28 4e 61 6d 65 | 20 2a 29 20 6d 61 6c 6c | = (Name| *) mall|
|00001d20| 6f 63 28 28 75 6e 73 69 | 67 6e 65 64 29 20 28 73 |oc((unsi|gned) (s|
|00001d30| 69 7a 65 6f 66 28 4e 61 | 6d 65 29 20 2a 20 73 69 |izeof(Na|me) * si|
|00001d40| 7a 65 29 29 3b 0a 58 09 | 66 6f 72 20 28 69 20 3d |ze));.X.|for (i =|
|00001d50| 20 30 2c 20 6a 20 3d 20 | 30 3b 20 69 20 3c 20 73 | 0, j = |0; i < s|
|00001d60| 69 7a 65 3b 20 69 2b 2b | 29 20 7b 0a 58 09 20 20 |ize; i++|) {.X. |
|00001d70| 20 20 69 66 20 28 73 74 | 61 74 28 64 70 5b 69 5d | if (st|at(dp[i]|
|00001d80| 2d 3e 64 5f 6e 61 6d 65 | 2c 20 26 73 74 61 74 5f |->d_name|, &stat_|
|00001d90| 62 75 66 29 29 09 2f 2a | 20 63 61 6e 27 74 20 73 |buf))./*| can't s|
|00001da0| 74 61 74 20 21 3f 21 3f | 21 3f 20 2a 2f 0a 58 09 |tat !?!?|!? */.X.|
|00001db0| 09 63 6f 6e 74 69 6e 75 | 65 3b 0a 58 0a 58 09 20 |.continu|e;.X.X. |
|00001dc0| 20 20 20 69 66 20 28 28 | 73 74 61 74 5f 62 75 66 | if ((|stat_buf|
|00001dd0| 2e 73 74 5f 6d 6f 64 65 | 20 26 20 53 5f 49 46 44 |.st_mode| & S_IFD|
|00001de0| 49 52 29 29 09 2f 2a 20 | 61 20 64 69 72 65 63 74 |IR))./* |a direct|
|00001df0| 6f 72 79 20 2a 2f 0a 58 | 09 09 63 6f 6e 74 69 6e |ory */.X|..contin|
|00001e00| 75 65 3b 0a 58 0a 58 09 | 20 20 20 20 69 66 20 28 |ue;.X.X.| if (|
|00001e10| 69 73 5f 61 5f 73 68 61 | 72 66 69 6c 65 28 64 70 |is_a_sha|rfile(dp|
|00001e20| 5b 69 5d 2d 3e 64 5f 6e | 61 6d 65 29 29 20 7b 0a |[i]->d_n|ame)) {.|
|00001e30| 58 09 09 61 72 72 61 79 | 5b 6a 5d 2e 66 69 6c 65 |X..array|[j].file|
|00001e40| 6e 61 6d 65 20 3d 0a 58 | 09 09 20 20 20 20 6d 61 |name =.X|.. ma|
|00001e50| 6c 6c 6f 63 28 28 75 6e | 73 69 67 6e 65 64 29 20 |lloc((un|signed) |
|00001e60| 28 73 74 72 6c 65 6e 28 | 64 70 5b 69 5d 2d 3e 64 |(strlen(|dp[i]->d|
|00001e70| 5f 6e 61 6d 65 29 20 2b | 20 31 29 29 3b 0a 58 09 |_name) +| 1));.X.|
|00001e80| 09 73 74 72 63 70 79 28 | 61 72 72 61 79 5b 6a 5d |.strcpy(|array[j]|
|00001e90| 2e 66 69 6c 65 6e 61 6d | 65 2c 20 64 70 5b 69 5d |.filenam|e, dp[i]|
|00001ea0| 2d 3e 64 5f 6e 61 6d 65 | 29 3b 0a 58 09 09 61 72 |->d_name|);.X..ar|
|00001eb0| 72 61 79 5b 6a 5d 2e 61 | 72 63 68 69 76 65 6e 61 |ray[j].a|rchivena|
|00001ec0| 6d 65 20 3d 0a 58 09 09 | 20 20 20 20 6d 61 6c 6c |me =.X..| mall|
|00001ed0| 6f 63 28 28 75 6e 73 69 | 67 6e 65 64 29 20 28 73 |oc((unsi|gned) (s|
|00001ee0| 74 72 6c 65 6e 28 41 72 | 63 68 69 76 65 4e 61 6d |trlen(Ar|chiveNam|
|00001ef0| 65 29 20 2b 20 31 29 29 | 3b 0a 58 09 09 73 74 72 |e) + 1))|;.X..str|
|00001f00| 63 70 79 28 61 72 72 61 | 79 5b 6a 5d 2e 61 72 63 |cpy(arra|y[j].arc|
|00001f10| 68 69 76 65 6e 61 6d 65 | 2c 20 41 72 63 68 69 76 |hivename|, Archiv|
|00001f20| 65 4e 61 6d 65 29 3b 0a | 58 09 09 6a 2b 2b 3b 0a |eName);.|X..j++;.|
|00001f30| 58 09 20 20 20 20 7d 0a | 58 09 7d 0a 58 09 73 69 |X. }.|X.}.X.si|
|00001f40| 7a 65 20 3d 20 6a 3b 0a | 58 09 69 66 20 28 73 69 |ze = j;.|X.if (si|
|00001f50| 7a 65 20 3e 20 30 29 20 | 7b 0a 58 09 20 20 20 20 |ze > 0) |{.X. |
|00001f60| 66 70 72 69 6e 74 66 28 | 73 74 64 65 72 72 2c 20 |fprintf(|stderr, |
|00001f70| 22 5c 6e 4e 6f 77 20 70 | 65 72 66 6f 72 6d 69 6e |"\nNow p|erformin|
|00001f80| 67 20 74 68 65 20 75 6e | 73 68 61 72 20 70 61 73 |g the un|shar pas|
|00001f90| 73 2e 5c 6e 22 29 3b 0a | 58 0a 58 09 20 20 20 20 |s.\n");.|X.X. |
|00001fa0| 71 73 6f 72 74 28 28 63 | 68 61 72 20 2a 29 20 61 |qsort((c|har *) a|
|00001fb0| 72 72 61 79 2c 20 73 69 | 7a 65 2c 20 28 69 6e 74 |rray, si|ze, (int|
|00001fc0| 29 20 73 69 7a 65 6f 66 | 28 4e 61 6d 65 29 2c 20 |) sizeof|(Name), |
|00001fd0| 63 6f 6d 70 61 72 65 29 | 3b 0a 58 0a 58 09 20 20 |compare)|;.X.X. |
|00001fe0| 20 20 2f 2a 20 6e 6f 77 | 20 75 6e 73 68 61 72 20 | /* now| unshar |
|00001ff0| 65 76 65 72 79 74 68 69 | 6e 67 20 2a 2f 0a 58 09 |everythi|ng */.X.|
|00002000| 20 20 20 20 66 6f 72 20 | 28 69 20 3d 20 30 3b 20 | for |(i = 0; |
|00002010| 69 20 3c 20 73 69 7a 65 | 3b 20 69 2b 2b 29 0a 58 |i < size|; i++).X|
|00002020| 09 09 75 6e 73 68 61 72 | 28 61 72 72 61 79 5b 69 |..unshar|(array[i|
|00002030| 5d 2e 66 69 6c 65 6e 61 | 6d 65 2c 20 61 72 72 61 |].filena|me, arra|
|00002040| 79 5b 69 5d 2e 61 72 63 | 68 69 76 65 6e 61 6d 65 |y[i].arc|hivename|
|00002050| 29 3b 0a 58 09 7d 0a 58 | 09 66 70 72 69 6e 74 66 |);.X.}.X|.fprintf|
|00002060| 28 73 74 64 65 72 72 2c | 20 22 5c 6e 4e 6f 77 20 |(stderr,| "\nNow |
|00002070| 70 65 72 66 6f 72 6d 69 | 6e 67 20 74 68 65 20 75 |performi|ng the u|
|00002080| 75 64 65 63 6f 64 65 20 | 70 61 73 73 2e 5c 6e 22 |udecode |pass.\n"|
|00002090| 29 3b 0a 58 0a 58 09 75 | 75 64 65 63 6f 64 65 28 |);.X.X.u|udecode(|
|000020a0| 22 2e 22 2c 20 30 29 3b | 0a 58 20 20 20 20 7d 0a |".", 0);|.X }.|
|000020b0| 58 20 20 20 20 2f 2a 0a | 58 20 20 20 20 20 2a 20 |X /*.|X * |
|000020c0| 49 6e 20 74 68 65 6f 72 | 79 20 49 20 73 68 6f 75 |In theor|y I shou|
|000020d0| 6c 64 20 66 72 65 65 20 | 61 6c 6c 20 61 6c 6c 6f |ld free |all allo|
|000020e0| 63 61 74 65 64 20 6d 65 | 6d 6f 72 79 2c 20 62 75 |cated me|mory, bu|
|000020f0| 74 20 69 74 20 77 69 6c | 6c 20 62 65 20 66 72 65 |t it wil|l be fre|
|00002100| 65 27 64 0a 58 20 20 20 | 20 20 2a 20 75 70 6f 6e |e'd.X | * upon|
|00002110| 20 65 78 69 74 74 69 6e | 67 2e 20 0a 58 20 20 20 | exittin|g. .X |
|00002120| 20 20 2a 2f 0a 58 20 20 | 20 20 65 78 69 74 28 30 | */.X | exit(0|
|00002130| 29 3b 0a 58 7d 0a 58 0a | 58 76 6f 69 64 0a 58 75 |);.X}.X.|Xvoid.Xu|
|00002140| 6e 73 68 61 72 28 6e 61 | 6d 65 2c 20 61 72 63 68 |nshar(na|me, arch|
|00002150| 69 76 65 6e 61 6d 65 29 | 0a 58 20 20 20 20 63 68 |ivename)|.X ch|
|00002160| 61 72 20 20 20 20 20 20 | 20 20 20 20 20 2a 6e 61 |ar | *na|
|00002170| 6d 65 3b 0a 58 20 20 20 | 20 63 68 61 72 20 20 20 |me;.X | char |
|00002180| 20 20 20 20 20 20 20 20 | 2a 61 72 63 68 69 76 65 | |*archive|
|00002190| 6e 61 6d 65 3b 0a 58 7b | 0a 58 20 20 20 20 46 49 |name;.X{|.X FI|
|000021a0| 4c 45 20 20 20 20 20 20 | 20 20 20 20 20 2a 66 69 |LE | *fi|
|000021b0| 6e 3b 0a 58 20 20 20 20 | 46 49 4c 45 20 20 20 20 |n;.X |FILE |
|000021c0| 20 20 20 20 20 20 20 2a | 66 6f 75 74 3b 0a 58 20 | *|fout;.X |
|000021d0| 20 20 20 63 68 61 72 20 | 20 20 20 20 20 20 20 20 | char | |
|000021e0| 20 20 20 62 75 66 5b 32 | 30 30 5d 3b 0a 58 20 20 | buf[2|00];.X |
|000021f0| 20 20 63 68 61 72 20 20 | 20 20 20 20 20 20 20 20 | char | |
|00002200| 20 20 64 69 72 5b 32 30 | 30 5d 3b 0a 58 20 20 20 | dir[20|0];.X |
|00002210| 20 63 68 61 72 20 20 20 | 20 20 20 20 20 20 20 20 | char | |
|00002220| 20 70 61 74 68 5b 32 30 | 30 5d 3b 0a 58 20 20 20 | path[20|0];.X |
|00002230| 20 63 68 61 72 20 20 20 | 20 20 20 20 20 20 20 20 | char | |
|00002240| 2a 70 3b 0a 58 0a 58 20 | 20 20 20 66 70 72 69 6e |*p;.X.X | fprin|
|00002250| 74 66 28 73 74 64 65 72 | 72 2c 20 22 41 74 74 65 |tf(stder|r, "Atte|
|00002260| 6d 70 74 69 6e 67 20 74 | 6f 20 75 6e 73 68 61 72 |mpting t|o unshar|
|00002270| 20 25 73 5c 6e 22 2c 20 | 6e 61 6d 65 29 3b 0a 58 | %s\n", |name);.X|
|00002280| 20 20 20 20 66 69 6e 20 | 3d 20 66 6f 70 65 6e 28 | fin |= fopen(|
|00002290| 6e 61 6d 65 2c 20 22 72 | 22 29 3b 0a 58 20 20 20 |name, "r|");.X |
|000022a0| 20 69 66 20 28 66 69 6e | 20 3d 3d 20 4e 55 4c 4c | if (fin| == NULL|
|000022b0| 29 09 09 2f 2a 20 66 69 | 6c 65 20 64 6f 65 73 6e |)../* fi|le doesn|
|000022c0| 27 74 20 65 78 69 73 74 | 20 21 3f 20 2a 2f 0a 58 |'t exist| !? */.X|
|000022d0| 09 72 65 74 75 72 6e 3b | 0a 58 0a 58 20 20 20 20 |.return;|.X.X |
|000022e0| 73 74 72 63 70 79 28 64 | 69 72 2c 20 22 2e 22 29 |strcpy(d|ir, ".")|
|000022f0| 3b 09 09 2f 2a 20 73 65 | 74 75 70 20 64 69 72 65 |;../* se|tup dire|
|00002300| 63 74 6f 72 79 20 74 6f | 20 75 73 65 20 2a 2f 0a |ctory to| use */.|
|00002310| 58 20 20 20 20 69 66 20 | 28 61 72 63 68 69 76 65 |X if |(archive|
|00002320| 6e 61 6d 65 5b 30 5d 20 | 21 3d 20 27 5c 30 27 29 |name[0] |!= '\0')|
|00002330| 20 7b 0a 58 09 73 74 72 | 63 70 79 28 64 69 72 2c | {.X.str|cpy(dir,|
|00002340| 20 61 72 63 68 69 76 65 | 6e 61 6d 65 29 3b 0a 58 | archive|name);.X|
|00002350| 09 70 61 74 68 5b 30 5d | 20 3d 20 27 5c 30 27 3b |.path[0]| = '\0';|
|00002360| 0a 58 09 66 6f 72 20 28 | 70 20 3d 20 64 69 72 3b |.X.for (|p = dir;|
|00002370| 20 2a 70 20 21 3d 20 4e | 55 4c 4c 3b 20 70 2b 2b | *p != N|ULL; p++|
|00002380| 29 0a 58 09 20 20 20 20 | 69 66 20 28 2a 70 20 3d |).X. |if (*p =|
|00002390| 3d 20 27 2f 27 29 20 7b | 0a 58 09 09 2a 70 20 3d |= '/') {|.X..*p =|
|000023a0| 20 4e 55 4c 4c 3b 0a 58 | 09 09 69 66 20 28 73 74 | NULL;.X|..if (st|
|000023b0| 72 6e 63 6d 70 28 70 20 | 2b 20 31 2c 20 22 70 61 |rncmp(p |+ 1, "pa|
|000023c0| 72 74 22 2c 20 34 29 20 | 3d 3d 20 30 29 0a 58 09 |rt", 4) |== 0).X.|
|000023d0| 09 20 20 20 20 62 72 65 | 61 6b 3b 0a 58 09 09 69 |. bre|ak;.X..i|
|000023e0| 66 20 28 61 63 63 65 73 | 73 28 64 69 72 2c 20 46 |f (acces|s(dir, F|
|000023f0| 5f 4f 4b 29 20 3c 20 30 | 29 0a 58 09 09 20 20 20 |_OK) < 0|).X.. |
|00002400| 20 69 66 20 28 6d 6b 64 | 69 72 28 64 69 72 2c 20 | if (mkd|ir(dir, |
|00002410| 30 37 37 37 29 20 3c 20 | 30 29 0a 58 09 09 09 67 |0777) < |0).X...g|
|00002420| 6f 74 6f 20 41 42 4f 52 | 54 5f 41 54 54 45 4d 50 |oto ABOR|T_ATTEMP|
|00002430| 54 3b 0a 58 09 09 73 74 | 72 63 70 79 28 70 61 74 |T;.X..st|rcpy(pat|
|00002440| 68 2c 20 61 72 63 68 69 | 76 65 6e 61 6d 65 29 3b |h, archi|vename);|
|00002450| 0a 58 09 09 2a 70 20 3d | 20 27 2f 27 3b 0a 58 09 |.X..*p =| '/';.X.|
|00002460| 20 20 20 20 7d 0a 58 09 | 69 66 20 28 61 63 63 65 | }.X.|if (acce|
|00002470| 73 73 28 64 69 72 2c 20 | 46 5f 4f 4b 29 20 3c 20 |ss(dir, |F_OK) < |
|00002480| 30 29 20 7b 0a 58 09 20 | 20 20 20 69 66 20 28 6d |0) {.X. | if (m|
|00002490| 6b 64 69 72 28 64 69 72 | 2c 20 30 37 37 37 29 20 |kdir(dir|, 0777) |
|000024a0| 3c 20 30 29 20 7b 0a 58 | 09 41 42 4f 52 54 5f 41 |< 0) {.X|.ABORT_A|
|000024b0| 54 54 45 4d 50 54 3a 0a | 58 09 09 66 70 72 69 6e |TTEMPT:.|X..fprin|
|000024c0| 74 66 28 73 74 64 65 72 | 72 2c 20 22 43 6f 75 6c |tf(stder|r, "Coul|
|000024d0| 64 6e 27 74 20 6d 6b 64 | 69 72 20 25 73 5c 6e 22 |dn't mkd|ir %s\n"|
|000024e0| 2c 20 64 69 72 29 3b 0a | 58 09 09 66 70 72 69 6e |, dir);.|X..fprin|
|000024f0| 74 66 28 73 74 64 65 72 | 72 2c 20 22 41 62 6f 72 |tf(stder|r, "Abor|
|00002500| 74 69 6e 67 20 74 68 69 | 73 20 61 74 74 65 6d 70 |ting thi|s attemp|
|00002510| 74 5c 6e 22 29 3b 0a 58 | 09 09 69 66 20 28 70 61 |t\n");.X|..if (pa|
|00002520| 74 68 5b 30 5d 20 21 3d | 20 27 5c 30 27 29 0a 58 |th[0] !=| '\0').X|
|00002530| 09 09 20 20 20 20 28 76 | 6f 69 64 29 20 75 6e 6c |.. (v|oid) unl|
|00002540| 69 6e 6b 28 70 61 74 68 | 29 3b 0a 58 09 09 66 63 |ink(path|);.X..fc|
|00002550| 6c 6f 73 65 28 66 69 6e | 29 3b 0a 58 09 09 72 65 |lose(fin|);.X..re|
|00002560| 74 75 72 6e 3b 0a 58 09 | 20 20 20 20 7d 0a 58 09 |turn;.X.| }.X.|
|00002570| 7d 0a 58 20 20 20 20 7d | 0a 58 20 20 20 20 66 70 |}.X }|.X fp|
|00002580| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 20 22 75 |rintf(st|derr, "u|
|00002590| 6e 73 68 61 72 69 6e 67 | 20 69 6e 74 6f 20 64 69 |nsharing| into di|
|000025a0| 72 65 63 74 6f 72 79 20 | 5c 22 25 73 5c 22 5c 6e |rectory |\"%s\"\n|
|000025b0| 22 2c 20 64 69 72 29 3b | 0a 58 0a 58 20 20 20 20 |", dir);|.X.X |
|000025c0| 66 6f 72 20 28 3b 3b 29 | 20 7b 0a 58 09 69 66 20 |for (;;)| {.X.if |
|000025d0| 28 66 67 65 74 73 28 62 | 75 66 2c 20 32 30 30 2c |(fgets(b|uf, 200,|
|000025e0| 20 66 69 6e 29 20 3d 3d | 20 4e 55 4c 4c 29 20 7b | fin) ==| NULL) {|
|000025f0| 09 2f 2a 20 6e 6f 74 20 | 61 20 73 68 61 72 20 66 |./* not |a shar f|
|00002600| 69 6c 65 20 21 3f 20 2a | 2f 0a 58 09 20 20 20 20 |ile !? *|/.X. |
|00002610| 66 63 6c 6f 73 65 28 66 | 69 6e 29 3b 0a 58 09 20 |fclose(f|in);.X. |
|00002620| 20 20 20 72 65 74 75 72 | 6e 3b 0a 58 09 7d 0a 58 | retur|n;.X.}.X|
|00002630| 09 69 66 20 28 41 4e 5f | 41 52 43 48 49 56 45 28 |.if (AN_|ARCHIVE(|
|00002640| 62 75 66 29 29 0a 58 09 | 20 20 20 20 62 72 65 61 |buf)).X.| brea|
|00002650| 6b 3b 0a 58 20 20 20 20 | 7d 0a 58 0a 58 20 20 20 |k;.X |}.X.X |
|00002660| 20 73 70 72 69 6e 74 66 | 28 70 61 74 68 2c 20 22 | sprintf|(path, "|
|00002670| 25 73 2f 2e 75 6e 73 68 | 61 72 2e 74 65 6d 70 2e |%s/.unsh|ar.temp.|
|00002680| 66 69 6c 65 22 2c 20 64 | 69 72 29 3b 0a 58 20 20 |file", d|ir);.X |
|00002690| 20 20 66 6f 75 74 20 3d | 20 66 6f 70 65 6e 28 70 | fout =| fopen(p|
|000026a0| 61 74 68 2c 20 22 77 22 | 29 3b 0a 58 20 20 20 20 |ath, "w"|);.X |
|000026b0| 77 68 69 6c 65 20 28 66 | 67 65 74 73 28 62 75 66 |while (f|gets(buf|
|000026c0| 2c 20 32 30 30 2c 20 66 | 69 6e 29 20 21 3d 20 4e |, 200, f|in) != N|
|000026d0| 55 4c 4c 29 0a 58 09 66 | 70 72 69 6e 74 66 28 66 |ULL).X.f|printf(f|
|000026e0| 6f 75 74 2c 20 22 25 73 | 22 2c 20 62 75 66 29 3b |out, "%s|", buf);|
|000026f0| 0a 58 20 20 20 20 66 63 | 6c 6f 73 65 28 66 6f 75 |.X fc|lose(fou|
|00002700| 74 29 3b 0a 58 20 20 20 | 20 66 63 6c 6f 73 65 28 |t);.X | fclose(|
|00002710| 66 69 6e 29 3b 0a 58 0a | 58 20 20 20 20 73 70 72 |fin);.X.|X spr|
|00002720| 69 6e 74 66 28 62 75 66 | 2c 20 22 63 64 20 25 73 |intf(buf|, "cd %s|
|00002730| 3b 20 73 68 20 2e 75 6e | 73 68 61 72 2e 74 65 6d |; sh .un|shar.tem|
|00002740| 70 2e 66 69 6c 65 22 2c | 20 64 69 72 29 3b 0a 58 |p.file",| dir);.X|
|00002750| 20 20 20 20 69 66 20 28 | 73 79 73 74 65 6d 28 62 | if (|system(b|
|00002760| 75 66 29 20 3d 3d 20 30 | 29 20 7b 0a 58 09 28 76 |uf) == 0|) {.X.(v|
|00002770| 6f 69 64 29 20 75 6e 6c | 69 6e 6b 28 6e 61 6d 65 |oid) unl|ink(name|
|00002780| 29 3b 0a 58 20 20 20 20 | 7d 20 65 6c 73 65 20 7b |);.X |} else {|
|00002790| 0a 58 09 66 70 72 69 6e | 74 66 28 73 74 64 65 72 |.X.fprin|tf(stder|
|000027a0| 72 2c 20 22 65 78 69 74 | 20 73 74 61 74 75 73 20 |r, "exit| status |
|000027b0| 6e 6f 6e 2d 7a 65 72 6f | 2c 20 6e 6f 74 20 64 65 |non-zero|, not de|
|000027c0| 6c 65 74 69 6e 67 20 25 | 73 5c 6e 22 2c 20 6e 61 |leting %|s\n", na|
|000027d0| 6d 65 29 3b 0a 58 20 20 | 20 20 7d 0a 58 0a 58 20 |me);.X | }.X.X |
|000027e0| 20 20 20 28 76 6f 69 64 | 29 20 75 6e 6c 69 6e 6b | (void|) unlink|
|000027f0| 28 70 61 74 68 29 3b 0a | 58 7d 0a 58 0a 58 76 6f |(path);.|X}.X.Xvo|
|00002800| 69 64 0a 58 75 75 64 65 | 63 6f 64 65 28 6e 61 6d |id.Xuude|code(nam|
|00002810| 65 2c 20 6c 65 76 65 6c | 29 0a 58 20 20 20 20 63 |e, level|).X c|
|00002820| 68 61 72 20 20 20 20 20 | 20 20 20 20 20 20 2a 6e |har | *n|
|00002830| 61 6d 65 3b 0a 58 20 20 | 20 20 69 6e 74 20 20 20 |ame;.X | int |
|00002840| 20 20 20 20 20 20 20 20 | 20 20 6c 65 76 65 6c 3b | | level;|
|00002850| 0a 58 7b 0a 58 23 69 66 | 6e 64 65 66 20 53 59 53 |.X{.X#if|ndef SYS|
|00002860| 54 45 4d 5f 56 0a 58 20 | 20 20 20 73 74 72 75 63 |TEM_V.X | struc|
|00002870| 74 20 64 69 72 65 63 74 | 20 2a 2a 64 70 3b 0a 58 |t direct| **dp;.X|
|00002880| 23 65 6c 73 65 0a 58 20 | 20 20 20 73 74 72 75 63 |#else.X | struc|
|00002890| 74 20 64 69 72 65 6e 74 | 20 2a 2a 64 70 3b 0a 58 |t dirent| **dp;.X|
|000028a0| 23 65 6e 64 69 66 0a 58 | 20 20 20 20 46 49 4c 45 |#endif.X| FILE|
|000028b0| 20 20 20 20 20 20 20 20 | 20 20 20 2a 66 69 6c 65 | | *file|
|000028c0| 3b 0a 58 20 20 20 20 63 | 68 61 72 20 20 20 20 20 |;.X c|har |
|000028d0| 20 20 20 20 20 20 20 62 | 75 66 5b 32 30 30 5d 3b | b|uf[200];|
|000028e0| 0a 58 20 20 20 20 63 68 | 61 72 20 20 20 20 20 20 |.X ch|ar |
|000028f0| 20 20 20 20 20 20 6e 61 | 6d 65 5f 62 75 66 5b 32 | na|me_buf[2|
|00002900| 30 30 5d 3b 0a 58 20 20 | 20 20 63 68 61 72 20 20 |00];.X | char |
|00002910| 20 20 20 20 20 20 20 20 | 20 20 70 61 74 68 5b 32 | | path[2|
|00002920| 30 30 5d 3b 0a 58 20 20 | 20 20 63 68 61 72 20 20 |00];.X | char |
|00002930| 20 20 20 20 20 20 20 20 | 20 2a 70 3b 0a 58 20 20 | | *p;.X |
|00002940| 20 20 73 74 72 75 63 74 | 20 73 74 61 74 20 20 20 | struct| stat |
|00002950| 20 20 73 74 61 74 5f 62 | 75 66 3b 0a 58 20 20 20 | stat_b|uf;.X |
|00002960| 20 63 68 61 72 20 20 20 | 20 20 20 20 20 20 20 20 | char | |
|00002970| 20 64 69 67 69 74 3b 0a | 58 20 20 20 20 69 6e 74 | digit;.|X int|
|00002980| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 69 3b 0a | | i;.|
|00002990| 58 20 20 20 20 69 6e 74 | 20 20 20 20 20 20 20 20 |X int| |
|000029a0| 20 20 20 20 20 73 69 7a | 65 3b 0a 58 0a 58 20 20 | siz|e;.X.X |
|000029b0| 20 20 69 6e 74 20 20 20 | 20 20 20 20 20 20 20 20 | int | |
|000029c0| 20 20 53 65 6c 65 63 74 | 28 29 3b 0a 58 20 20 20 | Select|();.X |
|000029d0| 20 65 78 74 65 72 6e 20 | 69 6e 74 20 20 20 20 20 | extern |int |
|000029e0| 20 61 6c 70 68 61 73 6f | 72 74 28 29 3b 0a 58 0a | alphaso|rt();.X.|
|000029f0| 58 20 20 20 20 69 66 20 | 28 73 74 61 74 28 6e 61 |X if |(stat(na|
|00002a00| 6d 65 2c 20 26 73 74 61 | 74 5f 62 75 66 29 29 09 |me, &sta|t_buf)).|
|00002a10| 2f 2a 20 63 61 6e 27 74 | 20 73 74 61 74 20 21 3f |/* can't| stat !?|
|00002a20| 21 3f 21 3f 21 20 2a 2f | 0a 58 09 72 65 74 75 72 |!?!?! */|.X.retur|
|00002a30| 6e 3b 0a 58 0a 58 20 20 | 20 20 69 66 20 28 28 73 |n;.X.X | if ((s|
|00002a40| 74 61 74 5f 62 75 66 2e | 73 74 5f 6d 6f 64 65 20 |tat_buf.|st_mode |
|00002a50| 26 20 53 5f 49 46 44 49 | 52 29 29 20 7b 0a 58 09 |& S_IFDI|R)) {.X.|
|00002a60| 2f 2a 20 75 75 64 65 63 | 6f 64 65 20 65 76 65 72 |/* uudec|ode ever|
|00002a70| 79 74 68 69 6e 67 20 69 | 6e 20 74 68 69 73 20 64 |ything i|n this d|
|00002a80| 69 72 65 63 74 6f 72 79 | 20 2a 2f 0a 58 23 69 66 |irectory| */.X#if|
|00002a90| 6e 64 65 66 20 53 59 53 | 54 45 4d 5f 56 0a 58 09 |ndef SYS|TEM_V.X.|
|00002aa0| 69 66 20 28 21 67 65 74 | 77 64 28 70 61 74 68 29 |if (!get|wd(path)|
|00002ab0| 29 0a 58 09 20 20 20 20 | 72 65 74 75 72 6e 3b 0a |).X. |return;.|
|00002ac0| 58 23 65 6c 73 65 0a 58 | 09 69 66 20 28 21 67 65 |X#else.X|.if (!ge|
|00002ad0| 74 63 77 64 28 70 61 74 | 68 2c 20 32 30 30 29 29 |tcwd(pat|h, 200))|
|00002ae0| 0a 58 09 20 20 20 20 72 | 65 74 75 72 6e 3b 0a 58 |.X. r|eturn;.X|
|00002af0| 23 65 6e 64 69 66 0a 58 | 09 73 69 7a 65 20 3d 20 |#endif.X|.size = |
|00002b00| 73 63 61 6e 64 69 72 28 | 6e 61 6d 65 2c 20 26 64 |scandir(|name, &d|
|00002b10| 70 2c 20 53 65 6c 65 63 | 74 2c 20 61 6c 70 68 61 |p, Selec|t, alpha|
|00002b20| 73 6f 72 74 29 3b 0a 58 | 09 69 66 20 28 73 69 7a |sort);.X|.if (siz|
|00002b30| 65 20 3c 3d 20 30 29 0a | 58 09 20 20 20 20 72 65 |e <= 0).|X. re|
|00002b40| 74 75 72 6e 3b 0a 58 0a | 58 09 69 66 20 28 63 68 |turn;.X.|X.if (ch|
|00002b50| 64 69 72 28 6e 61 6d 65 | 29 29 0a 58 09 20 20 20 |dir(name|)).X. |
|00002b60| 20 72 65 74 75 72 6e 3b | 0a 58 0a 58 09 6c 65 76 | return;|.X.X.lev|
|00002b70| 65 6c 2b 2b 3b 0a 58 09 | 69 66 20 28 6c 65 76 65 |el++;.X.|if (leve|
|00002b80| 6c 20 3d 3d 20 31 29 0a | 58 09 20 20 20 20 66 70 |l == 1).|X. fp|
|00002b90| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 20 22 75 |rintf(st|derr, "u|
|00002ba0| 75 64 65 63 6f 64 69 6e | 67 20 69 6e 20 64 69 72 |udecodin|g in dir|
|00002bb0| 65 63 74 6f 72 79 20 5c | 22 25 73 5c 22 5c 6e 22 |ectory \|"%s\"\n"|
|00002bc0| 2c 20 70 61 74 68 29 3b | 0a 58 09 65 6c 73 65 0a |, path);|.X.else.|
|00002bd0| 58 09 20 20 20 20 66 70 | 72 69 6e 74 66 28 73 74 |X. fp|rintf(st|
|00002be0| 64 65 72 72 2c 20 22 75 | 75 64 65 63 6f 64 69 6e |derr, "u|udecodin|
|00002bf0| 67 20 69 6e 20 64 69 72 | 65 63 74 6f 72 79 20 5c |g in dir|ectory \|
|00002c00| 22 25 73 2f 25 73 5c 22 | 5c 6e 22 2c 20 70 61 74 |"%s/%s\"|\n", pat|
|00002c10| 68 2c 20 6e 61 6d 65 29 | 3b 0a 58 09 66 6f 72 20 |h, name)|;.X.for |
|00002c20| 28 69 20 3d 20 30 3b 20 | 69 20 3c 20 73 69 7a 65 |(i = 0; |i < size|
|00002c30| 3b 20 69 2b 2b 29 0a 58 | 09 20 20 20 20 75 75 64 |; i++).X|. uud|
|00002c40| 65 63 6f 64 65 28 64 70 | 5b 69 5d 2d 3e 64 5f 6e |ecode(dp|[i]->d_n|
|00002c50| 61 6d 65 2c 20 6c 65 76 | 65 6c 29 3b 0a 58 09 28 |ame, lev|el);.X.(|
|00002c60| 76 6f 69 64 29 20 63 68 | 64 69 72 28 70 61 74 68 |void) ch|dir(path|
|00002c70| 29 3b 0a 58 09 69 66 20 | 28 6c 65 76 65 6c 20 3e |);.X.if |(level >|
|00002c80| 20 31 29 0a 58 09 20 20 | 20 20 66 70 72 69 6e 74 | 1).X. | fprint|
|00002c90| 66 28 73 74 64 65 72 72 | 2c 20 22 75 75 64 65 63 |f(stderr|, "uudec|
|00002ca0| 6f 64 69 6e 67 20 69 6e | 20 64 69 72 65 63 74 6f |oding in| directo|
|00002cb0| 72 79 20 5c 22 25 73 5c | 22 5c 6e 22 2c 20 70 61 |ry \"%s\|"\n", pa|
|00002cc0| 74 68 29 3b 0a 58 09 72 | 65 74 75 72 6e 3b 0a 58 |th);.X.r|eturn;.X|
|00002cd0| 20 20 20 20 7d 0a 58 20 | 20 20 20 2f 2a 0a 58 20 | }.X | /*.X |
|00002ce0| 20 20 20 20 2a 20 49 66 | 20 74 68 65 20 66 69 6c | * If| the fil|
|00002cf0| 65 20 65 6e 64 73 20 69 | 6e 20 22 2e 75 75 65 22 |e ends i|n ".uue"|
|00002d00| 20 6f 72 20 22 2e 7a 75 | 75 22 20 6f 72 20 22 2e | or ".zu|u" or ".|
|00002d10| 75 75 22 20 6a 75 73 74 | 20 75 75 64 65 63 6f 64 |uu" just| uudecod|
|00002d20| 65 20 69 74 2e 20 48 61 | 6e 64 6c 65 0a 58 20 20 |e it. Ha|ndle.X |
|00002d30| 20 20 20 2a 20 22 2e 7a | 75 75 23 22 2c 20 22 2e | * ".z|uu#", ".|
|00002d40| 7a 75 23 22 20 61 6e 64 | 20 22 2e 75 75 23 22 20 |zu#" and| ".uu#" |
|00002d50| 77 68 65 72 65 20 23 20 | 69 73 20 61 20 6e 75 6d |where # |is a num|
|00002d60| 62 65 72 2e 20 0a 58 20 | 20 20 20 20 2a 2f 0a 58 |ber. .X | */.X|
|00002d70| 20 20 20 20 70 20 3d 20 | 6e 61 6d 65 20 2b 20 73 | p = |name + s|
|00002d80| 74 72 6c 65 6e 28 6e 61 | 6d 65 29 20 2d 20 34 3b |trlen(na|me) - 4;|
|00002d90| 0a 58 20 20 20 20 69 66 | 20 28 73 74 72 63 6d 70 |.X if| (strcmp|
|00002da0| 28 70 2c 20 22 2e 75 75 | 65 22 29 20 26 26 20 73 |(p, ".uu|e") && s|
|00002db0| 74 72 63 6d 70 28 70 2c | 20 22 2e 7a 75 75 22 29 |trcmp(p,| ".zuu")|
|00002dc0| 20 26 26 20 73 74 72 63 | 6d 70 28 70 20 2b 20 31 | && strc|mp(p + 1|
|00002dd0| 2c 20 22 2e 75 75 22 29 | 29 20 7b 0a 58 09 70 20 |, ".uu")|) {.X.p |
|00002de0| 2b 3d 20 33 3b 0a 58 09 | 77 68 69 6c 65 20 28 69 |+= 3;.X.|while (i|
|00002df0| 73 64 69 67 69 74 28 2a | 70 29 29 0a 58 09 20 20 |sdigit(*|p)).X. |
|00002e00| 20 20 70 2d 2d 3b 0a 58 | 0a 58 09 64 69 67 69 74 | p--;.X|.X.digit|
|00002e10| 20 3d 20 70 5b 31 5d 3b | 0a 58 09 70 5b 31 5d 20 | = p[1];|.X.p[1] |
|00002e20| 3d 20 27 5c 30 27 3b 0a | 58 09 70 20 2d 3d 20 32 |= '\0';.|X.p -= 2|
|00002e30| 3b 0a 58 09 69 66 20 28 | 21 73 74 72 63 6d 70 28 |;.X.if (|!strcmp(|
|00002e40| 70 2c 20 22 2e 75 75 22 | 29 20 7c 7c 20 21 73 74 |p, ".uu"|) || !st|
|00002e50| 72 63 6d 70 28 70 2c 20 | 22 2e 7a 75 22 29 29 20 |rcmp(p, |".zu")) |
|00002e60| 7b 0a 58 09 20 20 20 20 | 69 66 20 28 64 69 67 69 |{.X. |if (digi|
|00002e70| 74 20 3d 3d 20 27 30 27 | 29 20 7b 0a 58 09 09 73 |t == '0'|) {.X..s|
|00002e80| 70 72 69 6e 74 66 28 62 | 75 66 2c 20 22 63 61 74 |printf(b|uf, "cat|
|00002e90| 20 25 73 2a 20 7c 20 75 | 75 64 65 63 6f 64 65 22 | %s* | u|udecode"|
|00002ea0| 2c 20 6e 61 6d 65 29 3b | 0a 58 09 20 20 20 20 7d |, name);|.X. }|
|00002eb0| 20 65 6c 73 65 20 7b 0a | 58 09 09 73 70 72 69 6e | else {.|X..sprin|
|00002ec0| 74 66 28 6e 61 6d 65 5f | 62 75 66 2c 20 22 25 73 |tf(name_|buf, "%s|
|00002ed0| 31 30 22 2c 20 6e 61 6d | 65 29 3b 0a 58 09 09 66 |10", nam|e);.X..f|
|00002ee0| 69 6c 65 20 3d 20 66 6f | 70 65 6e 28 6e 61 6d 65 |ile = fo|pen(name|
|00002ef0| 5f 62 75 66 2c 20 22 72 | 22 29 3b 0a 58 09 09 69 |_buf, "r|");.X..i|
|00002f00| 66 20 28 66 69 6c 65 20 | 3d 3d 20 4e 55 4c 4c 29 |f (file |== NULL)|
|00002f10| 20 7b 0a 58 09 09 20 20 | 20 20 73 70 72 69 6e 74 | {.X.. | sprint|
|00002f20| 66 28 62 75 66 2c 20 22 | 63 61 74 20 25 73 3f 20 |f(buf, "|cat %s? |
|00002f30| 7c 20 75 75 64 65 63 6f | 64 65 22 2c 20 6e 61 6d || uudeco|de", nam|
|00002f40| 65 29 3b 0a 58 09 09 7d | 20 65 6c 73 65 20 7b 0a |e);.X..}| else {.|
|00002f50| 58 09 09 20 20 20 20 66 | 63 6c 6f 73 65 28 66 69 |X.. f|close(fi|
|00002f60| 6c 65 29 3b 0a 58 09 09 | 20 20 20 20 73 70 72 69 |le);.X..| spri|
|00002f70| 6e 74 66 28 62 75 66 2c | 20 22 63 61 74 20 25 73 |ntf(buf,| "cat %s|
|00002f80| 3f 20 25 73 3f 3f 20 7c | 20 75 75 64 65 63 6f 64 |? %s?? || uudecod|
|00002f90| 65 22 2c 20 6e 61 6d 65 | 2c 20 6e 61 6d 65 29 3b |e", name|, name);|
|00002fa0| 0a 58 09 09 7d 0a 58 09 | 20 20 20 20 7d 0a 58 09 |.X..}.X.| }.X.|
|00002fb0| 7d 20 65 6c 73 65 20 69 | 66 20 28 73 74 72 63 6d |} else i|f (strcm|
|00002fc0| 70 28 70 20 2d 20 31 2c | 20 22 2e 7a 75 75 22 29 |p(p - 1,| ".zuu")|
|00002fd0| 29 20 7b 0a 58 09 20 20 | 20 20 72 65 74 75 72 6e |) {.X. | return|
|00002fe0| 3b 0a 58 09 7d 0a 58 20 | 20 20 20 7d 0a 58 20 20 |;.X.}.X | }.X |
|00002ff0| 20 20 73 70 72 69 6e 74 | 66 28 62 75 66 2c 20 22 | sprint|f(buf, "|
|00003000| 63 61 74 20 25 73 2a 20 | 7c 20 75 75 64 65 63 6f |cat %s* || uudeco|
|00003010| 64 65 22 2c 20 6e 61 6d | 65 29 3b 0a 58 20 20 20 |de", nam|e);.X |
|00003020| 20 66 70 72 69 6e 74 66 | 28 73 74 64 65 72 72 2c | fprintf|(stderr,|
|00003030| 20 22 25 73 5c 6e 22 2c | 20 62 75 66 29 3b 0a 58 | "%s\n",| buf);.X|
|00003040| 20 20 20 20 69 66 20 28 | 73 79 73 74 65 6d 28 62 | if (|system(b|
|00003050| 75 66 29 20 3d 3d 20 30 | 29 20 7b 0a 58 09 73 70 |uf) == 0|) {.X.sp|
|00003060| 72 69 6e 74 66 28 62 75 | 66 2c 20 22 72 6d 20 25 |rintf(bu|f, "rm %|
|00003070| 73 2a 22 2c 20 6e 61 6d | 65 29 3b 0a 58 09 73 79 |s*", nam|e);.X.sy|
|00003080| 73 74 65 6d 28 62 75 66 | 29 3b 0a 58 20 20 20 20 |stem(buf|);.X |
|00003090| 7d 20 65 6c 73 65 20 7b | 0a 58 09 66 70 72 69 6e |} else {|.X.fprin|
|000030a0| 74 66 28 73 74 64 65 72 | 72 2c 20 22 65 78 69 74 |tf(stder|r, "exit|
|000030b0| 20 73 74 61 74 75 73 20 | 6e 6f 6e 2d 7a 65 72 6f | status |non-zero|
|000030c0| 2c 20 6e 6f 74 20 64 65 | 6c 65 74 69 6e 67 20 66 |, not de|leting f|
|000030d0| 69 6c 65 28 73 29 5c 6e | 22 29 3b 0a 58 20 20 20 |ile(s)\n|");.X |
|000030e0| 20 7d 0a 58 7d 0a 58 0a | 58 69 6e 74 0a 58 63 6f | }.X}.X.|Xint.Xco|
|000030f0| 6d 70 61 72 65 28 65 6c | 65 6d 65 6e 74 31 2c 20 |mpare(el|ement1, |
|00003100| 65 6c 65 6d 65 6e 74 32 | 29 0a 58 20 20 20 20 4e |element2|).X N|
|00003110| 61 6d 65 20 20 20 20 20 | 20 20 20 20 20 20 2a 65 |ame | *e|
|00003120| 6c 65 6d 65 6e 74 31 3b | 0a 58 20 20 20 20 4e 61 |lement1;|.X Na|
|00003130| 6d 65 20 20 20 20 20 20 | 20 20 20 20 20 2a 65 6c |me | *el|
|00003140| 65 6d 65 6e 74 32 3b 0a | 58 7b 0a 58 20 20 20 20 |ement2;.|X{.X |
|00003150| 69 6e 74 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |int | |
|00003160| 72 65 73 75 6c 74 3b 0a | 58 0a 58 20 20 20 20 72 |result;.|X.X r|
|00003170| 65 73 75 6c 74 20 3d 20 | 73 74 72 63 6d 70 28 65 |esult = |strcmp(e|
|00003180| 6c 65 6d 65 6e 74 31 2d | 3e 61 72 63 68 69 76 65 |lement1-|>archive|
|00003190| 6e 61 6d 65 2c 20 65 6c | 65 6d 65 6e 74 32 2d 3e |name, el|ement2->|
|000031a0| 61 72 63 68 69 76 65 6e | 61 6d 65 29 3b 0a 58 20 |archiven|ame);.X |
|000031b0| 20 20 20 69 66 20 28 72 | 65 73 75 6c 74 20 3d 3d | if (r|esult ==|
|000031c0| 20 30 29 0a 58 09 72 65 | 73 75 6c 74 20 3d 20 73 | 0).X.re|sult = s|
|000031d0| 74 72 63 6d 70 28 65 6c | 65 6d 65 6e 74 31 2d 3e |trcmp(el|ement1->|
|000031e0| 66 69 6c 65 6e 61 6d 65 | 2c 20 65 6c 65 6d 65 6e |filename|, elemen|
|000031f0| 74 32 2d 3e 66 69 6c 65 | 6e 61 6d 65 29 3b 0a 58 |t2->file|name);.X|
|00003200| 0a 58 20 20 20 20 72 65 | 74 75 72 6e 20 28 72 65 |.X re|turn (re|
|00003210| 73 75 6c 74 29 3b 0a 58 | 7d 0a 58 0a 58 2f 2a 0a |sult);.X|}.X.X/*.|
|00003220| 58 20 2a 20 69 73 5f 61 | 5f 73 68 61 72 66 69 6c |X * is_a|_sharfil|
|00003230| 65 20 2d 20 72 65 74 75 | 72 6e 20 2d 31 20 69 66 |e - retu|rn -1 if|
|00003240| 20 61 20 73 68 61 72 66 | 69 6c 65 2c 20 30 20 6f | a sharf|ile, 0 o|
|00003250| 74 68 65 72 77 69 73 65 | 2e 0a 58 20 2a 20 20 20 |therwise|..X * |
|00003260| 20 20 20 20 20 20 20 20 | 20 20 20 20 2d 20 61 73 | | - as|
|00003270| 20 77 65 6c 6c 2c 20 73 | 65 74 20 74 68 65 20 67 | well, s|et the g|
|00003280| 6c 6f 62 61 6c 20 76 61 | 72 69 61 62 6c 65 20 41 |lobal va|riable A|
|00003290| 72 63 68 69 76 65 4e 61 | 6d 65 0a 58 20 2a 2f 0a |rchiveNa|me.X */.|
|000032a0| 58 0a 58 69 6e 74 0a 58 | 69 73 5f 61 5f 73 68 61 |X.Xint.X|is_a_sha|
|000032b0| 72 66 69 6c 65 28 6e 61 | 6d 65 29 0a 58 20 20 20 |rfile(na|me).X |
|000032c0| 20 63 68 61 72 20 20 20 | 20 20 20 20 20 20 20 20 | char | |
|000032d0| 2a 6e 61 6d 65 3b 0a 58 | 7b 0a 58 20 20 20 20 46 |*name;.X|{.X F|
|000032e0| 49 4c 45 20 20 20 20 20 | 20 20 20 20 20 20 2a 66 |ILE | *f|
|000032f0| 69 6e 3b 0a 58 20 20 20 | 20 63 68 61 72 20 20 20 |in;.X | char |
|00003300| 20 20 20 20 20 20 20 20 | 20 62 75 66 5b 32 30 30 | | buf[200|
|00003310| 5d 3b 0a 58 0a 58 20 20 | 20 20 41 72 63 68 69 76 |];.X.X | Archiv|
|00003320| 65 4e 61 6d 65 5b 30 5d | 20 3d 20 27 5c 30 27 3b |eName[0]| = '\0';|
|00003330| 0a 58 0a 58 20 20 20 20 | 66 69 6e 20 3d 20 66 6f |.X.X |fin = fo|
|00003340| 70 65 6e 28 6e 61 6d 65 | 2c 20 22 72 22 29 3b 0a |pen(name|, "r");.|
|00003350| 58 20 20 20 20 69 66 20 | 28 66 69 6e 20 3d 3d 20 |X if |(fin == |
|00003360| 4e 55 4c 4c 29 09 09 2f | 2a 20 66 69 6c 65 20 64 |NULL)../|* file d|
|00003370| 6f 65 73 6e 27 74 20 65 | 78 69 73 74 20 21 3f 20 |oesn't e|xist !? |
|00003380| 2a 2f 0a 58 09 72 65 74 | 75 72 6e 20 28 30 29 3b |*/.X.ret|urn (0);|
|00003390| 0a 58 0a 58 20 20 20 20 | 66 6f 72 20 28 3b 3b 29 |.X.X |for (;;)|
|000033a0| 20 7b 0a 58 09 69 66 20 | 28 66 67 65 74 73 28 62 | {.X.if |(fgets(b|
|000033b0| 75 66 2c 20 32 30 30 2c | 20 66 69 6e 29 20 3d 3d |uf, 200,| fin) ==|
|000033c0| 20 4e 55 4c 4c 29 20 7b | 09 2f 2a 20 6e 6f 74 20 | NULL) {|./* not |
|000033d0| 61 20 73 68 61 72 20 66 | 69 6c 65 20 21 3f 20 2a |a shar f|ile !? *|
|000033e0| 2f 0a 58 09 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 |/.X. |break;.X|
|000033f0| 09 7d 20 65 6c 73 65 20 | 69 66 20 28 73 74 72 6e |.} else |if (strn|
|00003400| 63 6d 70 28 62 75 66 2c | 20 22 41 72 63 68 69 76 |cmp(buf,| "Archiv|
|00003410| 65 2d 6e 61 6d 65 3a 22 | 2c 20 31 33 29 20 3d 3d |e-name:"|, 13) ==|
|00003420| 20 30 29 20 7b 0a 58 09 | 20 20 20 20 73 73 63 61 | 0) {.X.| ssca|
|00003430| 6e 66 28 62 75 66 2c 20 | 22 41 72 63 68 69 76 65 |nf(buf, |"Archive|
|00003440| 2d 6e 61 6d 65 3a 20 25 | 73 22 2c 20 41 72 63 68 |-name: %|s", Arch|
|00003450| 69 76 65 4e 61 6d 65 29 | 3b 0a 58 09 7d 20 65 6c |iveName)|;.X.} el|
|00003460| 73 65 20 69 66 20 28 41 | 4e 5f 41 52 43 48 49 56 |se if (A|N_ARCHIV|
|00003470| 45 28 62 75 66 29 29 20 | 7b 0a 58 09 20 20 20 20 |E(buf)) |{.X. |
|00003480| 66 63 6c 6f 73 65 28 66 | 69 6e 29 3b 0a 58 09 20 |fclose(f|in);.X. |
|00003490| 20 20 20 72 65 74 75 72 | 6e 20 28 2d 31 29 3b 0a | retur|n (-1);.|
|000034a0| 58 09 7d 0a 58 20 20 20 | 20 7d 0a 58 20 20 20 20 |X.}.X | }.X |
|000034b0| 66 63 6c 6f 73 65 28 66 | 69 6e 29 3b 0a 58 20 20 |fclose(f|in);.X |
|000034c0| 20 20 72 65 74 75 72 6e | 20 28 30 29 3b 0a 58 7d | return| (0);.X}|
|000034d0| 0a 58 0a 58 69 6e 74 0a | 58 53 65 6c 65 63 74 28 |.X.Xint.|XSelect(|
|000034e0| 64 70 29 0a 58 23 69 66 | 6e 64 65 66 20 53 59 53 |dp).X#if|ndef SYS|
|000034f0| 54 45 4d 5f 56 0a 58 20 | 20 20 20 73 74 72 75 63 |TEM_V.X | struc|
|00003500| 74 20 64 69 72 65 63 74 | 20 20 2a 64 70 3b 0a 58 |t direct| *dp;.X|
|00003510| 23 65 6c 73 65 0a 58 20 | 20 20 20 73 74 72 75 63 |#else.X | struc|
|00003520| 74 20 64 69 72 65 6e 74 | 20 20 2a 64 70 3b 0a 58 |t dirent| *dp;.X|
|00003530| 23 65 6e 64 69 66 0a 58 | 7b 0a 58 20 20 20 20 69 |#endif.X|{.X i|
|00003540| 66 20 28 64 70 2d 3e 64 | 5f 6e 61 6d 65 5b 30 5d |f (dp->d|_name[0]|
|00003550| 20 21 3d 20 27 2e 27 29 | 0a 58 09 72 65 74 75 72 | != '.')|.X.retur|
|00003560| 6e 20 28 2d 31 29 3b 0a | 58 20 20 20 20 65 6c 73 |n (-1);.|X els|
|00003570| 65 0a 58 09 72 65 74 75 | 72 6e 20 28 30 29 3b 0a |e.X.retu|rn (0);.|
|00003580| 58 7d 0a 45 4e 44 5f 4f | 46 5f 46 49 4c 45 0a 69 |X}.END_O|F_FILE.i|
|00003590| 66 20 74 65 73 74 20 31 | 30 37 39 32 20 2d 6e 65 |f test 1|0792 -ne|
|000035a0| 20 60 77 63 20 2d 63 20 | 3c 27 6e 65 77 73 62 72 | `wc -c |<'newsbr|
|000035b0| 65 61 6b 2e 63 27 60 3b | 20 74 68 65 6e 0a 20 20 |eak.c'`;| then. |
|000035c0| 20 20 65 63 68 6f 20 73 | 68 61 72 3a 20 5c 22 27 | echo s|har: \"'|
|000035d0| 6e 65 77 73 62 72 65 61 | 6b 2e 63 27 5c 22 20 75 |newsbrea|k.c'\" u|
|000035e0| 6e 70 61 63 6b 65 64 20 | 77 69 74 68 20 77 72 6f |npacked |with wro|
|000035f0| 6e 67 20 73 69 7a 65 21 | 0a 66 69 0a 23 20 65 6e |ng size!|.fi.# en|
|00003600| 64 20 6f 66 20 27 6e 65 | 77 73 62 72 65 61 6b 2e |d of 'ne|wsbreak.|
|00003610| 63 27 0a 66 69 0a 65 63 | 68 6f 20 73 68 61 72 3a |c'.fi.ec|ho shar:|
|00003620| 20 45 6e 64 20 6f 66 20 | 73 68 65 6c 6c 20 61 72 | End of |shell ar|
|00003630| 63 68 69 76 65 2e 0a 65 | 78 69 74 20 30 0a 2d 2d |chive..e|xit 0.--|
|00003640| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 63 75 74 2d 6d |--------|---cut-m|
|00003650| 65 2d 68 65 72 65 2d 6f | 72 2d 75 73 65 2d 6e 65 |e-here-o|r-use-ne|
|00003660| 77 73 62 72 65 61 6b 2d | 2d 2d 2d 2d 2d 2d 2d 2d |wsbreak-|--------|
|00003670| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0a 0a 67 72 77 61 |--------|--..grwa|
|00003680| 6c 74 65 72 40 77 61 74 | 6d 61 74 68 2e 75 77 61 |lter@wat|math.uwa|
|00003690| 74 65 72 6c 6f 6f 2e 63 | 61 20 20 20 20 20 20 20 |terloo.c|a |
|000036a0| 20 20 20 20 20 20 20 20 | 20 20 20 28 43 61 6e 61 | | (Cana|
|000036b0| 64 69 61 6e 20 64 6f 6d | 61 69 6e 29 0a 67 72 77 |dian dom|ain).grw|
|000036c0| 61 6c 74 65 72 40 77 61 | 74 6d 61 74 68 2e 77 61 |alter@wa|tmath.wa|
|000036d0| 74 65 72 6c 6f 6f 2e 65 | 64 75 20 20 20 20 20 20 |terloo.e|du |
|000036e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 55 53 20 | | (US |
|000036f0| 49 6e 74 65 72 6e 65 74 | 2c 20 69 6e 63 6c 75 64 |Internet|, includ|
|00003700| 69 6e 67 20 43 53 4e 45 | 54 29 0a 67 72 77 61 6c |ing CSNE|T).grwal|
|00003710| 74 65 72 40 77 61 74 6d | 61 74 68 2e 77 61 74 65 |ter@watm|ath.wate|
|00003720| 72 6c 6f 6f 2e 63 64 6e | 20 20 20 20 20 20 20 20 |rloo.cdn| |
|00003730| 20 20 20 20 20 20 20 20 | 20 20 28 43 44 4e 6e 65 | | (CDNne|
|00003740| 74 20 61 6e 64 20 73 6f | 6d 65 20 45 75 72 6f 70 |t and so|me Europ|
|00003750| 65 61 6e 20 6e 65 74 73 | 29 0a 77 61 74 6d 61 74 |ean nets|).watmat|
|00003760| 68 21 67 72 77 61 6c 74 | 65 72 20 20 20 20 20 20 |h!grwalt|er |
|00003770| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003780| 20 20 20 20 20 20 20 20 | 20 28 55 55 43 50 29 0a | | (UUCP).|
|00003790| 0a 0a | |.. | |
+--------+-------------------------+-------------------------+--------+--------+