summaryrefslogtreecommitdiffabout
path: root/ui-tree.c
Side-by-side diff
Diffstat (limited to 'ui-tree.c') (more/less context) (ignore whitespace changes)
-rw-r--r--ui-tree.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/ui-tree.c b/ui-tree.c
index a164767..0b1b531 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -48,3 +48,3 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size)
cgit_open_filter(ctx.repo->source_filter);
- write(STDOUT_FILENO, buf, size);
+ html_raw(buf, size);
cgit_close_filter(ctx.repo->source_filter);
@@ -69,3 +69,3 @@ static void print_binary_buffer(char *buf, unsigned long size)
for (ofs = 0; ofs < size; ofs += ROWLEN, buf += ROWLEN) {
- htmlf("<tr><td class='right'>%04x</td><td class='hex'>", ofs);
+ htmlf("<tr><td class='right'>%04lx</td><td class='hex'>", ofs);
for (idx = 0; idx < ROWLEN && ofs + idx < size; idx++)
@@ -104,6 +104,12 @@ static void print_object(const unsigned char *sha1, char *path, const char *base
- html(" (");
+ htmlf("blob: %s (", sha1_to_hex(sha1));
cgit_plain_link("plain", NULL, NULL, ctx.qry.head,
curr_rev, path);
- htmlf(")<br/>blob: %s\n", sha1_to_hex(sha1));
+ html(")\n");
+
+ 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>",
+ size / 1024, ctx.cfg.max_blob_size);
+ return;
+ }
@@ -171,2 +177,4 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen,
fullpath);
+ cgit_plain_link("plain", NULL, "button", ctx.qry.head, curr_rev,
+ fullpath);
html("</td></tr>\n");
@@ -219,3 +227,2 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
static char buffer[PATH_MAX];
- char *url;
@@ -224,8 +231,2 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
strcpy(buffer+baselen, pathname);
- url = cgit_pageurl(ctx.qry.repo, "tree",
- fmt("h=%s&amp;path=%s", curr_rev, buffer));
- html("/");
- cgit_tree_link(xstrdup(pathname), NULL, NULL, ctx.qry.head,
- curr_rev, buffer);
-
if (strcmp(match_path, buffer))
@@ -272,6 +273,2 @@ void cgit_print_tree(const char *rev, char *path)
- html("path: <a href='");
- html_attr(cgit_pageurl(ctx.qry.repo, "tree", fmt("h=%s", rev)));
- html("'>root</a>");
-
if (path == NULL) {