-rw-r--r-- | ui-shared.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/ui-shared.c b/ui-shared.c index d4376ce..1c1415e 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -36,66 +36,73 @@ static long ttl_seconds(long ttl) void cgit_print_error(char *msg) { html("<div class='error'>"); html_txt(msg); html("</div>\n"); } char *cgit_rooturl() { if (cgit_virtual_root) return fmt("%s/", cgit_virtual_root); else return cgit_script_name; } char *cgit_repourl(const char *reponame) { if (cgit_virtual_root) { return fmt("%s/%s/", cgit_virtual_root, reponame); } else { return fmt("?r=%s", reponame); } } -char *cgit_pageurl(const char *reponame, const char *pagename, - const char *query) +char *cgit_fileurl(const char *reponame, const char *pagename, + const char *filename, const char *query) { if (cgit_virtual_root) { if (query) - return fmt("%s/%s/%s/?%s", cgit_virtual_root, reponame, - pagename, query); + return fmt("%s/%s/%s/%s?%s", cgit_virtual_root, reponame, + pagename, filename?filename:"", query); else return fmt("%s/%s/%s/", cgit_virtual_root, reponame, pagename); } else { if (query) return fmt("?r=%s&p=%s&%s", reponame, pagename, query); else return fmt("?r=%s&p=%s", reponame, pagename); } } +char *cgit_pageurl(const char *reponame, const char *pagename, + const char *query) +{ + return cgit_fileurl(reponame,pagename,0,query); +} + + char *cgit_currurl() { if (!cgit_virtual_root) return cgit_script_name; else if (cgit_query_page) return fmt("%s/%s/%s/", cgit_virtual_root, cgit_query_repo, cgit_query_page); else if (cgit_query_repo) return fmt("%s/%s/", cgit_virtual_root, cgit_query_repo); else 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) { @@ -347,24 +354,26 @@ void cgit_print_pageheader(char *title, int show_search) if (cgit_query_head) html_hidden("h", cgit_query_head); if (cgit_query_sha1) html_hidden("id", cgit_query_sha1); if (cgit_query_sha2) html_hidden("id2", cgit_query_sha2); html("<input type='text' name='q' value='"); html_attr(cgit_query_search); html("'/></form>"); } html("</td></tr>"); html("<tr><td id='content' colspan='2'>"); } void cgit_print_snapshot_start(const char *mimetype, const char *filename, struct cacheitem *item) { htmlf("Content-Type: %s\n", mimetype); htmlf("Content-Disposition: inline; filename=\"%s\"\n", filename); htmlf("Last-Modified: %s\n", http_date(item->st.st_mtime)); htmlf("Expires: %s\n", http_date(item->st.st_mtime + ttl_seconds(item->ttl))); html("\n"); } + +/* vim:set sw=8: */ |