X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/9e77185fafaf4e60e2b73821e0e4b9b1a11fb85f..a7cd4c052013b423c6301153f68c7fdbaa2a447b:/wp-includes/wp-diff.php diff --git a/wp-includes/wp-diff.php b/wp-includes/wp-diff.php index 4901a437..77efd455 100644 --- a/wp-includes/wp-diff.php +++ b/wp-includes/wp-diff.php @@ -153,8 +153,25 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer { public function _added( $lines, $encode = true ) { $r = ''; foreach ($lines as $line) { - if ( $encode ) - $line = htmlspecialchars( $line ); + if ( $encode ) { + $processed_line = htmlspecialchars( $line ); + + /** + * Contextually filter a diffed line. + * + * Filters TextDiff processing of diffed line. By default, diffs are processed with + * htmlspecialchars. Use this filter to remove or change the processing. Passes a context + * indicating if the line is added, deleted or unchanged. + * + * @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'. + */ + $line = apply_filters( 'process_text_diff_html', $processed_line, $line, 'added' ); + } + if ( $this->_show_split_view ) { $r .= '' . $this->emptyLine() . $this->emptyLine() . $this->addedLine( $line ) . "\n"; } else { @@ -175,8 +192,12 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer { public function _deleted( $lines, $encode = true ) { $r = ''; foreach ($lines as $line) { - if ( $encode ) - $line = htmlspecialchars( $line ); + if ( $encode ) { + $processed_line = htmlspecialchars( $line ); + + /** This filter is documented in wp-includes/wp-diff.php */ + $line = apply_filters( 'process_text_diff_html', $processed_line, $line, 'deleted' ); + } if ( $this->_show_split_view ) { $r .= '' . $this->deletedLine( $line ) . $this->emptyLine() . $this->emptyLine() . "\n"; } else { @@ -198,8 +219,12 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer { public function _context( $lines, $encode = true ) { $r = ''; foreach ($lines as $line) { - if ( $encode ) - $line = htmlspecialchars( $line ); + if ( $encode ) { + $processed_line = htmlspecialchars( $line ); + + /** This filter is documented in wp-includes/wp-diff.php */ + $line = apply_filters( 'process_text_diff_html', $processed_line, $line, 'unchanged' ); + } if ( $this->_show_split_view ) { $r .= '' . $this->contextLine( $line ) . $this->emptyLine() . $this->contextLine( $line ) . "\n"; } else { @@ -309,9 +334,9 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer { * * @since 2.6.0 * - * @param unknown_type $orig - * @param unknown_type $final - * @return unknown + * @param array $orig + * @param array $final + * @return array */ public function interleave_changed_lines( $orig, $final ) {