X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/79c985e13c10b498c3ea62f4607c2e2a460c3b10..8eef4589d0ba80fd4e6a9ce2f3ca4fcf266a64e0:/cgit.c diff --git a/cgit.c b/cgit.c index 20f6e27..c16ed8c 100644 --- a/cgit.c +++ b/cgit.c @@ -91,6 +91,12 @@ static void repo_config(struct cgit_repo *repo, const char *name, const char *va repo->source_filter = cgit_new_filter(value, SOURCE); else if (!strcmp(name, "email-filter")) repo->email_filter = cgit_new_filter(value, EMAIL); + else if (!strcmp(name, "owner-filter")) + repo->owner_filter = cgit_new_filter(value, OWNER); + } else if (!strcmp(name, "hide")) { + repo->hide = atoi(value); + } else if (!strcmp(name, "ignore")) { + repo->ignore = atoi(value); } } @@ -194,6 +200,8 @@ static void config_cb(const char *name, const char *value) ctx.cfg.commit_filter = cgit_new_filter(value, COMMIT); else if (!strcmp(name, "email-filter")) ctx.cfg.email_filter = cgit_new_filter(value, EMAIL); + else if (!strcmp(name, "owner-filter")) + ctx.cfg.owner_filter = cgit_new_filter(value, OWNER); else if (!strcmp(name, "auth-filter")) ctx.cfg.auth_filter = cgit_new_filter(value, AUTH); else if (!strcmp(name, "embedded")) @@ -237,7 +245,7 @@ static void config_cb(const char *name, const char *value) else if (!strcmp(name, "summary-tags")) ctx.cfg.summary_tags = atoi(value); else if (!strcmp(name, "side-by-side-diffs")) - ctx.cfg.ssdiff = atoi(value); + ctx.cfg.difftype = atoi(value) ? DIFF_SSDIFF : DIFF_UNIFIED; else if (!strcmp(name, "agefile")) ctx.cfg.agefile = xstrdup(value); else if (!strcmp(name, "mimetype-file")) @@ -312,9 +320,13 @@ static void querystring_cb(const char *name, const char *value) ctx.qry.showmsg = atoi(value); } else if (!strcmp(name, "period")) { ctx.qry.period = xstrdup(value); + } else if (!strcmp(name, "dt")) { + ctx.qry.difftype = atoi(value); + ctx.qry.has_difftype = 1; } else if (!strcmp(name, "ss")) { - ctx.qry.ssdiff = atoi(value); - ctx.qry.has_ssdiff = 1; + /* No longer generated, but there may be links out there. */ + ctx.qry.difftype = atoi(value) ? DIFF_SSDIFF : DIFF_UNIFIED; + ctx.qry.has_difftype = 1; } else if (!strcmp(name, "all")) { ctx.qry.show_all = atoi(value); } else if (!strcmp(name, "context")) { @@ -372,7 +384,7 @@ static void prepare_context(void) ctx.cfg.summary_log = 10; ctx.cfg.summary_tags = 10; ctx.cfg.max_atom_items = 10; - ctx.cfg.ssdiff = 0; + ctx.cfg.difftype = DIFF_UNIFIED; ctx.env.cgit_config = getenv("CGIT_CONFIG"); ctx.env.http_host = getenv("HTTP_HOST"); ctx.env.https = getenv("HTTPS"); @@ -453,7 +465,7 @@ static char *guess_defbranch(void) const char *ref; unsigned char sha1[20]; - ref = resolve_ref_unsafe("HEAD", sha1, 0, NULL); + ref = resolve_ref_unsafe("HEAD", 0, sha1, NULL); if (!ref || !starts_with(ref, "refs/heads/")) return "master"; return xstrdup(ref + 11); @@ -504,12 +516,6 @@ static void choose_readme(struct cgit_repo *repo) free(ref); continue; } - /* If there's only one item, we skip the possibly expensive - * selection process. */ - if (repo->readme.nr == 1) { - found = 1; - break; - } if (ref) { if (cgit_ref_path_exists(filename, ref, 1)) { found = 1; @@ -530,6 +536,17 @@ static void choose_readme(struct cgit_repo *repo) string_list_append(&repo->readme, filename)->util = ref; } +static void print_no_repo_clone_urls(const char *url) +{ + html("
| Clone |
|---|