diff options
| -rw-r--r-- | cgit.c | 10 | ||||
| -rw-r--r-- | ui-shared.c | 3 |
2 files changed, 9 insertions, 4 deletions
| @@ -207,15 +207,19 @@ int find_current_ref(const char *refname, const unsigned char *sha1, | |||
| 207 | char *find_default_branch(struct cgit_repo *repo) | 207 | char *find_default_branch(struct cgit_repo *repo) |
| 208 | { | 208 | { |
| 209 | struct refmatch info; | 209 | struct refmatch info; |
| 210 | char *ref; | ||
| 210 | 211 | ||
| 211 | info.req_ref = repo->defbranch; | 212 | info.req_ref = repo->defbranch; |
| 212 | info.first_ref = NULL; | 213 | info.first_ref = NULL; |
| 213 | info.match = 0; | 214 | info.match = 0; |
| 214 | for_each_branch_ref(find_current_ref, &info); | 215 | for_each_branch_ref(find_current_ref, &info); |
| 215 | if (info.match) | 216 | if (info.match) |
| 216 | return info.req_ref; | 217 | ref = info.req_ref; |
| 217 | else | 218 | else |
| 218 | return info.first_ref; | 219 | ref = info.first_ref; |
| 220 | if (ref) | ||
| 221 | ref = xstrdup(ref); | ||
| 222 | return ref; | ||
| 219 | } | 223 | } |
| 220 | 224 | ||
| 221 | static int prepare_repo_cmd(struct cgit_context *ctx) | 225 | static int prepare_repo_cmd(struct cgit_context *ctx) |
| @@ -241,7 +245,7 @@ static int prepare_repo_cmd(struct cgit_context *ctx) | |||
| 241 | ctx->page.title = fmt("%s - %s", ctx->repo->name, ctx->repo->desc); | 245 | ctx->page.title = fmt("%s - %s", ctx->repo->name, ctx->repo->desc); |
| 242 | 246 | ||
| 243 | if (!ctx->qry.head) { | 247 | if (!ctx->qry.head) { |
| 244 | ctx->qry.head = xstrdup(find_default_branch(ctx->repo)); | 248 | ctx->qry.head = find_default_branch(ctx->repo); |
| 245 | ctx->repo->defbranch = ctx->qry.head; | 249 | ctx->repo->defbranch = ctx->qry.head; |
| 246 | } | 250 | } |
| 247 | 251 | ||
diff --git a/ui-shared.c b/ui-shared.c index 209af6e..4280a70 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
| @@ -518,7 +518,8 @@ void add_hidden_formfields(int incl_head, int incl_search, char *page) | |||
| 518 | html_hidden("url", url); | 518 | html_hidden("url", url); |
| 519 | } | 519 | } |
| 520 | 520 | ||
| 521 | if (incl_head && strcmp(ctx.qry.head, ctx.repo->defbranch)) | 521 | if (incl_head && ctx.qry.head && ctx.repo->defbranch && |
| 522 | strcmp(ctx.qry.head, ctx.repo->defbranch)) | ||
| 522 | html_hidden("h", ctx.qry.head); | 523 | html_hidden("h", ctx.qry.head); |
| 523 | 524 | ||
| 524 | if (ctx.qry.sha1) | 525 | if (ctx.qry.sha1) |
