blob: 24f9332e6c4ff3e4be130295dd140a1e17ea1846 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include "../memory.h"
#include "io.h"
int vasprintf(char **string, char const *restrict format, va_list arg)
{
va_list tmp;
va_copy(tmp, arg);
int lenght = _vsnprintf_wrap(NULL, 0, format, tmp);
va_end(tmp);
if (lenght < 0) {
return 1;
}
*string = reallocarray(NULL, (size_t)lenght + 1, sizeof *string);
if (*string == NULL) {
return 1;
}
return _vsnprintf_wrap(*string, (size_t)lenght + 1, format, arg);
}
|