cgit

commit 7a4e7c8ffbacfad5ac83ad20426d7911c2eacdeb

Author: Tobias Bieniek <Tobias.Bieniek@gmx.de>

ui-repolist: Add "section-sort" flag to control section sorting.

Flag which, when set to "1", will sort the sections on the repository
listing by name. Set this flag to "0" if the order in the cgitrc file
should be preserved. Default value: "1".

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>

 cgit.c | 3 +++
 cgit.h | 1 +
 cgitrc.5.txt | 10 ++++++++--
 ui-repolist.c | 2 +-


diff --git a/cgit.c b/cgit.c
index d699cb6c22ddb2ba86459332deebbc443b8304bd..35f0da13da2218efff32168b799bcab9e5e68ca3 100644
--- a/cgit.c
+++ b/cgit.c
@@ -233,6 +233,8 @@ 	else if (!strcmp(name, "section-from-path"))
 		ctx.cfg.section_from_path = atoi(value);
 	else if (!strcmp(name, "repository-sort"))
 		ctx.cfg.repository_sort = xstrdup(value);
+	else if (!strcmp(name, "section-sort"))
+		ctx.cfg.section_sort = atoi(value);
 	else if (!strcmp(name, "source-filter"))
 		ctx.cfg.source_filter = new_filter(value, SOURCE);
 	else if (!strcmp(name, "summary-log"))
@@ -361,6 +363,7 @@ 	ctx->cfg.scan_hidden_path = 0;
 	ctx->cfg.script_name = CGIT_SCRIPT_NAME;
 	ctx->cfg.section = "";
 	ctx->cfg.repository_sort = "name";
+	ctx->cfg.section_sort = 1;
 	ctx->cfg.summary_branches = 10;
 	ctx->cfg.summary_log = 10;
 	ctx->cfg.summary_tags = 10;




diff --git a/cgit.h b/cgit.h
index 27420589bbba3863f0585696f83be06bf7c9dbae..becf776a3b6d8d45d66338b5a3eb1f9b0c3ab943 100644
--- a/cgit.h
+++ b/cgit.h
@@ -226,6 +226,7 @@ 	int remove_suffix;
 	int scan_hidden_path;
 	int section_from_path;
 	int snapshots;
+	int section_sort;
 	int summary_branches;
 	int summary_log;
 	int summary_tags;




diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index 278de90cfb5c6aba55d409b2d635abe653725384..78bb9fc802ab56f50cdeb9cd4e3db928bc9931f1 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -72,7 +72,7 @@ 	"5".
 
 case-sensitive-sort::
 	Sort items in the repo list case sensitively. Default value: "1".
-	See also: repository-sort.
+	See also: repository-sort, section-sort.
 
 clone-prefix::
 	Space-separated list of common prefixes which, when combined with a
@@ -332,7 +332,13 @@ repository-sort::
 	The way in which repositories in each section are sorted. Valid values
 	are "name" for sorting by the repo name or "age" for sorting by the
 	most recently updated repository. Default value: "name". See also:
-	section, case-sensitive-sort.
+	section, case-sensitive-sort, section-sort.
+
+section-sort::
+	Flag which, when set to "1", will sort the sections on the repository
+	listing by name. Set this flag to "0" if the order in the cgitrc file should
+	be preserved. Default value: "1". See also: section,
+	case-sensitive-sort, repository-sort.
 
 section-from-path::
 	A number which, if specified before scan-path, specifies how many




diff --git a/ui-repolist.c b/ui-repolist.c
index 36c067a3cb22643c6dca3187c6f84c0a73fda53e..dead1bfe5fea732d7bd4444a9873d81b96a8faae 100644
--- a/ui-repolist.c
+++ b/ui-repolist.c
@@ -257,7 +257,7 @@ 		html_include(ctx.cfg.index_header);
 
 	if(ctx.qry.sort)
 		sorted = sort_repolist(ctx.qry.sort);
-	else
+	else if (ctx.cfg.section_sort)
 		sort_repolist("section");
 
 	html("<table summary='repository list' class='list nowrap'>");