- html("<tr class='nohover'><th class='left'>Tag</th>"
- "<th class='left'>Age</th>"
- "<th class='left'>Author</th>"
- "<th class='left'>Reference</th></tr>\n");
- header = 1;
-}
-
-static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1,
- int flags, void *cb_data)
-{
- struct tag *tag;
- struct taginfo *info;
- struct object *obj;
- char buf[256], *url;
-
- strncpy(buf, refname, sizeof(buf));
- obj = parse_object(sha1);
- if (!obj)
- return 1;
- if (obj->type == OBJ_TAG) {
- tag = lookup_tag(sha1);
- if (!tag || parse_tag(tag) || !(info = cgit_parse_tag(tag)))
- return 2;
- if (!header)
- print_tag_header();
- html("<tr><td>");
- url = cgit_pageurl(cgit_query_repo, "view",
- fmt("id=%s", sha1_to_hex(sha1)));
- html_link_open(url, NULL, NULL);
- html_txt(buf);
- html_link_close();
- html("</td><td>");
- if (info->tagger_date > 0)
- cgit_print_age(info->tagger_date, -1, NULL);
- html("</td><td>");
- if (info->tagger)
- html(info->tagger);
- html("</td><td>");
- cgit_print_object_ref(tag->tagged);
- html("</td></tr>\n");
- } else {
- if (!header)
- print_tag_header();
- html("<tr><td>");
- html_txt(buf);
- html("</td><td colspan='2'/><td>");
- cgit_print_object_ref(obj);
- html("</td></tr>\n");
+ char *h = txt, *t, c;
+ int urls = 0;
+ int columns = 3;
+
+ if (ctx.repo->enable_log_filecount)
+ columns++;
+ if (ctx.repo->enable_log_linecount)
+ columns++;
+
+
+ while (h && *h) {
+ while (h && *h == ' ')
+ h++;
+ if (!*h)
+ break;
+ t = h;
+ while (t && *t && *t != ' ')
+ t++;
+ c = *t;
+ *t = 0;
+ if (urls++ == 0) {
+ htmlf("<tr class='nohover'><td colspan='%d'> </td></tr>", columns);
+ htmlf("<tr><th class='left' colspan='%d'>Clone</th></tr>\n", columns);
+ }
+ print_url(h, suffix);
+ *t = c;
+ h = t;