author | Lars Hjemli <hjemli@gmail.com> | 2008-12-01 20:50:19 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2008-12-01 20:50:19 (UTC) |
commit | b9053a4ff04fef90d1b9ab3f813ae3fcee63a8c3 (patch) (unidiff) | |
tree | fb20e92f6e27a1148c525e8137399f845aec5a43 | |
parent | 4b4f8d1256669bf9838e17f83a070de0ec09a699 (diff) | |
download | cgit-b9053a4ff04fef90d1b9ab3f813ae3fcee63a8c3.zip cgit-b9053a4ff04fef90d1b9ab3f813ae3fcee63a8c3.tar.gz cgit-b9053a4ff04fef90d1b9ab3f813ae3fcee63a8c3.tar.bz2 |
ui-shared: exploit snapshot dwimmery in cgit_print_snapshot_links
Since we know that ui-snapshot.c is able to extract the revision from the
filename, there's no longer necessary to specify the revision with a 'id'
querystring argument.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | ui-shared.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/ui-shared.c b/ui-shared.c index 224e5f3..c4a506e 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
@@ -614,101 +614,100 @@ void cgit_print_pageheader(struct cgit_context *ctx) | |||
614 | html_txt(ctx->cfg.root_title); | 614 | html_txt(ctx->cfg.root_title); |
615 | html("</td></tr>\n"); | 615 | html("</td></tr>\n"); |
616 | 616 | ||
617 | html("<tr><td class='sub'>"); | 617 | html("<tr><td class='sub'>"); |
618 | if (ctx->repo) { | 618 | if (ctx->repo) { |
619 | html_txt(ctx->repo->desc); | 619 | html_txt(ctx->repo->desc); |
620 | html("</td><td class='sub right'>"); | 620 | html("</td><td class='sub right'>"); |
621 | html_txt(ctx->repo->owner); | 621 | html_txt(ctx->repo->owner); |
622 | } else { | 622 | } else { |
623 | if (ctx->cfg.root_desc) | 623 | if (ctx->cfg.root_desc) |
624 | html_txt(ctx->cfg.root_desc); | 624 | html_txt(ctx->cfg.root_desc); |
625 | else if (ctx->cfg.index_info) | 625 | else if (ctx->cfg.index_info) |
626 | html_include(ctx->cfg.index_info); | 626 | html_include(ctx->cfg.index_info); |
627 | } | 627 | } |
628 | html("</td></tr></table>\n"); | 628 | html("</td></tr></table>\n"); |
629 | 629 | ||
630 | html("<table class='tabs'><tr><td>\n"); | 630 | html("<table class='tabs'><tr><td>\n"); |
631 | if (ctx->repo) { | 631 | if (ctx->repo) { |
632 | cgit_summary_link("summary", NULL, hc(cmd, "summary"), | 632 | cgit_summary_link("summary", NULL, hc(cmd, "summary"), |
633 | ctx->qry.head); | 633 | ctx->qry.head); |
634 | cgit_refs_link("refs", NULL, hc(cmd, "refs"), ctx->qry.head, | 634 | cgit_refs_link("refs", NULL, hc(cmd, "refs"), ctx->qry.head, |
635 | ctx->qry.sha1, NULL); | 635 | ctx->qry.sha1, NULL); |
636 | cgit_log_link("log", NULL, hc(cmd, "log"), ctx->qry.head, | 636 | cgit_log_link("log", NULL, hc(cmd, "log"), ctx->qry.head, |
637 | NULL, NULL, 0, NULL, NULL); | 637 | NULL, NULL, 0, NULL, NULL); |
638 | cgit_tree_link("tree", NULL, hc(cmd, "tree"), ctx->qry.head, | 638 | cgit_tree_link("tree", NULL, hc(cmd, "tree"), ctx->qry.head, |
639 | ctx->qry.sha1, NULL); | 639 | ctx->qry.sha1, NULL); |
640 | cgit_commit_link("commit", NULL, hc(cmd, "commit"), | 640 | cgit_commit_link("commit", NULL, hc(cmd, "commit"), |
641 | ctx->qry.head, ctx->qry.sha1); | 641 | ctx->qry.head, ctx->qry.sha1); |
642 | cgit_diff_link("diff", NULL, hc(cmd, "diff"), ctx->qry.head, | 642 | cgit_diff_link("diff", NULL, hc(cmd, "diff"), ctx->qry.head, |
643 | ctx->qry.sha1, ctx->qry.sha2, NULL); | 643 | ctx->qry.sha1, ctx->qry.sha2, NULL); |
644 | if (ctx->repo->readme) | 644 | if (ctx->repo->readme) |
645 | reporevlink("about", "about", NULL, | 645 | reporevlink("about", "about", NULL, |
646 | hc(cmd, "about"), ctx->qry.head, NULL, | 646 | hc(cmd, "about"), ctx->qry.head, NULL, |
647 | NULL); | 647 | NULL); |
648 | html("</td><td class='form'>"); | 648 | html("</td><td class='form'>"); |
649 | html("<form class='right' method='get' action='"); | 649 | html("<form class='right' method='get' action='"); |
650 | if (ctx->cfg.virtual_root) | 650 | if (ctx->cfg.virtual_root) |
651 | html_url_path(cgit_fileurl(ctx->qry.repo, "log", | 651 | html_url_path(cgit_fileurl(ctx->qry.repo, "log", |
652 | ctx->qry.path, NULL)); | 652 | ctx->qry.path, NULL)); |
653 | html("'>\n"); | 653 | html("'>\n"); |
654 | add_hidden_formfields(1, 0, "log"); | 654 | add_hidden_formfields(1, 0, "log"); |
655 | html("<select name='qt'>\n"); | 655 | html("<select name='qt'>\n"); |
656 | html_option("grep", "log msg", ctx->qry.grep); | 656 | html_option("grep", "log msg", ctx->qry.grep); |
657 | html_option("author", "author", ctx->qry.grep); | 657 | html_option("author", "author", ctx->qry.grep); |
658 | html_option("committer", "committer", ctx->qry.grep); | 658 | html_option("committer", "committer", ctx->qry.grep); |
659 | html("</select>\n"); | 659 | html("</select>\n"); |
660 | html("<input class='txt' type='text' size='10' name='q' value='"); | 660 | html("<input class='txt' type='text' size='10' name='q' value='"); |
661 | html_attr(ctx->qry.search); | 661 | html_attr(ctx->qry.search); |
662 | html("'/>\n"); | 662 | html("'/>\n"); |
663 | html("<input type='submit' value='search'/>\n"); | 663 | html("<input type='submit' value='search'/>\n"); |
664 | html("</form>\n"); | 664 | html("</form>\n"); |
665 | } else { | 665 | } else { |
666 | site_link(NULL, "index", NULL, hc(cmd, "repolist"), NULL, 0); | 666 | site_link(NULL, "index", NULL, hc(cmd, "repolist"), NULL, 0); |
667 | if (ctx->cfg.root_readme) | 667 | if (ctx->cfg.root_readme) |
668 | site_link("about", "about", NULL, hc(cmd, "about"), | 668 | site_link("about", "about", NULL, hc(cmd, "about"), |
669 | NULL, 0); | 669 | NULL, 0); |
670 | html("</td><td class='form'>"); | 670 | html("</td><td class='form'>"); |
671 | html("<form method='get' action='"); | 671 | html("<form method='get' action='"); |
672 | html_attr(cgit_rooturl()); | 672 | html_attr(cgit_rooturl()); |
673 | html("'>\n"); | 673 | html("'>\n"); |
674 | html("<input type='text' name='q' size='10' value='"); | 674 | html("<input type='text' name='q' size='10' value='"); |
675 | html_attr(ctx->qry.search); | 675 | html_attr(ctx->qry.search); |
676 | html("'/>\n"); | 676 | html("'/>\n"); |
677 | html("<input type='submit' value='search'/>\n"); | 677 | html("<input type='submit' value='search'/>\n"); |
678 | html("</form>"); | 678 | html("</form>"); |
679 | } | 679 | } |
680 | html("</td></tr></table>\n"); | 680 | html("</td></tr></table>\n"); |
681 | html("<div class='content'>"); | 681 | html("<div class='content'>"); |
682 | } | 682 | } |
683 | 683 | ||
684 | void cgit_print_filemode(unsigned short mode) | 684 | void cgit_print_filemode(unsigned short mode) |
685 | { | 685 | { |
686 | if (S_ISDIR(mode)) | 686 | if (S_ISDIR(mode)) |
687 | html("d"); | 687 | html("d"); |
688 | else if (S_ISLNK(mode)) | 688 | else if (S_ISLNK(mode)) |
689 | html("l"); | 689 | html("l"); |
690 | else if (S_ISGITLINK(mode)) | 690 | else if (S_ISGITLINK(mode)) |
691 | html("m"); | 691 | html("m"); |
692 | else | 692 | else |
693 | html("-"); | 693 | html("-"); |
694 | html_fileperm(mode >> 6); | 694 | html_fileperm(mode >> 6); |
695 | html_fileperm(mode >> 3); | 695 | html_fileperm(mode >> 3); |
696 | html_fileperm(mode); | 696 | html_fileperm(mode); |
697 | } | 697 | } |
698 | 698 | ||
699 | void cgit_print_snapshot_links(const char *repo, const char *head, | 699 | void cgit_print_snapshot_links(const char *repo, const char *head, |
700 | const char *hex, int snapshots) | 700 | const char *hex, int snapshots) |
701 | { | 701 | { |
702 | const struct cgit_snapshot_format* f; | 702 | const struct cgit_snapshot_format* f; |
703 | char *filename; | 703 | char *filename; |
704 | 704 | ||
705 | for (f = cgit_snapshot_formats; f->suffix; f++) { | 705 | for (f = cgit_snapshot_formats; f->suffix; f++) { |
706 | if (!(snapshots & f->bit)) | 706 | if (!(snapshots & f->bit)) |
707 | continue; | 707 | continue; |
708 | filename = fmt("%s-%s%s", cgit_repobasename(repo), hex, | 708 | filename = fmt("%s-%s%s", cgit_repobasename(repo), hex, |
709 | f->suffix); | 709 | f->suffix); |
710 | cgit_snapshot_link(filename, NULL, NULL, (char *)head, | 710 | cgit_snapshot_link(filename, NULL, NULL, NULL, NULL, filename); |
711 | (char *)hex, filename); | ||
712 | html("<br/>"); | 711 | html("<br/>"); |
713 | } | 712 | } |
714 | } | 713 | } |