@@ -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 *
0 commit comments