1 /* CC0 (Public domain) - see LICENSE file for details */
2 #include <ccan/stringbuilder/stringbuilder.h>
6 int stringbuilder_args(char* str, size_t str_sz, const char* delim, ...)
11 res = stringbuilder_va(str, str_sz, delim, ap);
16 static int stringbuilder_cpy(
17 char** str, size_t* str_sz, const char* s, size_t s_len)
25 /* Include nul term! */
35 int stringbuilder_va(char* str, size_t str_sz, const char* delim, va_list ap)
39 const char* s = va_arg(ap, const char*);
42 delim_len = strlen(delim);
44 res = stringbuilder_cpy(&str, &str_sz, s, 0);
45 s = va_arg(ap, const char*);
47 res = stringbuilder_cpy(&str, &str_sz,
50 res = stringbuilder_cpy(&str, &str_sz,
52 s = va_arg(ap, const char*);
58 int stringbuilder_array(char* str, size_t str_sz, const char* delim,
59 size_t n_strings, const char** strings)
65 delim_len = strlen(delim);
67 res = stringbuilder_cpy(&str, &str_sz,
69 while(--n_strings && !res) {
70 res = stringbuilder_cpy(&str, &str_sz,
73 res = stringbuilder_cpy(&str, &str_sz,