diff -r 3d4e9c994f10 -r a86126ab1dd4 wp/wp-includes/class-wp-text-diff-renderer-table.php --- a/wp/wp-includes/class-wp-text-diff-renderer-table.php Tue Oct 22 16:11:46 2019 +0200 +++ b/wp/wp-includes/class-wp-text-diff-renderer-table.php Tue Dec 15 13:49:49 2020 +0100 @@ -100,7 +100,7 @@ /** * @ignore * - * @param array $lines + * @param array $lines * @param string $prefix */ public function _lines( $lines, $prefix = ' ' ) { @@ -113,7 +113,7 @@ * @return string */ public function addedLine( $line ) { - return "{$line}"; + return "" . __( 'Added:' ) . " {$line}"; } @@ -124,7 +124,7 @@ * @return string */ public function deletedLine( $line ) { - return "{$line}"; + return "" . __( 'Deleted:' ) . " {$line}"; } /** @@ -134,7 +134,7 @@ * @return string */ public function contextLine( $line ) { - return "{$line}"; + return "" . __( 'Unchanged:' ) . " {$line}"; } /** @@ -150,7 +150,7 @@ * @ignore * * @param array $lines - * @param bool $encode + * @param bool $encode * @return string */ public function _added( $lines, $encode = true ) { @@ -168,9 +168,9 @@ * * @since 4.1.0 * - * @param String $processed_line The processed diffed line. - * @param String $line The unprocessed diffed line. - * @param string null The line context. Values are 'added', 'deleted' or 'unchanged'. + * @param string $processed_line The processed diffed line. + * @param string $line The unprocessed diffed line. + * @param string $context The line context. Values are 'added', 'deleted' or 'unchanged'. */ $line = apply_filters( 'process_text_diff_html', $processed_line, $line, 'added' ); } @@ -188,7 +188,7 @@ * @ignore * * @param array $lines - * @param bool $encode + * @param bool $encode * @return string */ public function _deleted( $lines, $encode = true ) { @@ -213,7 +213,7 @@ * @ignore * * @param array $lines - * @param bool $encode + * @param bool $encode * @return string */ public function _context( $lines, $encode = true ) { @@ -249,32 +249,34 @@ public function _changed( $orig, $final ) { $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 - // match is numeric: an index in other column - // 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 + /* + * 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. + * - match is numeric: an index in other column. + * - 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 + // These will hold the word changes as determined by an inline diff. $orig_diffs = array(); $final_diffs = array(); - // Compute word diffs for each matched pair using the inline diff + // Compute word diffs for each matched pair using the inline diff. foreach ( $orig_matches as $o => $f ) { if ( is_numeric( $o ) && is_numeric( $f ) ) { $text_diff = new Text_Diff( 'auto', array( array( $orig[ $o ] ), array( $final[ $f ] ) ) ); $renderer = new $this->inline_diff_renderer; $diff = $renderer->render( $text_diff ); - // If they're too different, don't include any or + // If they're too different, don't include any or 's. if ( preg_match_all( '!(.*?|.*?)!', $diff, $diff_matches ) ) { - // length of all text between or + // Length of all text between or . $stripped_matches = strlen( strip_tags( join( ' ', $diff_matches[0] ) ) ); - // since we count lengith of text between or (instead of picking just one), - // we double the length of chars not in those tags. + // Since we count length of text between or (instead of picking just one), + // we double the length of chars not in those tags. $stripped_diff = strlen( strip_tags( $diff ) ) * 2 - $stripped_matches; $diff_ratio = $stripped_matches / $stripped_diff; if ( $diff_ratio > $this->_diff_threshold ) { @@ -282,7 +284,7 @@ } } - // Un-inline the diffs by removing del or ins + // Un-inline the diffs by removing or . $orig_diffs[ $o ] = preg_replace( '|.*?|', '', $diff ); $final_diffs[ $f ] = preg_replace( '|.*?|', '', $diff ); } @@ -335,24 +337,24 @@ * @param array $orig Lines of the original version of the text. * @param array $final Lines of the final version of the text. * @return array { - * Array containing results of comparing the original text to the final text. + * Array containing results of comparing the original text to the final text. * - * @type array $orig_matches Associative array of original matches. Index == row - * number of `$orig`, value == corresponding row number - * of that same line in `$final` or 'x' if there is no - * corresponding row (indicating it is a deleted line). - * @type array $final_matches Associative array of final matches. Index == row - * number of `$final`, value == corresponding row number - * of that same line in `$orig` or 'x' if there is no - * corresponding row (indicating it is a new line). - * @type array $orig_rows Associative array of interleaved rows of `$orig` with - * blanks to keep matches aligned with side-by-side diff - * of `$final`. A value >= 0 corresponds to index of `$orig`. - * Value < 0 indicates a blank row. - * @type array $final_rows Associative array of interleaved rows of `$final` with - * blanks to keep matches aligned with side-by-side diff - * of `$orig`. A value >= 0 corresponds to index of `$final`. - * Value < 0 indicates a blank row. + * @type array $orig_matches Associative array of original matches. Index == row + * number of `$orig`, value == corresponding row number + * of that same line in `$final` or 'x' if there is no + * corresponding row (indicating it is a deleted line). + * @type array $final_matches Associative array of final matches. Index == row + * number of `$final`, value == corresponding row number + * of that same line in `$orig` or 'x' if there is no + * corresponding row (indicating it is a new line). + * @type array $orig_rows Associative array of interleaved rows of `$orig` with + * blanks to keep matches aligned with side-by-side diff + * of `$final`. A value >= 0 corresponds to index of `$orig`. + * Value < 0 indicates a blank row. + * @type array $final_rows Associative array of interleaved rows of `$final` with + * blanks to keep matches aligned with side-by-side diff + * of `$orig`. A value >= 0 corresponds to index of `$final`. + * Value < 0 indicates a blank row. * } */ public function interleave_changed_lines( $orig, $final ) { @@ -374,34 +376,35 @@ $o = (int) $o; $f = (int) $f; - // Already have better matches for these guys + // Already have better matches for these guys. if ( isset( $orig_matches[ $o ] ) && isset( $final_matches[ $f ] ) ) { continue; } - // First match for these guys. Must be best match + // First match for these guys. Must be best match. if ( ! isset( $orig_matches[ $o ] ) && ! isset( $final_matches[ $f ] ) ) { $orig_matches[ $o ] = $f; $final_matches[ $f ] = $o; continue; } - // Best match of this final is already taken? Must mean this final is a new row. + // Best match of this final is already taken? Must mean this final is a new row. if ( isset( $orig_matches[ $o ] ) ) { $final_matches[ $f ] = 'x'; } elseif ( isset( $final_matches[ $f ] ) ) { - // Best match of this orig is already taken? Must mean this orig is a deleted row. + // Best match of this orig is already taken? Must mean this orig is a deleted row. $orig_matches[ $o ] = 'x'; } } - // We read the text in this order + // We read the text in this order. ksort( $orig_matches ); ksort( $final_matches ); // Stores rows and blanks for each column. - $orig_rows = $orig_rows_copy = array_keys( $orig_matches ); - $final_rows = array_keys( $final_matches ); + $orig_rows = array_keys( $orig_matches ); + $orig_rows_copy = $orig_rows; + $final_rows = array_keys( $final_matches ); // Interleaves rows with blanks to keep matches aligned. // We may end up with some extraneous blank rows, but we'll just ignore them later. @@ -420,7 +423,7 @@ } } - // Pad the ends with blank rows if the columns aren't the same length + // Pad the ends with blank rows if the columns aren't the same length. $diff_count = count( $orig_rows ) - count( $final_rows ); if ( $diff_count < 0 ) { while ( $diff_count < 0 ) { @@ -499,7 +502,7 @@ * @return mixed Property. */ public function __get( $name ) { - if ( in_array( $name, $this->compat_fields ) ) { + if ( in_array( $name, $this->compat_fields, true ) ) { return $this->$name; } } @@ -514,7 +517,7 @@ * @return mixed Newly-set property. */ public function __set( $name, $value ) { - if ( in_array( $name, $this->compat_fields ) ) { + if ( in_array( $name, $this->compat_fields, true ) ) { return $this->$name = $value; } } @@ -528,7 +531,7 @@ * @return bool Whether the property is set. */ public function __isset( $name ) { - if ( in_array( $name, $this->compat_fields ) ) { + if ( in_array( $name, $this->compat_fields, true ) ) { return isset( $this->$name ); } } @@ -541,7 +544,7 @@ * @param string $name Property to unset. */ public function __unset( $name ) { - if ( in_array( $name, $this->compat_fields ) ) { + if ( in_array( $name, $this->compat_fields, true ) ) { unset( $this->$name ); } }