158 if ((ch & 0xff) != ch || -bp->
cnt >= bp->
len) {
164 return (*--bp->
ptr = ch);
191 for (count = 0; count < len; count++)
192 if ((buf[count] =
VBUF_GET(bp)) < 0)
196 for (cp = buf, count = len; count > 0; cp += n, count -= n) {
199 n = (count < -bp->
cnt ? count : -bp->
cnt);
200 memcpy(cp, bp->
ptr, n);
204 return (len - count);
217 for (count = 0; count < len; count++)
222 for (cp = buf, count = len; count > 0; cp += n, count -= n) {
225 n = (count < bp->
cnt ? count : bp->
cnt);
226 memcpy(bp->
ptr, cp, n);
230 return (len - count);
VBUF_GET_READY_FN get_ready
ssize_t vbuf_write(VBUF *bp, const void *buf, ssize_t len)
int vbuf_unget(VBUF *bp, int ch)
ssize_t vbuf_read(VBUF *bp, void *buf, ssize_t len)
VBUF_PUT_READY_FN put_ready
int vbuf_put(VBUF *bp, int ch)