X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/685872b770be2af643d00365d5358e46687f7385..084ca50972b4be120eba8d22ce585766ae315c36:/ui-shared.c?ds=sidebyside diff --git a/ui-shared.c b/ui-shared.c index 372b9e7..5aa9119 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -341,6 +341,18 @@ void cgit_commit_link(char *name, const char *title, const char *class, if ((ctx.qry.ssdiff && !toggle_ssdiff) || (!ctx.qry.ssdiff && toggle_ssdiff)) { html(delim); html("ss=1"); + delim = "&"; + } + if (ctx.qry.context > 0 && ctx.qry.context != 3) { + html(delim); + html("context="); + htmlf("%d", ctx.qry.context); + delim = "&"; + } + if (ctx.qry.ignorews) { + html(delim); + html("ignorews=1"); + delim = "&"; } html("'>"); html_txt(name); @@ -382,6 +394,18 @@ void cgit_diff_link(const char *name, const char *title, const char *class, if ((ctx.qry.ssdiff && !toggle_ssdiff) || (!ctx.qry.ssdiff && toggle_ssdiff)) { html(delim); html("ss=1"); + delim = "&"; + } + if (ctx.qry.context > 0 && ctx.qry.context != 3) { + html(delim); + html("context="); + htmlf("%d", ctx.qry.context); + delim = "&"; + } + if (ctx.qry.ignorews) { + html(delim); + html("ignorews=1"); + delim = "&"; } html("'>"); html_txt(name); @@ -550,7 +574,7 @@ void cgit_print_http_headers(struct cgit_context *ctx) else if (ctx->page.mimetype) htmlf("Content-Type: %s\n", ctx->page.mimetype); if (ctx->page.size) - htmlf("Content-Length: %ld\n", ctx->page.size); + htmlf("Content-Length: %zd\n", ctx->page.size); if (ctx->page.filename) htmlf("Content-Disposition: inline; filename=\"%s\"\n", ctx->page.filename); @@ -732,17 +756,27 @@ static void cgit_print_path_crumbs(struct cgit_context *ctx, char *path) static void print_header(struct cgit_context *ctx) { + char *logo = NULL, *logo_link = NULL; + html("\n"); html("\n"); - if (ctx->cfg.logo && ctx->cfg.logo[0] != 0) { + if (ctx->repo && ctx->repo->logo && *ctx->repo->logo) + logo = ctx->repo->logo; + else + logo = ctx->cfg.logo; + if (ctx->repo && ctx->repo->logo_link && *ctx->repo->logo_link) + logo_link = ctx->repo->logo_link; + else + logo_link = ctx->cfg.logo_link; + if (logo && *logo) { html("\n"); } @@ -790,16 +824,17 @@ void cgit_print_pageheader(struct cgit_context *ctx) cgit_refs_link("refs", NULL, hc(ctx, "refs"), ctx->qry.head, ctx->qry.sha1, NULL); cgit_log_link("log", NULL, hc(ctx, "log"), ctx->qry.head, - NULL, NULL, 0, NULL, NULL, ctx->qry.showmsg); + NULL, ctx->qry.vpath, 0, NULL, NULL, + ctx->qry.showmsg); cgit_tree_link("tree", NULL, hc(ctx, "tree"), ctx->qry.head, - ctx->qry.sha1, NULL); + ctx->qry.sha1, ctx->qry.vpath); cgit_commit_link("commit", NULL, hc(ctx, "commit"), - ctx->qry.head, ctx->qry.sha1, NULL, 0); + ctx->qry.head, ctx->qry.sha1, ctx->qry.vpath, 0); cgit_diff_link("diff", NULL, hc(ctx, "diff"), ctx->qry.head, - ctx->qry.sha1, ctx->qry.sha2, NULL, 0); + ctx->qry.sha1, ctx->qry.sha2, ctx->qry.vpath, 0); if (ctx->repo->max_stats) cgit_stats_link("stats", NULL, hc(ctx, "stats"), - ctx->qry.head, NULL); + ctx->qry.head, ctx->qry.vpath); if (ctx->repo->readme) reporevlink("about", "about", NULL, hc(ctx, "about"), ctx->qry.head, NULL, @@ -815,6 +850,7 @@ void cgit_print_pageheader(struct cgit_context *ctx) html_option("grep", "log msg", ctx->qry.grep); html_option("author", "author", ctx->qry.grep); html_option("committer", "committer", ctx->qry.grep); + html_option("range", "range", ctx->qry.grep); html("\n"); html("