Lines Matching refs:xbp
38 xo_buf_init (xo_buffer_t *xbp)
40 xbp->xb_size = XO_BUFSIZ;
41 xbp->xb_bufp = xo_realloc(NULL, xbp->xb_size);
42 xbp->xb_curp = xbp->xb_bufp;
49 xo_buf_reset (xo_buffer_t *xbp)
51 xbp->xb_curp = xbp->xb_bufp;
58 xo_buf_left (xo_buffer_t *xbp)
60 return xbp->xb_size - (xbp->xb_curp - xbp->xb_bufp);
67 xo_buf_is_empty (xo_buffer_t *xbp)
69 return (xbp->xb_curp == xbp->xb_bufp);
76 xo_buf_offset (xo_buffer_t *xbp)
78 return xbp ? (xbp->xb_curp - xbp->xb_bufp) : 0;
82 xo_buf_data (xo_buffer_t *xbp, unsigned offset)
84 if (xbp == NULL)
86 return xbp->xb_bufp + offset;
90 xo_buf_cur (xo_buffer_t *xbp)
92 if (xbp == NULL)
94 return xbp->xb_curp;
101 xo_buf_cleanup (xo_buffer_t *xbp)
103 if (xbp->xb_bufp)
104 xo_free(xbp->xb_bufp);
105 bzero(xbp, sizeof(*xbp));
114 xo_buf_has_room (xo_buffer_t *xbp, ssize_t len)
116 if (xbp->xb_curp + len >= xbp->xb_bufp + xbp->xb_size) {
117 ssize_t sz = xbp->xb_size + XO_BUFSIZ;
118 char *bp = xo_realloc(xbp->xb_bufp, sz);
122 xbp->xb_curp = bp + (xbp->xb_curp - xbp->xb_bufp);
123 xbp->xb_bufp = bp;
124 xbp->xb_size = sz;
134 xo_buf_append (xo_buffer_t *xbp, const char *str, ssize_t len)
136 if (str == NULL || len == 0 || !xo_buf_has_room(xbp, len))
139 memcpy(xbp->xb_curp, str, len);
140 xbp->xb_curp += len;
147 xo_buf_append_str (xo_buffer_t *xbp, const char *str)
151 if (!xo_buf_has_room(xbp, len))
154 memcpy(xbp->xb_curp, str, len);
155 xbp->xb_curp += len;