diff options
author | Lars Hjemli <hjemli@gmail.com> | 2007-06-17 03:23:08 +0400 |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2007-06-17 03:39:05 +0400 |
commit | 44947bfcdc0d6e8c7d673bea0538cbf2a182f289 (patch) | |
tree | 3f65d6842738a8314ed72d5575a0b523061556b7 /ui-shared.c | |
parent | f91b9696a36008c245a3195800ba0c5fa3e890f9 (diff) |
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>
Diffstat (limited to 'ui-shared.c')
-rw-r--r-- | ui-shared.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/ui-shared.c b/ui-shared.c index aba93e8..9ab6409 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -87,6 +87,70 @@ char *cgit_currurl() return fmt("%s/", cgit_virtual_root); } +static char *repolink(char *title, char *class, char *page, char *head, + char *path) +{ + char *delim = "?"; + + html("<a"); + if (title) { + html(" title='"); + html_attr(title); + html("'"); + } + if (class) { + html(" class='"); + html_attr(class); + html("'"); + } + html(" href='"); + if (cgit_virtual_root) { + html_attr(cgit_virtual_root); + if (cgit_virtual_root[strlen(cgit_virtual_root) - 1] != '/') + html("/"); + html_attr(cgit_repo->url); + if (cgit_repo->url[strlen(cgit_repo->url) - 1] != '/') + html("/"); + html(page); + html("/"); + if (path) + html_attr(path); + } else { + html(cgit_script_name); + html("?url="); + html_attr(cgit_repo->url); + if (cgit_repo->url[strlen(cgit_repo->url) - 1] != '/') + html("/"); + html(page); + html("/"); + if (path) + html_attr(path); + delim = "&"; + } + if (head && head != cgit_query_head) { + html(delim); + html("h="); + html_attr(head); + delim = "&"; + } + return fmt("%s", delim); +} + +void cgit_tree_link(char *name, char *title, char *class, char *head, + char *rev, char *path) +{ + char *delim; + + delim = repolink(title, class, "tree", head, path); + if (rev && rev != cgit_query_head) { + html(delim); + html("id="); + html_attr(rev); + } + html("'>"); + html_txt(name); + html("</a>"); +} void cgit_print_date(time_t secs, char *format) { |