aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYasuhiro Matsumoto <mattn.jp@gmail.com>2012-02-15 14:25:27 +1100
committerAlex Brainman <alex.brainman@gmail.com>2012-02-15 14:25:27 +1100
commit6fae34db94fe02f60edb207c95037a9bf8611e71 (patch)
tree8a7d7330cf48333e2b5cbc737514a92ffea77487
parentdabf3db7153faac5e2b59429990f9f1bf6e39399 (diff)
downloadgo-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.c13
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