From: Brad Jorsch Date: Wed, 4 Mar 2015 14:30:14 +0000 (-0500) Subject: API: Properly handle limit and continuation for generator=prefixsearch X-Git-Tag: 1.31.0-rc.0~12185^2 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/operations/?a=commitdiff_plain;h=8f24df2ac7e5a84c34dec8b5b6ca444b722d857a;p=lhc%2Fweb%2Fwiklou.git API: Properly handle limit and continuation for generator=prefixsearch The search engine is queried for limit+1 titles, so we know whether to output a continuation value. Actually do this for generator mode, instead of just returning the limit+1 titles. Bug: T91503 Change-Id: Ib80c6d3fa9e8b52ae1f5c58fbe74c8e909329e59 --- diff --git a/includes/api/ApiQueryPrefixSearch.php b/includes/api/ApiQueryPrefixSearch.php index 069e30bc5f..7a31c4811b 100644 --- a/includes/api/ApiQueryPrefixSearch.php +++ b/includes/api/ApiQueryPrefixSearch.php @@ -48,6 +48,10 @@ class ApiQueryPrefixSearch extends ApiQueryGeneratorBase { $searcher = new TitlePrefixSearch; $titles = $searcher->searchWithVariants( $search, $limit + 1, $namespaces, $offset ); if ( $resultPageSet ) { + if ( count( $titles ) > $limit ) { + $this->setContinueEnumParameter( 'offset', $offset + $params['limit'] ); + array_pop( $titles ); + } $resultPageSet->populateFromTitles( $titles ); foreach ( $titles as $index => $title ) { $resultPageSet->setGeneratorData( $title, array( 'index' => $index + $offset + 1 ) );