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 1655f77..aa961eb 100644
--- a/src/cmd/dist/windows.c
+++ b/src/cmd/dist/windows.c
@@ -833,14 +833,17 @@
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