rewrite popen to use posix_spawn instead of fragile vfork hacks
[musl] / src / stdio / vdprintf.c
index 35ed6e0..c35d9b4 100644 (file)
@@ -5,15 +5,12 @@ static size_t wrap_write(FILE *f, const unsigned char *buf, size_t len)
        return __stdio_write(f, buf, len);
 }
 
-int vdprintf(int fd, const char *fmt, va_list ap)
+int vdprintf(int fd, const char *restrict fmt, va_list ap)
 {
-       int r;
-       char buf[BUFSIZ];
        FILE f = {
                .fd = fd, .lbf = EOF, .write = wrap_write,
-               .buf = buf+UNGET, .buf_size = sizeof buf - UNGET
+               .buf = (void *)fmt, .buf_size = 0,
+               .lock = -1
        };
-       r = vfprintf(&f, fmt, ap);
-       __oflow(&f);
-       return r;
+       return vfprintf(&f, fmt, ap);
 }