Public Member Functions

Text_MappedDiff Class Reference

Inheritance diagram for Text_MappedDiff:
Collaboration diagram for Text_MappedDiff:

Public Member Functions

 Text_MappedDiff ($from_lines, $to_lines, $mapped_from_lines, $mapped_to_lines)
 Computes a diff between sequences of strings.

Detailed Description

Definition at line 201 of file Diff.php.


Member Function Documentation

Text_MappedDiff::Text_MappedDiff ( from_lines,
to_lines,
mapped_from_lines,
mapped_to_lines 
)

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.

Parameters:
array $from_lines An array of strings.
array $to_lines An array of strings.
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.
array $mapped_to_lines This array should have the same number of elements as $to_lines.

Definition at line 219 of file Diff.php.

References Text_Diff::Text_Diff().

    {
        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, $xi, count($orig));
                $xi += count($orig);
            }

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

Here is the call graph for this function:


The documentation for this class was generated from the following file: