diff options
author | Yasuhiro Matsumoto <mattn.jp@gmail.com> | 2012-02-15 14:25:27 +1100 |
---|---|---|
committer | Alex Brainman <alex.brainman@gmail.com> | 2012-02-15 14:25:27 +1100 |
commit | 6fae34db94fe02f60edb207c95037a9bf8611e71 (patch) | |
tree | 8a7d7330cf48333e2b5cbc737514a92ffea77487 | |
parent | dabf3db7153faac5e2b59429990f9f1bf6e39399 (diff) | |
download | go-6fae34db94fe02f60edb207c95037a9bf8611e71.tar.gz go-6fae34db94fe02f60edb207c95037a9bf8611e71.zip |
cmd/dist: xprintf() can't output whole of 'dist env'.
R=golang-dev, mpimenov, alex.brainman
CC=golang-dev
https://golang.org/cl/5667045
-rw-r--r-- | src/cmd/dist/windows.c | 13 |
1 files changed, 8 insertions, 5 deletions
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 |