This commit is contained in:
XaviDCR92 2020-03-21 09:54:04 +01:00
commit 35497efab9
1 changed files with 25 additions and 22 deletions

View File

@ -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;