X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftal%2Fstr%2Fstr.h;h=0fe542cf235eeb9c08119f0de14ced6f6050a0ea;hb=97d99004bec31012400b6c1d9bad045ae1c9b075;hp=ab776e92c39d60fa3b0b239be9a51a253378b4c5;hpb=5582b011948769779b0d839d35873c2bc557f9cb;p=ccan diff --git a/ccan/tal/str/str.h b/ccan/tal/str/str.h index ab776e92..0fe542cf 100644 --- a/ccan/tal/str/str.h +++ b/ccan/tal/str/str.h @@ -1,8 +1,11 @@ /* Licensed under BSD-MIT - see LICENSE file for details */ #ifndef CCAN_STR_TAL_H #define CCAN_STR_TAL_H +#ifdef TAL_USE_TALLOC +#include +#else #include -#include +#endif #include #include @@ -24,21 +27,48 @@ char *tal_strdup(const tal_t *ctx, const char *p); char *tal_strndup(const tal_t *ctx, const char *p, size_t n); /** - * tal_asprintf - allocate a formatted string + * tal_fmt - allocate a formatted string * @ctx: NULL, or tal allocated object to be parent. * @fmt: the printf-style format (can be take()). */ -char *tal_asprintf(const tal_t *ctx, const char *fmt, ...) PRINTF_FMT(2,3); +char *tal_fmt(const tal_t *ctx, const char *fmt, ...) PRINTF_FMT(2,3); /** - * tal_vasprintf - allocate a formatted string (va_list version) + * tal_vfmt - allocate a formatted string (va_list version) * @ctx: NULL, or tal allocated object to be parent. * @fmt: the printf-style format (can be take()). * @va: the va_list containing the format args. */ -char *tal_vasprintf(const tal_t *ctx, const char *fmt, va_list ap) +char *tal_vfmt(const tal_t *ctx, const char *fmt, va_list ap) PRINTF_FMT(2,0); +/** + * tal_append_fmt - append a formatted string to a talloc string. + * @baseptr: a pointer to the tal string to be appended to. + * @fmt: the printf-style format (can be take()). + * + * Returns false on allocation failure. + */ +bool tal_append_fmt(char **baseptr, const char *fmt, ...) PRINTF_FMT(2,3); + +/** + * tal_append_vfmt - append a formatted string to a talloc string (va_list) + * @baseptr: a pointer to the tal string to be appended to. + * @fmt: the printf-style format (can be take()). + * @va: the va_list containing the format args. + * + * Returns false on allocation failure. + */ +bool tal_append_vfmt(char **baseptr, const char *fmt, va_list ap); + +/** + * tal_strcat - join two strings together + * @ctx: NULL, or tal allocated object to be parent. + * @s1: the first string (can be take()). + * @s2: the second string (can be take()). + */ +char *tal_strcat(const tal_t *ctx, const char *s1, const char *s2); + enum strsplit { STR_EMPTY_OK, STR_NO_EMPTY