]> gitweb.ps.run Git - ps-cgit/blobdiff - ui-shared.c
ui-refs: use shared function to print tag downloads
[ps-cgit] / ui-shared.c
index d8578739576f090256f4b1bbe8232f1ff77f0b36..9d7ee3d90e424bb69da1eb447bfbaa9cc19de66d 100644 (file)
@@ -1111,14 +1111,20 @@ void cgit_compose_snapshot_prefix(struct strbuf *filename, const char *base,
        strbuf_addf(filename, "%s-%s", base, ref);
 }
 
-void cgit_print_snapshot_links(const struct cgit_repo *repo, const char *head,
-                              const char *hex)
+void cgit_print_snapshot_links(const struct cgit_repo *repo, const char *ref,
+                              const char *separator)
 {
        const struct cgit_snapshot_format* f;
        struct strbuf filename = STRBUF_INIT;
+       const char *basename;
        size_t prefixlen;
 
-       cgit_compose_snapshot_prefix(&filename, cgit_snapshot_prefix(repo), hex);
+       basename = cgit_snapshot_prefix(repo);
+       if (starts_with(ref, basename))
+               strbuf_addstr(&filename, ref);
+       else
+               cgit_compose_snapshot_prefix(&filename, basename, ref);
+
        prefixlen = filename.len;
        for (f = cgit_snapshot_formats; f->suffix; f++) {
                if (!(repo->snapshots & f->bit))
@@ -1127,7 +1133,7 @@ void cgit_print_snapshot_links(const struct cgit_repo *repo, const char *head,
                strbuf_addstr(&filename, f->suffix);
                cgit_snapshot_link(filename.buf, NULL, NULL, NULL, NULL,
                                   filename.buf);
-               html("<br/>");
+               html(separator);
        }
        strbuf_release(&filename);
 }