about summary refs log tree commit diff
path: root/third_party
diff options
context:
space:
mode:
authorC. McEnroe <june@causal.agency>2019-12-18T21·32+0000
committerVincent Ambo <tazjin@google.com>2020-02-21T21·02+0000
commit6932c431bb4374ae357d08577f52ede0929502ef (patch)
tree0d20d9a057023a569216a40b1c4240d4e98b9c5e /third_party
parent37b0b37771f066775120e8f3932bd68c34d57e8a (diff)
feat(cgit/ui-tree): don't link to blame for binary blobs
Diffstat (limited to 'third_party')
-rw-r--r--third_party/cgit/ui-tree.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/third_party/cgit/ui-tree.c b/third_party/cgit/ui-tree.c
index 84eb17d647..c4f2dac466 100644
--- a/third_party/cgit/ui-tree.c
+++ b/third_party/cgit/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);