diff options
author | kientzle <kientzle@FreeBSD.org> | 2009-03-08 06:19:28 +0000 |
---|---|---|
committer | kientzle <kientzle@FreeBSD.org> | 2009-03-08 06:19:28 +0000 |
commit | 26f0010266cad2bb2d82b748cdf8cbacf7b8e2c8 (patch) | |
tree | f874d802e06b9260d9dd99a2074cc7fad2295b78 /usr.bin/tar/write.c | |
parent | ab8f6aab1ae5011cc2e4dd5318ff3b80cda1ea1c (diff) | |
download | FreeBSD-src-26f0010266cad2bb2d82b748cdf8cbacf7b8e2c8.zip FreeBSD-src-26f0010266cad2bb2d82b748cdf8cbacf7b8e2c8.tar.gz |
Merge r492 from libarchive.googlecode.com: First cut at exposing the
new options mechanism to userland. Documentation pending...
Diffstat (limited to 'usr.bin/tar/write.c')
-rw-r--r-- | usr.bin/tar/write.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/usr.bin/tar/write.c b/usr.bin/tar/write.c index dd53453..6f89286 100644 --- a/usr.bin/tar/write.c +++ b/usr.bin/tar/write.c @@ -208,6 +208,12 @@ tar_mode_c(struct bsdtar *bsdtar) if (r != ARCHIVE_OK) bsdtar_errc(bsdtar, 1, 0, archive_error_string(a)); + if (bsdtar->option_format_options != NULL) { + r = archive_write_set_options(a, bsdtar->option_format_options); + if (r != ARCHIVE_OK) + bsdtar_errc(bsdtar, 1, 0, archive_error_string(a)); + } + write_archive(a, bsdtar); } @@ -294,6 +300,11 @@ tar_mode_r(struct bsdtar *bsdtar) } lseek(bsdtar->fd, end_offset, SEEK_SET); /* XXX check return val XXX */ archive_write_open_fd(a, bsdtar->fd); /* XXX check return val XXX */ + if (bsdtar->option_format_options != NULL) { + r = archive_write_set_options(a, bsdtar->option_format_options); + if (r != ARCHIVE_OK) + bsdtar_errc(bsdtar, 1, 0, archive_error_string(a)); + } write_archive(a, bsdtar); /* XXX check return val XXX */ @@ -310,6 +321,7 @@ tar_mode_u(struct bsdtar *bsdtar) int format; struct archive_dir_entry *p; struct archive_dir archive_dir; + int r; bsdtar->archive_dir = &archive_dir; memset(&archive_dir, 0, sizeof(archive_dir)); @@ -374,6 +386,11 @@ tar_mode_u(struct bsdtar *bsdtar) lseek(bsdtar->fd, end_offset, SEEK_SET); ftruncate(bsdtar->fd, end_offset); archive_write_open_fd(a, bsdtar->fd); + if (bsdtar->option_format_options != NULL) { + r = archive_write_set_options(a, bsdtar->option_format_options); + if (r != ARCHIVE_OK) + bsdtar_errc(bsdtar, 1, 0, archive_error_string(a)); + } write_archive(a, bsdtar); |