-const char uu_base64[64] = {
- 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
- 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
- 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
- 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
- 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
- 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
- 'w', 'x', 'y', 'z', '0', '1', '2', '3',
- '4', '5', '6', '7', '8', '9', '+', '/'
-};
-
-/* ENC is the basic 1 character encoding function to make a char printing. */
-#define ENC(Char) (trans_ptr[(Char) & 077])
-
-/* Copy from IN to OUT, encoding as you go along. */
-static void encode()
-{
- register int ch, n;
- char *p = NULL;
- char buf[80];
-
- while (1) {
- n = 0;
- do {
- register int m = fread (buf, 1, 45 - n, stdin);
- if (m == 0)
- break;
- n += m;
- }
- while (n < 45);
-
- if (n == 0)
- break;
-
- if (trans_ptr == uu_std)
- if (putchar (ENC (n)) == EOF)
- break;
- for (p = buf; n > 2; n -= 3, p += 3) {
- ch = *p >> 2;
- ch = ENC (ch);
- if (putchar (ch) == EOF)
- break;
- ch = ((*p << 4) & 060) | ((p[1] >> 4) & 017);
- ch = ENC (ch);
- if (putchar (ch) == EOF)
- break;
- ch = ((p[1] << 2) & 074) | ((p[2] >> 6) & 03);
- ch = ENC (ch);
- if (putchar (ch) == EOF)
- break;
- ch = p[2] & 077;
- ch = ENC (ch);
- if (putchar (ch) == EOF)
- break;
- }
-
- if (n != 0)
- break;
-
- if (putchar ('\n') == EOF)
- break;
- }
-
- while (n != 0) {
- char c1 = *p;
- char c2 = n == 1 ? 0 : p[1];
-
- ch = c1 >> 2;
- ch = ENC (ch);
- if (putchar (ch) == EOF)
- break;
-
- ch = ((c1 << 4) & 060) | ((c2 >> 4) & 017);
- ch = ENC (ch);
- if (putchar (ch) == EOF)
- break;
-
- if (n == 1)
- ch = trans_ptr == uu_std ? ENC ('\0') : '=';
- else {
- ch = (c2 << 2) & 074;
- ch = ENC (ch);
- }
- if (putchar (ch) == EOF)
- break;
- ch = trans_ptr == uu_std ? ENC ('\0') : '=';
- if (putchar (ch) == EOF)
- break;
- putchar ('\n');
- break;
- }
-
- if (ferror (stdin))
- errorMsg("Read error\n");
-
- if (trans_ptr == uu_std) {
- putchar (ENC ('\0'));
- putchar ('\n');
- }
-}
-
-static const char uuencode_usage[] =
- "uuencode [OPTION] [INFILE] REMOTEFILE\n"
-#ifndef BB_FEATURE_TRIVIAL_HELP
- "\nUuencode a file.\n\n"
- "Options:\n"
- "\t-m\tuse base64 encoding as of RFC1521\n"
-#endif
-;
-
-int uuencode_main (int argc,
- char **argv)