cgit: replace 'unsigned char sha1[20]' with 'struct object_id oid'

Upstream git is replacing 'unsigned char sha1[20]' with 'struct object_id
oid'. We have some code that can be changed independent from upstream. So
here we go...
This commit is contained in:
Christian Hesse 2016-09-29 21:16:14 +02:00
parent ef3108656b
commit aee990b6a4

9
cgit.c
View File

@ -471,13 +471,14 @@ static char *find_default_branch(struct cgit_repo *repo)
static char *guess_defbranch(void) static char *guess_defbranch(void)
{ {
const char *ref; 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/")) if (!ref || !starts_with(ref, "refs/heads/"))
return "master"; return "master";
return xstrdup(ref + 11); return xstrdup(ref + 11);
} }
/* The caller must free filename and ref after calling this. */ /* 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) 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) static int prepare_repo_cmd(void)
{ {
unsigned char sha1[20]; struct object_id oid;
int nongit = 0; int nongit = 0;
int rc; int rc;
@ -615,7 +616,7 @@ static int prepare_repo_cmd(void)
return 1; return 1;
} }
if (get_sha1(ctx.qry.head, sha1)) { if (get_oid(ctx.qry.head, &oid)) {
char *old_head = ctx.qry.head; char *old_head = ctx.qry.head;
ctx.qry.head = xstrdup(ctx.repo->defbranch); ctx.qry.head = xstrdup(ctx.repo->defbranch);
cgit_print_error_page(404, "Not found", cgit_print_error_page(404, "Not found",