about summary refs log tree commit diff
path: root/ui-tree.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2019-12-18 21:32:58 +0000
committerJune McEnroe <june@causal.agency>2022-02-13 11:48:23 -0500
commite75fa957ee981b983783f0f6a185b162365b4aac (patch)
tree89bbfde3bef2211caacf13237b528fcf4635c357 /ui-tree.c
parentBail from blame if blob is binary (diff)
downloadcgit-pink-e75fa957ee981b983783f0f6a185b162365b4aac.tar.gz
cgit-pink-e75fa957ee981b983783f0f6a185b162365b4aac.zip
Don't link to blame for binary blobs
Diffstat (limited to 'ui-tree.c')
-rw-r--r--ui-tree.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/ui-tree.c b/ui-tree.c
index 1e4efb2..45e930e 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -89,6 +89,7 @@ static void print_object(const struct object_id *oid, const char *path, const ch
 	enum object_type type;
 	char *buf;
 	unsigned long size;
+	int is_binary;
 
 	type = oid_object_info(the_repository, oid, &size);
 	if (type == OBJ_BAD) {
@@ -103,6 +104,7 @@ static void print_object(const struct object_id *oid, const char *path, const ch
 			"Error reading object %s", oid_to_hex(oid));
 		return;
 	}
+	is_binary = buffer_is_binary(buf, size);
 
 	cgit_set_title_from_path(path);
 
@@ -110,7 +112,7 @@ static void print_object(const struct object_id *oid, const char *path, const ch
 	htmlf("blob: %s (", oid_to_hex(oid));
 	cgit_plain_link("plain", NULL, NULL, ctx.qry.head,
 		        rev, path);
-	if (ctx.repo->enable_blame) {
+	if (ctx.repo->enable_blame && !is_binary) {
 		html(") (");
 		cgit_blame_link("blame", NULL, NULL, ctx.qry.head,
 			        rev, path);
@@ -123,7 +125,7 @@ static void print_object(const struct object_id *oid, const char *path, const ch
 		return;
 	}
 
-	if (buffer_is_binary(buf, size))
+	if (is_binary)
 		print_binary_buffer(buf, size);
 	else
 		print_text_buffer(basename, buf, size);