aboutsummaryrefslogtreecommitdiff
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
-rw-r--r--ui-tree.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/ui-tree.c b/ui-tree.c
index 75ec9cb..0ee38f2 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -102,10 +102,10 @@ static void print_object(const unsigned char *sha1, char *path, const char *base
return;
}
- htmlf("blob: %s (", sha1_to_hex(sha1));
+ html(" (");
cgit_plain_link("plain", NULL, NULL, ctx.qry.head,
curr_rev, path);
- html(")\n");
+ htmlf(")<br/>blob: %s\n", sha1_to_hex(sha1));
if (ctx.cfg.max_blob_size && size / 1024 > ctx.cfg.max_blob_size) {
htmlf("<div class='error'>blob size (%dKB) exceeds display size limit (%dKB).</div>",
@@ -225,10 +225,17 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
{
static int state;
static char buffer[PATH_MAX];
+ char *url;
if (state == 0) {
memcpy(buffer, base, 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))
return READ_TREE_RECURSIVE;
@@ -271,6 +278,10 @@ void cgit_print_tree(const char *rev, char *path)
return;
}
+ html("path: <a href='");
+ html_attr(cgit_pageurl(ctx.qry.repo, "tree", fmt("h=%s", rev)));
+ html("'>root</a>");
+
if (path == NULL) {
ls_tree(commit->tree->object.sha1, NULL);
return;