13 initibuf(Ibuf *b, Ioproc *io, int fd)
17 b->rp = b->wp = b->buf;
21 readibuf(Ibuf *b, char *buf, int len)
29 memmove(buf, b->rp, n);
33 return ioreadn(b->io, b->fd, buf, len);
37 unreadline(Ibuf *b, char *line)
43 memmove(&b->buf[i+1], b->rp, n);
44 memmove(b->buf, line, i);
51 readline(Ibuf *b, char *buf, int len)
60 n = ioread(b->io, b->fd, b->wp, sizeof(b->buf)/2);
76 /* drop trailing white */
81 if(n != ' ' && n != '\t' && n != '\r' && n != '\n')