From d857b0f8f626aea4e6416f465abb50cb28153efa Mon Sep 17 00:00:00 2001 From: Emmanuel Engelhart Date: Sat, 7 Jun 2025 14:34:04 +0200 Subject: [PATCH] Fix kiwix-serve pagination --- src/search_renderer.cpp | 4 ++-- src/server/internalServer.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/search_renderer.cpp b/src/search_renderer.cpp index 9a24e51e..59119d7b 100644 --- a/src/search_renderer.cpp +++ b/src/search_renderer.cpp @@ -224,8 +224,8 @@ std::string SearchRenderer::renderTemplate(const std::string& tmpl_str, const Na kainjow::mustache::data results; results.set("items", items); results.set("count", kiwix::beautifyInteger(estimatedResultCount)); - results.set("start", kiwix::beautifyInteger(resultStart)); - results.set("end", kiwix::beautifyInteger(std::min(resultStart+pageLength-1, estimatedResultCount))); + results.set("start", kiwix::beautifyInteger(resultStart+1)); + results.set("end", kiwix::beautifyInteger(std::min(resultStart+pageLength, estimatedResultCount))); // pagination auto pagination = buildPagination( diff --git a/src/server/internalServer.cpp b/src/server/internalServer.cpp index 1d287951..d907f0e8 100644 --- a/src/server/internalServer.cpp +++ b/src/server/internalServer.cpp @@ -1021,11 +1021,11 @@ std::unique_ptr InternalServer::handle_search_request(const RequestCon return response; } - const auto start = max(1u, request.get_optional_param("start", 1u)); + const auto start = max(0u, request.get_optional_param("start", 0u)); const auto pageLength = getSearchPageSize(request); /* Get the results */ - SearchRenderer renderer(search->getResults(start-1, pageLength), start, + SearchRenderer renderer(search->getResults(start, pageLength), start, search->getEstimatedMatches()); renderer.setSearchPattern(searchInfo.pattern); renderer.setSearchBookQuery(searchInfo.bookFilterQuery);