ui-shared: use the same snapshot logic as ui-refs

Make snapshot links in the commit UI use the same prefix algorithm as
those in the summary UI, so that refs starting with the snapshot prefix
are used as-is rather than composed with the prefix repeated.

Signed-off-by: John Keeping <john@keeping.me.uk>
Reviewed-by: Christian Hesse <mail@eworm.de>
This commit is contained in:
John Keeping 2018-03-31 15:06:01 +01:00 committed by Jason A. Donenfeld
parent 82aadcfc51
commit 5b1f42ffee

View File

@ -1115,9 +1115,15 @@ void cgit_print_snapshot_links(const struct cgit_repo *repo, const char *ref)
{ {
const struct cgit_snapshot_format* f; const struct cgit_snapshot_format* f;
struct strbuf filename = STRBUF_INIT; struct strbuf filename = STRBUF_INIT;
const char *basename;
size_t prefixlen; size_t prefixlen;
cgit_compose_snapshot_prefix(&filename, cgit_snapshot_prefix(repo), ref); 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; prefixlen = filename.len;
for (f = cgit_snapshot_formats; f->suffix; f++) { for (f = cgit_snapshot_formats; f->suffix; f++) {
if (!(repo->snapshots & f->bit)) if (!(repo->snapshots & f->bit))