X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/d6174b7aab476c2b6a86e59d98cf978d603045f4..084ca50972b4be120eba8d22ce585766ae315c36:/ui-stats.c diff --git a/ui-stats.c b/ui-stats.c index 9fc06d3..2a0c174 100644 --- a/ui-stats.c +++ b/ui-stats.c @@ -1,10 +1,14 @@ -#include - #include "cgit.h" #include "html.h" #include "ui-shared.h" #include "ui-stats.h" +#ifdef NO_C99_FORMAT +#define SZ_FMT "%u" +#else +#define SZ_FMT "%zu" +#endif + #define MONTHS 6 struct authorstat { @@ -154,6 +158,14 @@ int cgit_find_stats_period(const char *expr, struct cgit_period **period) return 0; } +const char *cgit_find_stats_periodname(int idx) +{ + if (idx > 0 && idx < 4) + return periods[idx - 1].name; + else + return ""; +} + static void add_commit(struct string_list *authors, struct commit *commit, struct cgit_period *period) { @@ -167,7 +179,7 @@ static void add_commit(struct string_list *authors, struct commit *commit, info = cgit_parse_commit(commit); tmp = xstrdup(info->author); - author = string_list_insert(tmp, authors); + author = string_list_insert(authors, tmp); if (!author->util) author->util = xcalloc(1, sizeof(struct authorstat)); else @@ -178,7 +190,7 @@ static void add_commit(struct string_list *authors, struct commit *commit, date = gmtime(&t); period->trunc(date); tmp = xstrdup(period->pretty(date)); - item = string_list_insert(tmp, items); + item = string_list_insert(items, tmp); if (item->util) free(tmp); item->util++; @@ -271,14 +283,14 @@ void print_combined_authorrow(struct string_list *authors, int from, int to, author = &authors->items[i]; authorstat = author->util; items = &authorstat->list; - date = string_list_lookup(tmp, items); + date = string_list_lookup(items, tmp); if (date) subtotal += (size_t)date->util; } - htmlf("%d", centerclass, subtotal); + htmlf("%ld", centerclass, subtotal); total += subtotal; } - htmlf("%d", rightclass, total); + htmlf("%ld", rightclass, total); } void print_authors(struct string_list *authors, int top, @@ -323,20 +335,20 @@ void print_authors(struct string_list *authors, int top, for (j = 0; j < period->count; j++) { tmp = period->pretty(tm); period->inc(tm); - date = string_list_lookup(tmp, items); + date = string_list_lookup(items, tmp); if (!date) html("0"); else { - htmlf("%d", date->util); + htmlf(""SZ_FMT"", (size_t)date->util); total += (size_t)date->util; } } - htmlf("%d", total); + htmlf("%ld", total); } if (top < authors->nr) print_combined_authorrow(authors, top, authors->nr - 1, - "Others (%d)", "left", "", "sum", period); + "Others (%ld)", "left", "", "sum", period); print_combined_authorrow(authors, 0, authors->nr - 1, "Total", "total", "sum", "sum", period); @@ -359,7 +371,7 @@ void cgit_show_stats(struct cgit_context *ctx) i = cgit_find_stats_period(code, &period); if (!i) { - cgit_print_error(fmt("Unknown statistics type: %c", code)); + cgit_print_error(fmt("Unknown statistics type: %c", code[0])); return; } if (i > ctx->repo->max_stats) {