abuf: add abuf_concat function
authorFerry Huberts <ferry.huberts@pelagic.nl>
Thu, 7 Apr 2016 11:13:14 +0000 (13:13 +0200)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Thu, 7 Apr 2016 19:31:37 +0000 (21:31 +0200)
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
src/common/autobuf.c
src/common/autobuf.h

index 960c526..ccf57fc 100644 (file)
@@ -171,6 +171,21 @@ abuf_puts(struct autobuf *autobuf, const char *s)
   return len;
 }
 
   return len;
 }
 
+int
+abuf_concat(struct autobuf *autobuf, struct autobuf *s)
+{
+  int len;
+
+  if (NULL == s) return 0;
+  len = s->len;
+  if (autobuf_enlarge(autobuf, autobuf->len + len + 1) < 0) {
+    return -1;
+  }
+  strcpy(autobuf->buf + autobuf->len, s->buf);
+  autobuf->len += len;
+  return len;
+}
+
 int
 abuf_strftime(struct autobuf *autobuf, const char *format, const struct tm *tm)
 {
 int
 abuf_strftime(struct autobuf *autobuf, const char *format, const struct tm *tm)
 {
index f28c868..3443a68 100644 (file)
@@ -60,6 +60,7 @@ void abuf_free (struct autobuf * autobuf);
 int abuf_vappendf (struct autobuf *autobuf, const char *fmt, va_list ap) __attribute__ ((format(printf, 2, 0)));
 int abuf_appendf (struct autobuf * autobuf, const char *fmt, ...) __attribute__ ((format(printf, 2, 3)));
 int abuf_puts (struct autobuf * autobuf, const char *s);
 int abuf_vappendf (struct autobuf *autobuf, const char *fmt, va_list ap) __attribute__ ((format(printf, 2, 0)));
 int abuf_appendf (struct autobuf * autobuf, const char *fmt, ...) __attribute__ ((format(printf, 2, 3)));
 int abuf_puts (struct autobuf * autobuf, const char *s);
+int abuf_concat(struct autobuf *autobuf, struct autobuf *s);
 int abuf_strftime (struct autobuf * autobuf, const char *format, const struct tm * tm);
 int abuf_memcpy (struct autobuf * autobuf, const void *p, const unsigned int len);
 int abuf_memcpy_prefix (struct autobuf *autobuf, const void *p, const unsigned int len);
 int abuf_strftime (struct autobuf * autobuf, const char *format, const struct tm * tm);
 int abuf_memcpy (struct autobuf * autobuf, const void *p, const unsigned int len);
 int abuf_memcpy_prefix (struct autobuf *autobuf, const void *p, const unsigned int len);