summaryrefslogtreecommitdiffabout
path: root/ui-snapshot.c
authorMichael Krelin <hacker@klever.net>2007-07-21 00:05:34 (UTC)
committer Michael Krelin <hacker@klever.net>2007-07-21 00:05:34 (UTC)
commit18a99bdf879953307d6ae6eb56c2117a4c074b0d (patch) (side-by-side diff)
tree2d950fec688892398edd232f6e133b97e1a61e51 /ui-snapshot.c
parent4a92cbb7fd1084764dfe9b97a163f1084c790b15 (diff)
downloadcgit-18a99bdf879953307d6ae6eb56c2117a4c074b0d.zip
cgit-18a99bdf879953307d6ae6eb56c2117a4c074b0d.tar.gz
cgit-18a99bdf879953307d6ae6eb56c2117a4c074b0d.tar.bz2
introduced .tar.bz2 snapshots
- reworked write_tar_gzip_archive to handle arbitrary filter as a write_compressed_tar_archive - reformatted whitespaces in the said function to adhere to common cgit standards - added wrappers around write_compressed_tar_archive for .tar.gz and .tar.bz2 - added a hint for vim to use 8 characters shift width by default Signed-off-by: Michael Krelin <hacker@klever.net>
Diffstat (limited to 'ui-snapshot.c') (more/less context) (show whitespace changes)
-rw-r--r--ui-snapshot.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/ui-snapshot.c b/ui-snapshot.c
index 649569f..f623f35 100644
--- a/ui-snapshot.c
+++ b/ui-snapshot.c
@@ -8,7 +8,7 @@
#include "cgit.h"
-static int write_tar_gzip_archive(struct archiver_args *args)
+static int write_compressed_tar_archive(struct archiver_args *args,const char *filter)
{
int rw[2];
pid_t gzpid;
@@ -24,7 +24,7 @@ static int write_tar_gzip_archive(struct archiver_args *args)
chk_zero(close(rw[1]), "Closing write end of pipe in child");
chk_zero(close(STDIN_FILENO), "Closing STDIN");
chk_non_negative(dup2(rw[0],STDIN_FILENO), "Redirecting compressor input to stdin");
- execlp("gzip","gzip",NULL);
+ execlp(filter,filter,NULL);
_exit(-1);
}
/* parent */
@@ -44,13 +44,23 @@ static int write_tar_gzip_archive(struct archiver_args *args)
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 const struct snapshot_archive_t {
const char *suffix;
const char *mimetype;
write_archive_fn_t write_func;
} snapshot_archives[] = {
{ ".zip", "application/x-zip", write_zip_archive },
- { ".tar.gz", "application/x-gzip", write_tar_gzip_archive }
+ { ".tar.gz", "application/x-tar", write_tar_gzip_archive },
+ { ".tar.bz2", "application/x-tar", write_tar_bzip2_archive }
};
void cgit_print_snapshot(struct cacheitem *item, const char *hex,
@@ -102,3 +112,4 @@ void cgit_print_snapshot_links(const char *repo,const char *hex)
fmt("id=%s&amp;name=%s",hex,filename)), filename);
}
}
+/* vim:set sw=8: */