From 0217af3b5829b5d2e190d84109af2f0ab984c9ff Mon Sep 17 00:00:00 2001 From: Andy Cedilnik Date: Mon, 26 Jan 2004 14:41:29 -0500 Subject: [PATCH] ENH: Improve calling of RunSingle command and fix compile error --- Source/cmCTest.cxx | 9 +++++++-- Source/cmSystemTools.cxx | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 421f81be0..fbe20fdf0 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -4212,7 +4212,7 @@ int cmCTest::RunCMakeAndTest(std::string* outstring) out << "Running make command: " << makeCommand.c_str() << "\n"; retVal = 0; std::string output; - if (!cmSystemTools::RunSingleCommand(makeCommand.c_str(), &output, &retVal, 0, false)) + if (!cmSystemTools::RunSingleCommand(makeCommand.c_str(), (m_Verbose?&output:0), &retVal, 0, false)) { out << "Error: " << makeCommand.c_str() << " execution failed\n"; out << output.c_str() << "\n"; @@ -4464,7 +4464,12 @@ void cmCTest::PopulateCustomVector(cmMakefile* mf, const char* def, tm_VectorOfS } std::vector slist; cmSystemTools::ExpandListArgument(dval, slist); - vec.insert(vec.end(), slist.begin(), slist.end()); + std::vector::iterator it; + + for ( it = slist.begin(); it != slist.end(); ++it ) + { + vec.push_back(it->c_str()); + } } int cmCTest::ExecuteCommands(tm_VectorOfStrings& vec) diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index 032a95dc0..28b378b7c 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -437,6 +437,8 @@ bool cmSystemTools::RunSingleCommand( std::vector tempOutput; char* data; int length; + if ( output || verbose ) + { while(cmsysProcess_WaitForData(cp, &data, &length, 0)) { if ( output ) @@ -448,6 +450,7 @@ bool cmSystemTools::RunSingleCommand( cmSystemTools::Stdout(data, length); } } + } cmsysProcess_WaitForExit(cp, 0); if ( output )