|
|
|
@@ -5,6 +5,12 @@ |
5 | #include "ui-shared.h" |
5 | #include "ui-shared.h" |
6 | #include "ui-stats.h" |
6 | #include "ui-stats.h" |
7 | |
7 | |
| |
8 | #ifdef NO_C99_FORMAT |
| |
9 | #define SZ_FMT "%u" |
| |
10 | #else |
| |
11 | #define SZ_FMT "%zu" |
| |
12 | #endif |
| |
13 | |
8 | #define MONTHS 6 |
14 | #define MONTHS 6 |
9 | |
15 | |
10 | struct authorstat { |
16 | struct authorstat { |
@@ -175,7 +181,7 @@ static void add_commit(struct string_list *authors, struct commit *commit, |
175 | |
181 | |
176 | info = cgit_parse_commit(commit); |
182 | info = cgit_parse_commit(commit); |
177 | tmp = xstrdup(info->author); |
183 | tmp = xstrdup(info->author); |
178 | author = string_list_insert(tmp, authors); |
184 | author = string_list_insert(authors, tmp); |
179 | if (!author->util) |
185 | if (!author->util) |
180 | author->util = xcalloc(1, sizeof(struct authorstat)); |
186 | author->util = xcalloc(1, sizeof(struct authorstat)); |
181 | else |
187 | else |
@@ -186,7 +192,7 @@ static void add_commit(struct string_list *authors, struct commit *commit, |
186 | date = gmtime(&t); |
192 | date = gmtime(&t); |
187 | period->trunc(date); |
193 | period->trunc(date); |
188 | tmp = xstrdup(period->pretty(date)); |
194 | tmp = xstrdup(period->pretty(date)); |
189 | item = string_list_insert(tmp, items); |
195 | item = string_list_insert(items, tmp); |
190 | if (item->util) |
196 | if (item->util) |
191 | free(tmp); |
197 | free(tmp); |
192 | item->util++; |
198 | item->util++; |
@@ -279,14 +285,14 @@ void print_combined_authorrow(struct string_list *authors, int from, int to, |
279 | author = &authors->items[i]; |
285 | author = &authors->items[i]; |
280 | authorstat = author->util; |
286 | authorstat = author->util; |
281 | items = &authorstat->list; |
287 | items = &authorstat->list; |
282 | date = string_list_lookup(tmp, items); |
288 | date = string_list_lookup(items, tmp); |
283 | if (date) |
289 | if (date) |
284 | subtotal += (size_t)date->util; |
290 | subtotal += (size_t)date->util; |
285 | } |
291 | } |
286 | htmlf("<td class='%s'>%d</td>", centerclass, subtotal); |
292 | htmlf("<td class='%s'>%ld</td>", centerclass, subtotal); |
287 | total += subtotal; |
293 | total += subtotal; |
288 | } |
294 | } |
289 | htmlf("<td class='%s'>%d</td></tr>", rightclass, total); |
295 | htmlf("<td class='%s'>%ld</td></tr>", rightclass, total); |
290 | } |
296 | } |
291 | |
297 | |
292 | void print_authors(struct string_list *authors, int top, |
298 | void print_authors(struct string_list *authors, int top, |
@@ -331,20 +337,20 @@ void print_authors(struct string_list *authors, int top, |
331 | for (j = 0; j < period->count; j++) { |
337 | for (j = 0; j < period->count; j++) { |
332 | tmp = period->pretty(tm); |
338 | tmp = period->pretty(tm); |
333 | period->inc(tm); |
339 | period->inc(tm); |
334 | date = string_list_lookup(tmp, items); |
340 | date = string_list_lookup(items, tmp); |
335 | if (!date) |
341 | if (!date) |
336 | html("<td>0</td>"); |
342 | html("<td>0</td>"); |
337 | else { |
343 | else { |
338 | htmlf("<td>%d</td>", date->util); |
344 | htmlf("<td>"SZ_FMT"</td>", (size_t)date->util); |
339 | total += (size_t)date->util; |
345 | total += (size_t)date->util; |
340 | } |
346 | } |
341 | } |
347 | } |
342 | htmlf("<td class='sum'>%d</td></tr>", total); |
348 | htmlf("<td class='sum'>%ld</td></tr>", total); |
343 | } |
349 | } |
344 | |
350 | |
345 | if (top < authors->nr) |
351 | if (top < authors->nr) |
346 | print_combined_authorrow(authors, top, authors->nr - 1, |
352 | print_combined_authorrow(authors, top, authors->nr - 1, |
347 | "Others (%d)", "left", "", "sum", period); |
353 | "Others (%ld)", "left", "", "sum", period); |
348 | |
354 | |
349 | print_combined_authorrow(authors, 0, authors->nr - 1, "Total", |
355 | print_combined_authorrow(authors, 0, authors->nr - 1, "Total", |
350 | "total", "sum", "sum", period); |
356 | "total", "sum", "sum", period); |
@@ -367,7 +373,7 @@ void cgit_show_stats(struct cgit_context *ctx) |
367 | |
373 | |
368 | i = cgit_find_stats_period(code, &period); |
374 | i = cgit_find_stats_period(code, &period); |
369 | if (!i) { |
375 | if (!i) { |
370 | cgit_print_error(fmt("Unknown statistics type: %c", code)); |
376 | cgit_print_error(fmt("Unknown statistics type: %c", code[0])); |
371 | return; |
377 | return; |
372 | } |
378 | } |
373 | if (i > ctx->repo->max_stats) { |
379 | if (i > ctx->repo->max_stats) { |
|