summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 c82587b..6e5215e 100644
--- a/cgit.c
+++ b/cgit.c
@@ -289,7 +289,6 @@ static void process_request(void *cbdata)
cmd = cgit_get_cmd(ctx);
if (!cmd) {
ctx->page.title = "cgit error";
- ctx->repo = NULL;
cgit_print_http_headers(ctx);
cgit_print_docstart(ctx);
cgit_print_pageheader(ctx);
diff --git a/ui-shared.c b/ui-shared.c
index 224e5f3..76cd00d 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -577,15 +577,20 @@ void add_hidden_formfields(int incl_head, int incl_search, char *page)
}
}
+const char *fallback_cmd = "repolist";
+
char *hc(struct cgit_cmd *cmd, const char *page)
{
- return (strcmp(cmd->name, page) ? NULL : "active");
+ return (strcmp(cmd ? cmd->name : fallback_cmd, page) ? NULL : "active");
}
void cgit_print_pageheader(struct cgit_context *ctx)
{
struct cgit_cmd *cmd = cgit_get_cmd(ctx);
+ if (!cmd && ctx->repo)
+ fallback_cmd = "summary";
+
html("<table id='header'>\n");
html("<tr>\n");
html("<td class='logo' rowspan='2'><a href='");