asprintf: fix indentation
[fio.git] / oslib / asprintf.c
CommitLineData
44e8e956
BVA
1#include <stdarg.h>
2#include <stdio.h>
3#include <stdlib.h>
4#include "oslib/asprintf.h"
5
cb3b6806 6#ifndef CONFIG_HAVE_VASPRINTF
44e8e956
BVA
7int vasprintf(char **strp, const char *fmt, va_list ap)
8{
922e390f
JA
9 va_list ap_copy;
10 char *str;
11 int len;
44e8e956
BVA
12
13#ifdef va_copy
922e390f 14 va_copy(ap_copy, ap);
44e8e956 15#else
922e390f 16 __va_copy(ap_copy, ap);
44e8e956 17#endif
922e390f
JA
18 len = vsnprintf(NULL, 0, fmt, ap_copy);
19 va_end(ap_copy);
44e8e956 20
922e390f
JA
21 if (len < 0)
22 return len;
44e8e956 23
922e390f
JA
24 len++;
25 str = malloc(len);
26 *strp = str;
27 return str ? vsnprintf(str, len, fmt, ap) : -1;
44e8e956
BVA
28}
29#endif
30
cb3b6806 31#ifndef CONFIG_HAVE_ASPRINTF
44e8e956
BVA
32int asprintf(char **strp, const char *fmt, ...)
33{
922e390f
JA
34 va_list arg;
35 int done;
44e8e956 36
922e390f
JA
37 va_start(arg, fmt);
38 done = vasprintf(strp, fmt, arg);
39 va_end(arg);
44e8e956 40
922e390f 41 return done;
44e8e956
BVA
42}
43#endif