summaryrefslogtreecommitdiffstats
path: root/usr.bin/tar/write.c
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2009-03-08 06:19:28 +0000
committerkientzle <kientzle@FreeBSD.org>2009-03-08 06:19:28 +0000
commit26f0010266cad2bb2d82b748cdf8cbacf7b8e2c8 (patch)
treef874d802e06b9260d9dd99a2074cc7fad2295b78 /usr.bin/tar/write.c
parentab8f6aab1ae5011cc2e4dd5318ff3b80cda1ea1c (diff)
downloadFreeBSD-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.c17
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);
OpenPOWER on IntegriCloud