summaryrefslogtreecommitdiffabout
path: root/ui-stats.c
authorLars Hjemli <hjemli@gmail.com>2010-09-19 17:00:05 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2010-09-19 17:00:05 (UTC)
commita9d6e6e695da6c6ed7f4bb32630ab2f3d9314806 (patch) (side-by-side diff)
treede8271ebfabd244437cd68021c8af86391afb9bd /ui-stats.c
parent536c7a1eb201b44b9266babe087cb6f2b75e4a7f (diff)
parentd187b98557d91b874836f286b955ba76ab26fb02 (diff)
downloadcgit-a9d6e6e695da6c6ed7f4bb32630ab2f3d9314806.zip
cgit-a9d6e6e695da6c6ed7f4bb32630ab2f3d9314806.tar.gz
cgit-a9d6e6e695da6c6ed7f4bb32630ab2f3d9314806.tar.bz2
Merge branch 'ml/bugfix'
Diffstat (limited to 'ui-stats.c') (more/less context) (show whitespace changes)
-rw-r--r--ui-stats.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/ui-stats.c b/ui-stats.c
index 50c2540..946a6ea 100644
--- a/ui-stats.c
+++ b/ui-stats.c
@@ -1,19 +1,25 @@
#include <string-list.h>
#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 {
long total;
struct string_list list;
};
#define DAY_SECS (60 * 60 * 24)
#define WEEK_SECS (DAY_SECS * 7)
static void trunc_week(struct tm *tm)
{
@@ -274,28 +280,28 @@ void print_combined_authorrow(struct string_list *authors, int from, int to,
for (j = 0; j < period->count; j++) {
tmp = period->pretty(tm);
period->inc(tm);
subtotal = 0;
for (i = from; i <= to; i++) {
author = &authors->items[i];
authorstat = author->util;
items = &authorstat->list;
date = string_list_lookup(items, tmp);
if (date)
subtotal += (size_t)date->util;
}
- htmlf("<td class='%s'>%d</td>", centerclass, subtotal);
+ htmlf("<td class='%s'>%ld</td>", centerclass, subtotal);
total += subtotal;
}
- htmlf("<td class='%s'>%d</td></tr>", rightclass, total);
+ htmlf("<td class='%s'>%ld</td></tr>", rightclass, total);
}
void print_authors(struct string_list *authors, int top,
struct cgit_period *period)
{
struct string_list_item *author;
struct authorstat *authorstat;
struct string_list *items;
struct string_list_item *date;
time_t now;
long i, j, total;
struct tm *tm;
@@ -326,57 +332,57 @@ void print_authors(struct string_list *authors, int top,
authorstat = author->util;
items = &authorstat->list;
total = 0;
for (j = 0; j < period->count; j++)
period->dec(tm);
for (j = 0; j < period->count; j++) {
tmp = period->pretty(tm);
period->inc(tm);
date = string_list_lookup(items, tmp);
if (!date)
html("<td>0</td>");
else {
- htmlf("<td>%d</td>", date->util);
+ htmlf("<td>"SZ_FMT"</td>", (size_t)date->util);
total += (size_t)date->util;
}
}
- htmlf("<td class='sum'>%d</td></tr>", total);
+ htmlf("<td class='sum'>%ld</td></tr>", 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);
html("</table>");
}
/* Create a sorted string_list with one entry per author. The util-field
* for each author is another string_list which is used to calculate the
* number of commits per time-interval.
*/
void cgit_show_stats(struct cgit_context *ctx)
{
struct string_list authors;
struct cgit_period *period;
int top, i;
const char *code = "w";
if (ctx->qry.period)
code = ctx->qry.period;
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) {
cgit_print_error(fmt("Statistics type disabled: %s",
period->name));
return;
}
authors = collect_stats(ctx, period);
qsort(authors.items, authors.nr, sizeof(struct string_list_item),
cmp_total_commits);
top = ctx->qry.ofs;