diff options
| author | XaviDCR92 <xavi.dcr@tutanota.com> | 2020-03-21 09:54:04 +0100 |
|---|---|---|
| committer | XaviDCR92 <xavi.dcr@tutanota.com> | 2020-03-21 09:54:04 +0100 |
| commit | 35497efab9700ba386fa2e5bdc1a4f654ce36541 (patch) | |
| tree | 9109f260e2b421b7f6912a5945bcd540ea1318b5 /dynstr.c | |
| parent | f0bf3175abd5c6f869807236c97d6fc4f181e16d (diff) | |
| parent | 92409d275fe3c496535c1c06886100537ca0ab4f (diff) | |
| download | dynstr-35497efab9700ba386fa2e5bdc1a4f654ce36541.tar.gz | |
Merge branch 'master' of https://github.com/XaviDCR92/dynstr
Diffstat (limited to 'dynstr.c')
| -rw-r--r-- | dynstr.c | 47 |
1 files changed, 25 insertions, 22 deletions
@@ -31,31 +31,34 @@ int dynstr_append(struct dynstr *const d, const char *const format, ...) va_list ap; va_start(ap, format); - const size_t src_len = vsnprintf(NULL, 0, format, ap); - size_t new_len; - va_end(ap); - if (!d->str) { - new_len = src_len + 1; - d->str = malloc(new_len * sizeof *d->str); - } - else - { - new_len = d->len + src_len + 1; - d->str = realloc(d->str, new_len * sizeof *d->str); - } - - if (d->str) - { - va_start(ap, format); - vsprintf(d->str + d->len, format, ap); + const size_t src_len = vsnprintf(NULL, 0, format, ap); + size_t new_len; va_end(ap); - d->len += src_len; - } - else - { - return 1; + + if (!d->str) + { + new_len = src_len + 1; + d->str = malloc(new_len * sizeof *d->str); + } + else + { + new_len = d->len + src_len + 1; + d->str = realloc(d->str, new_len * sizeof *d->str); + } + + if (d->str) + { + va_start(ap, format); + vsprintf(d->str + d->len, format, ap); + va_end(ap); + d->len += src_len; + } + else + { + return 1; + } } return 0; |
