X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fparser%2FStripState.php;h=c168aa69fa2217c4f643b7680de663f3e1094972;hb=734ca2b4d2a1246fb0ea1e54b861ab423ab5e257;hp=7e38acc70c1aedfa42e5f86b5be8352c557770ce;hpb=d1150378f15b4dd699220bee41d0ce3af8868a18;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/parser/StripState.php b/includes/parser/StripState.php index 7e38acc70c..c168aa69fa 100644 --- a/includes/parser/StripState.php +++ b/includes/parser/StripState.php @@ -37,16 +37,21 @@ class StripState { const UNSTRIP_RECURSION_LIMIT = 20; /** - * @param string $prefix + * @param string|null $prefix + * @since 1.26 The prefix argument should be omitted, as the strip marker + * prefix string is now a constant. */ - public function __construct( $prefix ) { - $this->prefix = $prefix; - $this->data = array( - 'nowiki' => array(), - 'general' => array() - ); - $this->regex = "/{$this->prefix}([^\x7f]+)" . Parser::MARKER_SUFFIX . '/'; - $this->circularRefGuard = array(); + public function __construct( $prefix = null ) { + if ( $prefix !== null ) { + wfDeprecated( __METHOD__ . ' with called with $prefix argument' . + ' (call with no arguments instead)', '1.26' ); + } + $this->data = [ + 'nowiki' => [], + 'general' => [] + ]; + $this->regex = '/' . Parser::MARKER_PREFIX . "([^\x7f]+)" . Parser::MARKER_SUFFIX . '/'; + $this->circularRefGuard = []; } /** @@ -119,7 +124,7 @@ class StripState { $oldType = $this->tempType; $this->tempType = $type; - $text = preg_replace_callback( $this->regex, array( $this, 'unstripCallback' ), $text ); + $text = preg_replace_callback( $this->regex, [ $this, 'unstripCallback' ], $text ); $this->tempType = $oldType; return $text; } @@ -166,10 +171,10 @@ class StripState { * @return StripState */ public function getSubState( $text ) { - $subState = new StripState( $this->prefix ); + $subState = new StripState(); $pos = 0; while ( true ) { - $startPos = strpos( $text, $this->prefix, $pos ); + $startPos = strpos( $text, Parser::MARKER_PREFIX, $pos ); $endPos = strpos( $text, Parser::MARKER_SUFFIX, $pos ); if ( $startPos === false || $endPos === false ) { break; @@ -202,7 +207,7 @@ class StripState { * @return array */ public function merge( $otherState, $texts ) { - $mergePrefix = Parser::getRandomString(); + $mergePrefix = wfRandomString( 16 ); foreach ( $otherState->data as $type => $items ) { foreach ( $items as $key => $value ) { @@ -211,7 +216,7 @@ class StripState { } $this->tempMergePrefix = $mergePrefix; - $texts = preg_replace_callback( $otherState->regex, array( $this, 'mergeCallback' ), $texts ); + $texts = preg_replace_callback( $otherState->regex, [ $this, 'mergeCallback' ], $texts ); $this->tempMergePrefix = null; return $texts; } @@ -222,7 +227,7 @@ class StripState { */ protected function mergeCallback( $m ) { $key = $m[1]; - return "{$this->prefix}{$this->tempMergePrefix}-$key" . Parser::MARKER_SUFFIX; + return Parser::MARKER_PREFIX . $this->tempMergePrefix . '-' . $key . Parser::MARKER_SUFFIX; } /**