about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--cgit.c3
-rw-r--r--cgit.h1
-rw-r--r--cgitrc.5.txt10
-rw-r--r--ui-repolist.c2
4 files changed, 13 insertions, 3 deletions
diff --git a/cgit.c b/cgit.c
index d699cb6..35f0da1 100644
--- a/cgit.c
+++ b/cgit.c
@@ -233,6 +233,8 @@ void config_cb(const char *name, const char *value)
 		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 @@ static void prepare_context(struct cgit_context *ctx)
 	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 2742058..becf776 100644
--- a/cgit.h
+++ b/cgit.h
@@ -226,6 +226,7 @@ struct cgit_config {
 	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 278de90..78bb9fc 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -72,7 +72,7 @@ cache-static-ttl::
 
 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 36c067a..dead1bf 100644
--- a/ui-repolist.c
+++ b/ui-repolist.c
@@ -257,7 +257,7 @@ void cgit_print_repolist()
 
 	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'>");
-pink/commit/ui-summary.c?h=1.3.0&id=1418034e642fee67c981b31e4c3eb6e8ae14e303&follow=1'>Move repo summary functions into ui-summary.cLars Hjemli 2006-12-11Move functions for repolist output into ui-repolist.cLars Hjemli 2006-12-11Move common output-functions into ui-shared.cLars Hjemli 2006-12-11Rename config.c to parsing.c + move cgit_parse_query from cgit.c to parsing.cLars Hjemli 2006-12-11Avoid infinite loops in caching layerLars Hjemli 2006-12-11Let 'make install' clear all cachefilesLars Hjemli 2006-12-11Fix cache algorithm loopholeLars Hjemli 2006-12-10Add version identifier in generated filesLars Hjemli 2006-12-10Add license file and copyright noticesLars Hjemli 2006-12-10Add caching infrastructureLars Hjemli