Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 4 |
CRAP | |
0.00% |
0 / 38 |
HWLDFWordAccumulator | |
0.00% |
0 / 1 |
|
0.00% |
0 / 4 |
132 | |
0.00% |
0 / 38 |
_flushGroup | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 11 |
|||
_flushLine | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 9 |
|||
addWords | |
0.00% |
0 / 1 |
30 | |
0.00% |
0 / 15 |
|||
getLines | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\Component\Diff\Engine\HWLDFWordAccumulator. | |
*/ | |
namespace Drupal\Component\Diff\Engine; | |
use Drupal\Component\Utility\Unicode; | |
/** | |
* Additions by Axel Boldt follow, partly taken from diff.php, phpwiki-1.3.3 | |
* | |
*/ | |
/** | |
* @todo document | |
* @private | |
* @subpackage DifferenceEngine | |
*/ | |
class HWLDFWordAccumulator { | |
/** | |
* An iso-8859-x non-breaking space. | |
*/ | |
const NBSP = ' '; | |
protected $lines = array(); | |
protected $line = ''; | |
protected $group = ''; | |
protected $tag = ''; | |
protected function _flushGroup($new_tag) { | |
if ($this->group !== '') { | |
if ($this->tag == 'mark') { | |
$this->line = $this->line . '<span class="diffchange">' . $this->group . '</span>'; | |
} | |
else { | |
$this->line = $this->line . $this->group; | |
} | |
} | |
$this->group = ''; | |
$this->tag = $new_tag; | |
} | |
protected function _flushLine($new_tag) { | |
$this->_flushGroup($new_tag); | |
if ($this->line != '') { | |
array_push($this->lines, $this->line); | |
} | |
else { | |
// make empty lines visible by inserting an NBSP | |
array_push($this->lines, $this::NBSP); | |
} | |
$this->line = ''; | |
} | |
public function addWords($words, $tag = '') { | |
if ($tag != $this->tag) { | |
$this->_flushGroup($tag); | |
} | |
foreach ($words as $word) { | |
// new-line should only come as first char of word. | |
if ($word == '') { | |
continue; | |
} | |
if ($word[0] == "\n") { | |
$this->_flushLine($tag); | |
$word = Unicode::substr($word, 1); | |
} | |
assert(!strstr($word, "\n")); | |
$this->group .= $word; | |
} | |
} | |
public function getLines() { | |
$this->_flushLine('~done'); | |
return $this->lines; | |
} | |
} |