[comp.binaries.ibm.pc] v01i130: quu, quick uuencoder v1.2 and uudecoder v2.1

kaldis@topaz.rutgers.edu (Theodore A. Kaldis) (02/15/89)

Posting-number: Volume 01 Issue 130
Originally-from: kaldis@topaz.rutgers.edu (Theodore A. Kaldis)
Submitted-by: kaldis@topaz.rutgers.edu (Theodore A. Kaldis)
Archive-name: quu/quu.uue

Here is my latest enhanced UUDecoder, written in Assembler (compiled
here under MASM), and a new UUEncoder.  The decoder will take multipart
files even as separate files, and extract the encoded file.  Or it will
handle concatenated files without the headers or .signature's removed.
(Multipart files have to be named something like PART1.UUE, PART2.UUE,
etc, and all you need do is specify the first file.  The extension is
not necessary, but the last character of the filename must be a number
in ascending order.)

These programs run extremely fast, with most of the execution time
being consumed by disk read/writes.  Run them on a hard disk, and they
fly.

The UUencoder is new, and supplies BEGIN--cut here--... and END--...
lines for the encoded files it creates.  Man pages are included, though
they are rather sparse on information.  Both programs allocate extra
memory, but the encoder needs 2 buffers, whereas the decoder only needs
one.  It is thus possible that the encoder may not have enough memory
on machines with a small amount of memory.

              Theodore A. Kaldis
      email:  kaldis@topaz.rutgers.edu
       UUCP:  {...}!rutgers!topaz.rutgers.edu!kaldis
 U.S. Snail:  P.O. Box #1212, Woodbridge, NJ  07095
 ex-Ma Bell:  (201) 283-4855  (voice)

[
These programs work well, and they are fast.

The ability to ignore spurious lines in the middle of a uuencoded file
is perhaps not perfect.  The file resulting from concatenating the nine
moria postings earlier in this newsgroup, when fed to the uudecode in
this package, gave an invalid archive, while the comp.binaries.ibm.pc
"combine" script worked correctly on the same file.  I'm sure the
author will locate and fix this minor bug.  Meanwhile this package will
still be very useful.

It would be nice to have equivalent programs in generic C.  Any
takers?

Checksums obtained with the 4.3BSD "sum" or System V "sum -r" command.

checksum     size (bytes)  file (between BEGIN--cut and END--cut lines)
   39930         9870      this uuencoded posting

checksum     size (bytes)  file
    2796         7146      quu.arc

-- R.D.
]

BEGIN--cut here--cut here
begin 644 quu.arc
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
DGR"00AGB4(<T$+*S1'C"%$3<WL&"0`8N^%E*;WK-$8^%!!H`
`
end
END--cut here--cut here