X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/11be8dc178e77d0b46189bbd8e33a216a9b90942..cd3609994b39a094ff7528b93f55631bb213fd7f:/wp-includes/wp-diff.php diff --git a/wp-includes/wp-diff.php b/wp-includes/wp-diff.php index 3843223c..052bf133 100644 --- a/wp-includes/wp-diff.php +++ b/wp-includes/wp-diff.php @@ -60,17 +60,16 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer { var $inline_diff_renderer = 'WP_Text_Diff_Renderer_inline'; /** - * PHP4 Constructor - Call parent constructor with params array. + * Constructor - Call parent constructor with params array. * * This will set class properties based on the key value pairs in the array. * - * @since unknown + * @since 2.6.0 * * @param array $params */ - function Text_Diff_Renderer_Table( $params = array() ) { - $parent = get_parent_class($this); - $this->$parent( $params ); + function __construct( $params = array() ) { + parent::__construct( $params ); } /** @@ -203,15 +202,14 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer { $r = ''; // Does the aforementioned additional processing - // *_matches tell what rows are "the same" in orig and final. Those pairs will be diffed to get word changes + // *_matches tell what rows are "the same" in orig and final. Those pairs will be diffed to get word changes // match is numeric: an index in other column - // match is 'X': no match. It is a new row + // match is 'X': no match. It is a new row // *_rows are column vectors for the orig column and the final column. // row >= 0: an indix of the $orig or $final array // row < 0: a blank row for that column list($orig_matches, $final_matches, $orig_rows, $final_rows) = $this->interleave_changed_lines( $orig, $final ); - // These will hold the word changes as determined by an inline diff $orig_diffs = array(); $final_diffs = array(); @@ -232,7 +230,7 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer { $stripped_diff = strlen(strip_tags( $diff )) * 2 - $stripped_matches; $diff_ratio = $stripped_matches / $stripped_diff; if ( $diff_ratio > $this->_diff_threshold ) - continue; // Too different. Don't save diffs. + continue; // Too different. Don't save diffs. } // Un-inline the diffs by removing del or ins @@ -242,21 +240,28 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer { } foreach ( array_keys($orig_rows) as $row ) { - // Both columns have blanks. Ignore them. + // Both columns have blanks. Ignore them. if ( $orig_rows[$row] < 0 && $final_rows[$row] < 0 ) continue; - // If we have a word based diff, use it. Otherwise, use the normal line. - $orig_line = isset($orig_diffs[$orig_rows[$row]]) - ? $orig_diffs[$orig_rows[$row]] - : htmlspecialchars($orig[$orig_rows[$row]]); - $final_line = isset($final_diffs[$final_rows[$row]]) - ? $final_diffs[$final_rows[$row]] - : htmlspecialchars($final[$final_rows[$row]]); - - if ( $orig_rows[$row] < 0 ) { // Orig is blank. This is really an added row. + // If we have a word based diff, use it. Otherwise, use the normal line. + if ( isset( $orig_diffs[$orig_rows[$row]] ) ) + $orig_line = $orig_diffs[$orig_rows[$row]]; + elseif ( isset( $orig[$orig_rows[$row]] ) ) + $orig_line = htmlspecialchars($orig[$orig_rows[$row]]); + else + $orig_line = ''; + + if ( isset( $final_diffs[$final_rows[$row]] ) ) + $final_line = $final_diffs[$final_rows[$row]]; + elseif ( isset( $final[$final_rows[$row]] ) ) + $final_line = htmlspecialchars($final[$final_rows[$row]]); + else + $final_line = ''; + + if ( $orig_rows[$row] < 0 ) { // Orig is blank. This is really an added row. $r .= $this->_added( array($final_line), false ); - } elseif ( $final_rows[$row] < 0 ) { // Final is blank. This is really a deleted row. + } elseif ( $final_rows[$row] < 0 ) { // Final is blank. This is really a deleted row. $r .= $this->_deleted( array($orig_line), false ); } else { // A true changed row. $r .= '