X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/ef8a97d9c6983e4fc3710bdbe771edd4e3550dba..3cb5d86dc68bab4883bf5a7cbc90f3e266237355:/ui-summary.c diff --git a/ui-summary.c b/ui-summary.c index 38639ce..abf914e 100644 --- a/ui-summary.c +++ b/ui-summary.c @@ -8,16 +8,16 @@ */ #include "cgit.h" +#include "ui-summary.h" #include "html.h" #include "ui-log.h" #include "ui-refs.h" #include "ui-blob.h" -int urls = 0; - static void print_url(char *base, char *suffix) { int columns = 3; + struct strbuf basebuf = STRBUF_INIT; if (ctx.repo->enable_log_filecount) columns++; @@ -26,31 +26,44 @@ static void print_url(char *base, char *suffix) if (!base || !*base) return; - if (urls++ == 0) { - htmlf(" ", columns); - htmlf("Clone\n", columns); + if (suffix && *suffix) { + strbuf_addf(&basebuf, "%s/%s", base, suffix); + base = basebuf.buf; } - if (suffix && *suffix) - base = fmt("%s/%s", base, suffix); htmlf(""); html_txt(base); html("\n"); + strbuf_release(&basebuf); } static void print_urls(char *txt, char *suffix) { char *h = txt, *t, c; + int urls = 0; + int columns = 3; + + if (ctx.repo->enable_log_filecount) + columns++; + if (ctx.repo->enable_log_linecount) + columns++; + while (h && *h) { while (h && *h == ' ') h++; + if (!*h) + break; t = h; while (t && *t && *t != ' ') t++; c = *t; *t = 0; + if (urls++ == 0) { + htmlf(" ", columns); + htmlf("Clone\n", columns); + } print_url(h, suffix); *t = c; h = t; @@ -95,7 +108,12 @@ void cgit_print_repo_readme(char *path) colon = strchr(ctx.repo->readme, ':'); if (colon && strlen(colon) > 1) { *colon = '\0'; - ref = ctx.repo->readme; + /* If it starts with a colon, we want to use + * the default branch */ + if (colon == ctx.repo->readme && ctx.repo->defbranch) + ref = ctx.repo->defbranch; + else + ref = ctx.repo->readme; ctx.repo->readme = colon + 1; if (!(*ctx.repo->readme)) return; @@ -103,8 +121,8 @@ void cgit_print_repo_readme(char *path) /* Prepend repo path to relative readme path unless tracked. */ if (!ref && *ctx.repo->readme != '/') - ctx.repo->readme = xstrdup(fmt("%s/%s", ctx.repo->path, - ctx.repo->readme)); + ctx.repo->readme = fmtalloc("%s/%s", ctx.repo->path, + ctx.repo->readme); /* If a subpath is specified for the about page, make it relative * to the directory containing the configured readme.