Вход Регистрация
Файл: framework/gii/components/Pear/Text/Diff/Mapped.php
Строк: 73
<?php
/**
 * $Horde: framework/Text_Diff/Diff/Mapped.php,v 1.3.2.4 2009/01/06 15:23:41 jan Exp $
 *
 * Copyright 2007-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.
 *
 * @package Text_Diff
 * @author  Geoffrey T. Dairiki <dairiki@dairiki.org>
 */
class Text_Diff_Mapped extends Text_Diff {

    
/**
     * Computes a diff between sequences of strings.
     *
     * This can be used to compute things like case-insensitve diffs, or diffs
     * which ignore changes in white-space.
     *
     * @param array $from_lines         An array of strings.
     * @param array $to_lines           An array of strings.
     * @param array $mapped_from_lines  This array should have the same size
     *                                  number of elements as $from_lines.  The
     *                                  elements in $mapped_from_lines and
     *                                  $mapped_to_lines are what is actually
     *                                  compared when computing the diff.
     * @param array $mapped_to_lines    This array should have the same number
     *                                  of elements as $to_lines.
     */
    
function __construct($from_lines$to_lines,
                              
$mapped_from_lines$mapped_to_lines)
    {
        
assert(count($from_lines) == count($mapped_from_lines));
        
assert(count($to_lines) == count($mapped_to_lines));

        
parent::Text_Diff($mapped_from_lines$mapped_to_lines);

        
$xi $yi 0;
        for (
$i 0$i count($this->_edits); $i++) {
            
$orig = &$this->_edits[$i]->orig;
            if (
is_array($orig)) {
                
$orig array_slice($from_lines$xicount($orig));
                
$xi += count($orig);
            }

            
$final = &$this->_edits[$i]->final;
            if (
is_array($final)) {
                
$final array_slice($to_lines$yicount($final));
                
$yi += count($final);
            }
        }
    }

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