diff options
Diffstat (limited to 'src/util/ralloc.c')
-rw-r--r-- | src/util/ralloc.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/util/ralloc.c b/src/util/ralloc.c index 821ee72fe8d..bf46439df4e 100644 --- a/src/util/ralloc.c +++ b/src/util/ralloc.c @@ -403,6 +403,25 @@ ralloc_strncat(char **dest, const char *str, size_t n) return cat(dest, str, strnlen(str, n)); } +bool +ralloc_str_append(char **dest, const char *str, + size_t existing_length, size_t str_size) +{ + char *both; + assert(dest != NULL && *dest != NULL); + + both = resize(*dest, existing_length + str_size + 1); + if (unlikely(both == NULL)) + return false; + + memcpy(both + existing_length, str, str_size); + both[existing_length + str_size] = '\0'; + + *dest = both; + + return true; +} + char * ralloc_asprintf(const void *ctx, const char *fmt, ...) { |