aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--robots.txt1
-rw-r--r--ui-blame.c4
-rw-r--r--ui-tree.c6
3 files changed, 9 insertions, 2 deletions
diff --git a/robots.txt b/robots.txt
index 4ce948f..1b33266 100644
--- a/robots.txt
+++ b/robots.txt
@@ -1,3 +1,4 @@
1User-agent: * 1User-agent: *
2Disallow: /*/snapshot/* 2Disallow: /*/snapshot/*
3Disallow: /*/blame/*
3Allow: / 4Allow: /
diff --git a/ui-blame.c b/ui-blame.c
index 03136f7..4adec2b 100644
--- a/ui-blame.c
+++ b/ui-blame.c
@@ -152,6 +152,10 @@ static void print_object(const struct object_id *oid, const char *path,
152 cgit_tree_link("tree", NULL, NULL, ctx.qry.head, rev, path); 152 cgit_tree_link("tree", NULL, NULL, ctx.qry.head, rev, path);
153 html(")\n"); 153 html(")\n");
154 154
155 if (buffer_is_binary(buf, size)) {
156 html("<div class='error'>blob is binary.</div>");
157 goto cleanup;
158 }
155 if (ctx.cfg.max_blob_size && size / 1024 > ctx.cfg.max_blob_size) { 159 if (ctx.cfg.max_blob_size && size / 1024 > ctx.cfg.max_blob_size) {
156 htmlf("<div class='error'>blob size (%ldKB)" 160 htmlf("<div class='error'>blob size (%ldKB)"
157 " exceeds display size limit (%dKB).</div>", 161 " exceeds display size limit (%dKB).</div>",
diff --git a/ui-tree.c b/ui-tree.c
index fbaaa32..4657c37 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
89 enum object_type type; 89 enum object_type type;
90 char *buf; 90 char *buf;
91 unsigned long size; 91 unsigned long size;
92 bool is_binary;
92 93
93 type = oid_object_info(the_repository, oid, &size); 94 type = oid_object_info(the_repository, oid, &size);
94 if (type == OBJ_BAD) { 95 if (type == OBJ_BAD) {
@@ -103,6 +104,7 @@ static void print_object(const struct object_id *oid, const char *path, const ch
103 "Error reading object %s", oid_to_hex(oid)); 104 "Error reading object %s", oid_to_hex(oid));
104 return; 105 return;
105 } 106 }
107 is_binary = buffer_is_binary(buf, size);
106 108
107 cgit_set_title_from_path(path); 109 cgit_set_title_from_path(path);
108 110
@@ -110,7 +112,7 @@ static void print_object(const struct object_id *oid, const char *path, const ch
110 htmlf("blob: %s (", oid_to_hex(oid)); 112 htmlf("blob: %s (", oid_to_hex(oid));
111 cgit_plain_link("plain", NULL, NULL, ctx.qry.head, 113 cgit_plain_link("plain", NULL, NULL, ctx.qry.head,
112 rev, path); 114 rev, path);
113 if (ctx.repo->enable_blame) { 115 if (ctx.repo->enable_blame && !is_binary) {
114 html(") ("); 116 html(") (");
115 cgit_blame_link("blame", NULL, NULL, ctx.qry.head, 117 cgit_blame_link("blame", NULL, NULL, ctx.qry.head,
116 rev, path); 118 rev, path);
@@ -123,7 +125,7 @@ static void print_object(const struct object_id *oid, const char *path, const ch
123 return; 125 return;
124 } 126 }
125 127
126 if (buffer_is_binary(buf, size)) 128 if (is_binary)
127 print_binary_buffer(buf, size); 129 print_binary_buffer(buf, size);
128 else 130 else
129 print_text_buffer(basename, buf, size); 131 print_text_buffer(basename, buf, size);