]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/dist: xprintf() can't output whole of 'dist env'.
authorYasuhiro Matsumoto <mattn.jp@gmail.com>
Wed, 15 Feb 2012 03:25:27 +0000 (14:25 +1100)
committerAlex Brainman <alex.brainman@gmail.com>
Wed, 15 Feb 2012 03:25:27 +0000 (14:25 +1100)
R=golang-dev, mpimenov, alex.brainman
CC=golang-dev
https://golang.org/cl/5667045

src/cmd/dist/windows.c

index 1655f7770495019ffb5b3209d84199757c325690..aa961eb6cf791118e8bc918f010c7568d509dba8 100644 (file)
@@ -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