#define ENC(c) ((c) ? ((c) & 077) + ' ': '`') void enc(char *filename, char *buf, int size){ int i,n; char *p; char ch; printf("begin %o %s\n", 0777, filename); for (; size > 0; size -= 45, buf+=45){ n = size < 45 ? size: 45; ch = ENC (n); putchar (ch); /* Dump line Size */ for (p = buf; n > 0; n -= 3, p += 3) { ch = *p >> 2; ch = ENC (ch); putchar (ch); ch = ((*p << 4) & 060) | ((p[1] >> 4) & 017); ch = ENC (ch); putchar (ch); ch = ((p[1] << 2) & 074) | ((p[2] >> 6) & 03); ch = ENC (ch); putchar (ch); ch = p[2] & 077; ch = ENC (ch); putchar (ch); } putchar ('\n'); } ch = ENC('\0'); putchar (ch); putchar ('\n'); printf("end\n"); }