From: Yasuhiro Matsumoto Date: Wed, 15 Feb 2012 03:25:27 +0000 (+1100) Subject: cmd/dist: xprintf() can't output whole of 'dist env'. X-Git-Tag: weekly.2012-02-14~1 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=6fae34db94fe02f60edb207c95037a9bf8611e71;p=gostls13.git cmd/dist: xprintf() can't output whole of 'dist env'. R=golang-dev, mpimenov, alex.brainman CC=golang-dev https://golang.org/cl/5667045 --- diff --git a/src/cmd/dist/windows.c b/src/cmd/dist/windows.c index 1655f77704..aa961eb6cf 100644 --- a/src/cmd/dist/windows.c +++ b/src/cmd/dist/windows.c @@ -833,14 +833,17 @@ void xprintf(char *fmt, ...) { va_list arg; - static char buf[1024]; - DWORD n; + char *p; + DWORD n, w; va_start(arg, fmt); - vsnprintf(buf, sizeof buf, fmt, arg); + n = vsnprintf(NULL, 0, fmt, arg); + p = xmalloc(n+1); + vsnprintf(p, n+1, fmt, arg); va_end(arg); - n = 0; - WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), buf, strlen(buf), &n, 0); + w = 0; + WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), p, n, &w, 0); + xfree(p); } int