summaryrefslogtreecommitdiffabout
path: root/ui-snapshot.c
authorAndreas 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)
commit0642435fed6793a0d038e1e5097a91293ee89a05 (patch) (side-by-side diff)
treed867ba37394042152c985a86765f3941aa97f685 /ui-snapshot.c
parent4e75d7c9b93010663963d362099777b77a67c446 (diff)
downloadcgit-0642435fed6793a0d038e1e5097a91293ee89a05.zip
cgit-0642435fed6793a0d038e1e5097a91293ee89a05.tar.gz
cgit-0642435fed6793a0d038e1e5097a91293ee89a05.tar.bz2
Add .tar.xz-snapshot support
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'ui-snapshot.c') (more/less context) (show whitespace changes)
-rw-r--r--ui-snapshot.c14
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
@@ -22,37 +22,43 @@ static int write_compressed_tar_archive(struct archiver_args *args,const char *f
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;
}