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>
Lars Hjemli hjemli@gmail.com
Sun, 23 Aug 2009 23:09:31 +0200
1 files changed,
15 insertions(+),
0 deletions(-)
jump to
M
ui-repolist.c
→
ui-repolist.c
@@ -136,6 +136,18 @@ return 1;
return 0; } +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) { const struct cgit_repo *r1 = a;@@ -178,6 +190,7 @@ int (*fn)(const void *a, const void *b);
}; struct sortcolumn sortcolumn[] = { + {"section", sort_section}, {"name", sort_name}, {"desc", sort_desc}, {"owner", sort_owner},@@ -219,6 +232,8 @@ html_include(ctx.cfg.index_header);
if(ctx.qry.sort) sorted = sort_repolist(ctx.qry.sort); + else + sort_repolist("section"); html("<table summary='repository list' class='list nowrap'>"); for (i=0; i<cgit_repolist.count; i++) {