web/wp-includes/wp-diff.php
changeset 194 32102edaa81b
parent 136 bde1974c263b
child 204 09a1c134465b
--- a/web/wp-includes/wp-diff.php	Thu Sep 16 15:45:36 2010 +0000
+++ b/web/wp-includes/wp-diff.php	Mon Nov 19 18:26:13 2012 +0100
@@ -60,17 +60,16 @@
 	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 @@
 		$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 @@
 					$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 @@
 		}
 
 		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 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 ( $orig_rows[$row] < 0 ) { // Orig is blank.  This is really an added row.
+			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 .= '<tr>' . $this->deletedLine( $orig_line ) . $this->addedLine( $final_line ) . "</tr>\n";
@@ -282,7 +287,7 @@
 	 */
 	function interleave_changed_lines( $orig, $final ) {
 
-		// Contains all pairwise string comparisons.  Keys are such that this need only be a one dimensional array.
+		// Contains all pairwise string comparisons. Keys are such that this need only be a one dimensional array.
 		$matches = array();
 		foreach ( array_keys($orig) as $o ) {
 			foreach ( array_keys($final) as $f ) {
@@ -303,7 +308,7 @@
 			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;
@@ -323,7 +328,6 @@
 		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);
@@ -336,18 +340,17 @@
 
 			if ( false === $final_pos ) { // This orig is paired with a blank final.
 				array_splice( $final_rows, $orig_pos, 0, -1 );
-			} elseif ( $final_pos < $orig_pos ) { // This orig's match is up a ways.  Pad final with blank rows.
+			} elseif ( $final_pos < $orig_pos ) { // This orig's match is up a ways. Pad final with blank rows.
 				$diff_pos = $final_pos - $orig_pos;
 				while ( $diff_pos < 0 )
 					array_splice( $final_rows, $orig_pos, 0, $diff_pos++ );
-			} elseif ( $final_pos > $orig_pos ) { // This orig's match is down a ways.  Pad orig with blank rows.
+			} elseif ( $final_pos > $orig_pos ) { // This orig's match is down a ways. Pad orig with blank rows.
 				$diff_pos = $orig_pos - $final_pos;
 				while ( $diff_pos < 0 )
 					array_splice( $orig_rows, $orig_pos, 0, $diff_pos++ );
 			}
 		}
 
-
 		// 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 ) {
@@ -421,7 +424,7 @@
 		// L1-norm of difference vector.
 		$difference = array_sum( array_map( array(&$this, 'difference'), $chars1, $chars2 ) );
 
-		// $string1 has zero length? Odd.  Give huge penalty by not dividing.
+		// $string1 has zero length? Odd. Give huge penalty by not dividing.
 		if ( !$string1 )
 			return $difference;
 
@@ -467,5 +470,3 @@
 	}
 
 }
-
-?>