#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; }