diff --git a/toolkit/xre/nsNativeAppSupportWin.cpp b/toolkit/xre/nsNativeAppSupportWin.cpp index b7832cdc0c1..cdd8735c563 100644 --- a/toolkit/xre/nsNativeAppSupportWin.cpp +++ b/toolkit/xre/nsNativeAppSupportWin.cpp @@ -336,15 +336,16 @@ nsNativeAppSupportWin::CheckConsole() { // It will succeed when the parent process is a command line, // so that stdio will be displayed in it. if (AttachConsole(ATTACH_PARENT_PROCESS)) { - // Change std handles to refer to new console handles. - // Before doing so, ensure that stdout/stderr haven't been redirected to a valid file + // Change std handles to refer to new console handles. Before doing so, + // ensure that stdout/stderr haven't been redirected to a valid file if (_fileno(stdout) == -1 || _get_osfhandle(fileno(stdout)) == -1) freopen("CONOUT$", "w", stdout); + // There isn't any `CONERR$`, so that we merge stderr into CONOUT$ + // http://msdn.microsoft.com/en-us/library/windows/desktop/ms683231%28v=vs.85%29.aspx if (_fileno(stderr) == -1 || _get_osfhandle(fileno(stderr)) == -1) - freopen("CONERR$", "w", stderr); + freopen("CONOUT$", "w", stderr); if (_fileno(stdin) == -1 || _get_osfhandle(fileno(stdin)) == -1) freopen("CONIN$", "r", stdin); - return; } for ( int i = 1; i < gArgc; i++ ) {