diff options
| author | Tim Kientzle <kientzle@FreeBSD.org> | 2007-05-29 05:39:10 +0000 |
|---|---|---|
| committer | Tim Kientzle <kientzle@FreeBSD.org> | 2007-05-29 05:39:10 +0000 |
| commit | a38d1d4c8b6eb95203da19880cd5413a1ec96bde (patch) | |
| tree | 65824c6a122704c18c5f4261710047c9567d981a /usr.bin/tar/write.c | |
| parent | cebf6b9f640708f7a8ac808ba8047ffb579b2db7 (diff) | |
Notes
Diffstat (limited to 'usr.bin/tar/write.c')
| -rw-r--r-- | usr.bin/tar/write.c | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/usr.bin/tar/write.c b/usr.bin/tar/write.c index 76d6fcfd1c24..0efddd097746 100644 --- a/usr.bin/tar/write.c +++ b/usr.bin/tar/write.c @@ -203,23 +203,28 @@ tar_mode_c(struct bsdtar *bsdtar) } else archive_write_set_bytes_per_block(a, DEFAULT_BYTES_PER_BLOCK); - switch (bsdtar->create_compression) { - case 0: - break; + if (bsdtar->compress_program) { + archive_write_set_compression_program(a, bsdtar->compress_program); + } else { + switch (bsdtar->create_compression) { + case 0: + archive_write_set_compression_none(a); + break; #ifdef HAVE_LIBBZ2 - case 'j': case 'y': - archive_write_set_compression_bzip2(a); - break; + case 'j': case 'y': + archive_write_set_compression_bzip2(a); + break; #endif #ifdef HAVE_LIBZ - case 'z': - archive_write_set_compression_gzip(a); - break; + case 'z': + archive_write_set_compression_gzip(a); + break; #endif - default: - bsdtar_errc(bsdtar, 1, 0, - "Unrecognized compression option -%c", - bsdtar->create_compression); + default: + bsdtar_errc(bsdtar, 1, 0, + "Unrecognized compression option -%c", + bsdtar->create_compression); + } } r = archive_write_open_file(a, bsdtar->filename); |
