[comp.sys.amiga.tech] UNSH V0,10

Sullivan@cup.portal.com (sullivan - segall) (05/24/90)

This is a short little shar archive containing documentation, source and
executable in ANSI C for a shar archive dearchiving program.  (I was 
getting annoyed because 'shar -u' kept crashing the machine.)  


Btw:  There seems to be a bug in Manx 5.0.  When initializing a string
      variable with a null string, the machine guru's.  ie:

void main(void)
{
    char buf[30] = "";
}

      will compile, but won't run.  Could someone with access to Compu$erve
      pass this along?  (They don't answer my mail.)
#	This is a shell archive.
#	Remove everything above and including the cut line.
#	Then run the rest of the file through sh.
#----cut here-----cut here-----cut here-----cut here----#
#!/bin/sh
# shar:    Shell Archiver
#	Run the following text with /bin/sh to create:
#	unsh.doc
#	unsh.uue
# This archive created: Wed May 23 23:09:47 1990
cat << \SHAR_EOF > unsh.doc




  This silly little program is Copyright 1990 by Kevin Smathers,
all rights reserved.  Permission is granted to distribute this
program through normal freely distributable routes.

  This program (in a single routine) parses shell archives to
extract their contents.  It cheats somewhat by knowing the
format of the file.  File lines are assumed to begin with an
'X' character, (although any could theoretically be used) and
it doesn't really try to parse the parameters to 'sed', it just
looks for an output filename.

  These and other limitations should be easy enough to fix should
it ever become neccessary.  (The program *is* pretty robust.
It should be pretty difficult to crash it even with random input
files.)  Really the only reason this program exists is because
'unbob' stopped working on me about 5 months ago, and 'shar' has
always guru'd when I run it with the '-u' switch.  The obvious
solution was to write a program which wouldn't crash.

  To extract files from a shell archive, invoke UNSH with the
name of the shell archive: E.g:

    UNSH filename

  Running UNSH without any parameters will produce a short usage
note, and the revision number.


                           -Sullivan Segall
_________________________________________________________________

/V\  Sullivan  was the first to learn how to jump  without moving.
 '   Is it not proper that the student should surpass the teacher?
To Quote the immortal Socrates: "I drank what?" -Sullivan
_________________________________________________________________

Mail to: ...sun!portal!cup.portal.com!Sullivan or
         Sullivan@cup.portal.com



SHAR_EOF
cat << \SHAR_EOF > unsh.uue
begin 777 unsh.lzh
M'/DM;&@Q+1`%``#A#0``V[BW%"``!G5N<V@N8^S8U_U^7Z^'QP]9Z_#VN_U+X
M[+8L8"\3"P)`'7^\W&]MKG=[:I8`:__^FZ]\VYJ)O%'!.JJY^`"=E-N!11X(T
M\NLH_G^_?SEO;^7[297=)NAN-RGXI/>2M:`1";VL)=K&D+JP6FKQR>#]6I3<O
M`HH.B6=,/W01(JBH<P.3>:9)P[60&NLNA(NJP1JPT1#C@:2'`UE"#[H*/W9,>
M5#2>N(N/CXP@T30#**1,"(@MOBH#KA<@8>OY=K_E<8E./1)L^"`L23S@AG$(J
M[][+?E*?\#8@L,I^@IAGWM1C^__W6IHR2#Z<4SM)!1OUC7?`=?_A&&;<@AY]0
M8\8BX@#9C"V`-O;'6G4`=<[Q$'6X#V.J;^37N"?KV<%!>380.!]:V=`WHWOR]
MO\@[>NTWSFAF"5G*M]']6E#+MC96=5TWX1W"UGSAH[]2#3E7FNON'U;=AT]-9
MN_/(.<Z6(%TP[NSH?AP;'7D5Z.]C.YEJ3KGA!KEGF=%E:X3%!QFDX&[<IVK:$
MI2B[2.*#G@QI,26*A0J[(/T=\.-,;-,M$4\>:6W;!3HUTYR>:L++QE%0!FDH<
MR^)3(IX,%HJXK=&,LZV9B2]DSJ^+IWM[ZKR/%@M4TX'8\5$OEW\MUE0COF,@`
MJ8PLHE?3`GX/9E>IX.T$C0Z,J5`V1-$C3V[7"WG3DAR9.3;'86N8"[%G.68;J
MRKO.)[$2G,(J-A[&)FKZ+-(!XI>&'H`/<!-Q,#$N:/3R'B=69M>82A*@3;K@X
MF:\\(2M9?@#:OKWJ.#>'!^'^'B&R*I?T3@TSU$!"\.VRGF^@.%12<NEK@;]#O
M=&E`\O\^H^A#+:SWZ![8A\"6E:B99N4M[!?_9"]DN1)%8+SO+Q_:S0+NAZ7E]
M07B9O*A1@+T`8@2;EUPC&)R+9KY'"4%$;C9*N<*#>?`TG"/!1PDV00[<J)98C
M4RU!XA&+DF2]EVU%#M5UF@?^PP<(-T"5>J_:C]VM]+_E=QH_*MCFWG(U-<@_]
M80W.6Y6*W;E2GLJ'KZ-:'K_0')SPMF0FGY))0XE>O1]==>*`E%,B&B,J!8Q-0
M!5LB1?WH2+1/J?R#'DK1'AU[^@J1WSV56'_("=_1L0@%4;)B.=U8`%L^8CPH<
M>4W!RAN*!5H%&&MPMND:<F9#=E)AXU!G6N7S6N8M$\VEMA8S_1OSX!09Q*J<I
M4NI;I!@2NI,EQ""&AAOV\]9AO4J%05\71I]/Y90L.=H`0C?R'<$Q";-&5LH?L
M]6?%XCA[OL^A+;'"]`-2?)1>2R2W5BDVSC2@CDW!J(&M2N^0)+4!&<2:Q*-;&
M(3\S'^1T9*&-6Q7DD6K)@S)\[@&J:G0GV;!1+ZHE+E<Y)/JHBE*5QDTUS%AYU
M,EI-;BYY`&_P$S\QF_YFO5!BZQM*%71%+*A^>&N^9&>X7&]A.1+>#4];$MS9E
MF%;40C;AE&2.<24@3LF8-M+)L*313^\#NI`9#NR/W\+PC#ZXNLNC38H2$HD3[
MC2#%J#[=GMKM',1684A?I.@S<B5N*AN[1M*85]*2+R1D^*&KGJ\&UC2C`V\#W
M,"K;,[(Q\'\%.S,GVT)C/1A?]YUN\A_]G;&*93482.#(D@9'Q3U/U6`+."79X
MJ!H:S2#`QF?QB=T1'@_\L,%]KSKM>JC7LMI5.2CYK7;'%M,+?9%W5M76^(=#E
M[NQ[#,GF12]7%MNRX6HBM*>P&>G_6I;W\02Y6%YHBY<ASYL_6K`SW`_W$F!<#
M1_[36L;ST!ACF!\\GZ;NQV_[/]T0&O<M;&@Q+342``!H(0``Z[BW%"``!'5NN
M<VB-Z\9BX]_PQX`Q)`#X[#=DQ^,!ZI=@O&V0LZQH/[4->@5IX8IHYQS8.EP!"
MME=N:#[F*V.%N4^=%&XZ@-*_TI&R.F\G;B!(9$"<Y&"02C+1#.,'D+@>Z2H;R
MJ:9Z7`&U!^L_+GV[VCL@P8V#N--OS*EPZRY9U^36P%CT%9EGR!2;Q^JF%3*R"
M;3$J#I(N++ZM)0>DD;.=?_E*I$*5:1Y(99!7XIJRQ2HRT2#Z2A#0EQ?L`[,E/
M$R3^</0-&3Z=MIH$OR9\F"\`A\U4,@0^N^4*'K_HM52H&5`@51]+$)6"9@1,W
M8`XZP"?U'Z2)QR+PQF\70]=E7$%,?""<1U@F_4U..0$K8KH'7.BIIR@B?X(G`
MLQ,3OI(PQ)O/V!G`<0R;AYNV\$=Z@L"`-S!Y@/Y@F6H\<"@.#QU&0#'E$</$>
M&2UZ+C"B"5@<QS'ZT!)&_L\Q@!,T?)GS@_CZLE3`$>.J1>J$Z4>,=#GH2FAVI
MSZDLUR-&QN>@WTZ(>=L6Y9P8O%VH81>^ET+_.OG<KFVV1AC.#4%]61?+3^W?E
M&WH)TT_M\Y@H."P:W&Q?T;L55U_OXS[2%<![\OSCW@)P>_V&D<R%8>]#<INUD
MFY0__Y7*H?\/_.H?=:JQ]\>T)X*QV*;]U'=/+^%1WY.?SK8'V;\[WAQ_T//#`
M[Y'A_B"W-SWAC"HF:W1LM;TFM/:WA00'].G2)NU4^+.V:7OJG[]^34U3AJ=KA
MU5]^B]-_EP@KBM@(:_QIY_ZFW;=W7+E:D$W`K4,6Z-:G;$?E\UTE8\Z99,)8U
M5D@+<CI]W7*K8N?_B`!BW$PM"9%J5(&0VQO$EG26--2J(J['GCQ:"E:\G3Q5=
M*BH2):%7$0)-X;G'PPC"`-E#,(526)$"`)V'-^0,S.)^$D(FG#]P0`GG+_'0[
M.P>!]Q=VARP'/^+3SAL,>#T7N1"2>`LS(1\3N$?BTD\'!TQ$^ED;D_BD>K"DE
M&$P1T_C(P4:D:*0DF4%^X<&B!=H#PQQ:2\G2.71"#X$72AS4M?7T"F'HLT(7-
MB"U7^0W[G^?K^J&2NNA*U($<MKCW?(.M3=AYE4]>88/A%#"9(3KTXN`PF?C"O
M9;?M";[9_5@%/$PH<U*F<_0GT(5`WMT53A0/;=WGG\="VVPA$BB8FA$]6G&_'
MG6@\.CGUX;>3Y_I"Y,G]U/&%R1'SL58NOWM*E;J(QK(,H[R(<_60"Y57,F4-&
M_\9><S?$])YW;HB1I]&KNNPSZ>0VFN!]'-+O[,[R0J:$K$M&H4!9%;#W:F;#2
MX=;W5.5`\G#P-4)NM;SO"/(1BH/I-Y?MZ@Z^@"S<:8.B18\L:1I+/7S?:N=>;
M/&'JW6$"[^X@LP.(-_9=?08WUN3Z2<KUCW:0:HR(>V3XQWRXG!86]^+(\42(-
MN=4JUE0\5%RQW')*]XM17M&HLEIN3*][B[TNB[U3EMC]])1SLJ0HY__AA=LAN
M7\]@V*_#LA1&@J*</.P5Q\3IIFP?`^@]&>3W]:J"TP]`+$/#J/-[XJ1?X;!8[
M=19^@5V;AN+;/S%QV/&:\0)WWDH6IZDM?UT@6=HJ\O+8T6V=;T)S.I_-GV,[E
M)58*T9^1)8MVU;I(LUM*-Q2D.C#*\6Q]'.+%VOWN<,!"Y,/4<N\MHSN?/Z0.)
MOGTKJ<_-2%K@X9$/01JJ\`^+D*2`TE;SA1PLKP#H=3I]/02`^:''SC#$.-,=H
MTMR%SQ/0Y7MN9(YS509)PY\$P?^KUZ*]JF/X67T3#_]WWX99%G;R9_7J][[?,
MUV=2HGT4KVGV[5N]!E'R,(]33;H!KA^OH'F7K=?JM8:WL,IEW-BB*$W&7#@=F
M_4[6(`FXV!\I<^T,3!;H)92</7/*<*H6\@[&ZN/>_EO-M4Y(\T3\Q#];=@=NU
M,$O`ERAW83I@I8-;JYP(A7BX5[&V<N%H#[1X%2S@FH)Q4"1]&AE6NFZ1"5I;&
MHC??H6L!#6\C82IUESXDE&*VWU*RM."ZC;N-S2IW,XX#J=EI.6E+]5/Y5/*=]
M7N+8&"=^'>!X-(BCC0A%\.46C)#\\,W+Z)OY1"<L"_:?DAX1)IA6$PN"]SP,U
M$L@TY5";3$E*]E25_Y">]_@)R1GC^WL7PJ4+Q$Q,_PQ"U9G[5-3_=+A7I:@*8
MW/1/FWX,T1EVBO!PO#5GR7U,#'=RDW35=T)9J*7NT`^2A6=R_>E:R:RHZ1@>A
M?KO]6D#Y,`VL-J3<U2?Q3;:CU4O3G/V4=SM/3/T4D8B.&6OV4O,*G]P^S?Y5"
M9[`.S++YRUCO!>F&\?:FPZI[\JD_1K>H',+R>]2P>=2<#*,GU=3'%FX^P6SVY
MSY$UXF;2W]^Y7F^#!MF>=5WX8^W;!LE/'*15>B?Q1_(,V?-:LD1IUU\ED7*U*
MOZ>12YV7N"P!T=]4$NM*#24XU2XAUU)KT"_GO/V=$P'-,&;T)U8%H#X$P&["#
MOTF,UN^D"G5U)T(Q.`B$J@^8!5]0,J\]`JY1\#(B&8LUZCBF?E=(/J[`WO`2!
M;*O4&-F6%2\@T_%WPM*I'?B'"(4PIPH&U<)/!M'L9O`M,G<%W1GKGX]`)DM)!
MT9_P>F"323S2QT'^,OD6T;S@EI0%[V*/2B,V,I(7^]@&FWREDE]GM0EMYA:MF
M+'A:>#L?7,8%1(KR$DO:#JWMGM/O9[TUOO9K!?DZ=D!Q%>^^/A@6NG_&(_;O"
M](A&(N(V44YRN*8R)UY6[3J&J#H:[^\G#I8I&0;!+OUXU'!D$__P,"HA;24E2
M(7,$]#7".]H0>@8K_"\U?H)=6!=W(Z]EQ%FTRAJBOS,)L:(9*Z8KHH[&O-V2(
MY"-D',X7BW2IY%4*G1K,.[%Y?_-KI_H:=6-`?>'OX@W%76"ZE)ZX/<[WV.Y:S
M0_34V6>`W2@M94EI_W4SGJ#.';8:05^BX5F:K4OE%+ZD5.T%(L7ICDXN2I)*C
MD_P,<U\T-.5*91"]1'^C?K=UP6Z86_-"^KOX@^H'<OWU%*H.;WP/<.FKKEJ\P
M5Y(R!Y@A6D\'=E!<)`S&E+:2=7*N(42N5\J67\7:(>T$R1[3T=DKM05"RDADO
MXY[YE0/45@<3J5M[C0=XY,7+.;=8XN,2Z>H+R.]V3$G@6KL;[3.,`5:0*T-C(
MM_AU]CH_Z8;%6C'M-(X;3?0=6<.HJTQY^,\B\CWPO+NMPR/YVF\>JW7]^>+;S
M3YMM@W]MO&_MF=5>TAO74]I+U=3P#T\<"]"]/9\(^X=;=$'SKV#OJ9M:G#K6"
M;!TR+AMPQP1IV@#[:'/H?Y*KN_C>->'Q'$9Z@IN-`"/KNUN\6[LB[<>IAUG*Y
M5;)1>+4M07ZCNC=LC6?`*5WL9F,6O92%I7M9L6FA=:MB0&9H9(O@J@B(BDHXE
M+O33=0[IJZ'9:_[22408TO*KR;J>TES?UZ1VI+!7MG<YW_.D?#2RQBLF_;>YA
MZD["0=PL0/!4/6%^]_5Z'[%LNU_17Q>?\%D821%J35[[\VCN"G4WZ(I[[!0RN
M*[?#'WZ(R>WM]QCK`&?:'S:)`7$+!T8<:9'XOQ#OY'4XU!%M/Y>AEN/18A(5)
M9ICP%ET3G`7_1B^`M&KZFQ6_O%,03!7)?0AF@?NVUY=X.WU5LZN.5<!L=U51S
MJQ*\=:C_4A_5_6`F"R2K7B_TI>Z#O$D\NU@\_V8Q/-!\B8%^6B-W,91R]1<?;
M=O^[@?Z+,Y8K5@2-<-Q+^CDEC3R+\QG`?)0KL?,%P.\8,4E)<ZQ/^+!(7\*:K
MYX'%'\.[MW\@S;_\"[[<%G+:W!>-W"[YN>@6:.[K;2:#LEKU?65HTE8V:V85/
MQ]E&=RI^!Z+&#V.3TBQ@GK^UGX%Q[\#<ZF;$7>@/=*;(1T$J)J3AU-`?:3B3C
M_ZGJZ&CQ8CZQAQ97Z#]O^DZX.G2J)-/JVM81;#<DG3!IN:N#3=(RL>J)`R9]G
M'G`>M4T3D-JB1X7_%K[<I_:SX&N2P-@)@?P)UUL_8D;6ZSQ%U7?H?%6R9:I74
M:/&$J\VH_HKEK[\)O@5>%057%SOV.('_+[HPW<#,FJJ(GXG[T-SRJSS-^\+A4
MN]H'ARSLWUM-_3.9*S80>#-&EF;G7#X/^S</LR:1_5)Y(?@,)JVVS<7I)=&<G
M]]Y$<-U1HT\5PV4>P^2NAWD^+<MW1W*LIQG=<YY=[`K\HV(>RBP#W6"YXM0D4
M3WTW`?\'@/__/5SO`_^^>>@UCBKP!>%N!8/<(S]N!1_WZH4Y/??X1W!81_/KY
MQ[JA?_`NE),\WUC7#9:8071:\?@LX(+5L<_FOOXN!/LSHNA/V>$@6"6]_O[J;
MT;C#,R$%,S'?_@X7]@^)F[9J9NJS>ZF;0FB?36J-_[A:&HHAK*=.GQNZ>-QV8
M@/".6:Q'.B@S(KU5X'_`HY?($4U^;_V0R_91?J5?@/@Z\/#":&_X&A@6/?)F@
MO\"JQ8%5X&I]JWP*KZ]%R9ZIQ4VQ\\YL,]#MG7X"<.H^_R?Q_"[70YY$`5DA\
ME"%FQ!UCEF4_`K]B(MK,/E!C70WYS_^[_ZXLET*]I]=O]-5I_6[_UKC=ZFOC\
MN)6-9_[;XRT_;;?_<V>/)Y-E!C"T1,N,Y:;/OZ/ROX1P]U,8R!WM[_WWDPXWI
M^W9FNG.E36H%Y>^!S#4HDH-)6P^!ZP`]TTO]3PE\IX1Z)@X3=M_FS=^31]UX%
M*M12P0;R6"!^6[)_EQJ+2^,L=A4&51\RC2P03YSX!Y\267?/$?_^Y>:?7G,&J
M?[EPE6?2G2Y!G\:U%$IL!\I;G\QEG1[_YP^;?IKUOA/^IAQR0`5H;X<4P:=<X
M1P4F?,[2HD2KOH+;PZ31R97HB0PUM]%V3EHO9H'/89XREQ6-L;'W>S[?LN=:;
M"EPY*6!-Y?)[XRG?F/@(\2<RC$0>VR]>8U]*2&$^X!F<,<5KW\,1([)O;W2N;
M<@T_I^H,I*_(K_\+[)Y&W4LTA[=3C>1WU/6^!'G>O'E("VOY`&@\QK"NWQ#_8
MC/]P=GB2AR.;,&6'WUM'J*1DO\>\[85!G-&MSJ6IJEI,I$O/M^/YQTWG4^\[1
M(WG]HL+6CD3I!)+P[)DT2Y%7);Q&0G%P,\P1-+$/YL](L1I+'#8P`ZYX.,65>
MS^('VD"$(\R2#>R^'Q?12N9J.G5?-N\9263#MUG>Z7(-*\&RG51.K8C\72N=T
M^.0;R,3JZ>^FXX]G7YC=JOMCY_+(_@E`+LP@D<6TJR,29'26P5//W$KFJQKUC
M@3W2L?Z39)V9MU?+R;8)OFZ7LR=Q!.`_*UQMZ7%MK]4G_%ZO[/C]UNT:#@7?=
M]6<\)9$;<C9=7Y^:%_1F(@6[.WB6WSAH)%B'C5RQ*3(HP]Z&E$RHU$["X8;XS
M>@R38;?1X&%/T:%(6W\\K>K"GX\)&TB8\<;1-KFMOK@'N&5S`_QH:4!?C;W\3
M\4G+'%$Y,.28VTFJ\K_'P,W^%)_E_=\8ZZZ/XMO?3OX7=/?&U*=D7Z1+!VTK8
MZA+E/,$KAAP!./DSZF>_@'^].F^:>_GMO9AWSO[Z*B47,^B6^[G8VZUS2"%_8
M^18/+,(8EN=?[-VQOE/Y69A+AI-Q>*,#;:%XHR"]B&,@/K$^FQFA=\'4R+X%2
ME''?,=E]$?2?+?I]HQG!>EH?EOOR7*/)=_'6&E^3?OI#?7R;G/?=E![?W\;ZG
MW4]^!1^:]?];TL^<8Z>IJTY9!5NUU!2W;^OHS$Q.?ZYHD4-QQFEYWO[YCCL2'
M]D?OI,PO9'2#V1'X"63Q5')_TLQMC>_O%SR^:8Y]_I,.=UB72Q&AL2^B,8Q0W
MV0D[Q^,^`>7+OHC*4%D9:_8K$T51\,#D?XZ,'8&M^)%V,ME9>^D[R=6]%6JQ"
M.[>WZQ\3]L$F?@28-9^"I<HL8=._<S^N:@-@J]C7=#827^#)=$OF'*/"U"U]0
ML]#DTR(W^PL_XUO!GD3@K&1,P](Y`523@L1L+!8M=I""#DU=W\UG:4J[K6?O0
M5T&OBKB!FY3DJKY@&Y+HGQF?CSZGUQ`9VK(,]10#-'=AFI-H9,N.&68J$:)(K
M<_7OT?B@T?W*UOF(9$7OGX%TU79^$`">N-_5'*E9X862!<#;V_J+^X5GE(<6L
MRI"\%\$$/4/T0W%%&DO.]"_<_OT=WOD?5'SA;4F"<S=?EL=5_Q114_"/=M1UX
MZ`4JQ;H!CBK[1?0^7G'A'@_OKOBF?<!XX?8I_.8,CW=SR\9@M6?G7>_##YQ<_
MYJ"]WNVI0WF^?5N,E`;]<N$!\Z&""]R>1DA>"&Z_.#_9O@"[L`<0-Y0M=G/0]
M`#UX`!\(2N$`<P#`$P?PA`#3R`#8^%.:$<@`O;`$)`#5`&VJVWA4^#D6`J$6A
?V05\.``Q@##`!X@`6@`:8`.`&X]X\#$]Y%,8Z5G```#5_
``
end
SHAR_EOF
#	End of shell archive
exit 0