author | Andreas Wiese <aw-devel@instandbesetzt.net> | 2009-12-08 21:18:11 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2009-12-08 21:18:11 (UTC) |
commit | 0642435fed6793a0d038e1e5097a91293ee89a05 (patch) (side-by-side diff) | |
tree | d867ba37394042152c985a86765f3941aa97f685 | |
parent | 4e75d7c9b93010663963d362099777b77a67c446 (diff) | |
download | cgit-0642435fed6793a0d038e1e5097a91293ee89a05.zip cgit-0642435fed6793a0d038e1e5097a91293ee89a05.tar.gz cgit-0642435fed6793a0d038e1e5097a91293ee89a05.tar.bz2 |
Add .tar.xz-snapshot support
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | ui-snapshot.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/ui-snapshot.c b/ui-snapshot.c index 4136b3e..1b25dca 100644 --- a/ui-snapshot.c +++ b/ui-snapshot.c @@ -14,53 +14,59 @@ static int write_compressed_tar_archive(struct archiver_args *args,const char *f { int rv; struct cgit_filter f; f.cmd = xstrdup(filter); f.argv = malloc(2 * sizeof(char *)); f.argv[0] = f.cmd; f.argv[1] = NULL; cgit_open_filter(&f); rv = write_tar_archive(args); cgit_close_filter(&f); return rv; } static int write_tar_gzip_archive(struct archiver_args *args) { return write_compressed_tar_archive(args,"gzip"); } static int write_tar_bzip2_archive(struct archiver_args *args) { return write_compressed_tar_archive(args,"bzip2"); } +static int write_tar_xz_archive(struct archiver_args *args) +{ + return write_compressed_tar_archive(args,"xz"); +} + const struct cgit_snapshot_format cgit_snapshot_formats[] = { - { ".zip", "application/x-zip", write_zip_archive, 0x1 }, - { ".tar.gz", "application/x-gzip", write_tar_gzip_archive, 0x2 }, - { ".tar.bz2", "application/x-bzip2", write_tar_bzip2_archive, 0x4 }, - { ".tar", "application/x-tar", write_tar_archive, 0x8 }, + { ".zip", "application/x-zip", write_zip_archive, 0x01 }, + { ".tar.gz", "application/x-gzip", write_tar_gzip_archive, 0x02 }, + { ".tar.bz2", "application/x-bzip2", write_tar_bzip2_archive, 0x04 }, + { ".tar", "application/x-tar", write_tar_archive, 0x08 }, + { ".tar.xz", "application/x-xz", write_tar_xz_archive, 0x10 }, {} }; static const struct cgit_snapshot_format *get_format(const char *filename) { const struct cgit_snapshot_format *fmt; int fl, sl; fl = strlen(filename); for(fmt = cgit_snapshot_formats; fmt->suffix; fmt++) { sl = strlen(fmt->suffix); if (sl >= fl) continue; if (!strcmp(fmt->suffix, filename + fl - sl)) return fmt; } return NULL; } static int make_snapshot(const struct cgit_snapshot_format *format, const char *hex, const char *prefix, const char *filename) { struct archiver_args args; |