b64/output.c
Eric 0a4a98390d improve printw to write faster
Now all encoding options are faster.
2025-05-29 00:51:00 +02:00

38 lines
801 B
C

#include "output.h"
#define WRAPCOL 76
char
printw(FILE *fp, unsigned char *s, int slen)
{
static int col;
int c;
c = '\n';
if (col) {
if (slen >= WRAPCOL-col) {
fwrite(s, sizeof(*s), WRAPCOL-col, fp);
s += WRAPCOL-col;
slen -= WRAPCOL-col;
col = 0;
fputc('\n', fp);
} else {
fwrite(s, sizeof(*s), slen, fp);
s += slen;
col += slen;
slen -= slen;
c = *(s+slen-1);
}
}
for (; slen >= WRAPCOL; slen -= WRAPCOL, s += WRAPCOL) {
fwrite(s, sizeof(*s), WRAPCOL, fp);
fputc('\n', fp);
}
if (slen > 0) {
fwrite(s, sizeof(*s), slen, fp);
col += slen;
c = *(s+slen-1);
}
return c;
}