A max-repo-count less than or equal to 0 now disables repository
pagination.

Previously a value of 0 or smaller went into an infinite loop just
printing pagination links without any repo.

Signed-off-by: Bernhard Reutner-Fischer <[email protected]>
---
 cgitrc.5.txt  | 3 ++-
 ui-repolist.c | 6 ++++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index e21ece9..0a2a402 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -270,7 +270,8 @@ max-message-length::
 
 max-repo-count::
        Specifies the number of entries to list per page on the repository
-       index page. Default value: "50".
+       index page. A value of 0 or a negative number disables repository
+       paging. Default value: "50".
 
 max-repodesc-length::
        Specifies the maximum number of repo description characters to display
diff --git a/ui-repolist.c b/ui-repolist.c
index 2453a7f..8755dc1 100644
--- a/ui-repolist.c
+++ b/ui-repolist.c
@@ -282,7 +282,8 @@ void cgit_print_repolist(void)
                hits++;
                if (hits <= ctx.qry.ofs)
                        continue;
-               if (hits > ctx.qry.ofs + ctx.cfg.max_repo_count)
+               if (ctx.cfg.max_repo_count > 0 &&
+                   hits > ctx.qry.ofs + ctx.cfg.max_repo_count)
                        continue;
                if (!header++)
                        print_header();
@@ -339,7 +340,8 @@ void cgit_print_repolist(void)
        html("</table>");
        if (!hits)
                cgit_print_error("No repositories found");
-       else if (hits > ctx.cfg.max_repo_count)
+       else if (ctx.cfg.max_repo_count > 0 &&
+                hits > ctx.cfg.max_repo_count)
                print_pager(hits, ctx.cfg.max_repo_count, ctx.qry.search, 
ctx.qry.sort);
        cgit_print_docend();
 }
-- 
2.1.4

_______________________________________________
CGit mailing list
[email protected]
http://lists.zx2c4.com/mailman/listinfo/cgit

Reply via email to