X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/d88ec849c4f7af41a8a41af1a4f79a2b4d41717a..5fe88a9c81517b1a8a93d930c738cbb6f71dec2a:/cgit.c diff --git a/cgit.c b/cgit.c index ab3fadb..9f5a80f 100644 --- a/cgit.c +++ b/cgit.c @@ -471,13 +471,14 @@ static char *find_default_branch(struct cgit_repo *repo) static char *guess_defbranch(void) { const char *ref; - unsigned char sha1[20]; + struct object_id oid; - ref = resolve_ref_unsafe("HEAD", 0, sha1, NULL); + ref = resolve_ref_unsafe("HEAD", 0, oid.hash, NULL); if (!ref || !starts_with(ref, "refs/heads/")) return "master"; return xstrdup(ref + 11); } + /* The caller must free filename and ref after calling this. */ static inline void parse_readme(const char *readme, char **filename, char **ref, struct cgit_repo *repo) { @@ -557,7 +558,7 @@ static void print_no_repo_clone_urls(const char *url) static int prepare_repo_cmd(void) { - unsigned char sha1[20]; + struct object_id oid; int nongit = 0; int rc; @@ -615,12 +616,12 @@ static int prepare_repo_cmd(void) return 1; } - if (get_sha1(ctx.qry.head, sha1)) { - char *tmp = xstrdup(ctx.qry.head); - ctx.qry.head = ctx.repo->defbranch; + if (get_oid(ctx.qry.head, &oid)) { + char *old_head = ctx.qry.head; + ctx.qry.head = xstrdup(ctx.repo->defbranch); cgit_print_error_page(404, "Not found", - "Invalid branch: %s", tmp); - free(tmp); + "Invalid branch: %s", old_head); + free(old_head); return 1; } string_list_sort(&ctx.repo->submodules); @@ -1026,7 +1027,7 @@ static int calc_ttl(void) return ctx.cfg.cache_repo_ttl; } -int main(int argc, const char **argv) +int cmd_main(int argc, const char **argv) { const char *path; int err, ttl;