summaryrefslogtreecommitdiffabout
path: root/ui-repolist.c
authorLars Hjemli <hjemli@gmail.com>2009-08-23 21:09:31 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2009-08-24 08:22:58 (UTC)
commit63816ec59748c622623f20e653a7bed87f4f05a4 (patch) (unidiff)
treea2dfcc17487d41d0f585eb8fd56b7e4ee6387c8a /ui-repolist.c
parent39398545787179bc8075d64a443f9da3845c4f67 (diff)
downloadcgit-63816ec59748c622623f20e653a7bed87f4f05a4.zip
cgit-63816ec59748c622623f20e653a7bed87f4f05a4.tar.gz
cgit-63816ec59748c622623f20e653a7bed87f4f05a4.tar.bz2
ui-repolist.c: sort by section name, repo name as default
When no sorting is requested by the client, cgit will now sort by section name followed by repo name. This allows repos to be registered/ discovered independently of their display order. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'ui-repolist.c') (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)
138 138
139static int sort_section(const void *a, const void *b)
140{
141 const struct cgit_repo *r1 = a;
142 const struct cgit_repo *r2 = b;
143 int result;
144
145 result = cmp(r1->section, r2->section);
146 if (!result)
147 result = cmp(r1->name, r2->name);
148 return result;
149}
150
139static int sort_name(const void *a, const void *b) 151static int sort_name(const void *a, const void *b)
@@ -180,2 +192,3 @@ struct sortcolumn {
180struct sortcolumn sortcolumn[] = { 192struct sortcolumn sortcolumn[] = {
193 {"section", sort_section},
181 {"name", sort_name}, 194 {"name", sort_name},
@@ -221,2 +234,4 @@ void cgit_print_repolist()
221 sorted = sort_repolist(ctx.qry.sort); 234 sorted = sort_repolist(ctx.qry.sort);
235 else
236 sort_repolist("section");
222 237