OLD | NEW |
1 #define _GNU_SOURCE | 1 #define _GNU_SOURCE |
2 #include <stdio.h> | 2 #include <stdio.h> |
3 #include <stdarg.h> | 3 #include <stdarg.h> |
4 #include <stdlib.h> | 4 #include <stdlib.h> |
5 | 5 |
6 int vasprintf(char **s, const char *fmt, va_list ap) | 6 int vasprintf(char** s, const char* fmt, va_list ap) { |
7 { | 7 va_list ap2; |
8 » va_list ap2; | 8 va_copy(ap2, ap); |
9 » va_copy(ap2, ap); | 9 int l = vsnprintf(0, 0, fmt, ap2); |
10 » int l = vsnprintf(0, 0, fmt, ap2); | 10 va_end(ap2); |
11 » va_end(ap2); | |
12 | 11 |
13 » if (l<0 || !(*s=malloc(l+1U))) return -1; | 12 if (l < 0 || !(*s = malloc(l + 1U))) |
14 » return vsnprintf(*s, l+1U, fmt, ap); | 13 return -1; |
| 14 return vsnprintf(*s, l + 1U, fmt, ap); |
15 } | 15 } |
OLD | NEW |