aboutsummaryrefslogtreecommitdiff
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
-rw-r--r--cmd.c3
-rw-r--r--ui-snapshot.c14
-rw-r--r--ui-snapshot.h3
3 files changed, 6 insertions, 14 deletions
diff --git a/cmd.c b/cmd.c
index 8914fa5..5b3c14c 100644
--- a/cmd.c
+++ b/cmd.c
@@ -104,7 +104,8 @@ static void refs_fn(struct cgit_context *ctx)
static void snapshot_fn(struct cgit_context *ctx)
{
- cgit_print_snapshot(ctx->qry.head, ctx->qry.sha1, ctx->qry.path,
+ cgit_print_snapshot(ctx->qry.head, ctx->qry.sha1,
+ cgit_repobasename(ctx->repo->url), ctx->qry.path,
ctx->repo->snapshots, ctx->qry.nohead);
}
diff --git a/ui-snapshot.c b/ui-snapshot.c
index 76457d6..9c4d086 100644
--- a/ui-snapshot.c
+++ b/ui-snapshot.c
@@ -162,11 +162,10 @@ static const char *get_ref_from_filename(const char *url, const char *filename,
return dwim_refname;
}
-void cgit_print_snapshot(const char *head, const char *hex,
+void cgit_print_snapshot(const char *head, const char *hex, const char *prefix,
const char *filename, int snapshots, int dwim)
{
const struct cgit_snapshot_format* f;
- char *prefix = NULL;
f = get_format(filename);
if (!f) {
@@ -179,20 +178,11 @@ void cgit_print_snapshot(const char *head, const char *hex,
return;
}
- if (!hex && dwim) {
+ if (!hex && dwim)
hex = get_ref_from_filename(ctx.repo->url, filename, f);
- if (hex != NULL) {
- prefix = xstrdup(filename);
- prefix[strlen(filename) - strlen(f->suffix)] = '\0';
- }
- }
if (!hex)
hex = head;
- if (!prefix)
- prefix = xstrdup(cgit_repobasename(ctx.repo->url));
-
make_snapshot(f, hex, prefix, filename);
- free(prefix);
}
diff --git a/ui-snapshot.h b/ui-snapshot.h
index b6ede52..3540303 100644
--- a/ui-snapshot.h
+++ b/ui-snapshot.h
@@ -2,6 +2,7 @@
#define UI_SNAPSHOT_H
extern void cgit_print_snapshot(const char *head, const char *hex,
- const char *filename, int snapshot, int dwim);
+ const char *prefix, const char *filename,
+ int snapshot, int dwim);
#endif /* UI_SNAPSHOT_H */