tal/str: use tal_ prefix.
[ccan] / ccan / tal / str / str.c
index 09c45447fb6e3e3fa53882f4e4d829cab001aa0b..cafb04bb50a7d2a78aea39113b1d32fec32334d8 100644 (file)
@@ -13,8 +13,8 @@
 #include <ccan/tal/tal.h>
 #include <ccan/take/take.h>
 
 #include <ccan/tal/tal.h>
 #include <ccan/take/take.h>
 
-char **strsplit(const tal_t *ctx,
-               const char *string, const char *delims, enum strsplit flags)
+char **tal_strsplit(const tal_t *ctx,
+                   const char *string, const char *delims, enum strsplit flags)
 {
        char **parts, *str;
        size_t max = 64, num = 0;
 {
        char **parts, *str;
        size_t max = 64, num = 0;
@@ -49,6 +49,11 @@ char **strsplit(const tal_t *ctx,
                        goto fail;
        }
        parts[num] = NULL;
                        goto fail;
        }
        parts[num] = NULL;
+
+       /* Ensure that tal_count() is correct. */
+       if (unlikely(!tal_resize(&parts, num+1)))
+               goto fail;
+
        if (taken(delims))
                tal_free(delims);
        return parts;
        if (taken(delims))
                tal_free(delims);
        return parts;
@@ -60,8 +65,8 @@ fail:
        return NULL;
 }
 
        return NULL;
 }
 
-char *strjoin(const tal_t *ctx,
-             char *strings[], const char *delim, enum strjoin flags)
+char *tal_strjoin(const tal_t *ctx,
+                 char *strings[], const char *delim, enum strjoin flags)
 {
        unsigned int i;
        char *ret = NULL;
 {
        unsigned int i;
        char *ret = NULL;
@@ -103,7 +108,7 @@ fail:
        goto out;
 }
 
        goto out;
 }
 
-bool strreg(const tal_t *ctx, const char *string, const char *regex, ...)
+bool tal_strreg(const tal_t *ctx, const char *string, const char *regex, ...)
 {
        size_t nmatch = 1 + strcount(regex, "(");
        regmatch_t matches[nmatch];
 {
        size_t nmatch = 1 + strcount(regex, "(");
        regmatch_t matches[nmatch];