[comp.binaries.ibm.pc] UUDECODE -- getting started

nagy@bnl.ARPA (John Nagy) (03/01/88)

Enclosed are two files I once got from site simtel20 and one from netnews.
The first is a minimal UUDECODE.BAS (slow) which can be used to decode
the second which is UUDECODE.EXE uuencoded.  The process will not work
if a path segment somewhere has stripped the uuencoded lines of
trailing blanks.  (The number of characters in a line not counting the
initial character and newline should be 4/3*(asc(initial_char)-asc(' ')).
E.g., for most lines the initial character is M meaning that 45 (77-32)
bytes have been encoded as 60 characters.)  If you think stripping
has occured, try the third program, UUFIXER.C (which works by i/o
redirection).  I have not tried it; haven't even compiled it.

For the first step use BASIC UUDECODE.  The user is prompted for
input and output file names (thus the filename stored internally is
ignored).  The command to use the second is just UUDECODE in_file.

If you can do ftp's on arpanet, you should look at
[simtel20.arpa]pd1:<msdos.starter> which is a collection of
useful compression/archiving/make_printable programs.
-------------- start of UUDECODE.BAS --------------------
1000 KEY OFF
1001 DEFINT A-Z
1010 REM Trap error opening input file
1020 ON ERROR GOTO 1600
1030 CLS
1040 LOCATE 5,11
1050 PRINT STRING$(40," ")
1060 LOCATE 5,11
1070 INPUT "Enter name of input file: ", INFILE$
1080 OPEN INFILE$ FOR INPUT AS #1
1090 LOCATE 8,10
1100 PRINT STRING$(40," ")
1110 REM Trap error opening output file
1120 ON ERROR GOTO 1640
1130 LOCATE 8,10
1140 INPUT "Enter name of output file: ", OUTFILE$
1150 OPEN "R", #2,OUTFILE$, 1
1160 FIELD #2, 1 AS N$
1170 REM Trap error at end of file
1180 ON ERROR GOTO 1680
1190 REM Search for header line
1200 LINE INPUT #1,A$
1210 IF LEFT$(A$,5) <>"begin" THEN 1200
1220 LOCATE 11,10
1230 PRINT "Header = ";A$
1240 SP = ASC(" ")
1250 DIM BUF(100)
1260 RECNO# = 1
1270 REM Main loop
1280 LINE INPUT #1, A$
1290 P = 0
1300 BYTES = ASC(LEFT$(A$,1)) - SP
1310 IF BYTES = 64 THEN BYTES = 0
1320 IF BYTES = 0 THEN 1560
1330 COUNT% = INT(BYTES/3+.9): COUNT%=COUNT%*4
1340 FOR I = 2 TO COUNT% STEP 4
1350    X1 = ASC(MID$(A$,I,I)) - SP
1360    IF X1 = 64 THEN X1 = 0
1370    X2 = ASC(MID$(A$,I+1,I+1)) - SP
1380    IF X2 = 64 THEN X2 = 0
1390    X3 = ASC(MID$(A$,I+2,I+2)) - SP
1400    IF X3 = 64 THEN X3 = 0
1410    X4 = ASC(MID$(A$,I+3,I+3)) - SP
1420    IF X4 = 64 THEN X4 = 0
1440    IF P<BYTES THEN P = P + 1: BUF(P) = (X2\16) + (X1*4)
1460    IF P<BYTES THEN P = P + 1: BUF(P) = (X3\4) + ((X2 MOD 16) * 16)
1480    IF P<BYTES THEN P = P + 1: BUF(P) = X4 + ((X3 MOD 4) * 64)
1490 NEXT I
1500 FOR I = 1 TO P
1510   LSET N$ = CHR$(BUF(I))
1520   PUT #2, RECNO#
1530   RECNO# = RECNO# + 1
1540 NEXT I
1550 GOTO 1280
1560 END
1570 REM
1580 REM Error trapping routines
1590 REM
1600 LOCATE 22,20
1610 PRINT "Can't open input file"
1620 GOSUB 1740
1630 RESUME 1020
1640 LOCATE 22,20
1650 PRINT "Can't open output file"
1660 GOSUB 1740
1670 RESUME 1090
1680 LOCATE 22,20
1690 PRINT "Header line not found"
1700 GOSUB 1740
1710 LOCATE 24,1
1720 END
1740 FOR I = 1 TO 5000: NEXT I
1750 LOCATE 22,20
1760 PRINT STRING$(30," ")
1770 RETURN
-------------- start of uuencoded UUDECODE.EXE --------------
begin 666 uudecode.exe
M35KL !0  P @ *, __^1 @ &>_"C!0  '@    $ P 'I ;H%   3%0      
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                            58OLN 8 Z% %5HM>
M!(H'F"T@ "4_ -'@T>"*5P& ZB J]H'B/P"Q!-/J"]")5OZ*1P&8+2  )3\ 
MT^"*3P* Z2 J[8'A/P#1Z='I"\B)3OR*1P.8+2  )3\ B\B*1P*8+2  )3\ 
MB]&Q!M/@"\*)1OJ#?@@!?":+7@;_3P)X$(I&_HM>!HLW_P>(!"KDZP[_=@:*
M1OZ84.B4 X/$!(-^" )\)HM>!O]/ G@0BD;\BUX&BS?_!X@$*N3K#O]V!HI&
M_)A0Z&@#@\0$@WX( WPFBUX&_T\">!"*1OJ+7@:+-_\'B 0JY.L._W8&BD;Z
MF%#H/ .#Q 1>B^5=PU6+[+@$ .A6!%;'1OP  .LYBUX$_T\"> V+7@2+-_\'
MB@0JY.L)_W8$Z"8"@\0"B4;^/?__=06+1OSK%HM>_(MV!HI&_H@ _T;\BT8(
M.4;\?+]>B^5=PU6+[+A4 .C_ _]V!+A0 %"-1JQ0Z.\%@\0&"\!U&+C> %"X
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
MQ@9O!0"+3@;H90")3@:+5@0R[;0\S2%R5(O8BU8$N !#S2'WP0$ =00RR>L"
ML1#W1@8 0'4.]T8& (!U"O8&<P6 =0. R8 *#F\%N !$S2%S!;@% .L6@,D!
MB\/VPH!T X#)0(B/9 * IV0"_>F/[:%: O?0(\&!X0# J(!U X#) <.X @#I
M%>@R[>,&T>#1TN+ZPU6+[(M>!(L'BU<"BTX&Z.3_BUX$B0>)5P*+Y5W"!   
M                     $,@3&EB<F%R>2 M("A#*4-O<'ER:6=H="!-:6-R
M;W-O9G0@0V]R<" Q.3@V'P! *",I=75D96-O9&4N8R @-2XQ("A"97)K96QE
M>2D@-R\R+S@S %-H;W)T(&9I;&4* %5S86=E.B!U=61E8V]D92!;:6YF:6QE
M70H 6T1!3B]697(@,2XP85T +3\ <@!.;R!B96=I;B!L:6YE"@!B96=I;B  
M8F5G:6X@)6\@)7, =V( 96YD"@!.;R!E;F0@;&EN90H  + (  "P" $     
M     @$        & @       (0#         @0                     
M                                                            
M                                                            
M                   !   "                                    
M                                                            
M                                                          !F
M ; +        Y@$                                             
M                                                        [@$[
M0U]&24Q%7TE.1D\                               "!@8$! 0      
M                                   Z(  *       6 @(8#0D,# P'
M"/___Q(-$@+_                     $5R<F]R(#   $YO('-U8V@@9FEL
M92!O<B!D:7)E8W1O<GD      $%R9R!L:7-T('1O;R!L;VYG $5X96,@9F]R
M;6%T(&5R<F]R $)A9"!F:6QE(&YU;6)E<@   $YO="!E;F]U9V@@8V]R90!0
M97)M:7-S:6]N(&1E;FEE9     !&:6QE(&5X:7-T<P!#<F]S<RUD979I8V4@
M;&EN:P    !);G9A;&ED(&%R9W5M96YT  !4;V\@;6%N>2!O<&5N(&9I;&5S
M     $YO('-P86-E(&QE9G0@;VX@9&5V:6-E      !-871H(&%R9W5M96YT
M %)E<W5L="!T;V\@;&%R9V4  %)E<V]U<F-E(&1E861L;V-K('=O=6QD(&]C
M8W5R %5N:VYO=VX@97)R;W( M *\ KT"UP+8 MD"V@+; NT"_P(/ Q #$0,A
M S,#- ,U S8#0@-4 U4#5@-7 V@#:0-] WX#?P.  Y@#F0.: YL#G .J [L#
MO /: R4 #0H         (    " @(" @(" @("@H*"@H(" @(" @(" @(" @
M(" @(" @2! 0$! 0$! 0$! 0$! 0$(2$A(2$A(2$A(00$! 0$! 0@8&!@8&!
M 0$! 0$! 0$! 0$! 0$! 0$! 0$0$! 0$!""@H*"@H(" @(" @(" @(" @("
M @(" @(" A 0$! @                                            
M                                                            
M                                                            
M                                                            
M                              !M&CP\3DU31SX^ 0 -"F5R<F]R(#(P
M,#$Z($YU;&P@<&]I;G1E<B!A<W-I9VYM96YT#0H    -"F5R<F]R(#(P,# Z
M(%-T86-K(&]V97)F;&]W#0H  P -"F5R<F]R(#(P,#,Z($EN=&5G97(@9&EV
M:61E(&)Y(# -"@ $  T*97)R;W(@,C P-#H@1$]3(#(N,"!O<B!L871E<B!R
M97%U:7)E9 T*)  )  T*97)R;W(@,C P.3H@3F]T(&5N;W5G:"!S<&%C92!F
M;W(@96YV:7)O;FUE;G0-"@ "  T*97)R;W(@,C P,CH@1FQO871I;F<@<&]I
3;G0@;F]T(&QO861E9 T* /___PT*
 
end
-------------- start of UUFIXER.C --------------------
From sbcs!philabs!prls!pyramid!oliveb!ames!think!husc6!uwvax!oddjob!gargoyle!ihnp4!cbatt!cwruecmp!hal!ncoast!allbery Sun May 17 19:24:31 1987
Relay-Version: version B 2.10.2 9/18/84; site bnl.UUCP
Path: bnl!sbcs!philabs!prls!pyramid!oliveb!ames!think!husc6!uwvax!oddjob!gargoyle!ihnp4!cbatt!cwruecmp!hal!ncoast!allbery
From: jvc@mirror.COM (Jim Champeaux)
Newsgroups: comp.sources.misc
Subject: Uudecode fixer
Message-ID: <2518@ncoast.UUCP>
Date: 17 May 87 23:24:31 GMT
Date-Received: 20 May 87 09:18:26 GMT
Sender: allbery@ncoast.UUCP
Reply-To: jvc@mirror.COM (Jim Champeaux)
Lines: 64
Approved: allbery@ncoast.UUCP

It seems that some uuencoded postings are being stripped of trailing
spaces.  This program was posted in comp.sys.ibm.pc  but apparently most
people missed it.  I've used it on a couple of files that were altered
and it seems to work.
Please consider posting it here.

-------------------------------------------------------------------------
Jim Champeaux	jvc@mirror.TMC.COM
		{mit-eddie, ihnp4, wjh12, cca, cbosgd, seismo}!mirror!jvc
Mirror Systems,	2067 Massachusetts Avenue, Cambridge, MA 02140
Telephone:	(617) 661-0777

==========================================================================
>Uudecode reports "short file" and the resulting arc520.com does not 
>unarc itself.
>I used UNIX uudecode on a pyramid 90x.

The reason is that some mailer, somewhere, removed all of the trailing space.
Uudecode don't like it (at least here).  So, I wrote a little program to put
it back.  I have tried the resulting arc520.com, and it seems to work. 

uucp:		mcvax!cernvax!cui!Fisch / Fisch@cui.uucp
X400/ean:	Fisch@cui.unige.chunet
bitnet/earn:	Fisch%cui.unige.chunet@cernvax

__________________________________ CUT HERE __________________________________
/*
    Try to repair uuencoded files when trailing space has been removed.
    It pads short lines with spaces whenever needed.
    It reads from stdin and writes to stdout.

	use: pgm <uuencoded > repaired
	     uudecode repaired

	or:  pgm <uuencoded | uudecode

    If it doesn't work, I can't help you.
*/

#include <stdio.h>

main()
  {
    char c;
    int tab, len;

    tab = 0;
    while ((c = getchar()) != EOF)
      {
	if (tab == 0)
	  {
	    if (' '<=c && c<='Z') len = ((c-' '+2)/3)*4+1;
	    else len = 1;
	  }
	if (c == '\n')
	  {
	    while (tab++<len) putchar(' ');
	    tab = 0;
	  }
	else tab++;
	putchar (c);
      }
  }
/* End of text from mirror:comp.sys.ibm.pc */


++++++++++++++++++ finish of package UUDECODE.KIT +++++++++++++++++++++++++