summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2014-04-14 21:09:51 (GMT)
committerNico Weber <nicolasweber@gmx.de>2014-04-14 21:09:51 (GMT)
commit7603f0fbbe6395de8155c2d311e92ece8ba36dd6 (patch)
treef185339ff7783c2f8bdb25d5dfa0439e69f49afc
parent36ffb5922cf8556ccc34d599290c0b174b50967e (diff)
parent0a4936bf28b1965bdabb5df05efa75bcd82da14d (diff)
downloadNinja-7603f0fbbe6395de8155c2d311e92ece8ba36dd6.zip
Ninja-7603f0fbbe6395de8155c2d311e92ece8ba36dd6.tar.gz
Ninja-7603f0fbbe6395de8155c2d311e92ece8ba36dd6.tar.bz2
Merge pull request #734 from sgraham/no-stderr
CLParser shouldn't read stderr
-rw-r--r--src/msvc_helper-win32.cc2
-rw-r--r--src/msvc_helper_test.cc7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/msvc_helper-win32.cc b/src/msvc_helper-win32.cc
index d2e2eb5..e465279 100644
--- a/src/msvc_helper-win32.cc
+++ b/src/msvc_helper-win32.cc
@@ -141,7 +141,7 @@ int CLWrapper::Run(const string& command, string* output) {
STARTUPINFO startup_info = {};
startup_info.cb = sizeof(STARTUPINFO);
startup_info.hStdInput = nul;
- startup_info.hStdError = stdout_write;
+ startup_info.hStdError = ::GetStdHandle(STD_ERROR_HANDLE);
startup_info.hStdOutput = stdout_write;
startup_info.dwFlags |= STARTF_USESTDHANDLES;
diff --git a/src/msvc_helper_test.cc b/src/msvc_helper_test.cc
index 48fbe21..391c045 100644
--- a/src/msvc_helper_test.cc
+++ b/src/msvc_helper_test.cc
@@ -119,3 +119,10 @@ TEST(MSVCHelperTest, EnvBlock) {
cl.Run("cmd /c \"echo foo is %foo%", &output);
ASSERT_EQ("foo is bar\r\n", output);
}
+
+TEST(MSVCHelperTest, NoReadOfStderr) {
+ CLWrapper cl;
+ string output;
+ cl.Run("cmd /c \"echo to stdout&& echo to stderr 1>&2", &output);
+ ASSERT_EQ("to stdout\r\n", output);
+}