all repos — cgit @ 314d9ea5a3bc60ec518e314bb0bf8072123dc08f

a hyperfast web frontend for git written in c

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>
Natanael Copa natanael.copa@gmail.com
Sat, 29 Nov 2008 21:49:07 -0800
commit

314d9ea5a3bc60ec518e314bb0bf8072123dc08f

parent

7b5cee65fd9cf31e4f19ce4ff613778cb95512a9

3 files changed, 14 insertions(+), 6 deletions(-)

jump to
M cmd.ccmd.c

@@ -104,8 +104,7 @@ }

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); }
M ui-snapshot.cui-snapshot.c

@@ -162,10 +162,11 @@ for_each_tag_ref(ref_cb, NULL);

return dwim_refname; } -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) { const struct cgit_snapshot_format* f; + char *prefix = NULL; f = get_format(filename); if (!f) {

@@ -178,11 +179,20 @@ cgit_print_docend();

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); }
M ui-snapshot.hui-snapshot.h

@@ -2,7 +2,6 @@ #ifndef UI_SNAPSHOT_H

#define UI_SNAPSHOT_H 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); #endif /* UI_SNAPSHOT_H */