all repos — cgit @ 495e39677326284ea13b2f6d76195d6800c2a450

a hyperfast web frontend for git written in c

Show tag heading even if first tag is of the lightweight kind

The tag printing code waited for valid tags before printing the
table heading, but forgot to count unannotated tags. This fixes it.

Noticed by Kristian Høgsberg <krh@bitplanet.net>

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Lars Hjemli hjemli@gmail.com
Tue, 15 May 2007 00:07:37 +0200
commit

495e39677326284ea13b2f6d76195d6800c2a450

parent

9927e63f387e6c9328eb3c347ecb0e339f8ac023

1 files changed, 19 insertions(+), 13 deletions(-)

jump to
M ui-summary.cui-summary.c

@@ -8,7 +8,7 @@ */

#include "cgit.h" -static int items; +static int header; static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1, int flags, void *cb_data)

@@ -69,6 +69,15 @@ sha1_to_hex(obj->sha1));

html_link_close(); } +static void print_tag_header() +{ + html("<tr class='nohover'><th class='left'>Tag</th>" + "<th class='left'>Created</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) {

@@ -85,13 +94,8 @@ if (obj->type == OBJ_TAG) {

tag = lookup_tag(sha1); if (!tag || parse_tag(tag) || !(info = cgit_parse_tag(tag))) return 2; - if (!items) { - html("<tr class='nohover'><th class='left'>Tag</th>" - "<th class='left'>Created</th>" - "<th class='left'>Author</th>" - "<th class='left'>Reference</th></tr>\n"); - } - items++; + if (!header) + print_tag_header(); html("<tr><td>"); url = cgit_pageurl(cgit_query_repo, "view", fmt("id=%s", sha1_to_hex(sha1)));

@@ -108,6 +112,8 @@ 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>");

@@ -139,11 +145,11 @@ hashcpy(sha1, tag->tagged->sha1);

} else if (obj->type != OBJ_BLOB) { return 0; } - if (!items) { + if (!header) { html("<table>"); html("<tr><th>Downloads</th></tr>"); + header = 1; } - items++; html("<tr><td>"); url = cgit_pageurl(cgit_query_repo, "blob", fmt("id=%s&path=%s", sha1_to_hex(sha1),

@@ -166,15 +172,15 @@ }

static void cgit_print_tags() { - items = 0; + header = 0; for_each_tag_ref(cgit_print_tag_cb, NULL); } static void cgit_print_archives() { - items = 0; + header = 0; for_each_ref(cgit_print_archive_cb, NULL); - if (items) + if (header) html("</table>"); }