]> git.lizzy.rs Git - nothing.git/blobdiff - src/str.c
(#545) make match_list match empty tails
[nothing.git] / src / str.c
index 28030825d2612d2aa6fb65a3689a238b1694962f..447fe25049370c1f7b150296ee5795bf3146c536 100644 (file)
--- a/src/str.c
+++ b/src/str.c
@@ -1,7 +1,11 @@
+#include <assert.h>
 #include <stdlib.h>
+#include <stdio.h>
 #include <string.h>
+#include <assert.h>
 
 #include "str.h"
+#include "system/nth_alloc.h"
 
 char *string_duplicate(const char *str,
                        const char *str_end)
@@ -11,7 +15,7 @@ char *string_duplicate(const char *str,
     }
 
     const size_t n = str_end == NULL ? strlen(str) : (size_t) (str_end - str);
-    char *dup_str = malloc(sizeof(char) * (n + 1));
+    char *dup_str = nth_alloc(sizeof(char) * (n + 1));
     if (dup_str == NULL) {
         return NULL;
     }
@@ -36,3 +40,15 @@ char *trim_endline(char *s)
 
     return s;
 }
+
+char *string_append(char *prefix, const char *suffix)
+{
+    assert(suffix);
+
+    if (prefix == NULL) {
+        return string_duplicate(suffix, NULL);
+    }
+
+    prefix = nth_realloc(prefix, strlen(prefix) + strlen(suffix) + 1);
+    return strcat(prefix, suffix);
+}