aboutsummaryrefslogtreecommitdiff
path: root/contrib/libarchive/tar/write.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libarchive/tar/write.c')
-rw-r--r--contrib/libarchive/tar/write.c7
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;