// see bugs 37564, 37587, 36938
$cache[$code] =
strcspn( $code, ":/\\\000&<>'\"" ) === strlen( $code )
- && !preg_match( Title::getTitleInvalidRegex(), $code );
+ && !preg_match( MediaWikiTitleCodec::getTitleInvalidRegex(), $code );
return $cache[$code];
}
* @since 1.20
*/
public static function fetchLanguageNames( $inLanguage = null, $include = 'mw' ) {
- wfProfileIn( __METHOD__ );
$cacheKey = $inLanguage === null ? 'null' : $inLanguage;
$cacheKey .= ":$include";
if ( self::$languageNameCache === null ) {
$ret = self::fetchLanguageNamesUncached( $inLanguage, $include );
self::$languageNameCache->set( $cacheKey, $ret );
}
- wfProfileOut( __METHOD__ );
return $ret;
}
}
if ( $include === 'all' ) {
+ ksort( $names );
return $names;
}
}
}
+ ksort( $namesMwFile );
return $namesMwFile;
}
+ ksort( $returnMw );
# 'mw' option; default if it's not one of the other two options (all/mwfile)
return $returnMw;
}
* @return string
*/
function getMessageFromDB( $msg ) {
- return wfMessage( $msg )->inLanguage( $this )->text();
+ return $this->msg( $msg )->text();
+ }
+
+ /**
+ * Get message object in this language. Only for use inside this class.
+ *
+ * @param string $msg Message name
+ * @return Message
+ */
+ protected function msg( $msg ) {
+ return wfMessage( $msg )->inLanguage( $this );
}
/**
return;
}
$this->mMagicHookDone = true;
- wfProfileIn( 'LanguageGetMagic' );
Hooks::run( 'LanguageGetMagic', array( &$this->mMagicExtensions, $this->getCode() ) );
- wfProfileOut( 'LanguageGetMagic' );
}
/**
// the string does not have any number part. Eg: .12345
return $sign . $groupedNumber;
}
- $start = $end = strlen( $integerPart[0] );
+ $start = $end = ($integerPart) ? strlen( $integerPart[0] ) : 0;
while ( $start > 0 ) {
$match = $matches[0][$numMatches - 1];
$matchLen = strlen( $match );
return '';
}
if ( $m > 0 ) {
- $and = $this->getMessageFromDB( 'and' );
- $space = $this->getMessageFromDB( 'word-separator' );
+ $and = $this->msg( 'and' )->escaped();
+ $space = $this->msg( 'word-separator' )->escaped();
if ( $m > 1 ) {
- $comma = $this->getMessageFromDB( 'comma-separator' );
+ $comma = $this->msg( 'comma-separator' )->escaped();
}
}
$s = $l[$m];
return array( $wikiUpperChars, $wikiLowerChars );
}
- wfProfileIn( __METHOD__ );
$arr = wfGetPrecompiledData( 'Utf8Case.ser' );
if ( $arr === false ) {
throw new MWException(
}
$wikiUpperChars = $arr['wikiUpperChars'];
$wikiLowerChars = $arr['wikiLowerChars'];
- wfProfileOut( __METHOD__ );
return array( $wikiUpperChars, $wikiLowerChars );
}
* Make a list item, used by various special pages
*
* @param string $page Page link
- * @param string $details Text between brackets
+ * @param string $details HTML safe text between brackets
* @param bool $oppositedm Add the direction mark opposite to your
* language, to display text properly
- * @return string
+ * @return HTML escaped string
*/
function specialList( $page, $details, $oppositedm = true ) {
- $dirmark = ( $oppositedm ? $this->getDirMark( true ) : '' ) .
- $this->getDirMark();
- $details = $details ? $dirmark . $this->getMessageFromDB( 'word-separator' ) .
- wfMessage( 'parentheses' )->rawParams( $details )->inLanguage( $this )->escaped() : '';
- return $page . $details;
+ if ( !$details ) {
+ return $page;
+ }
+
+ $dirmark = ( $oppositedm ? $this->getDirMark( true ) : '' ) . $this->getDirMark();
+ return
+ $page .
+ $dirmark .
+ $this->msg( 'word-separator' )->escaped() .
+ $this->msg( 'parentheses' )->rawParams( $details )->escaped();
}
/**