Merge "Set context on RedirectSpecialPage in MediaWiki.php"
[lhc/web/wiklou.git] / includes / api / ApiQueryPrefixSearch.php
index 8eb644f..1dac740 100644 (file)
@@ -45,9 +45,18 @@ class ApiQueryPrefixSearch extends ApiQueryGeneratorBase {
                $namespaces = $params['namespace'];
                $offset = $params['offset'];
 
-               $searcher = new TitlePrefixSearch;
-               $titles = $searcher->searchWithVariants( $search, $limit + 1, $namespaces, $offset );
+               $searchEngine = SearchEngine::create();
+               $searchEngine->setLimitOffset( $limit + 1, $offset );
+               $searchEngine->setNamespaces( $namespaces );
+               $titles = $searchEngine->extractTitles( $searchEngine->completionSearchWithVariants( $search ) );
+
                if ( $resultPageSet ) {
+                       $resultPageSet->setRedirectMergePolicy( function( array $current, array $new ) {
+                               if ( !isset( $current['index'] ) || $new['index'] < $current['index'] ) {
+                                       $current['index'] = $new['index'];
+                               }
+                               return $current;
+                       } );
                        if ( count( $titles ) > $limit ) {
                                $this->setContinueEnumParameter( 'offset', $offset + $params['limit'] );
                                array_pop( $titles );