register char b0, b1, b2;
register unsigned char b0, b1, b2;
NET_UUEncode(unsigned char *src, unsigned char *dst, int srclen){   int  i, r;   unsigned char *p;/* To uuencode, we snip 8 bits from 3 bytes and store them as6 bits in 4 bytes.   6*4 == 8*3 (get it?) and 6 bits per byteyields nice clean bytesIt goes like this:    AAAAAAAA BBBBBBBB CCCCCCCCturns into the standard set of uuencode ascii chars indexed by numbers:    00AAAAAA 00AABBBB 00BBBBCC 00CCCCCCSnip-n-shift, snip-n-shift, etc....*/   for (p=dst,i=0; i < srclen; i += 3) {        /* Do 3 bytes of src */        register char b0, b1, b2;        b0 = src[0];        if (i==srclen-1)            b1 = b2 = '\0';        else if (i==srclen-2) {            b1 = src[1];            b2 = '\0';        }        else {            b1 = src[1];            b2 = src[2];        }        *p++ = uuset[b0>>2];        *p++ = uuset[(((b0 & 0x03) << 4) | ((b1 & 0xf0) >> 4))];        *p++ = uuset[(((b1 & 0x0f) << 2) | ((b2 & 0xc0) >> 6))];        *p++ = uuset[b2 & 0x3f];        src += 3;   }   *p = 0;      /* terminate the string */   r = (unsigned char *)p - (unsigned char *)dst;       /* remember how many wedid */   /* Always do 4-for-3, but if not round threesome, have to go      clean up the last extra bytes */   for( ; i != srclen; i--)        *--p = '=';   return r;}