cgit

commit cbcdbcf2bff23113fe81df8f11fe7843b8ed637e

Author: Lars Hjemli <hjemli@gmail.com>

Make print_branch() handle refs not pointing at commits

The master branch of stable/linux-2.6.20 currently references a tag
object, which makes print_branch() die with a segfault. This teaches
print_branch() to handle such cases more gracefully.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>

 ui-summary.c | 16 +++++++++++-----


diff --git a/ui-summary.c b/ui-summary.c
index 04a466a319f384b03ff92909e462aa7baaec5b8d..ba90510f0289d11dcfa9263cf86a03ae5c6a0bb3 100644
--- a/ui-summary.c
+++ b/ui-summary.c
@@ -58,11 +58,17 @@ 		return 1;
 	html("<tr><td>");
 	cgit_log_link(name, NULL, NULL, name, NULL, NULL, 0);
 	html("</td><td>");
-	cgit_print_age(info->commit->date, -1, NULL);
-	html("</td><td>");
-	html_txt(info->author);
-	html("</td><td>");
-	cgit_commit_link(info->subject, NULL, NULL, name, NULL);
+
+	if (ref->object->type == OBJ_COMMIT) {
+		cgit_print_age(info->commit->date, -1, NULL);
+		html("</td><td>");
+		html_txt(info->author);
+		html("</td><td>");
+		cgit_commit_link(info->subject, NULL, NULL, name, NULL);
+	} else {
+		html("</td><td></td><td>");
+		cgit_object_link(ref->object);
+	}
 	html("</td></tr>\n");
 	return 0;
 }