Xref: utzoo comp.sys.nsc.32k:823 alt.sys.pc532:85 Path: utzoo!utgpu!news-server.csri.toronto.edu!clyde.concordia.ca!uunet!samsung!zaphod.mps.ohio-state.edu!mips!daver!bungi.com!news From: des@musashi.wpd.sgi.com (Des Young) Newsgroups: comp.sys.nsc.32k,alt.sys.pc532 Subject: Tarmail Message-ID: <9005030050.AA01398@musashi.wpd.sgi.com> Date: 3 May 90 00:50:47 GMT Sender: news@daver.bungi.com Distribution: comp Lines: 300 Approved: news@daver.bungi.com Well, here is my tarmail directory. Prepended is atob.c. You need this to get at the directory. Steps to recover: 1. save the rest of the file below 2. feed to "sh", this produces atob.c and tarmail.tar.Z.btoa 3. compile atob, this is a filter 4. atob tarmail.tar.Z 5. uncompress tarmail.tar 6. tar xvf tarmail.tar This produces a tarmail directory. I put crc.c in the directory too. Sorry about the wasted bandwidth. Cheers, Des. ------------------------ snip, snip, snip ------------------------- echo Wrapped by des, on musashi echo x - atob.c sed '/^X/s///' > atob.c << '/' X/* atob: version 4.0 X * stream filter to change printable ascii from "btoa" back into 8 bit bytes X * if bad chars, or Csums do not match: exit(1) [and NO output] X * X * Paul Rutter Joe Orost X * philabs!per petsd!joe X * X * 900308 rpw3 Modified for slightly more user-friendly usage message X */ X X#include X X#define reg register X X#define streq(s0, s1) strcmp(s0, s1) == 0 X X#define times85(x) ((((((x<<2)+x)<<2)+x)<<2)+x) X Xlong int Ceor = 0; Xlong int Csum = 0; Xlong int Crot = 0; Xlong int word = 0; Xlong int bcount = 0; X Xfatal() { X fprintf(stderr, "bad format or Csum to atob\n"); X exit(1); X} X X#define DE(c) ((c) - '!') X Xdecode(c) X reg c; X{ X if (c == 'z') { X if (bcount != 0) { X fatal(); X } else { X byteout(0); X byteout(0); X byteout(0); X byteout(0); X } X } else if ((c >= '!') && (c < ('!' + 85))) { X if (bcount == 0) { X word = DE(c); X ++bcount; X } else if (bcount < 4) { X word = times85(word); X word += DE(c); X ++bcount; X } else { X word = times85(word) + DE(c); X byteout((int)((word >> 24) & 255)); X byteout((int)((word >> 16) & 255)); X byteout((int)((word >> 8) & 255)); X byteout((int)(word & 255)); X word = 0; X bcount = 0; X } X } else { X fatal(); X } X} X XFILE *tmp_file; X Xbyteout(c) X reg c; X{ X Ceor ^= c; X Csum += c; X Csum += 1; X if ((Crot & 0x80000000)) { X Crot <<= 1; X Crot += 1; X } else { X Crot <<= 1; X } X Crot += c; X putc(c, tmp_file); X} X Xmain(argc, argv) X char **argv; X{ X reg c; X reg long int i; X char tmp_name[100]; X char buf[100]; X long int n1, n2, oeor, osum, orot; X X if (argc != 1) { X fprintf(stderr,"%s: no args allowed, please use pipes or re-direction\n", argv[0]); X exit(2); X } X sprintf(tmp_name, "/usr/tmp/atob.%x", getpid()); X tmp_file = fopen(tmp_name, "w+"); X if (tmp_file == NULL) { X fatal(); X } X unlink(tmp_name); /* Make file disappear */ X /*search for header line*/ X for (;;) { X if (fgets(buf, sizeof buf, stdin) == NULL) { X fatal(); X } X if (streq(buf, "xbtoa Begin\n")) { X break; X } X } X X while ((c = getchar()) != EOF) { X if (c == '\n') { X continue; X } else if (c == 'x') { X break; X } else { X decode(c); X } X } X if(scanf("btoa End N %ld %lx E %lx S %lx R %lx\n", X &n1, &n2, &oeor, &osum, &orot) != 5) { X fatal(); X } X if ((n1 != n2) || (oeor != Ceor) || (osum != Csum) || (orot != Crot)) { X fatal(); X } else { X /*copy OK tmp file to stdout*/; X fseek(tmp_file, 0L, 0); X for (i = n1; --i >= 0;) { X putchar(getc(tmp_file)); X } X } X exit(0); X} X / echo x - tarmail.tar.Z.btoa sed '/^X/s///' > tarmail.tar.Z.btoa << '/' Xxbtoa Begin X+.\@4_T6F)-4QF\!"pbdaKVAULCb\&S4F4lLl43,e,Wnh7#`-BA8o2+0o!c0,ZB;FEKQ!8(cQ8AX9$ X3C8XV8M=KKTMVpCu#'@+*R[&?i^6'Ed(b-\.sVbiog**D]^1=A-lN-m$A^cssP6R*X/!Wi X?5BL!4FNK>9^A;lW6aQ#KK`lJFFQjefU3=@tMa;em/fDu;.r,W9.@9s!BPm`i`8smZG!M]dj:^"]S5 XeIut6U5c X\W@t4>?_@YX;2-'3UnJ]30#4+[#cc09LE'lYd09k\(&06al[^_o)I^-q#%V\oTiaQhYQ7lDF,Z5N)S XjL8)@.PZ(PW4[Ke^Rc+?]N*#WSWH"s)si5t;fqiEEB%iJ)QX5]a.0_AdNG0Z4rR[)!b#kIU0f]*-N$ Xm"&a+Yq?AuCk*X^`p_'45QXQj!SJ.?l5DD`E1gW9(uL&:S&u X'87L+/]W8[\\XrME90uM..]Ko"*>Eoel)>o(?#9.BIJHd-2j8hS^]Rlg0X"B^t/9#-QD X>"rX/3>c&E%h+Y$c7l'+_W"fT^1*G\:B;EH*a@bAA"K76K2_CqJ+t<\cJ5%]Z,N>*&-S<8&Q3@5"6K X1>b8LWSG/\GXU:"p\E(T*d0@6Ce:7TA.3sG\mC;2m!tR/_YQF4(p\oLH_>@!>E,;JMpp9scOnIs#.$ X2*Ijgr:r^B#hi6hJh\DnWp>Z4"A5O0='OnV+d`$52fI/$R8^CW>IXG`3X' XTW`6eiG/9_fY739]jDK^:h&@7)aod>kZsum%uXQ^q>e(.YYI))(k]bE-c4tqhuk2_!J__+R`C(X@f& XfgZ(e/2Mbjic+j>p`:7qh,JtRiD\KMS(U^ Xu1&bdGhdpd)@YA:aKT3+s"<%7Po"FN,(6p'KLCM.8nQNo>4oGIB^U'9$@Db^u9WbJ3t$B!!Ff;7,PE=gH9/s;gh<9#j$5!G/# X[]PmJd388mANNj,Xm?3YeKWm2_cF$;qZlRSjq4o'8>FFSI/AU\l>V.Vd6>) XA"Tg^%)"\PE42C>0pZe(P<)D24?:9NW?(=MQ^cpnWiJ`%.(.d9>X"nK7#"Rt\@Zf1o1"=#JO,`KD$i X<(G`'@[IOFb,N`imeDFL:!OW=A(q=#n>:"@m!e.nO3)r`S]>IsVn278SRr*6;OWE@lD$Qb5C^9j_k$ X(:>9+2O^K$2r)LnY?EV;?B%7:Wf`q[kiu>5C]O`Gn0J:jfK69[cF.ii+'QFpf[gil1RiXj>5oii(R+ Xn1gBGF!2O4P&i3/.+'rc5Xp7&Oo\%Q?$i#Pi`6(bG@^g,81#b7P2-Hu0-9XGo@b\K*qE6Si-5f&!j> XJUHH&Hue!mi7(,=jZ@(@^&&.dV!JIke\)!rdfMU^]%k4 XQKneP-XI?j%\^Oj?+RTFWK/=4PC?%9 XXT*EY4^e=V&QU\r&cN+Y6`*HR0F.1HbpC0$O:'.\ X6+65j,ZdbRPL*N`"86#^0na0M>Ip$6H5=/4M-7-ZiFUYqQVQiA_=i;EtBfX!L`Vkd_N>k8,A4WX X=5>r?EYoRq[Z$g9lT0UdK2i[JE'BrHHGep, X0%+%;`:B@G&O_p-k/Cfl2[hg!>DbZq\?>K2l,7f;<5903[OVhsT7('fQE>D/P`8)lE1DpUf`3n%l?B Xmd-r4[>hinD3shWf_5%Y!"K']'AVMl7X+nJrW7gYn_kllX%4UEnWd?AC[+k/a#sq'e+'Ce0CY9S:.6 X!eOX3k;+\AH[!Z)fsJ0f0&<"1sSpi>++V0J%,bAQtBPn3Li3J-NXf)/Gl X^A.W&=&hBWMB?*mSj'ksWU+2aS)N(4JBf'(+@iB/+/_=Pkk&W.2+9O2LJ*3"Z%N'c4JUc#*Jr1-mGS XE4qdkII/4"P>fh'@Y%+BgM`+S(,:+:nZS0Eat/"NEc2ifZ(PEAlc!&g3m X0dNUA$PD^$O25^HmI3L8IJjYdo>]L XPH:j#1Gc>ZN*TBsT^uiAR,:2ss3q*-jJgZSrNV2c^\RK@<,A,?Ti@30#3g.*4ME&-Q)8"[sO;dbt>= XE?2[R=#n'02.O"A\GQ[Y%;$##- XK+8&@QOV1qlt2-;[=6pCtZ1,VEVPs&QP;t!ae;3bmt"]Rf'82*k>89Io+7M8q54'e[_?r`S:"DURU< X.nscg]fr:24&Ij!kQmK3,h?u`!8;VQT-7U=Z-@OAkU_I9Vga;&!`NL7o#PYY`\6Z[5I#55Oq XSo'o4+7jS@T;b#mEu5Th?tf6f!r#Yp1pjW@IG;8Fj'>V\V\B#tosD7G)bqj9YmREh8Yo*9tY;b2]'4 X+eK'5T*eboji)7b79S3[Q0^?#04:HqJtVVDT^s$_NKctI[;re\9-p5M.+"P6d%MGjU;#-H>stBtFJ1 X.pU)V6G^8+CJMF/jsUSQtFCBUE:,bli(USNR<-9@qc.\SNLPqf:0,"`J;W^o]2&/33^l1:\g,of,F6 XH2DoIo^]:eWd/WR3C(E=Vd2W=d(dI"@hOM2tqB2TL(eVVPi*fD,h-c'j#HV=*IYu0Xb&2V#Wa`=D&m XH[HRmqF_#e*DOdJGk_34AUg#Cc>J:i1_0#t"[=W=)>\&@ib(W@HpfmqM?"H9,Bjb6!jT`\IWSRebio XMlTV/Q8&W*>$hYbl#KVQ(7rP&hah1))25-JIsi&(YU7CLN.a9;RAp*ZqSZM-T2+*5us)pJKG^ X_/!Bs!TJ:,q0*fo\aRY3i^l24]0!=1qp!&$u3P_CV#PHCL$\?D0/+ot5u3d<5X?%V71,+Vd5l>? X7]]5u\5!6>$eSsP;e8nf#'ZtV9OM:hZnar^\6D3YddgFi.l$?-"'qQ>&\GP'_n3Vj*%-%l_TO@HRqO XM6NMXh.E\I^B.lgCi!*=AdV+WMQCVABT\\u+n#uF]q'KmtAV_-6sl75<$MaNEV9cE)5Y_iL'$Z6>&* X)CppcseR"1Bmsp+"jK\.)q#bE!4D;"DgFoqVhXrH:d0Q"aT#c!oks3!XJX$MmFV!\l+IT_4=m'SQ`A X-Ej1f-M_eQk\C'''(X\R?20!j@=Ye?IIte4.0EYe2WC/TJ1QV]ON!ErK"(jf06raFIn/-;L&i].iKo?7SdR"b'f]!1bd'LI)qq=aY^9EI9?b3i,CGf"uS(=[bR3Z:]o]$_dlR XG37+YW49IK<"+bj;1@`Oq*!=8e'1oOK2F%JnSBNm!#0^o)2NS#u*6hn3`7QUF)$/%99GH9@#1cLQ@UKBnN<`stb->ae@W9t9N7M1'!u;?o30;3+rRe-?` XF%E>fPCYkk0l7C"uq^kc"HK*!RPa`N5BEF,\L\N5T4B&rA3\1n`B9][1Hm_DA8M`I'LG XXM[U,bK#C]6@:UKN>LW^`-:1h7k>;ecH3'pd[?'E=\R!U*Qj'q`bgjjWU.W@4;9/+bNYPV0T=)oI)X X&eaKqtc1/Qaim*os%aBNK!1-cOH4LdS8B'HtU7(h/P/C,O]4(#\Hb6Qu`5Q`B>cS?'TnI,Np%)p$[i X#M1/JA&p1E8fB,bTKb37P#;]*Tl8?_g#%sfGrCqmDV"L560Qg/0<7bh8D1Tj$]TkcQ!$F%`i^Fbqa7 XbJ?@.0nB3[t`C1fe`EXi6@F-af__8:U4A=.;:=[WP`adi_7K_U`IF;S!g&PI0"-1o4cIHB_c1W\(52 X=V*XckWIdna<"ApiQ?NQb)Pe4>Q$V**jt?./A8aK]"+[(O[kXOWYS"t[L2,E4L?mDWc+fkSgO)'Qpd XI+-h4'MGOH4q.U"*TRG^j>_5F!`%B_NnE:7`lL=*Q#,T'S_0t_#$+J'QX.RkZ/rk$ghK%,Q#=OES`` XQaiaY4UD`n3(`o3`lk&5Y+9R5B-Xq`[qj0S+9ltk^E*6VV^fj=$t)r97JNSe?`ho%IqD4Ju#Xj>_'& XOP9k2\"W3XM`SjkuJJY>%&q05Z/t1"`PU>f/knMU+K:;.V[fjf!m:5+\Rap),L][cJg_J!`Tg(d6.p X?@p9-pPCldF+!%kC!==W"6Nont+@^=M\oObN!uqTA),Z5_Y:'Xt+u_&M/H5;82*V6cW#An(>'^-2Wl XQ\?bq"_2K&c^ID]^`2TIjdVpo#or:bO^Oa>=k6/e9?g=[QH66>A0pMl2G^Dm9&OOtRslNHS]jjg[+d X_CJQ+5.]C!:+2ZUE4ohuN)3=Ud1VHZr/.\9KBPfp_S8'LF?'!7*BV^Slgc[e+e9uR4k/Kf\::Y^6[u X+,qnNe!`H(Zds,(T!XAm+BqQg*;?SY&X#PM($aZj%;2?[\i#NGje7_gZuOFXM,`2`A2YOdWNi.5QL0 XZeA?H1:NPP<,b^>YX+c@fQc1o!0L)qq%[],kU`s`(rb^:FT,Q?6Dd7^H:X'0j\6=E53WVCBb'A[u[Q XkAq487b@W?Z5(U\9lt9FSb%<69rNquF^8d?U_gWfrSM%u0g6qhcfYf665[5D?]a1Q#7?j.e\'SL&/6".6l6jZ[onHu5s"Do@PZ3S6]DI>0bZ?\I_>H;KC#e%Ef XS%b`B.s)@#Lt[';$*8JSF2WsL[<8R&QE7Xo]BNP20<6)Fl1EVd[kB84nEN5B%@\^+o2b*),3;7KM X..a)"-J7'!Z@CNkY[A=jmUDO;A9KuN]"1EL!CBb&F5]T+U.F>@*dB[T8ZqNau1\#fMlR4a)(6oL7Ot Xm\1;%n-#(,S:)9hQ:d#-c"+1Y7$/gA=HU8[^/>ss.ml3$R0T= X#T"s-;?`Odp=$[V=%!\WC4B:&\ZePjit0B*Ten3R@C+9Ef""!XrO>XC<43!-?Uq@OPdPc8/rBO#HX) X'n\gGFsE)!fnK\*k8W5,#XaP0uV-cgIMC,TdqK5!X`d'AG?fA!Yu6*h@.HoE!lCGAT;=+#$C'/`W"!klY(f`\tkEDQlF"#";ps-[%qp=QYsUPAsr9?@>TO. Xe)>R&Y4HL`PK+>C/\cTEEt@XFb"%Qukk>2\j>A#P>@*+\Dh+N_QPg,V]tIB=!VMZYT*lR$)hQJJ0nL(G]D$eCV'\J[C!UZ Xq];^9WK:,&-PA)"?l5Y#quGXiaH:@3EG0lZU2JDg]CMq!j9@SGXMTX:d#-s0aVeAJ[5R)87W(#!k%' X>>C/[U\L[t08cnOCTN;>1QiJ2;[3q1r.3V:bnW(e4L']P?4V^-L+td%;+-@-;K=<=>0R0Q-3kR3Qgd X,4u7k??K#Bi?6H_;KP&-PA)"FWNg/T<3P(a#!AA$9QNDZ^k&n/-AAJAkMO]Z;\n#VH-K&?BeO3lW\L X'3pV">]ERF#6QVl[JuXu>kZgU-)64u,"p#])3:IA^mM-CE/5OoJQmIfI\6eu8Z[MT)OPV;*B+_Q@L) XP2Sg$E$5QEFu2N,4'#M`0oBdPQ>:qGb3'aCo_g`Z_E!&.lT"s-;?i'IL++Yt1L[G2s(QQn6'a=c4:Rg"Aq48%7U`d<\@&.QJ"mhe>>.7]>6DtA0E!Iu<##-$ XN,V]tIB=!VMZYNFUfp@(BJJ1%@&gf>.eCV'\J[C!UZq];^9Zq0q6inT04UM`T$#h#AT.l+>;@CFL'cdh>C/\>P7k91#'\G"-.;p.QiQ0s;pb\#ihE:>&K*;WGcN"mK9uG- X_^ffD*Rlrk_uaFj?jH>P!k2'F&2\X2%m%?Y#M_UNK1@IHL'Mle!dgR_8.YnkYQTA>0.h,n&JuUSWFN X,F>]0]^,k)XpT7Fm\4hSifmg(NH8._hA<]\5NW=rNu!F0V@#6t>aB=7c->$UdRZ6c9$"Yr#nFqk4d*8D\ X=,QKN-TEZH.#N.oMO!-;#\@(*9;O8U_`5jRc8-4jG.jlG@$=Fen%W:m&k6<=]=>8F*.O_#$! XU(flTSc84#[If`=JgtUY.1L&l`-cQEYZml.M)Ja+(NOmhOqpVTg)S\*fXMt%?a!tcEMJ^ XNDVBk-%LtQg`)I_)uZ21N&Ma;)3f68@AXg%#kf:R\\?`pr3Xtdhs*k2FCWe7c8n?Hb]HY6k1^P&.-Z(]VnulOHJ5X[eYdaEZ=dPM,cd5b3`q0;ZE2$ XN!qD;IEP4*]ZqNcl(BJnB)gj-/Z^=XR XLU>Rk16][U]acB,b>(\JPpq[XTMPDu1[71UhLbVg$ItSm]1Jg1XJNSAo"3 XRZ#1#rT`X?n=RfLUC/&.ReAam@NCV3n+^$7,^fin[8gV'NW^#u+S/(;#h)d_fV^>5'ge]Y\p>Is;3X XR_:Z+@*\YoQ'b3X_btkWY/:_Kei_Q"p3!Q"<8HeHkcpg^q8"0mQY+lbV'W7_=)E\:b2BmT;jWC!$A< X8*S-c,bU(u2qq%[]/?Bgg7oV3:<&BQX35!`DmDDuZjfSmiQc,W9`a@K%H6B'!(c,arX"-Ms2Ps"/rr5o$-a^-O@0.tTCXNL#1b)K-=lCH*) X7d7Xg_dWZ!GB&"!IEZoLbY.fNsD8Zg1h%0J8/g1FtDT?F6d93Qu)gl]4iT3>l/cg36CcSEc.kIq` X6L!b5YToqNQau-a#`#*:T`bVc'7j*eVPm6=hW*cmF>TM`FBA*!Y4[*SCY