'; /** * Suffix for inserted text. */ var $_ins_suffix = ''; /** * Prefix for deleted text. */ var $_del_prefix = ''; /** * Suffix for deleted text. */ var $_del_suffix = ''; /** * Header for each change block. */ var $_block_header = ''; /** * What are we currently splitting on? Used to recurse to show word-level * changes. */ var $_split_level = 'lines'; function _blockHeader($xbeg, $xlen, $ybeg, $ylen) { return $this->_block_header; } function _startBlock($header) { return $header; } function _lines($lines, $prefix = ' ', $encode = true) { if ($encode) { array_walk($lines, array(&$this, '_encode')); } return implode("\n", $lines) . "\n"; } function _added($lines) { array_walk($lines, array(&$this, '_encode')); $lines[0] = $this->_ins_prefix . $lines[0]; $lines[count($lines) - 1] .= $this->_ins_suffix; return $this->_lines($lines, ' ', false); } function _deleted($lines, $words = false) { array_walk($lines, array(&$this, '_encode')); $lines[0] = $this->_del_prefix . $lines[0]; $lines[count($lines) - 1] .= $this->_del_suffix; return $this->_lines($lines, ' ', false); } function _changed($orig, $final) { return $this->_deleted($orig) . $this->_added($final); } function _encode(&$string) { $string = htmlspecialchars($string); } }