summaryrefslogtreecommitdiff
path: root/buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'buffer.c')
-rw-r--r--buffer.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/buffer.c b/buffer.c
new file mode 100644
index 0000000..596d5d2
--- /dev/null
+++ b/buffer.c
@@ -0,0 +1,21 @@
+#include "buffer.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+void ab_append(struct append_buffer* ab, const char* string, int length)
+{
+ char* new = realloc(ab->buffer, ab->length + length);
+
+ if (new == NULL)
+ return;
+
+ memcpy(&new[ab->length], string, length);
+ ab->buffer = new;
+ ab->length += length;
+}
+
+void ab_free(struct append_buffer* ab)
+{
+ free(ab->buffer);
+}