wiclear-2007-07-19/inc/classes/PEAR/Text_Diff/Diff/Renderer/unified2.php
<?php
//require_once 'Text/Diff/Renderer.php';
/**
* "Unified" diff renderer.
*
* This class renders the diff in classic "unified diff" format.
*
* $Horde: framework/Text_Diff/Diff/Renderer/unified.php,v 1.5 2006/01/08 00:06:57 jan Exp $
*
* @package Text_Diff
*/
class Text_Diff_Renderer_unified2 extends Text_Diff_Renderer {
/**
* Number of leading context "lines" to preserve.
*/
var $_leading_context_lines = 4;
/**
* Number of trailing context "lines" to preserve.
*/
var $_trailing_context_lines = 4;
function _blockHeader($xbeg, $xlen, $ybeg, $ylen)
{
if ($xlen != 1) {
$xbeg .= ',' . $xlen;
}
if ($ylen != 1) {
$ybeg .= ',' . $ylen;
}
return "<div>@@ -$xbeg +$ybeg @@</div>". "\n";
}
function _lines($lines, $prefix = ' ', $sufix = ' ')
{
return $prefix . implode("\n$prefix", $lines) .$sufix. "\n";
}
function _added($lines)
{
return '<div class="difftext">'.$this->_lines($lines, '<div class="final"><tt class="prefix">+</tt>','</div>').'</div>'. "\n";
}
function _deleted($lines)
{
return '<div class="difftext">'.$this->_lines($lines, '<div class="original"><tt class="prefix">-</tt>','</div>').'</div>'. "\n";
}
function _addedinline($lines)
{
return $this->_lines($lines, '<div class="final"><tt class="prefix">+</tt>','</div>'). "\n";
}
function _deletedinline($lines)
{
return $this->_lines($lines, '<div class="original"><tt class="prefix">-</tt>','</div>'). "\n";
}
function _changed($orig, $final)
{
return '<div class="difftext">'.$this->_deletedinline($orig) . $this->_addedinline($final).'</div>'. "\n";
}
function _context($lines)
{
return '<div class="difftext">'.$this->_lines($lines, '<tt class="prefix"> </tt>').'</div>'. "\n";
}
/*function _lines($lines, $prefix = ' ')
{
$html = '';
foreach($lines as $line){
if(is_array($line)){
$html .= '<div>'.$prefix . implode("\n$prefix", $line) .'</div>'. "\n";
}else{
$html .= '<div>'.$prefix . $line .'</div>'. "\n";
}
}
return $html;
}*/
function _startDiff()
{
return "\n".'<div id="diff">'."\n";
}
function _endDiff()
{
return '</div>'."\n";
}
function _startBlock($header)
{
return "\n".'<div class="block">'."\n";
}
function _endBlock()
{
return '</div>'."\n";
}
}