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);
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) {
}
}
-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)
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)
void cgit_print_pageheader(char *title, int show_search)
{
- html("<table id='layout'><tr><td id='header'>");
- htmlf("<a href='%s'>", cgit_logo_link);
- htmlf("<img id='logo' src='%s'/>\n", cgit_logo);
- htmlf("</a>");
+ html("<table id='layout'>");
+ html("<tr><td id='header'>");
+ html(cgit_root_title);
+ html("</td><td id='logo'>");
+ html("<a href='");
+ html_attr(cgit_logo_link);
+ htmlf("'><img src='%s'/></a>", cgit_logo);
+ html("</td></tr>");
+ html("<tr><td id='crumb'>");
+ htmlf("<a href='%s'>root</a>", cgit_rooturl());
+ if (cgit_query_repo) {
+ htmlf(" : <a href='%s'>", cgit_repourl(cgit_repo->url));
+ html_txt(cgit_repo->name);
+ htmlf("</a> : %s", title);
+ }
+ html("</td>");
+ html("<td id='search'>");
if (show_search) {
html("<form method='get' href='");
html_attr(cgit_currurl());
html_attr(cgit_query_search);
html("'/></form>");
}
- if (cgit_query_repo)
- htmlf("<a href='%s'>", cgit_repourl(cgit_query_repo));
- html_txt(title);
- if (cgit_query_repo)
- html("</a>");
- html("</td></tr><tr><td id='content'>");
+ html("</td></tr>");
+ html("<tr><td id='content' colspan='2'>");
}
-void cgit_print_snapshot_start(const char *mimetype, const char *filename,
+void cgit_print_snapshot_start(const char *mimetype, const char *filename,
struct cacheitem *item)
{
htmlf("Content-Type: %s\n", mimetype);