[comp.sys.atari.8bit] A friendlier, fixed UUDECODE 0.6F

ssegan@dasys1.UUCP (02/22/87)

Okay. A while ago I posted a supposedly 'user-friendly' version of UUDECODE.
Wrong! It had some very unfriendly bugs. So below is the fixed,triple-tested
version of UUDECODE 0.6F that has _also_ been renumbered so that the lines
count by 10! Sheesh!
On a different note, what do the 'protection mode' and 'outbytes/line'
parameters do in UUENCODE.COM? I know nothing about UNIX and would like to
find out how to use these.

-------------Below lies the true UUDECODE 0.6F!---------------------------

begin 700 uudecode.bas
M     7\!@ %@ B@2/A+-555$04323T)51D1)S4]"54:D0EE41=-)0E5&I$]&a
M24Q%I$E&24Q%I$&D555$14-/1$6D555%3D-/1$6D555%043224)5QD]"5<95a
M541$2<W)S%!/2T%$TDU!6$%$TE!21U1/T-A,3[%(2;%,3[)(2;).15+24%!%a
M2ZA:6%79              $          @       ( #          0     a
M  " !0       ( &        @ <       " "        ( )        @ H a
M        "P         ,          T         #@         /        a
M !          $0         2         !,         %          5    a
M     !8         %P         8         !D       ! &@         ;a
M          !"0@!-;V1I9FEE9"!F;W(@*$8I<FEE;F1L:6YE<W,@8GD@4V%Sa
M8VAA(%-E9V%N(&]R('-S96=A;B%D87-Y<S&;"@ _#0H.0'      %#\ :G5Ma
M<"!A<F]U;F0@8W)I=&EC86P@<W1U9F8@=&\@<W1A<G0@=7 @<')O9W)A;2Z;a
M%  ,##: +3\Z@2P6'@ 7%P> (@X        ;#D$#@    !8H #()!X A@ALHa
M* \:1&EM96YS:6]N(&5R<F]R(&%T(&QI;F4@,C 4,@H.0000    %C( &1$@a
M' Y  @     5@Q44&3:$+80E@!8\ !H0 AP.0 $     $H44&@H.0"      a
M%D8 2DH 5&AI<R!T:&EN9R!I<R!A(&YI9VAT;6%R92!T;R!R97!R;V=R86TAa
M($-A;B=T(&%N>6]N92!N=6UB97(@8GD@,3 G<S^;4  @( !(02$@4T\@22!.a
M54U"15)%1"!"62 Q,"=3(9M: )<-*PY  @     4'Q\.00<0    $@X     a
M   4,1\.00=2    $@Y  0     4/"@<#D &     !1:*!P.0 8     %0\0a
M(" @=75D96-O9&4@L*ZVQA1X*!P.0 8     %0\0("!"62!*+B!304Y'4U1%a
M4A27*!P.0 8     %0\1(" @-C$W+3(S-2TX-S4S(" 69 !$%1\.0 8     a
M$@Y  0     41 !&:7@@9F]R(&EM<')O=F5D(]-3DE62457+S@P,"!C;VUPa
M871I8FEL:71Y+IMN #P\%(,[#D"      "P2A3L.0(      +!*&.PY %@  a
M   L$H<[#D 6     "P2B#L.0 $     +!9X !L;%(D[#D$$     "P2BCL.a
M000     +!:" "<,-H$M0SJ)+!05-HLM0SJ*+!0>-HPM0SJ%+!0G-HTM0SJ#a
M+!:, !L/-H(M#D"      !0;-HXM#D$$     !:6 !@8 $-/34U!3D0@1$E3a
M4$%40TA%4IN@ $D>* \5(%=H870@9FEL92!T;R!$96-O9&4Z%10K AP.0!8 a
M    $H<4/"@/"R!/=71P=70@=&\Z%11) AP.0!8     $H86J@!B'P=".H<La
M(@X        I0CJ&+"(.        &SXH#QK](" @26YV86QI9"!3<&5C:69Ia
M8V%T:6]N(112"(\M#D !     !D.00$     %%@H#P%]%&(*#D$!8    !:Ta
M %4S!X<W#D !     #P.0 $     +# / 40IAC<.0 $     / Y  0     La
M, \!1!M5* \=_2 @($UU<W0@57-E($1I<VL@1')I=F4@4W!E8R$6O@ -#0H.a
M00(0    %L@ :24R#D !     !(.0(4     $@Y $@     2#D 5     !0Ya
M"(\M#D !     !D.0&      %#T)CQ1?,@Y  0     2#@       !(.    a
M    $@X        4:0H.00%@    %M( -!(H' Y !@     5#P%]%#0H' Y a
M!@     5#Q0@S,_!Q,G.QZ#3U<+2S]74R<[%H1;< #$-(PY!!"     4$S:1a
M+8$4(S:2+9$ECB8.0 $     %#$VDRV!)@Y  0     6Y@ K!R*4%!,'E"(.a
M00)5    &Q<BE!0K!Y0B#D$"50   !L.00)0    %O  5A H/CH.00$E    a
M+!0Q* \<(" @(" @(" @3F]T(%5514Y#3T1%9"!F:6QE(11%")LM#D !    a
M !D.00$     %$D)FQ13*PX        45A46^@ [#2*5$I82EQ*8%#,VA"V8a
M) Y! E8    EER8KEB0.00)6    )94L)0Y  0     4.S:3+9,EA!8$ 683a
M!X0@#@       "F$(8X;("@^.@Y! 24    L%$$H#QP@(" @(" @($EM<')Oa
M<&5R($)Y=&4@0V]U;G0A%%4(FRT.0 $     &0Y! 0     460F;%&,K#@  a
M     !1F%18. 3P1"(\M#D !     !F$%!4BE!0;'Y$2E!0I-I$MD24.0 $ a
M    %"\'D2&2&SPH/CH.00$E    +!88 4L)!Y$ADALF* \8(" @(" @("!3a
M=')I;F<@3W9E<F9L;W<A%#H(FRT.0 $     &0Y! 0     4/@F;%$@K#@  a
M     !1+%18B 4$'"8\4$0T.00,     %!LBE1*6$I<2F!1!-H0M#D$"5@  a
M "28)9<F*PY! E8    DEB65+"4.0 $     %BP!*0LVDRV3)804*0>5'@Y!a
M B0    IEAX.0 (     &PY! G    6-@$Z&2@<#D &     !4^.@Y! 24 a
M   L%#HH' Y !@     5#Q-35$%25$E.1R!43R!$14-/1$4A%D !81PVA3<.a
M0 $     / Y  0     L+@\!(!0I-H M/SJ!/(P\C2P4-0> '@X        ;a
M7B@/(F5R<F]R(&EN(&EN:71I86QI>FEN9R!5541%0T]$12$@33T5@!1A*!9*a
M 2L.$1P.0 $     %"L7' Y  0     2#D $     !(.        $H<65 $Ka
M#A$<#D "     !0K%QP.0 (     $@Y "      2#@       !*&%EX!'! "a
M' Y  0     2A10<-H0M#@       !9H 4<-#0Y! Y     4*@>%-PY  0  a
M   \#D %     "PP#P5B96=I;AL]* \.[N^@XN7GZ>Z@[.GNY:$41PH.0"  a
M    %G(!2A H' Y !@     5A10:"@Y 8      42@!0<FEN="!B96=I;B!La
M:6YE(&9O<B!D;V-U;65N=&%T:6]N+"!N;W)M86QL>2Z;? %"$ (<#D !    a
M !*%%"L'A3<.0 $     / Y  P     L- \#96YD&S@@' Y !@     5A11"a
M"@Y!!!     6A@% $C:9+48Z#D$!E0   "P4'@>9(@Y! 38    ;-B /$VUIa
M<W-I;F<@)V5N9"<@;&EN92$40 H.0000    %I !-!DH' Y !@     5/CH.a
M00$E    +!0T*!P.0 8     %0\+97)R;W(@8V]D93T5F1:: 6@6*!P.0 8 a
M    %0\%1$].12$4(1$<#D !     !0L$1P.0 (     %$,H' Y !@     5a
MA!4/!R!"651%4RX45PB;+0Y  0     9#D$%     !1;"9L492L.        a
M%&@5%J0!%14!,C4U+#(U-2PX+#8L,RPWFZX!&QL!,3 T+#(T,"PV-RPQ-S La
M-38L,C,SF[@!&AH!,BPR-# L,30L,3 T+#$P-"PR,#*;P@$='0$R,#@L,C4Qa
M+#$V.2PR-30L,3,S+#(Q,IO, 1P< 3$V.2PR-34L,3,S+#(Q,RPY-BPQ,#2;a
MU@$7%P$Q-#$L,2PV+#$P-"PQ-#$L,)O@ 1<7 38L,3 T+#$T,2PS+#8L,3 Ta
MF^H!%Q<!,30Q+#(L-BPQ-C4L-BPR-#";] $='0$Q,# L,38U+#$S-"PQ,S,La
M,C S+#$V-9O^ 1D9 3$S-2PQ,S,L,C T+#$W,RPR+#:;" (<' $U-BPR,CDLa
M,30P+#$S,RPR,#@L,3<SFQ("&1D!,RPV+#(R.2PQ-#$L,3,S+#(P.9L< AH:a
M 3$V,BPQ,C@L,C X+#(L,C0P+#<RFR8"&QL!,38P+# L,3<W+#(P,RPR,#$La
M,3(YFS "&AH!,C X+#0R+#$V,"PR+#$W-RPR,#s6;.@(;&P$U-BPR,CDL,C Xa
M+#(P."PS,RPR,#";1 (<' $Q-S<L,C S+#(R.2PR,#DL,C X+#(VFTX"&1D!a
M,38U+#(P,RPQ-#$L-BPV+#$V-9M8 A<7 3(P-"PQ-#$L-RPV+#$V,"PVFV("a
M&1D!,3<W+#(P,RPQ-#$L-"PV+#(P,)ML A@8 3$W-RPR,#,L,30Q+#4L-BPRa
M-)MV AL; 3$T-"PR,BPR-"PQ-C4L,C S+#$P-9N  AD9 3@L,3,S+#(P,RPQa
M-#0L,BPR,S";B@(='0$R,#0L,C R+#(P."PQ.3(L,38Y+#(U-9N4 AP< 3$Sa
M,RPR,3(L,3,S+#(Q,RPY-BPR,S2;G@(9&0$Q-S,L,"PV+#$S,RPR,#0L,3<Sa
MFZ@"%Q<!,2PV+#$S,RPR,#4L,38P+#";L@(<' $Q,S(L,C$S+#$W-RPR,#0La
M-38L,C,SF[P"&QL!,S(L,3,S+#(Q,BPR,#@L,C0L,38UF\8"%A8!-BPR-# La
M,3DL,3<S+#8L-IO0 AD9 3$S,RPR,#@L,3<S+#<L-BPQ,S.;V@(9&0$R,#DLa
M,38P+#0L,38Y+# L,30UF^0"'!P!,C X+#(P,"PQ-#4L,C X+#DV+#$V-9ONa
M A86 38L,C0P+#0S+#$W,RPT+#:;^ (8& $U-BPR,CDL,C$R+#$W,RPU+#:;a
M @,:&@$R,CDL,C$S+#$V+#DL,38Y+#(U-9L, QL; 3$S,RPR,3(L,3,S+#(Qa
M,RPS,BPU-)L6 QD9 3$X-2PQ-S,L-BPV+#$S,RPR,#B;( ,9&0$Q-S,L-RPVa
M+#$S,RPR,#DL,38YFRH#&1D!,"PQ-C L-2PQ-#4L,C X+#$S-ILT QT= 3$Va
M-2PR,3(L,30U+#(P."PR,S L,C TFSX#&1D!,C X+#(L,C,P+#(P-2PQ-S,La
M,IM( Q<7 38L,3,S+#(P-BPQ-S,L,RPVFU(#%Q<!-"PW+#$P,BPW+#$S,RPRa
M,#>;7 ,;&P$Q-C8L,C$R+#$V,"PQ+#$W-RPR,#2;9@,9&0$U-BPR,S,L,S(La
M,3,S+#(P,RPVFW #&QL!,C S+#8L,C S+#$S-BPQ-S<L,C TFWH#&!@!-38La
M,C,S+#,R+#8L,C S+#0RFX0#&AH!-BPR,#,L-#(L,30U+#(P-BPR,#*;C@,:a
M&@$R-# L-C0L,38Y+# L,3,S+#(P.)N8 QH: 3$V,"PR+#$W-RPR,#0L-38La
M,C,SFZ(#&AH!,S(L-S0L,3 R+#(P."PW-"PQ,#*;K ,;&P$R,#@L-2PR,#,La
M,3,V+#$T-2PR,#:;M@,:&@$R,#(L,C0P+#,Y+#$V,"PS+#$W-YO  QD93(Pa
M-"PU-BPR,S,L,S(L-2PR,#B;R@,<' $Q,S8L,30U+#(P-BPR,#(L,C0P+#(Ta
MF]0#&AH!,C0L,38U+#(P-"PQ,#4L-"PQ,S.;W@,:&@$R,#0L,30T+#(L,C,Pa
M+#(P-2PR-)OH QL; 3$V-2PR,#8L,3 U+#,L,3,S+#(P-IOR QT= 3$T-"PQa
M-C8L,C,P+#(P-RPQ-S8L,38RF_P#%A8!.38L,C(T+#(L,C(U+#(L,)L @!86a
2&0\.1#I5541%0T]$12Y"05,6a
end   
-- 
Sascha Segan                     {allegra,philabs,cmcl2}!phri\
Big Electric Cat Public Unix     {bellcore,harpo,cmcl2}!cucard!dasys1!ssegan
New York, NY, USA                                {philabs}!tg/

bammi@cwruecmp.UUCP (02/25/87)

the protection mode in a uuencoded file is the read write protection
mode for Unix uudecode to use for the uudecoded file... (i.e. it sets
whether you, your group, and others (everybody else) on a Unix system
can read/write/xecute the file).  It is included in uuencode.com mainly
for compatibility.  (The default that I use, 700, means rwx permission
for the file owner, no permission for anybody else... I didn't mean to
be anti-social, but this seemed to be the safest default to use.
If you uudecode such a file on a unix system and want to change its
protection mode, see 'man chmod' which tells you how to do it.)

the 'outbytes/line' parameter is in there because it was not clear to
me when I wrote uuencode how flexible the length of a uuencoded line
is... from what i could tell (and john sanger sent to me) it was typically
45 bytes/line encoded to produce 60 characters plus the leading 'M'
(typically) and the trailing 'a' (to protect trailing spaces)... the
way i wrote uuencode it seemed that the sensible thing to do was to limit
the 'outbytes/line' to be a multiple of 3, so that groups of 3 bytes
encoded into 4 characters were always on a single line (i.e., didn't
get split across line boundaries).  i don't know if standard uuencode is
limited this way, but i did find a good use for leaving this
parameter in... (particularly while debugging it)... by using an
'outbytes/line' smaller than 45 (but still a multiple of 3) you can create
uuencoded files that have less than 40 characters on a line, and hence you
can display them on your 40 column screen without the lines annoyingly
breaking over at the end of the screen (e.g., outbytes = 27 gives 36 + 2
= 38 characters/uuencoded line...)  this makes it more aesthetic if you
have some need to edit the uuencode (.uue) file on your 8-bit... which
brings me to:

the most recent version of uuencode.com that i posted was 2/6/87.  it
had all of the fixes that i have know about (particularly related to 
handling the last line, and putting a blank line before the 'end' line).
the only fix i have been made aware of since then is that there are
three trailing spaces on the 'end   ' line that unix uudecode complains
about... i don't know if this leads to a misdecoded file on unix systems,
or not, but i am pretty sure that john sanger's uudecode.bas (and my
uudecode.com) handle this ok... (come on, unix uudecode!  i put the 
blanks in either by accident, or to distinctly mark 'end'...)  i have
fixed this, but haven't posted the fixed version, because 1) maybe it
really isn't necessary (you can use an editor to remove those trailing
blanks before uudecoding, if you need to), and 2) i am pretty sure that
john and my uudecode programs handle this case ok.

if this is more than a minor hassle to you, send me mail
(DON'T REPLY TO THIS MESSAGE!!!  send me mail at the address below, since
I am using a friend's account right now.), and if there is enough
interest, I will post the most recent version of uuencode.com.

I will try to remember to post vt10^2 and the docs soon since there is
interest.
	bye :-)

			brad banko
			cleveburg, ohio
			...!decvax!cwruecmp!ncoast!btb

-- 
usenet: {decvax|cbatt|cbosgd}!cwruecmp!bammi		jwahar r. bammi
csnet:       bammi@case
arpa:        bammi%case@csnet-relay
compuServe:  71515,155