X-Git-Url: https://git.cameronkatri.com/cgit.git/blobdiff_plain/57bb4fdb8419d7c250d4c6146910df3263943951..a9a6a205608c83125841f8f0b2aca07476cd2113:/ui-tree.c diff --git a/ui-tree.c b/ui-tree.c index f281937..b1adcc7 100644 --- a/ui-tree.c +++ b/ui-tree.c @@ -46,8 +46,10 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size) html("
");
 		ctx.repo->source_filter->argv[1] = xstrdup(name);
 		cgit_open_filter(ctx.repo->source_filter);
-		write(STDOUT_FILENO, buf, size);
+		html_raw(buf, size);
 		cgit_close_filter(ctx.repo->source_filter);
+		free(ctx.repo->source_filter->argv[1]);
+		ctx.repo->source_filter->argv[1] = NULL;
 		html("
\n"); return; } @@ -67,7 +69,7 @@ static void print_binary_buffer(char *buf, unsigned long size) html("\n"); html(""); for (ofs = 0; ofs < size; ofs += ROWLEN, buf += ROWLEN) { - htmlf("\n"); free(name); return 0; @@ -223,17 +222,10 @@ 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&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; @@ -276,16 +268,12 @@ void cgit_print_tree(const char *rev, char *path) return; } - html("path: root"); - if (path == NULL) { ls_tree(commit->tree->object.sha1, NULL); return; } match_path = path; - read_tree_recursive(commit->tree, NULL, 0, 0, paths, walk_tree, NULL); + read_tree_recursive(commit->tree, "", 0, 0, paths, walk_tree, NULL); ls_tail(); }
ofshex dumpascii
%04x", ofs); + htmlf("
%04lx", ofs); for (idx = 0; idx < ROWLEN && ofs + idx < size; idx++) htmlf("%*s%02x", idx == 16 ? 4 : 1, "", @@ -102,13 +104,13 @@ static void print_object(const unsigned char *sha1, char *path, const char *base return; } - html(" ("); + htmlf("blob: %s (", sha1_to_hex(sha1)); cgit_plain_link("plain", NULL, NULL, ctx.qry.head, curr_rev, path); - htmlf(")
blob: %s\n", sha1_to_hex(sha1)); + html(")\n"); if (ctx.cfg.max_blob_size && size / 1024 > ctx.cfg.max_blob_size) { - htmlf("
blob size (%dKB) exceeds display size limit (%dKB).
", + htmlf("
blob size (%ldKB) exceeds display size limit (%dKB).
", size / 1024, ctx.cfg.max_blob_size); return; } @@ -148,13 +150,7 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen, cgit_print_filemode(mode); html("
"); if (S_ISGITLINK(mode)) { - htmlf(""); - html_txt(name); - html(""); + cgit_submodule_link("ls-mod", fullpath, sha1_to_hex(sha1)); } else if (S_ISDIR(mode)) { cgit_tree_link(name, NULL, "ls-dir", ctx.qry.head, curr_rev, fullpath); @@ -175,6 +171,9 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen, if (ctx.repo->max_stats) cgit_stats_link("stats", NULL, "button", ctx.qry.head, fullpath); + if (!S_ISGITLINK(mode)) + cgit_plain_link("plain", NULL, "button", ctx.qry.head, curr_rev, + fullpath); html("