author | Natanael Copa <natanael.copa@gmail.com> | 2008-11-30 05:49:07 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2008-11-30 12:39:53 (UTC) |
commit | 314d9ea5a3bc60ec518e314bb0bf8072123dc08f (patch) (side-by-side diff) | |
tree | ca65f83e89b301ff6df228785c73c8413a072361 | |
parent | 7b5cee65fd9cf31e4f19ce4ff613778cb95512a9 (diff) | |
download | cgit-314d9ea5a3bc60ec518e314bb0bf8072123dc08f.zip cgit-314d9ea5a3bc60ec518e314bb0bf8072123dc08f.tar.gz cgit-314d9ea5a3bc60ec518e314bb0bf8072123dc08f.tar.bz2 |
Set prefix in snapshots when using dwimmery
This patch sets the directory prefix in archives to be the filename,
excluding the suffix (.tar.gz, .tar.bz2 etc).
The patch also removes the prefix parameter in cgit_print_snapshot()
as the prefix might differ.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | cmd.c | 3 | ||||
-rw-r--r-- | ui-snapshot.c | 14 | ||||
-rw-r--r-- | ui-snapshot.h | 3 |
3 files changed, 14 insertions, 6 deletions
@@ -106,4 +106,3 @@ static void snapshot_fn(struct cgit_context *ctx) { - cgit_print_snapshot(ctx->qry.head, ctx->qry.sha1, - cgit_repobasename(ctx->repo->url), ctx->qry.path, + cgit_print_snapshot(ctx->qry.head, ctx->qry.sha1, ctx->qry.path, ctx->repo->snapshots, ctx->qry.nohead); diff --git a/ui-snapshot.c b/ui-snapshot.c index 9c4d086..76457d6 100644 --- a/ui-snapshot.c +++ b/ui-snapshot.c @@ -164,3 +164,3 @@ static const char *get_ref_from_filename(const char *url, const char *filename, -void cgit_print_snapshot(const char *head, const char *hex, const char *prefix, +void cgit_print_snapshot(const char *head, const char *hex, const char *filename, int snapshots, int dwim) @@ -168,2 +168,3 @@ void cgit_print_snapshot(const char *head, const char *hex, const char *prefix, const struct cgit_snapshot_format* f; + char *prefix = NULL; @@ -180,4 +181,9 @@ void cgit_print_snapshot(const char *head, const char *hex, const char *prefix, - 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'; + } + } @@ -186,3 +192,7 @@ void cgit_print_snapshot(const char *head, const char *hex, const char *prefix, + 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 3540303..b6ede52 100644 --- a/ui-snapshot.h +++ b/ui-snapshot.h @@ -4,4 +4,3 @@ extern void cgit_print_snapshot(const char *head, const char *hex, - const char *prefix, const char *filename, - int snapshot, int dwim); + const char *filename, int snapshot, int dwim); |