summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2010-06-24 14:41:20 (GMT)
committerBrad King <brad.king@kitware.com>2010-06-24 14:41:20 (GMT)
commit566bb2d0789b5ad8c65337eaee39c92e9a797608 (patch)
tree8ef833379f1add5a594c546197597ff09467e40d /Source
parentb86a551edee8d061989c4b2c25bdd09e5f9d3dec (diff)
parentbbfe241c6a4386a39ebb93cdb70a8390eab14eef (diff)
downloadCMake-566bb2d0789b5ad8c65337eaee39c92e9a797608.zip
CMake-566bb2d0789b5ad8c65337eaee39c92e9a797608.tar.gz
CMake-566bb2d0789b5ad8c65337eaee39c92e9a797608.tar.bz2
Merge branch 'ctest-git-empty-commits'
Diffstat (limited to 'Source')
-rw-r--r--Source/CTest/cmCTestGIT.cxx9
-rw-r--r--Source/cmProcessTools.cxx6
-rw-r--r--Source/cmProcessTools.h1
3 files changed, 14 insertions, 2 deletions
diff --git a/Source/CTest/cmCTestGIT.cxx b/Source/CTest/cmCTestGIT.cxx
index 6c3631c..a49c852 100644
--- a/Source/CTest/cmCTestGIT.cxx
+++ b/Source/CTest/cmCTestGIT.cxx
@@ -317,8 +317,12 @@ protected:
\n
Log message indented by (4) spaces\n
(even blank lines have the spaces)\n
+ [[
\n
[Diff format]
+ OR
+ \0
+ ]]
The header may have more fields. See 'git help diff-tree'.
*/
@@ -372,6 +376,11 @@ private:
{
if(this->Line.empty())
{
+ if(this->Section == SectionBody && this->LineEnd == '\0')
+ {
+ // Skip SectionDiff
+ this->NextSection();
+ }
this->NextSection();
}
else
diff --git a/Source/cmProcessTools.cxx b/Source/cmProcessTools.cxx
index cacd766..d2f7bf3 100644
--- a/Source/cmProcessTools.cxx
+++ b/Source/cmProcessTools.cxx
@@ -44,7 +44,7 @@ void cmProcessTools::RunProcess(struct cmsysProcess_s* cp,
//----------------------------------------------------------------------------
cmProcessTools::LineParser::LineParser(char sep, bool ignoreCR):
- Separator(sep), IgnoreCR(ignoreCR), Log(0), Prefix(0)
+ Separator(sep), IgnoreCR(ignoreCR), Log(0), Prefix(0), LineEnd('\0')
{
}
@@ -61,8 +61,10 @@ bool cmProcessTools::LineParser::ProcessChunk(const char* first, int length)
const char* last = first + length;
for(const char* c = first; c != last; ++c)
{
- if(*c == this->Separator)
+ if(*c == this->Separator || *c == '\0')
{
+ this->LineEnd = *c;
+
// Log this line.
if(this->Log && this->Prefix)
{
diff --git a/Source/cmProcessTools.h b/Source/cmProcessTools.h
index 0b210af..439726d 100644
--- a/Source/cmProcessTools.h
+++ b/Source/cmProcessTools.h
@@ -55,6 +55,7 @@ public:
bool IgnoreCR;
std::ostream* Log;
const char* Prefix;
+ char LineEnd;
std::string Line;
virtual bool ProcessChunk(const char* data, int length);