From a1789ddde42033f1b05cc4929491214ee6e79383 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Thu, 17 Dec 2015 09:15:42 +0100 Subject: Update to MediaWiki 1.26.0 --- includes/parser/CoreParserFunctions.php | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'includes/parser/CoreParserFunctions.php') diff --git a/includes/parser/CoreParserFunctions.php b/includes/parser/CoreParserFunctions.php index 830a68fc..7639e2f8 100644 --- a/includes/parser/CoreParserFunctions.php +++ b/includes/parser/CoreParserFunctions.php @@ -41,7 +41,7 @@ class CoreParserFunctions { $noHashFunctions = array( 'ns', 'nse', 'urlencode', 'lcfirst', 'ucfirst', 'lc', 'uc', 'localurl', 'localurle', 'fullurl', 'fullurle', 'canonicalurl', - 'canonicalurle', 'formatnum', 'grammar', 'gender', 'plural', + 'canonicalurle', 'formatnum', 'grammar', 'gender', 'plural', 'bidi', 'numberofpages', 'numberofusers', 'numberofactiveusers', 'numberofarticles', 'numberoffiles', 'numberofadmins', 'numberingroup', 'numberofedits', 'language', @@ -88,9 +88,13 @@ class CoreParserFunctions { if ( strval( $part1 ) !== '' ) { $args = array_slice( func_get_args(), 2 ); $message = wfMessage( $part1, $args ) - ->inLanguage( $parser->getOptions()->getUserLangObj() )->plain(); - - return array( $message, 'noparse' => false ); + ->inLanguage( $parser->getOptions()->getUserLangObj() ); + if ( !$message->exists() ) { + // When message does not exists, the message name is surrounded by angle + // and can result in a tag, therefore escape the angles + return $message->escaped(); + } + return array( $message->plain(), 'noparse' => false ); } else { return array( 'found' => false ); } @@ -178,7 +182,9 @@ class CoreParserFunctions { default: $func = 'urlencode'; } - return $parser->markerSkipCallback( $s, $func ); + // See T105242, where the choice to kill markers and various + // other options were discussed. + return $func( $parser->killMarkers( $s ) ); } public static function lcfirst( $parser, $s = '' ) { @@ -353,6 +359,15 @@ class CoreParserFunctions { return $parser->getFunctionLang()->convertPlural( $text, $forms ); } + /** + * @param Parser $parser + * @param string $text + * @return string + */ + public static function bidi( $parser, $text = '' ) { + return $parser->getFunctionLang()->embedBidi( $text ); + } + /** * Override the title of the page when viewed, provided we've been given a * title which will normalise to the canonical title -- cgit v1.2.3-54-g00ecf