summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.c1
-rw-r--r--ui-shared.c7
2 files changed, 6 insertions, 2 deletions
diff --git a/cgit.c b/cgit.c
index d1cee58..f35f605 100644
--- a/cgit.c
+++ b/cgit.c
@@ -290,13 +290,12 @@ static void process_request(void *cbdata)
290 struct cgit_context *ctx = cbdata; 290 struct cgit_context *ctx = cbdata;
291 struct cgit_cmd *cmd; 291 struct cgit_cmd *cmd;
292 292
293 cmd = cgit_get_cmd(ctx); 293 cmd = cgit_get_cmd(ctx);
294 if (!cmd) { 294 if (!cmd) {
295 ctx->page.title = "cgit error"; 295 ctx->page.title = "cgit error";
296 ctx->repo = NULL;
297 cgit_print_http_headers(ctx); 296 cgit_print_http_headers(ctx);
298 cgit_print_docstart(ctx); 297 cgit_print_docstart(ctx);
299 cgit_print_pageheader(ctx); 298 cgit_print_pageheader(ctx);
300 cgit_print_error("Invalid request"); 299 cgit_print_error("Invalid request");
301 cgit_print_docend(); 300 cgit_print_docend();
302 return; 301 return;
diff --git a/ui-shared.c b/ui-shared.c
index 95dfeb4..fba1ba6 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -584,21 +584,26 @@ void add_hidden_formfields(int incl_head, int incl_search, char *page)
584 html_hidden("qt", ctx.qry.grep); 584 html_hidden("qt", ctx.qry.grep);
585 if (ctx.qry.search) 585 if (ctx.qry.search)
586 html_hidden("q", ctx.qry.search); 586 html_hidden("q", ctx.qry.search);
587 } 587 }
588} 588}
589 589
590const char *fallback_cmd = "repolist";
591
590char *hc(struct cgit_cmd *cmd, const char *page) 592char *hc(struct cgit_cmd *cmd, const char *page)
591{ 593{
592 return (strcmp(cmd->name, page) ? NULL : "active"); 594 return (strcmp(cmd ? cmd->name : fallback_cmd, page) ? NULL : "active");
593} 595}
594 596
595void cgit_print_pageheader(struct cgit_context *ctx) 597void cgit_print_pageheader(struct cgit_context *ctx)
596{ 598{
597 struct cgit_cmd *cmd = cgit_get_cmd(ctx); 599 struct cgit_cmd *cmd = cgit_get_cmd(ctx);
598 600
601 if (!cmd && ctx->repo)
602 fallback_cmd = "summary";
603
599 html("<table id='header'>\n"); 604 html("<table id='header'>\n");
600 html("<tr>\n"); 605 html("<tr>\n");
601 html("<td class='logo' rowspan='2'><a href='"); 606 html("<td class='logo' rowspan='2'><a href='");
602 if (ctx->cfg.logo_link) 607 if (ctx->cfg.logo_link)
603 html_attr(ctx->cfg.logo_link); 608 html_attr(ctx->cfg.logo_link);
604 else 609 else