From bbf0683deb8c04e3103f4b801a57cda72c98e182 Mon Sep 17 00:00:00 2001 From: John Blackbourn Date: Thu, 28 Sep 2017 13:58:23 +0000 Subject: [PATCH] External Libraries: Update the `Text_Diff_Engine_native` class for PHP 7.2 compatibility. This removes usage of `each()` and usage of text strings passed to `assert()`. Props bor0 Fixes #41526 git-svn-id: https://develop.svn.wordpress.org/trunk@41633 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/Text/Diff/Engine/native.php | 32 +++++++-------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/src/wp-includes/Text/Diff/Engine/native.php b/src/wp-includes/Text/Diff/Engine/native.php index e908cfecca..88b1d40826 100644 --- a/src/wp-includes/Text/Diff/Engine/native.php +++ b/src/wp-includes/Text/Diff/Engine/native.php @@ -18,10 +18,10 @@ * Geoffrey T. Dairiki . The original PHP version of this * code was written by him, and is used/adapted with his permission. * - * Copyright 2004-2010 The Horde Project (http://www.horde.org/) + * Copyright 2004-2017 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you did - * not receive this file, see http://opensource.org/licenses/lgpl-license.php. + * not receive this file, see http://www.horde.org/licenses/lgpl21. * * @author Geoffrey T. Dairiki * @package Text_Diff @@ -189,27 +189,17 @@ class Text_Diff_Engine_native { continue; } $matches = $ymatches[$line]; - reset($matches); - while (list(, $y) = each($matches)) { + foreach ($matches as $y) { if (empty($this->in_seq[$y])) { $k = $this->_lcsPos($y); assert($k > 0); $ymids[$k] = $ymids[$k - 1]; break; - } - } - while (list(, $y) = each($matches)) { - if ($y > $this->seq[$k - 1]) { + } elseif ($y > $this->seq[$k - 1]) { assert($y <= $this->seq[$k]); - /* Optimization: this is a common case: next match is - * just replacing previous match. */ $this->in_seq[$this->seq[$k]] = false; $this->seq[$k] = $y; $this->in_seq[$y] = 1; - } elseif (empty($this->in_seq[$y])) { - $k = $this->_lcsPos($y); - assert($k > 0); - $ymids[$k] = $ymids[$k - 1]; } } } @@ -330,7 +320,7 @@ class Text_Diff_Engine_native { $i = 0; $j = 0; - assert('count($lines) == count($changed)'); + assert(count($lines) == count($changed)); $len = count($lines); $other_len = count($other_changed); @@ -351,7 +341,7 @@ class Text_Diff_Engine_native { } while ($i < $len && ! $changed[$i]) { - assert('$j < $other_len && ! $other_changed[$j]'); + assert($j < $other_len && ! $other_changed[$j]); $i++; $j++; while ($j < $other_len && $other_changed[$j]) { $j++; @@ -383,11 +373,11 @@ class Text_Diff_Engine_native { while ($start > 0 && $changed[$start - 1]) { $start--; } - assert('$j > 0'); + assert($j > 0); while ($other_changed[--$j]) { continue; } - assert('$j >= 0 && !$other_changed[$j]'); + assert($j >= 0 && !$other_changed[$j]); } /* Set CORRESPONDING to the end of the changed run, at the @@ -408,7 +398,7 @@ class Text_Diff_Engine_native { $i++; } - assert('$j < $other_len && ! $other_changed[$j]'); + assert($j < $other_len && ! $other_changed[$j]); $j++; if ($j < $other_len && $other_changed[$j]) { $corresponding = $i; @@ -424,11 +414,11 @@ class Text_Diff_Engine_native { while ($corresponding < $i) { $changed[--$start] = 1; $changed[--$i] = 0; - assert('$j > 0'); + assert($j > 0); while ($other_changed[--$j]) { continue; } - assert('$j >= 0 && !$other_changed[$j]'); + assert($j >= 0 && !$other_changed[$j]); } } }