b64/output.c
2025-06-12 23:53:00 +02:00

38 lines
919 B
C

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