summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2009-10-16 00:03:32 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2009-10-16 00:03:32 (UTC)
commit13032727ffa81a4de8964d4002c359c0983cdeb2 (patch) (unidiff)
tree1ba7a2256b5f62e444c6fe8c5a688d58aab9b9f0
parent322a4bc30917741cae30647165670b94f517ebf9 (diff)
downloadcgit-13032727ffa81a4de8964d4002c359c0983cdeb2.zip
cgit-13032727ffa81a4de8964d4002c359c0983cdeb2.tar.gz
cgit-13032727ffa81a4de8964d4002c359c0983cdeb2.tar.bz2
ui-shared.c: prettify download links when generated from tag page
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--ui-shared.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/ui-shared.c b/ui-shared.c
index 07d5dd4..6cb7edb 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -739,35 +739,40 @@ void cgit_print_pageheader(struct cgit_context *ctx)
739 } 739 }
740 html("</td></tr></table>\n"); 740 html("</td></tr></table>\n");
741 html("<div class='content'>"); 741 html("<div class='content'>");
742} 742}
743 743
744void cgit_print_filemode(unsigned short mode) 744void cgit_print_filemode(unsigned short mode)
745{ 745{
746 if (S_ISDIR(mode)) 746 if (S_ISDIR(mode))
747 html("d"); 747 html("d");
748 else if (S_ISLNK(mode)) 748 else if (S_ISLNK(mode))
749 html("l"); 749 html("l");
750 else if (S_ISGITLINK(mode)) 750 else if (S_ISGITLINK(mode))
751 html("m"); 751 html("m");
752 else 752 else
753 html("-"); 753 html("-");
754 html_fileperm(mode >> 6); 754 html_fileperm(mode >> 6);
755 html_fileperm(mode >> 3); 755 html_fileperm(mode >> 3);
756 html_fileperm(mode); 756 html_fileperm(mode);
757} 757}
758 758
759void cgit_print_snapshot_links(const char *repo, const char *head, 759void cgit_print_snapshot_links(const char *repo, const char *head,
760 const char *hex, int snapshots) 760 const char *hex, int snapshots)
761{ 761{
762 const struct cgit_snapshot_format* f; 762 const struct cgit_snapshot_format* f;
763 char *prefix;
763 char *filename; 764 char *filename;
765 unsigned char sha1[20];
764 766
767 if (get_sha1(fmt("refs/tags/%s", hex), sha1) == 0 &&
768 (hex[0] == 'v' || hex[0] == 'V') && isdigit(hex[1]))
769 hex++;
770 prefix = xstrdup(fmt("%s-%s", cgit_repobasename(repo), hex));
765 for (f = cgit_snapshot_formats; f->suffix; f++) { 771 for (f = cgit_snapshot_formats; f->suffix; f++) {
766 if (!(snapshots & f->bit)) 772 if (!(snapshots & f->bit))
767 continue; 773 continue;
768 filename = fmt("%s-%s%s", cgit_repobasename(repo), hex, 774 filename = fmt("%s%s", prefix, f->suffix);
769 f->suffix);
770 cgit_snapshot_link(filename, NULL, NULL, NULL, NULL, filename); 775 cgit_snapshot_link(filename, NULL, NULL, NULL, NULL, filename);
771 html("<br/>"); 776 html("<br/>");
772 } 777 }
773} 778}