diff --git a/src/applications/differential/parser/DifferentialChangesetParser.php b/src/applications/differential/parser/DifferentialChangesetParser.php index 92d5f23c1a..dc6d17acc3 100644 --- a/src/applications/differential/parser/DifferentialChangesetParser.php +++ b/src/applications/differential/parser/DifferentialChangesetParser.php @@ -1701,10 +1701,7 @@ final class DifferentialChangesetParser extends Phobject { if ($old_file) { $old_ref->setFile($old_file); } else { - $old_data = $this->old; - $old_data = ipull($old_data, 'text'); - $old_data = implode('', $old_data); - + $old_data = $this->getRawDocumentEngineData($this->old); $old_ref->setData($old_data); } } @@ -1717,10 +1714,7 @@ final class DifferentialChangesetParser extends Phobject { if ($new_file) { $new_ref->setFile($new_file); } else { - $new_data = $this->new; - $new_data = ipull($new_data, 'text'); - $new_data = implode('', $new_data); - + $new_data = $this->getRawDocumentEngineData($this->new); $new_ref->setData($new_data); } } @@ -1860,4 +1854,20 @@ final class DifferentialChangesetParser extends Phobject { return array($old_file, $new_file); } + private function getRawDocumentEngineData(array $lines) { + $text = array(); + + foreach ($lines as $line) { + // If this is a "No newline at end of file." annotation, don't hand it + // off to the DocumentEngine. + if ($line['type'] == '\\') { + continue; + } + + $text[] = $line['text']; + } + + return implode('', $text); + } + }