#include #include "proff.h" #include "debug.h" /* * putwrd - put a word in outbuf; includes margin justification * */ putwrd(wrdbuf) char wrdbuf[]; { int last, llval, extra, w; dprintf("putwrd "); w = width(wrdbuf); last = strlen(wrdbuf) + outp; /* new end of outbuf */ #ifdef DEBUG printf("strlen(wrdbuf) = %d\n",strlen(wrdbuf)); #endif llval = rmval - tival; if (outw + w > llval || last >= MAXOUT) { /* too big */ last -= outp; extra = llval - outw; #ifdef DEBUG printf("extra = %d\n",extra); #endif for ( ; outp > 0; outp--) if (outbuf[outp-1] == ' ') extra++; else break; if (rjust == YES) { spread(outbuf, outp, extra, outwds); if (extra > 0 && outwds > 1) outp += extra; } brkeol(); /* flush previous line */ } #ifdef DEBUG printf("putwrd: last=%d w=%d outp=%d llval=%d outw=%d extra=%d\n", last,w,outp,llval,outw,extra); #endif strcpy(&outbuf[outp],wrdbuf); outp = last; outw += w; outwds++; }