about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorLars Hjemli2007-05-15 00:07:37 +0200
committerLars Hjemli2007-05-15 00:07:37 +0200
commit495e39677326284ea13b2f6d76195d6800c2a450 (patch)
tree21666895a947bb33c6722b8b453f1f1b5a56f638
parentSpecify static storage class for file-local declarations (diff)
downloadcgit-495e39677326284ea13b2f6d76195d6800c2a450.tar.gz
cgit-495e39677326284ea13b2f6d76195d6800c2a450.zip
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>
-rw-r--r--ui-summary.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/ui-summary.c b/ui-summary.c index f6120f9..3410e1a 100644 --- a/ui-summary.c +++ b/ui-summary.c
@@ -8,7 +8,7 @@
8 8
9#include "cgit.h" 9#include "cgit.h"
10 10
11static int items; 11static int header;
12 12
13static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1, 13static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1,
14 int flags, void *cb_data) 14 int flags, void *cb_data)
@@ -69,6 +69,15 @@ static void cgit_print_object_ref(struct object *obj)
69 html_link_close(); 69 html_link_close();
70} 70}
71 71
72static void print_tag_header()
73{
74 html("<tr class='nohover'><th class='left'>Tag</th>"
75 "<th class='left'>Created</th>"
76 "<th class='left'>Author</th>"
77 "<th class='left'>Reference</th></tr>\n");
78 header = 1;
79}
80
72static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1, 81static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1,
73 int flags, void *cb_data) 82 int flags, void *cb_data)
74{ 83{
@@ -85,13 +94,8 @@ static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1,
85 tag = lookup_tag(sha1); 94 tag = lookup_tag(sha1);
86 if (!tag || parse_tag(tag) || !(info = cgit_parse_tag(tag))) 95 if (!tag || parse_tag(tag) || !(info = cgit_parse_tag(tag)))
87 return 2; 96 return 2;
88 if (!items) { 97 if (!header)
89 html("<tr class='nohover'><th class='left'>Tag</th>" 98 print_tag_header();
90 "<th class='left'>Created</th>"
91 "<th class='left'>Author</th>"
92 "<th class='left'>Reference</th></tr>\n");
93 }
94 items++;
95 html("<tr><td>"); 99 html("<tr><td>");
96 url = cgit_pageurl(cgit_query_repo, "view", 100 url = cgit_pageurl(cgit_query_repo, "view",
97 fmt("id=%s", sha1_to_hex(sha1))); 101 fmt("id=%s", sha1_to_hex(sha1)));
@@ -108,6 +112,8 @@ static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1,
108 cgit_print_object_ref(tag->tagged); 112 cgit_print_object_ref(tag->tagged);
109 html("</td></tr>\n"); 113 html("</td></tr>\n");
110 } else { 114 } else {
115 if (!header)
116 print_tag_header();
111 html("<tr><td>"); 117 html("<tr><td>");
112 html_txt(buf); 118 html_txt(buf);
113 html("</td><td colspan='2'/><td>"); 119 html("</td><td colspan='2'/><td>");
@@ -139,11 +145,11 @@ static int cgit_print_archive_cb(const char *refname, const unsigned char *sha1,
139 } else if (obj->type != OBJ_BLOB) { 145 } else if (obj->type != OBJ_BLOB) {
140 return 0; 146 return 0;
141 } 147 }
142 if (!items) { 148 if (!header) {
143 html("<table>"); 149 html("<table>");
144 html("<tr><th>Downloads</th></tr>"); 150 html("<tr><th>Downloads</th></tr>");
151 header = 1;
145 } 152 }
146 items++;
147 html("<tr><td>"); 153 html("<tr><td>");
148 url = cgit_pageurl(cgit_query_repo, "blob", 154 url = cgit_pageurl(cgit_query_repo, "blob",
149 fmt("id=%s&path=%s", sha1_to_hex(sha1), 155 fmt("id=%s&path=%s", sha1_to_hex(sha1),
@@ -166,15 +172,15 @@ static void cgit_print_branches()
166 172
167static void cgit_print_tags() 173static void cgit_print_tags()
168{ 174{
169 items = 0; 175 header = 0;
170 for_each_tag_ref(cgit_print_tag_cb, NULL); 176 for_each_tag_ref(cgit_print_tag_cb, NULL);
171} 177}
172 178
173static void cgit_print_archives() 179static void cgit_print_archives()
174{ 180{
175 items = 0; 181 header = 0;
176 for_each_ref(cgit_print_archive_cb, NULL); 182 for_each_ref(cgit_print_archive_cb, NULL);
177 if (items) 183 if (header)
178 html("</table>"); 184 html("</table>");
179} 185}
180 186