summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--ui-repolist.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/ui-repolist.c b/ui-repolist.c
index 4dea3b3..d56654d 100644
--- a/ui-repolist.c
+++ b/ui-repolist.c
@@ -137,4 +137,16 @@ static int cmp(const char *s1, const char *s2)
}
+static int sort_section(const void *a, const void *b)
+{
+ const struct cgit_repo *r1 = a;
+ const struct cgit_repo *r2 = b;
+ int result;
+
+ result = cmp(r1->section, r2->section);
+ if (!result)
+ result = cmp(r1->name, r2->name);
+ return result;
+}
+
static int sort_name(const void *a, const void *b)
{
@@ -179,4 +191,5 @@ struct sortcolumn {
struct sortcolumn sortcolumn[] = {
+ {"section", sort_section},
{"name", sort_name},
{"desc", sort_desc},
@@ -220,4 +233,6 @@ void cgit_print_repolist()
if(ctx.qry.sort)
sorted = sort_repolist(ctx.qry.sort);
+ else
+ sort_repolist("section");
html("<table summary='repository list' class='list nowrap'>");