X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/e39d738c39d37cdef115c145027f3eec85a62272..3b86b44fc761cfa8b97c44bbbdd63c9fbf1127ed:/ui-shared.c diff --git a/ui-shared.c b/ui-shared.c index b9c1243..c7fbc5e 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -14,9 +14,9 @@ const char cgit_doctype[] = static char *http_date(time_t t) { - static char day[][4] = + static char day[][4] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; - static char month[][4] = + static char month[][4] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Now", "Dec"}; struct tm *tm = gmtime(&t); @@ -25,7 +25,7 @@ static char *http_date(time_t t) tm->tm_hour, tm->tm_min, tm->tm_sec); } -static int ttl_seconds(int ttl) +static long ttl_seconds(long ttl) { if (ttl<0) return 60 * 60 * 24 * 365; @@ -40,6 +40,14 @@ void cgit_print_error(char *msg) html("\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) { @@ -49,21 +57,28 @@ char *cgit_repourl(const char *reponame) } } -char *cgit_pageurl(const char *reponame, const char *pagename, +char *cgit_pageurl(const char *reponame, const char *pagename, const char *query) { if (cgit_virtual_root) { - return fmt("%s/%s/%s/?%s", cgit_virtual_root, reponame, - pagename, query); + if (query) + return fmt("%s/%s/%s/?%s", cgit_virtual_root, reponame, + pagename, query); + else + return fmt("%s/%s/%s/", cgit_virtual_root, reponame, + pagename); } else { - return fmt("?r=%s&p=%s&%s", reponame, pagename, query); + if (query) + return fmt("?r=%s&p=%s&%s", reponame, pagename, query); + else + return fmt("?r=%s&p=%s", reponame, pagename); } } char *cgit_currurl() { if (!cgit_virtual_root) - return "./cgit.cgi"; + 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) @@ -81,7 +96,6 @@ void cgit_print_date(unsigned long secs) time = gmtime(&secs); strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", time); html_txt(buf); - } void cgit_print_docstart(char *title, struct cacheitem *item) @@ -107,19 +121,39 @@ void cgit_print_docstart(char *title, struct cacheitem *item) void cgit_print_docend() { + html(""); html("\n\n"); } void cgit_print_pageheader(char *title, int show_search) { - html("