Index: wp-admin/includes/revision.php
===================================================================
--- wp-admin/includes/revision.php	(revision 25976)
+++ wp-admin/includes/revision.php	(working copy)
@@ -73,7 +73,16 @@
 		/** This filter is documented in wp-admin/includes/revision.php */
 		$content_to = apply_filters( "_wp_post_revision_field_$field", $compare_to->$field, $field, $compare_to, 'to' );
 
-		$diff = wp_text_diff( $content_from, $content_to, array( 'show_split_view' => true ) );
+		/**
+		 * Filter revisions table structure.
+		 *
+		 * Specify revision comparison table as default split (two columns) or not split (single column).
+		 *
+		 * @since 3.8.0
+		 * @param boolean null Whether to display revisions in a split view.
+		 */
+		$show_split_view = apply_filters( 'show_revisions_split_view', true );
+		$diff = wp_text_diff( $content_from, $content_to, array( 'show_split_view' => $show_split_view ) );
 
 		if ( ! $diff && 'post_title' === $field ) {
 			// It's a better user experience to still show the Title, even if it didn't change.
Index: wp-includes/wp-diff.php
===================================================================
--- wp-includes/wp-diff.php	(revision 25976)
+++ wp-includes/wp-diff.php	(working copy)
@@ -154,7 +154,19 @@
 		$r = '';
 		foreach ($lines as $line) {
 			if ( $encode )
-				$line = htmlspecialchars( $line );
+
+				/**
+				 * Contextually filter a diffed line.
+				 *
+				 * Filters TextDiff default application of htmlspecialchars to the returned html for
+				 * all diff calculations. This filter is passed the unfiltered html and the context:
+				 * 'added', 'deleted' or 'context' (unchanged).
+				 *
+				 * @since 3.8.0
+				 * @param String $line The unfiltered diffed line.
+		 		 * @param string null  The lines context. Values are 'added', 'deleted' or 'context' (unchanged).
+				 */
+				$line = apply_filters( 'process_text_diff_html', htmlspecialchars( $line ), $line, 'added' );
 			if ( $this->_show_split_view ) {
 				$r .= '<tr>' . $this->emptyLine() . $this->emptyLine() . $this->addedLine( $line ) . "</tr>\n";
 			} else {
@@ -176,7 +188,8 @@
 		$r = '';
 		foreach ($lines as $line) {
 			if ( $encode )
-				$line = htmlspecialchars( $line );
+				/** This filter is documented in /wp-includes/wp-diff.php */
+				$line = apply_filters( 'process_text_diff_html', htmlspecialchars( $line ), $line, 'deleted' );
 			if ( $this->_show_split_view ) {
 				$r .= '<tr>' . $this->deletedLine( $line ) . $this->emptyLine() . $this->emptyLine() . "</tr>\n";
 			} else {
@@ -199,7 +212,8 @@
 		$r = '';
 		foreach ($lines as $line) {
 			if ( $encode )
-				$line = htmlspecialchars( $line );
+				/** This filter is documented in /wp-includes/wp-diff.php */
+				$line = apply_filters( 'process_text_diff_html', htmlspecialchars( $line ), $line, 'context' );
 			if (  $this->_show_split_view ) {
 				$r .= '<tr>' . $this->contextLine( $line ) . $this->emptyLine() . $this->contextLine( $line )  . "</tr>\n";
 			} else {
