X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftal%2Fstr%2Fstr.c;h=cafb04bb50a7d2a78aea39113b1d32fec32334d8;hp=09c45447fb6e3e3fa53882f4e4d829cab001aa0b;hb=15ed4f453713f1a7bdeec22b53704819fa3d447f;hpb=f103f73ff040a8700a2bbd47948277e7c484baa2;ds=sidebyside diff --git a/ccan/tal/str/str.c b/ccan/tal/str/str.c index 09c45447..cafb04bb 100644 --- a/ccan/tal/str/str.c +++ b/ccan/tal/str/str.c @@ -13,8 +13,8 @@ #include #include -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; @@ -49,6 +49,11 @@ char **strsplit(const tal_t *ctx, 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; @@ -60,8 +65,8 @@ fail: 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; @@ -103,7 +108,7 @@ fail: 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];