| #include "lib9.h" | |
| #include <bio.h> | |
| int | |
| Bprint(Biobuf *bp, char *fmt, ...) | |
| { | |
| va_list ap; | |
| char *ip, *ep, *out; | |
| int n; | |
| ep = (char*)bp->ebuf; | |
| ip = ep + bp->ocount; | |
| va_start(ap, fmt); | |
| out = vseprint(ip, ep, fmt, ap); | |
| va_end(ap); | |
| if(out == 0 || out >= ep-5) { | |
| Bflush(bp); | |
| ip = ep + bp->ocount; | |
| va_start(ap, fmt); | |
| out = vseprint(ip, ep, fmt, ap); | |
| va_end(ap); | |
| if(out >= ep-5) | |
| return Beof; | |
| } | |
| n = out-ip; | |
| bp->ocount += n; | |
| return n; | |
| } |