diff options
author | Jason A. Donenfeld | 2013-03-20 20:21:25 +0100 |
---|---|---|
committer | Jason A. Donenfeld | 2013-03-20 20:21:25 +0100 |
commit | 0255821e22678d4c58c809efe17bf2798835d5b9 (patch) | |
tree | d4679ff23796406648cf83ff0b98940ba844c5e1 /ui-shared.c | |
parent | 6d8a789d61f3a682bc040f1f7f44050b1f723546 (diff) | |
parent | 59fe348deaa270434f05afc56ca8d13618af9ca9 (diff) | |
download | cgit-0255821e22678d4c58c809efe17bf2798835d5b9.tar.gz cgit-0255821e22678d4c58c809efe17bf2798835d5b9.tar.bz2 cgit-0255821e22678d4c58c809efe17bf2798835d5b9.zip |
Merge branch 'wip'
Diffstat (limited to 'ui-shared.c')
-rw-r--r-- | ui-shared.c | 64 |
1 files changed, 7 insertions, 57 deletions
diff --git a/ui-shared.c b/ui-shared.c index 80f4aee..968933f 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
@@ -121,18 +121,6 @@ const char *cgit_repobasename(const char *reponame) | |||
121 | return rvbuf; | 121 | return rvbuf; |
122 | } | 122 | } |
123 | 123 | ||
124 | char *cgit_currurl() | ||
125 | { | ||
126 | if (!ctx.cfg.virtual_root) | ||
127 | return ctx.cfg.script_name; | ||
128 | else if (ctx.qry.page) | ||
129 | return fmt("%s/%s/%s/", ctx.cfg.virtual_root, ctx.qry.repo, ctx.qry.page); | ||
130 | else if (ctx.qry.repo) | ||
131 | return fmt("%s/%s/", ctx.cfg.virtual_root, ctx.qry.repo); | ||
132 | else | ||
133 | return fmt("%s/", ctx.cfg.virtual_root); | ||
134 | } | ||
135 | |||
136 | static void site_url(const char *page, const char *search, const char *sort, int ofs) | 124 | static void site_url(const char *page, const char *search, const char *sort, int ofs) |
137 | { | 125 | { |
138 | char *delim = "?"; | 126 | char *delim = "?"; |
@@ -433,8 +421,8 @@ void cgit_stats_link(const char *name, const char *title, const char *class, | |||
433 | reporevlink("stats", name, title, class, head, NULL, path); | 421 | reporevlink("stats", name, title, class, head, NULL, path); |
434 | } | 422 | } |
435 | 423 | ||
436 | void cgit_self_link(char *name, const char *title, const char *class, | 424 | static void cgit_self_link(char *name, const char *title, const char *class, |
437 | struct cgit_context *ctx) | 425 | struct cgit_context *ctx) |
438 | { | 426 | { |
439 | if (!strcmp(ctx->qry.page, "repolist")) | 427 | if (!strcmp(ctx->qry.page, "repolist")) |
440 | cgit_index_link(name, title, class, ctx->qry.search, ctx->qry.sort, | 428 | cgit_index_link(name, title, class, ctx->qry.search, ctx->qry.sort, |
@@ -513,8 +501,8 @@ void cgit_object_link(struct object *obj) | |||
513 | reporevlink(page, name, NULL, NULL, ctx.qry.head, fullrev, NULL); | 501 | reporevlink(page, name, NULL, NULL, ctx.qry.head, fullrev, NULL); |
514 | } | 502 | } |
515 | 503 | ||
516 | struct string_list_item *lookup_path(struct string_list *list, | 504 | static struct string_list_item *lookup_path(struct string_list *list, |
517 | const char *path) | 505 | const char *path) |
518 | { | 506 | { |
519 | struct string_list_item *item; | 507 | struct string_list_item *item; |
520 | 508 | ||
@@ -717,53 +705,14 @@ void cgit_print_docend() | |||
717 | html("</body>\n</html>\n"); | 705 | html("</body>\n</html>\n"); |
718 | } | 706 | } |
719 | 707 | ||
720 | int print_branch_option(const char *refname, const unsigned char *sha1, | 708 | static int print_branch_option(const char *refname, const unsigned char *sha1, |
721 | int flags, void *cb_data) | 709 | int flags, void *cb_data) |
722 | { | 710 | { |
723 | char *name = (char *)refname; | 711 | char *name = (char *)refname; |
724 | html_option(name, name, ctx.qry.head); | 712 | html_option(name, name, ctx.qry.head); |
725 | return 0; | 713 | return 0; |
726 | } | 714 | } |
727 | 715 | ||
728 | int print_archive_ref(const char *refname, const unsigned char *sha1, | ||
729 | int flags, void *cb_data) | ||
730 | { | ||
731 | struct tag *tag; | ||
732 | struct taginfo *info; | ||
733 | struct object *obj; | ||
734 | char buf[256], *url; | ||
735 | unsigned char fileid[20]; | ||
736 | int *header = (int *)cb_data; | ||
737 | |||
738 | if (prefixcmp(refname, "refs/archives")) | ||
739 | return 0; | ||
740 | strncpy(buf, refname + 14, sizeof(buf)); | ||
741 | obj = parse_object(sha1); | ||
742 | if (!obj) | ||
743 | return 1; | ||
744 | if (obj->type == OBJ_TAG) { | ||
745 | tag = lookup_tag(sha1); | ||
746 | if (!tag || parse_tag(tag) || !(info = cgit_parse_tag(tag))) | ||
747 | return 0; | ||
748 | hashcpy(fileid, tag->tagged->sha1); | ||
749 | } else if (obj->type != OBJ_BLOB) { | ||
750 | return 0; | ||
751 | } else { | ||
752 | hashcpy(fileid, sha1); | ||
753 | } | ||
754 | if (!*header) { | ||
755 | html("<h1>download</h1>\n"); | ||
756 | *header = 1; | ||
757 | } | ||
758 | url = cgit_pageurl(ctx.qry.repo, "blob", | ||
759 | fmt("id=%s&path=%s", sha1_to_hex(fileid), | ||
760 | buf)); | ||
761 | html_link_open(url, NULL, "menu"); | ||
762 | html_txt(strlpart(buf, 20)); | ||
763 | html_link_close(); | ||
764 | return 0; | ||
765 | } | ||
766 | |||
767 | void cgit_add_hidden_formfields(int incl_head, int incl_search, | 716 | void cgit_add_hidden_formfields(int incl_head, int incl_search, |
768 | const char *page) | 717 | const char *page) |
769 | { | 718 | { |
@@ -983,4 +932,5 @@ void cgit_print_snapshot_links(const char *repo, const char *head, | |||
983 | cgit_snapshot_link(filename, NULL, NULL, NULL, NULL, filename); | 932 | cgit_snapshot_link(filename, NULL, NULL, NULL, NULL, filename); |
984 | html("<br/>"); | 933 | html("<br/>"); |
985 | } | 934 | } |
935 | free(prefix); | ||
986 | } | 936 | } |