Index: fusl/src/stdio/vasprintf.c |
diff --git a/fusl/src/stdio/vasprintf.c b/fusl/src/stdio/vasprintf.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..08251bc20ecd240a53335357341f89000ce5efa6 |
--- /dev/null |
+++ b/fusl/src/stdio/vasprintf.c |
@@ -0,0 +1,15 @@ |
+#define _GNU_SOURCE |
+#include <stdio.h> |
+#include <stdarg.h> |
+#include <stdlib.h> |
+ |
+int vasprintf(char **s, const char *fmt, va_list ap) |
+{ |
+ va_list ap2; |
+ va_copy(ap2, ap); |
+ int l = vsnprintf(0, 0, fmt, ap2); |
+ va_end(ap2); |
+ |
+ if (l<0 || !(*s=malloc(l+1U))) return -1; |
+ return vsnprintf(*s, l+1U, fmt, ap); |
+} |