The call to cgit_get_cmd() and the following fallback handling (to "summary" or "repoindex") in cgit_print_pageheader() is unnecessary, since the same fallback handling was already done when ctx.qry.page was set when cgit_get_cmd() was called from process_request() in cgit.c. As such, hc() can also be rewritten to simply compare the given 'page' string against ctx.qry.page.
Unified · Split
| @@ -645,11 +645,9 @@ void cgit_add_hidden_formfields(int incl_head, int incl_search, · 644 unmodified lines | ||
| 645 | 645 | } |
| 646 | 646 | } |
| 647 | 647 | |
| 648 | −const char *fallback_cmd = "repolist"; | |
| 649 | − | |
| 650 | −char *hc(struct cgit_cmd *cmd, const char *page) | |
| 648 | +static const char *hc(struct cgit_context *ctx, const char *page) | |
| 651 | 649 | { |
| 652 | − return (strcmp(cmd ? cmd->name : fallback_cmd, page) ? NULL : "active"); | |
| 650 | + return strcmp(ctx->qry.page, page) ? NULL : "active"; | |
| 653 | 651 | } |
| 654 | 652 | |
| 655 | 653 | static void print_header(struct cgit_context *ctx) |
| @@ -701,35 +699,30 @@ static void print_header(struct cgit_context *ctx) · 45 unmodified lines | ||
| 701 | 699 | |
| 702 | 700 | void cgit_print_pageheader(struct cgit_context *ctx) |
| 703 | 701 | { |
| 704 | − struct cgit_cmd *cmd = cgit_get_cmd(ctx); | |
| 705 | − | |
| 706 | − if (!cmd && ctx->repo) | |
| 707 | − fallback_cmd = "summary"; | |
| 708 | − | |
| 709 | 702 | html("<div id='cgit'>"); |
| 710 | 703 | if (!ctx->cfg.noheader) |
| 711 | 704 | print_header(ctx); |
| 712 | 705 | |
| 713 | 706 | html("<table class='tabs'><tr><td>\n"); |
| 714 | 707 | if (ctx->repo) { |
| 715 | − cgit_summary_link("summary", NULL, hc(cmd, "summary"), | |
| 708 | + cgit_summary_link("summary", NULL, hc(ctx, "summary"), | |
| 716 | 709 | ctx->qry.head); |
| 717 | − cgit_refs_link("refs", NULL, hc(cmd, "refs"), ctx->qry.head, | |
| 710 | + cgit_refs_link("refs", NULL, hc(ctx, "refs"), ctx->qry.head, | |
| 718 | 711 | ctx->qry.sha1, NULL); |
| 719 | − cgit_log_link("log", NULL, hc(cmd, "log"), ctx->qry.head, | |
| 712 | + cgit_log_link("log", NULL, hc(ctx, "log"), ctx->qry.head, | |
| 720 | 713 | NULL, NULL, 0, NULL, NULL, ctx->qry.showmsg); |
| 721 | − cgit_tree_link("tree", NULL, hc(cmd, "tree"), ctx->qry.head, | |
| 714 | + cgit_tree_link("tree", NULL, hc(ctx, "tree"), ctx->qry.head, | |
| 722 | 715 | ctx->qry.sha1, NULL); |
| 723 | − cgit_commit_link("commit", NULL, hc(cmd, "commit"), | |
| 716 | + cgit_commit_link("commit", NULL, hc(ctx, "commit"), | |
| 724 | 717 | ctx->qry.head, ctx->qry.sha1, 0); |
| 725 | − cgit_diff_link("diff", NULL, hc(cmd, "diff"), ctx->qry.head, | |
| 718 | + cgit_diff_link("diff", NULL, hc(ctx, "diff"), ctx->qry.head, | |
| 726 | 719 | ctx->qry.sha1, ctx->qry.sha2, NULL, 0); |
| 727 | 720 | if (ctx->repo->max_stats) |
| 728 | − cgit_stats_link("stats", NULL, hc(cmd, "stats"), | |
| 721 | + cgit_stats_link("stats", NULL, hc(ctx, "stats"), | |
| 729 | 722 | ctx->qry.head, NULL); |
| 730 | 723 | if (ctx->repo->readme) |
| 731 | 724 | reporevlink("about", "about", NULL, |
| 732 | − hc(cmd, "about"), ctx->qry.head, NULL, | |
| 725 | + hc(ctx, "about"), ctx->qry.head, NULL, | |
| 733 | 726 | NULL); |
| 734 | 727 | html("</td><td class='form'>"); |
| 735 | 728 | html("<form class='right' method='get' action='"); |
| @@ -749,9 +742,9 @@ void cgit_print_pageheader(struct cgit_context *ctx) · 13 unmodified lines | ||
| 749 | 742 | html("<input type='submit' value='search'/>\n"); |
| 750 | 743 | html("</form>\n"); |
| 751 | 744 | } else { |
| 752 | − site_link(NULL, "index", NULL, hc(cmd, "repolist"), NULL, 0); | |
| 745 | + site_link(NULL, "index", NULL, hc(ctx, "repolist"), NULL, 0); | |
| 753 | 746 | if (ctx->cfg.root_readme) |
| 754 | − site_link("about", "about", NULL, hc(cmd, "about"), | |
| 747 | + site_link("about", "about", NULL, hc(ctx, "about"), | |
| 755 | 748 | NULL, 0); |
| 756 | 749 | html("</td><td class='form'>"); |
| 757 | 750 | html("<form method='get' action='"); |