summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore 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
@@ -138,2 +138,14 @@ 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)
@@ -180,2 +192,3 @@ struct sortcolumn {
struct sortcolumn sortcolumn[] = {
+ {"section", sort_section},
{"name", sort_name},
@@ -221,2 +234,4 @@ void cgit_print_repolist()
sorted = sort_repolist(ctx.qry.sort);
+ else
+ sort_repolist("section");