mirror of
https://github.com/golang/go
synced 2024-11-20 10:14:43 -07:00
cmd/dist: Make windows.c's fatal() print to stderr
Generating env.bat using dist env -wp > env.bat failed silently if case of an error, because the message was redirected to env.bat. Verbose messages still go to stdout, causing problems, but that's a seperate change. Made errprintf() identical to xprintf(), except for the output handle. Yes, it's duplicate code, but most of the function is unpacking the argument list and preparing it for WriteFile(), which has to be done anyway. R=golang-dev, alex.brainman CC=golang-dev https://golang.org/cl/6343047
This commit is contained in:
parent
c644a4ddfe
commit
735780c27e
18
src/cmd/dist/windows.c
vendored
18
src/cmd/dist/windows.c
vendored
@ -121,6 +121,22 @@ errstr(void)
|
||||
return bstr(&b); // leak but we're dying anyway
|
||||
}
|
||||
|
||||
static void
|
||||
errprintf(char *fmt, ...) {
|
||||
va_list arg;
|
||||
char *p;
|
||||
DWORD n, w;
|
||||
|
||||
va_start(arg, fmt);
|
||||
n = vsnprintf(NULL, 0, fmt, arg);
|
||||
p = xmalloc(n+1);
|
||||
vsnprintf(p, n+1, fmt, arg);
|
||||
va_end(arg);
|
||||
w = 0;
|
||||
WriteFile(GetStdHandle(STD_ERROR_HANDLE), p, n, &w, 0);
|
||||
xfree(p);
|
||||
}
|
||||
|
||||
void
|
||||
xgetenv(Buf *b, char *name)
|
||||
{
|
||||
@ -709,7 +725,7 @@ fatal(char *msg, ...)
|
||||
vsnprintf(buf1, sizeof buf1, msg, arg);
|
||||
va_end(arg);
|
||||
|
||||
xprintf("go tool dist: %s\n", buf1);
|
||||
errprintf("go tool dist: %s\n", buf1);
|
||||
|
||||
bgwait();
|
||||
ExitProcess(1);
|
||||
|
Loading…
Reference in New Issue
Block a user