author | Michael Krelin <hacker@klever.net> | 2007-07-21 00:05:34 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2007-07-21 00:05:34 (UTC) |
commit | 18a99bdf879953307d6ae6eb56c2117a4c074b0d (patch) (side-by-side diff) | |
tree | 2d950fec688892398edd232f6e133b97e1a61e51 /ui-snapshot.c | |
parent | 4a92cbb7fd1084764dfe9b97a163f1084c790b15 (diff) | |
download | cgit-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>
-rw-r--r-- | ui-snapshot.c | 17 |
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 @@ -7,9 +7,9 @@ */ #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; int stdout2; @@ -23,9 +23,9 @@ static int write_tar_gzip_archive(struct archiver_args *args) /* child */ 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 */ chk_zero(close(rw[0]), "Closing read end of pipe"); @@ -43,15 +43,25 @@ 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, const char *prefix, const char *filename) @@ -101,4 +111,5 @@ void cgit_print_snapshot_links(const char *repo,const char *hex) cgit_pageurl(repo,"snapshot", fmt("id=%s&name=%s",hex,filename)), filename); } } +/* vim:set sw=8: */ |