xref: /freebsd/contrib/less/xbuf.h (revision c77c488926555ca344ae3a417544cf7a720e1de1)
130a1828cSXin LI #ifndef XBUF_H_
230a1828cSXin LI #define XBUF_H_
330a1828cSXin LI 
4*c77c4889SXin LI #include "lang.h"
5*c77c4889SXin LI 
630a1828cSXin LI struct xbuffer
730a1828cSXin LI {
8d713e089SXin LI 	unsigned char *data;
9*c77c4889SXin LI 	size_t end;
10*c77c4889SXin LI 	size_t size;
11*c77c4889SXin LI 	size_t init_size;
1230a1828cSXin LI };
1330a1828cSXin LI 
1430a1828cSXin LI void xbuf_init(struct xbuffer *xbuf);
15*c77c4889SXin LI void xbuf_init_size(struct xbuffer *xbuf, size_t init_size);
16d713e089SXin LI void xbuf_deinit(struct xbuffer *xbuf);
1730a1828cSXin LI void xbuf_reset(struct xbuffer *xbuf);
18d713e089SXin LI void xbuf_add_byte(struct xbuffer *xbuf, unsigned char b);
19*c77c4889SXin LI void xbuf_add_char(struct xbuffer *xbuf, char c);
20*c77c4889SXin LI void xbuf_add_data(struct xbuffer *xbuf, constant unsigned char *data, size_t len);
2195270f73SXin LI int xbuf_pop(struct xbuffer *xbuf);
22*c77c4889SXin LI constant char *xbuf_char_data(constant struct xbuffer *xbuf);
2330a1828cSXin LI 
2430a1828cSXin LI #endif
25