unroff/src/buffer.h

27 lines
537 B
C

/* $Revision: 1.4 $
*/
typedef struct _buffer {
char *data;
int increment;
int size;
int max;
int (*sizeinc_func)(struct _buffer *);
struct _buffer *next;
} Buffer;
Buffer *buffer_new(int);
void buffer_delete(Buffer *);
void buffer_grow(Buffer *);
void buffer_puts(Buffer *, char *, int);
#define buffer_need_grow(p) ((p)->size == (p)->max)
#define buffer_clear(p) ((p)->size = 0)
#define buffer_putc(p, c) {\
if (buffer_need_grow(p))\
buffer_grow(p);\
(p)->data[(p)->size++] = (c);\
}