summaryrefslogtreecommitdiffabout
authorNatanael 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)
commit314d9ea5a3bc60ec518e314bb0bf8072123dc08f (patch) (side-by-side diff)
treeca65f83e89b301ff6df228785c73c8413a072361
parent7b5cee65fd9cf31e4f19ce4ff613778cb95512a9 (diff)
downloadcgit-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>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cmd.c3
-rw-r--r--ui-snapshot.c14
-rw-r--r--ui-snapshot.h3
3 files changed, 14 insertions, 6 deletions
diff --git a/cmd.c b/cmd.c
index 5b3c14c..8914fa5 100644
--- a/cmd.c
+++ b/cmd.c
@@ -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);