summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmCTest.cxx9
-rw-r--r--Source/cmSystemTools.cxx3
2 files changed, 10 insertions, 2 deletions
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index 421f81b..fbe20fd 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<std::string> slist;
cmSystemTools::ExpandListArgument(dval, slist);
- vec.insert(vec.end(), slist.begin(), slist.end());
+ std::vector<std::string>::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 032a95d..28b378b 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -437,6 +437,8 @@ bool cmSystemTools::RunSingleCommand(
std::vector<char> 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 )