From 98c5583ad5d633166e28034c0a3544ad48b532b6 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Mon, 4 Apr 2011 16:30:39 -0400 Subject: simplify vdprintf implementation greatly based on recent vfprintf changes since vfprintf will provide a temporary buffer in the case where the target FILE has a zero buffer size, don't bother setting up a real buffer for vdprintf. this also allows us to skip the call to fflush since we know everything will be written out before vfprintf returns. --- src/stdio/vdprintf.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/stdio/vdprintf.c b/src/stdio/vdprintf.c index faf9536a..b41a3c74 100644 --- a/src/stdio/vdprintf.c +++ b/src/stdio/vdprintf.c @@ -7,13 +7,10 @@ static size_t wrap_write(FILE *f, const unsigned char *buf, size_t len) int vdprintf(int fd, const char *fmt, va_list ap) { - int r; - unsigned 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); - return fflush(&f) ? EOF : r; + return vfprintf(&f, fmt, ap); } -- cgit v1.2.1