return "http://";
}
-const char *cgit_hosturl(void)
+char *cgit_hosturl(void)
{
if (ctx.env.http_host)
- return ctx.env.http_host;
+ return xstrdup(ctx.env.http_host);
if (!ctx.env.server_name)
return NULL;
if (!ctx.env.server_port || atoi(ctx.env.server_port) == 80)
- return ctx.env.server_name;
+ return xstrdup(ctx.env.server_name);
return fmtalloc("%s:%s", ctx.env.server_name, ctx.env.server_port);
}
if (always_root || page)
html_attr(cgit_rooturl());
- else
- html_attr(cgit_currenturl());
+ else {
+ char *currenturl = cgit_currenturl();
+ html_attr(currenturl);
+ free(currenturl);
+ }
if (page) {
htmlf("?p=%s", page);
return;
}
- const char *host = cgit_hosturl();
+ char *host = cgit_hosturl();
html(cgit_doctype);
html("<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n");
html("<head>\n");
html("<link rel='alternate' title='Atom feed' href='");
html(cgit_httpscheme());
- html_attr(cgit_hosturl());
+ html_attr(host);
fileurl = cgit_fileurl(ctx.repo->url, "atom", ctx.qry.vpath,
sb.buf);
html_attr(fileurl);
html("<body>\n");
if (ctx.cfg.header)
html_include(ctx.cfg.header);
+ free(host);
}
void cgit_print_docend(void)
html("<input type='submit' value='search'/>\n");
html("</form>\n");
} else if (ctx.env.authenticated) {
+ char *currenturl = cgit_currenturl();
site_link(NULL, "index", NULL, hc("repolist"), NULL, NULL, 0, 1);
if (ctx.cfg.root_readme)
site_link("about", "about", NULL, hc("about"),
NULL, NULL, 0, 1);
html("</td><td class='form'>");
html("<form method='get' action='");
- html_attr(cgit_currenturl());
+ html_attr(currenturl);
html("'>\n");
html("<input type='text' name='q' size='10' value='");
html_attr(ctx.qry.search);
html("'/>\n");
html("<input type='submit' value='search'/>\n");
html("</form>");
+ free(currenturl);
}
html("</td></tr></table>\n");
if (ctx.env.authenticated && ctx.qry.vpath) {