#include <sprog.h> #include <uucode.h> /* aaaa aa|aa bbbb|bbbb cc|cc cccc */ int uuencode_line(const struct sprog_data *d, char *dst, int *offset, int *checksum) { char srcbuf[64]; unsigned char sum; char *dstd; int b; int i; b = d->size - *offset; if(b>45) b = 45; sum = 0; for(i=0; i<b; i++) { srcbuf[i] = d->data[*offset + i]; sum += srcbuf[i]; *checksum += srcbuf[i]; } for(i=0; i<(b & (4-1)); i++) srcbuf[b+i] = 0; dst[0] = ' ' + b; dstd = &dst[1]; for(i=0; i<b; i+=3) { dstd[0] = srcbuf[i]>>2; dstd[1] = srcbuf[i]<<4 | srcbuf[i+1]>>4; dstd[2] = srcbuf[i+1]<<2 | srcbuf[i+2]>>6; dstd[3] = srcbuf[i]; dstd += 4; } dstd[0] = sum; dstd[1] = 0; for(i=0; i<b+2; i++) { dst[i] &= 0x3f; if(dst[i]) dst[i] += ' '; else dst[i] = '`'; } if(*offset >= d->size) return 0; *offset += b; return 1; } void uudecode_line(struct sprog_data *d, const char *src, int *checksum) { d = 0; src = 0; checksum = 0; return; }