Skip to content

Commit 7e26a5f

Browse files
Revert "1"
This reverts commit 6227cf8.
1 parent 6227cf8 commit 7e26a5f

File tree

2 files changed

+21
-45
lines changed

2 files changed

+21
-45
lines changed

src/Differ.php

Lines changed: 19 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -119,67 +119,41 @@ private function checkIfDiffInOld(array $diff)
119119
*
120120
* @return string
121121
*/
122-
private function getBuffer(array $diff, array $old, $start, $end)
122+
private function getBuffer($diff, $old, $start, $end)
123123
{
124-
$buffer = $this->header;
125-
126-
if (!isset($old[$start])) {
127-
$buffer = $this->getDiffBufferElementNew($diff, $buffer, $start);
128-
++$start;
129-
}
130-
124+
$newChunk = true;
125+
$buffer = $this->header;
131126
for ($i = $start; $i < $end; $i++) {
132127
if (isset($old[$i])) {
133-
$i = $old[$i];
134-
$buffer = $this->getDiffBufferElementNew($diff, $buffer, $i);
135-
} else {
136-
$buffer = $this->getDiffBufferElement($diff, $buffer, $i);
128+
$buffer .= "\n";
129+
$newChunk = true;
130+
$i = $old[$i];
137131
}
132+
$buffer = $this->getDiffBufferElement($diff, $i, $newChunk, $buffer);
133+
$newChunk = false;
138134
}
139135

140136
return $buffer;
141137
}
142138

143-
/**
144-
* Gets individual buffer element.
145-
*
146-
* @param array $diff
147-
* @param string $buffer
148-
* @param int $diffIndex
149-
*
150-
* @return string
151-
*/
152-
private function getDiffBufferElement(array $diff, $buffer, $diffIndex)
139+
private function getDiffBufferElement($diff, $i, $newChunk, $buffer)
153140
{
154-
if ($diff[$diffIndex][1] === 1 /* ADDED */) {
155-
$buffer .= '+' . $diff[$diffIndex][0] . "\n";
156-
} elseif ($diff[$diffIndex][1] === 2 /* REMOVED */) {
157-
$buffer .= '-' . $diff[$diffIndex][0] . "\n";
141+
if ($newChunk) {
142+
if ($this->showNonDiffLines === true) {
143+
$buffer .= "@@ @@\n";
144+
}
145+
}
146+
if ($diff[$i][1] === 1 /* ADDED */) {
147+
$buffer .= '+' . $diff[$i][0] . "\n";
148+
} elseif ($diff[$i][1] === 2 /* REMOVED */) {
149+
$buffer .= '-' . $diff[$i][0] . "\n";
158150
} elseif ($this->showNonDiffLines === true) {
159-
$buffer .= ' ' . $diff[$diffIndex][0] . "\n";
151+
$buffer .= ' ' . $diff[$i][0] . "\n";
160152
}
161153

162154
return $buffer;
163155
}
164156

165-
/**
166-
* Gets individual buffer element with opening.
167-
*
168-
* @param array $diff
169-
* @param string $buffer
170-
* @param int $diffIndex
171-
*
172-
* @return string
173-
*/
174-
private function getDiffBufferElementNew(array $diff, $buffer, $diffIndex)
175-
{
176-
if ($this->showNonDiffLines === true) {
177-
$buffer .= "@@ @@\n";
178-
}
179-
180-
return $this->getDiffBufferElement($diff, $buffer, $diffIndex);
181-
}
182-
183157
/**
184158
* Returns the diff between two arrays or strings as array.
185159
*

tests/DifferTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,7 @@ public function textProvider()
312312
a
313313
-b
314314
+p
315+
315316
@@ @@
316317
i
317318
-j
@@ -331,6 +332,7 @@ public function textProvider()
331332
a
332333
-b
333334
+p
335+
334336
@@ @@
335337
i
336338
-j

0 commit comments

Comments
 (0)