Simplify LanguageNameSearch code

A more efficient "startsWith" lookup.
And simplifying redundant modulo code.

Change-Id: I87ab0ff70d26fc058fc40bd20745b9b6effb7ddd
This commit is contained in:
Thiemo Mättig
2014-12-08 19:00:32 +01:00
parent 3045bdc484
commit bdece37fe3

View File

@@ -42,11 +42,9 @@ class LanguageNameSearch {
$results = array();
foreach ( $bucket as $name => $code ) {
// Prefix search
if ( strpos( $name, $searchKey, 0 ) === 0 ) {
$results[$code] = $name;
continue;
}
if ( $typos > 0 && self::levenshteinDistance( $name, $searchKey ) === $typos ) {
if ( strrpos( $name, $searchKey, -strlen( $name ) ) !== false
|| ( $typos > 0 && self::levenshteinDistance( $name, $searchKey ) <= $typos )
) {
$results[$code] = $name;
}
}
@@ -55,14 +53,7 @@ class LanguageNameSearch {
}
public static function getIndex( $name ) {
$codepoint = self::getCodepoint( $name );
if ( $codepoint < 1000 ) {
$bucket = $codepoint;
} else {
$bucket = $codepoint % 1000;
}
return $bucket;
return self::getCodepoint( $name ) % 1000;
}
/**