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 ) {