mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-29 02:02:41 +01:00
ef85f49adc
Summary: This commit doesn't change license of any file. It just makes the license implicit (inherited from LICENSE file in the root directory). We are removing the headers for these reasons: - It wastes space in editors, less code is visible in editor upon opening a file. - It brings noise to diff of the first change of any file every year. - It confuses Git file copy detection when creating small files. - We don't have an explicit license header in other files (JS, CSS, images, documentation). - Using license header in every file is not obligatory: http://www.apache.org/dev/apply-license.html#new. This change is approved by Alma Chao (Lead Open Source and IP Counsel at Facebook). Test Plan: Verified that the license survived only in LICENSE file and that it didn't modify externals. Reviewers: epriestley, davidrecordon Reviewed By: epriestley CC: aran, Korvin Maniphest Tasks: T2035 Differential Revision: https://secure.phabricator.com/D3886
76 lines
1.9 KiB
PHP
76 lines
1.9 KiB
PHP
<?php
|
|
|
|
final class DifferentialHunk extends DifferentialDAO {
|
|
|
|
protected $changesetID;
|
|
protected $changes;
|
|
protected $oldOffset;
|
|
protected $oldLen;
|
|
protected $newOffset;
|
|
protected $newLen;
|
|
|
|
public function getAddedLines() {
|
|
return $this->makeContent($include = '+');
|
|
}
|
|
|
|
public function makeNewFile() {
|
|
return implode('', $this->makeContent($include = ' +'));
|
|
}
|
|
|
|
public function makeOldFile() {
|
|
return implode('', $this->makeContent($include = ' -'));
|
|
}
|
|
|
|
public function makeChanges() {
|
|
return implode('', $this->makeContent($include = '-+'));
|
|
}
|
|
|
|
final private function makeContent($include) {
|
|
$results = array();
|
|
$lines = explode("\n", $this->changes);
|
|
|
|
// NOTE: To determine whether the recomposed file should have a trailing
|
|
// newline, we look for a "\ No newline at end of file" line which appears
|
|
// after a line which we don't exclude. For example, if we're constructing
|
|
// the "new" side of a diff (excluding "-"), we want to ignore this one:
|
|
//
|
|
// - x
|
|
// \ No newline at end of file
|
|
// + x
|
|
//
|
|
// ...since it's talking about the "old" side of the diff, but interpret
|
|
// this as meaning we should omit the newline:
|
|
//
|
|
// - x
|
|
// + x
|
|
// \ No newline at end of file
|
|
|
|
$n = (strpos($include, '+') !== false ?
|
|
$this->newOffset :
|
|
$this->oldOffset);
|
|
$use_next_newline = false;
|
|
foreach ($lines as $line) {
|
|
if (!isset($line[0])) {
|
|
continue;
|
|
}
|
|
|
|
if ($line[0] == '\\') {
|
|
if ($use_next_newline) {
|
|
$results[last_key($results)] = rtrim(end($results), "\n");
|
|
}
|
|
} else if (strpos($include, $line[0]) === false) {
|
|
$use_next_newline = false;
|
|
} else {
|
|
$use_next_newline = true;
|
|
$results[$n] = substr($line, 1)."\n";
|
|
}
|
|
|
|
if ($line[0] == ' ' || strpos($include, $line[0]) !== false) {
|
|
$n++;
|
|
}
|
|
}
|
|
|
|
return $results;
|
|
}
|
|
|
|
}
|