[PATCH] ui-repolist: Tweak max-repo-count handling

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Thu Jun 18 14:18:32 CEST 2015


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 <rep.dot.nop at gmail.com>
---
 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



More information about the CGit mailing list