diff options
| -rw-r--r-- | robots.txt | 1 | ||||
| -rw-r--r-- | ui-blame.c | 4 | ||||
| -rw-r--r-- | ui-tree.c | 6 | 
3 files changed, 9 insertions, 2 deletions
| @@ -1,3 +1,4 @@  User-agent: *  Disallow: /*/snapshot/* +Disallow: /*/blame/*  Allow: / @@ -152,6 +152,10 @@ static void print_object(const struct object_id *oid, const char *path,  	cgit_tree_link("tree", NULL, NULL, ctx.qry.head, rev, path);  	html(")\n"); +	if (buffer_is_binary(buf, size)) { +		html("<div class='error'>blob is binary.</div>"); +		goto cleanup; +	}  	if (ctx.cfg.max_blob_size && size / 1024 > ctx.cfg.max_blob_size) {  		htmlf("<div class='error'>blob size (%ldKB)"  		      " exceeds display size limit (%dKB).</div>", @@ -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; +	bool 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); | 
