From a767609da13eb8a2452b4253b34b6d704d54369e Mon Sep 17 00:00:00 2001 From: Jeff Hostetler Date: Mon, 6 Jun 2016 11:06:28 -0400 Subject: [PATCH] msvc: fix setvbuf() call The VS2015 version of the CRT asserts when you pass a zero buffer length and request line buffering. This fix sets it to the default BUFSIZ. Signed-off-by: Jeff Hostetler --- usage.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/usage.c b/usage.c index 17f52c1b5c..d81bcfe541 100644 --- a/usage.c +++ b/usage.c @@ -15,7 +15,12 @@ void vreportf(const char *prefix, const char *err, va_list params) fflush(fh); if (!tweaked_error_buffering) { +#if defined(_MSC_VER) + /* UCRT doesn't like zero buffer size */ + setvbuf(fh, NULL, _IOLBF, BUFSIZ); +#else setvbuf(fh, NULL, _IOLBF, 0); +#endif tweaked_error_buffering = 1; }