Add and use cgit_tree_link()
This creates a new function used to generate links to 'tree' page and uses the function everywhere a link to the 'tree' page is generated. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
33
ui-tree.c
33
ui-tree.c
@ -55,11 +55,15 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen,
|
||||
const char *pathname, unsigned int mode, int stage)
|
||||
{
|
||||
char *name;
|
||||
char *fullpath;
|
||||
enum object_type type;
|
||||
unsigned long size = 0;
|
||||
char *url, *qry;
|
||||
|
||||
name = xstrdup(pathname);
|
||||
fullpath = fmt("%s%s%s", cgit_query_path ? cgit_query_path : "",
|
||||
cgit_query_path ? "/" : "", name);
|
||||
|
||||
type = sha1_object_info(sha1, &size);
|
||||
if (type == OBJ_BAD && !S_ISDIRLNK(mode)) {
|
||||
htmlf("<tr><td colspan='3'>Bad object: %s %s</td></tr>",
|
||||
@ -67,10 +71,7 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen,
|
||||
sha1_to_hex(sha1));
|
||||
return 0;
|
||||
}
|
||||
qry = fmt("h=%s&path=%s%s%s", curr_rev,
|
||||
cgit_query_path ? cgit_query_path : "",
|
||||
cgit_query_path ? "/" : "", pathname);
|
||||
url = cgit_pageurl(cgit_query_repo, "tree", qry);
|
||||
|
||||
html("<tr><td class='filemode'>");
|
||||
html_filemode(mode);
|
||||
html("</td><td ");
|
||||
@ -79,15 +80,19 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen,
|
||||
html_attr(fmt(cgit_repo->module_link,
|
||||
name,
|
||||
sha1_to_hex(sha1)));
|
||||
html("'>");
|
||||
html_txt(name);
|
||||
html("</a>");
|
||||
} else if (S_ISDIR(mode)) {
|
||||
html("class='ls-dir'><a href='");
|
||||
html_attr(url);
|
||||
html("class='ls-dir'>");
|
||||
cgit_tree_link(name, NULL, NULL, cgit_query_head,
|
||||
curr_rev, fullpath);
|
||||
} else {
|
||||
html("class='ls-blob'><a href='");
|
||||
html_attr(url);
|
||||
html("class='ls-blob'>");
|
||||
cgit_tree_link(name, NULL, NULL, cgit_query_head,
|
||||
curr_rev, fullpath);
|
||||
}
|
||||
htmlf("'>%s</a></td>", name);
|
||||
htmlf("<td class='filesize'>%li</td>", size);
|
||||
htmlf("</td><td class='filesize'>%li</td>", size);
|
||||
|
||||
html("<td class='links'><a href='");
|
||||
qry = fmt("h=%s&path=%s%s%s", curr_rev,
|
||||
@ -150,11 +155,9 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
|
||||
strcpy(buffer+baselen, pathname);
|
||||
url = cgit_pageurl(cgit_query_repo, "tree",
|
||||
fmt("h=%s&path=%s", curr_rev, buffer));
|
||||
htmlf(" / <a href='");
|
||||
html_attr(url);
|
||||
html("'>");
|
||||
html_txt(xstrdup(pathname));
|
||||
html("</a>");
|
||||
html("/");
|
||||
cgit_tree_link(xstrdup(pathname), NULL, NULL, cgit_query_head,
|
||||
curr_rev, buffer);
|
||||
|
||||
if (strcmp(match_path, buffer))
|
||||
return READ_TREE_RECURSIVE;
|
||||
|
Reference in New Issue
Block a user