diff options
Diffstat (limited to 'contrib/libarchive/tar/write.c')
-rw-r--r-- | contrib/libarchive/tar/write.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/contrib/libarchive/tar/write.c b/contrib/libarchive/tar/write.c index 6eaa85c9dbc0..5c7b13ae682f 100644 --- a/contrib/libarchive/tar/write.c +++ b/contrib/libarchive/tar/write.c @@ -25,7 +25,6 @@ */ #include "bsdtar_platform.h" -__FBSDID("$FreeBSD$"); #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> @@ -196,6 +195,10 @@ set_reader_options(struct bsdtar *bsdtar, struct archive *a) else archive_clear_error(a); } + if (bsdtar->flags & OPTFLAG_IGNORE_ZEROS) + if (archive_read_set_options(a, + "read_concatenated_archives") != ARCHIVE_OK) + lafe_errc(1, 0, "%s", archive_error_string(a)); } void @@ -690,6 +693,8 @@ append_archive(struct bsdtar *bsdtar, struct archive *a, struct archive *ina) while (ARCHIVE_OK == (e = archive_read_next_header(ina, &in_entry))) { if (archive_match_excluded(bsdtar->matching, in_entry)) continue; + if(edit_pathname(bsdtar, in_entry)) + continue; if ((bsdtar->flags & OPTFLAG_INTERACTIVE) && !yes("copy '%s'", archive_entry_pathname(in_entry))) continue; |