blob: ce823f06edc1a80a1bbc8034f54f6503dbaccd95 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
/* See LICENSE file for copyright and license details. */
#include "libsimple.h"
int
vputenvf(const char *fmt, va_list ap) /* TODO test */
{
va_list ap2;
int n;
char *s;
va_copy(ap2, ap);
n = vsnprintf(NULL, 0, fmt, ap2);
va_end(ap2);
if (n < 0)
return -1;
if ((size_t)n == SIZE_MAX) {
errno = ENOMEM;
return -1;
}
s = alloca((size_t)n + 1);
vsprintf(s, fmt, ap);
return putenv(s);
}
|