X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/a53042865a4ac8b1fa1d6b37720787601e181495..ca8eb8fc8f71ee0a40015c323619f776840b6503:/ui-tree.c diff --git a/ui-tree.c b/ui-tree.c index 54dcdbe..60f7560 100644 --- a/ui-tree.c +++ b/ui-tree.c @@ -14,39 +14,46 @@ static int print_entry(const unsigned char *sha1, const char *base, int stage) { char *name; - char type[20]; + enum object_type type; unsigned long size; - if (sha1_object_info(sha1, type, &size)) { - cgit_print_error(fmt("Bad object name: %s", - sha1_to_hex(sha1))); + name = xstrdup(pathname); + type = sha1_object_info(sha1, &size); + if (type == OBJ_BAD) { + htmlf("Bad object: %s %s", + name, + sha1_to_hex(sha1)); return 0; } - name = xstrdup(pathname); html(""); html_filemode(mode); html(""); - if (S_ISDIR(mode)) { + if (S_ISDIRLNK(mode)) { + htmlf("
%s => submodule
", name); + } else if (S_ISDIR(mode)) { html("
%s
", name); } else { html("
%s
", name); } - html("'>"); - html_txt(name); - if (S_ISDIR(mode)) - html("/"); - html(""); + html(""); htmlf("%li", size); html("\n"); free(name); return 0; } -void cgit_print_tree(const char *hex) +void cgit_print_tree(const char *hex, char *path) { struct tree *tree; unsigned char sha1[20]; @@ -61,9 +68,9 @@ void cgit_print_tree(const char *hex) return; } - html("

Tree content

\n"); + html_txt(path); html("\n"); - html(""); + html(""); html(""); html(""); html("");
ModeNameSize