class _DiffEngine (View source)

Class used internally by Diff to actually compute the diffs.

The algorithm used here is mostly lifted from the perl module Algorithm::Diff (version 1.06) by Ned Konz, which is available at: http://www.perl.com/CPAN/authors/id/N/NE/NEDKONZ/Algorithm-Diff-1.06.zip

More ideas are taken from: http://www.ics.uci.edu/~eppstein/161/960229.html

Some ideas are (and a bit of code) are from from analyze.c, from GNU diffutils-2.7, which can be found at: ftp://gnudist.gnu.org/pub/gnu/diffutils/diffutils-2.7.tar.gz

Finally, some ideas (subdivision by NCHUNKS > 2, and some optimizations) are my own.

Methods

public
diff($from_lines, $to_lines)

No description

public
_diag($xoff, $xlim, $yoff, $ylim, $nchunks)

No description

public
_lcs_pos($ypos)

No description

public
_compareseq($xoff, $xlim, $yoff, $ylim)

No description

public
_shift_boundaries($lines, $changed, $other_changed)

No description

Details

diff($from_lines, $to_lines)

No description

Parameters

$from_lines
$to_lines

_diag($xoff, $xlim, $yoff, $ylim, $nchunks)

No description

Parameters

$xoff
$xlim
$yoff
$ylim
$nchunks

_lcs_pos($ypos)

No description

Parameters

$ypos

_compareseq($xoff, $xlim, $yoff, $ylim)

No description

Parameters

$xoff
$xlim
$yoff
$ylim

_shift_boundaries($lines, $changed, $other_changed)

No description

Parameters

$lines
$changed
$other_changed