This patch adds and updates documentation. The most significant changes are: * getOrig() and getClosing() can return false. However, this is only possible for add and remove operations. These have only one side. * The constructors of the subclasses are not meant to accept false, and are in fact never called with false. For the same reason. Only add and remove operations are allowed to miss one of the two sides. Change-Id: I9f45f34945e0297e1ea8d3e8ff9e9c53e60e7706
57 lines
1.6 KiB
PHP
57 lines
1.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* A PHP diff engine for phpwiki. (Taken from phpwiki-1.3.3)
|
|
*
|
|
* Copyright © 2000, 2001 Geoffrey T. Dairiki <dairiki@dairiki.org>
|
|
* You may copy this code freely under the conditions of the GPL.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*
|
|
* @file
|
|
* @ingroup DifferenceEngine
|
|
*/
|
|
|
|
/**
|
|
* Extends DiffOp. Used to mark strings that have been
|
|
* copied from one string array to the other.
|
|
*
|
|
* @internal
|
|
* @ingroup DifferenceEngine
|
|
*/
|
|
class DiffOpCopy extends DiffOp {
|
|
/** @inheritDoc */
|
|
public $type = 'copy';
|
|
|
|
/**
|
|
* @param string[] $orig
|
|
* @param string[]|false $closing Should either be identical to $orig, or not given
|
|
*/
|
|
public function __construct( $orig, $closing = false ) {
|
|
if ( !is_array( $closing ) ) {
|
|
$closing = $orig;
|
|
}
|
|
$this->orig = $orig;
|
|
$this->closing = $closing;
|
|
}
|
|
|
|
/**
|
|
* @return DiffOpCopy
|
|
*/
|
|
public function reverse() {
|
|
return new DiffOpCopy( $this->closing, $this->orig );
|
|
}
|
|
}
|