#include <stdlib.h> #include <memory.h> #include "cbuf.h" void cbuf_init(struct cbuf *cbuf, size_t alloc) { cbuf->buf = (char *)malloc(1); cbuf->buf[0] = '\0'; cbuf->alloc = cbuf->size = 0; } void cbuf_free(struct cbuf *cbuf) { free(cbuf->buf); } void cbuf_append(struct cbuf *cbuf, const char *data, size_t size) { size_t new_alloc = cbuf->alloc + size; cbuf->buf = (char *)realloc(cbuf->buf, new_alloc + 1); memcpy(cbuf->buf + cbuf->size, data, size); cbuf->alloc = cbuf->size = new_alloc; cbuf->buf[cbuf->size] = '\0'; }