X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fstdio%2Fvdprintf.c;h=c35d9b4fb0412fdefb2f4a07c198b8de8b451871;hb=6d861ac87491a207e4599c44b61d142f0a601c2d;hp=bfb1b0a9d8c4a3c566dd7e5a97c44ea0b8e05d84;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01;p=musl diff --git a/src/stdio/vdprintf.c b/src/stdio/vdprintf.c index bfb1b0a9..c35d9b4f 100644 --- a/src/stdio/vdprintf.c +++ b/src/stdio/vdprintf.c @@ -1,14 +1,16 @@ #include "stdio_impl.h" -int vdprintf(int fd, const char *fmt, va_list ap) +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 *restrict fmt, va_list ap) { - int r; - char buf[BUFSIZ]; FILE f = { - .fd = fd, .lbf = EOF, .write = __stdio_write, - .buf = buf+UNGET, .buf_size = sizeof buf - UNGET + .fd = fd, .lbf = EOF, .write = wrap_write, + .buf = (void *)fmt, .buf_size = 0, + .lock = -1 }; - r = vfprintf(&f, fmt, ap); - __oflow(&f); - return r; + return vfprintf(&f, fmt, ap); }