]> gitweb.ps.run Git - ps-cgit/blobdiff - ui-shared.c
ui-shared: use the same snapshot logic as ui-refs
[ps-cgit] / ui-shared.c
index d638bf455d8e460113180849803678fe6596fb13..50a168d8873a0bf99c76790df5bad10759d6e147 100644 (file)
@@ -1111,13 +1111,19 @@ 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 *hex)
+void cgit_print_snapshot_links(const struct cgit_repo *repo, const char *ref)
 {
        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))