neocgit

a more 'modern' version of cgit
Log | Files | Refs | Submodules | README | LICENSE | git clone https://git.ne02ptzero.me/git/neocgit

commit 495e39677326284ea13b2f6d76195d6800c2a450
parent 9927e63f387e6c9328eb3c347ecb0e339f8ac023
Author: Lars Hjemli <hjemli@gmail.com>
Date:   Tue, 15 May 2007 00:07:37 +0200

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>

Diffstat:
Mui-summary.c | 32+++++++++++++++++++-------------
1 file changed, 19 insertions(+), 13 deletions(-)

diff --git a/ui-summary.c b/ui-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 @@ static void cgit_print_object_ref(struct object *obj) 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 @@ static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1, 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 @@ static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1, 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 @@ static int cgit_print_archive_cb(const char *refname, const unsigned char *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_branches() 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>"); }