Вход Регистрация
Файл: ips_kernel/PEAR/Text/Diff/Renderer/ipsunified.php
Строк: 117
<?php
/**
 * "Inline" diff renderer.
 *
 * $Horde: framework/Text_Diff/Diff/Renderer/inline.php,v 1.4.10.16 2009/07/24 13:25:29 jan Exp $
 *
 * Copyright 2004-2009 The Horde Project (http://www.horde.org/)
 *
 * See the enclosed file COPYING for license information (LGPL). If you did
 * not receive this file, see http://opensource.org/licenses/lgpl-license.php.
 *
 * @author  Ciprian Popovici
 * @package Text_Diff
 */

/** Text_Diff_Renderer */
require_once 'Text/Diff/Renderer.php';/*noLibHook*/

/**
 * "Inline" diff renderer.
 *
 * This class renders diffs in the Wiki-style "inline" format.
 *
 * @author  Ciprian Popovici
 * @package Text_Diff
 */
class Text_Diff_Renderer_ipsunified extends Text_Diff_Renderer {

    
/**
     * Number of leading context "lines" to preserve.
     */
    
var $_leading_context_lines = 10000;

    
/**
     * Number of trailing context "lines" to preserve.
     */
    
var $_trailing_context_lines = 10000;

    
/**
     * Prefix for inserted text.
     */
    
var $_ins_prefix = '<ins>';

    
/**
     * Suffix for inserted text.
     */
    
var $_ins_suffix = '</ins>';

    
/**
     * Prefix for deleted text.
     */
    
var $_del_prefix = '<del>';

    
/**
     * Suffix for deleted text.
     */
    
var $_del_suffix = '</del>';

    
/**
     * 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);
    }

}
Онлайн: 2
Реклама