diff options
| -rw-r--r-- | ui-repolist.c | 15 |
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 | |||
| @@ -136,6 +136,18 @@ static int cmp(const char *s1, const char *s2) | |||
| 136 | return 0; | 136 | return 0; |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | static 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 | |||
| 139 | static int sort_name(const void *a, const void *b) | 151 | static int sort_name(const void *a, const void *b) |
| 140 | { | 152 | { |
| 141 | const struct cgit_repo *r1 = a; | 153 | const struct cgit_repo *r1 = a; |
| @@ -178,6 +190,7 @@ struct sortcolumn { | |||
| 178 | }; | 190 | }; |
| 179 | 191 | ||
| 180 | struct sortcolumn sortcolumn[] = { | 192 | struct sortcolumn sortcolumn[] = { |
| 193 | {"section", sort_section}, | ||
| 181 | {"name", sort_name}, | 194 | {"name", sort_name}, |
| 182 | {"desc", sort_desc}, | 195 | {"desc", sort_desc}, |
| 183 | {"owner", sort_owner}, | 196 | {"owner", sort_owner}, |
| @@ -219,6 +232,8 @@ void cgit_print_repolist() | |||
| 219 | 232 | ||
| 220 | if(ctx.qry.sort) | 233 | if(ctx.qry.sort) |
| 221 | sorted = sort_repolist(ctx.qry.sort); | 234 | sorted = sort_repolist(ctx.qry.sort); |
| 235 | else | ||
| 236 | sort_repolist("section"); | ||
| 222 | 237 | ||
| 223 | html("<table summary='repository list' class='list nowrap'>"); | 238 | html("<table summary='repository list' class='list nowrap'>"); |
| 224 | for (i=0; i<cgit_repolist.count; i++) { | 239 | for (i=0; i<cgit_repolist.count; i++) { |
