diff options
Diffstat (limited to 'ui-repolist.c')
-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++) { |