aboutsummaryrefslogtreecommitdiff
path: root/archival/libarchive/filter_accept_list_reassign.c
diff options
context:
space:
mode:
authorGravatar Denys Vlasenko <vda.linux@googlemail.com>2015-01-30 15:15:38 +0100
committerGravatar Denys Vlasenko <vda.linux@googlemail.com>2015-01-30 15:15:38 +0100
commit08f9ffc3f7503eb3dc94f16c615b20d2ae9a059c (patch)
tree7f4ad348cc275500a72a6c7ea3dab015bce2221b /archival/libarchive/filter_accept_list_reassign.c
parent8c05a74f7efcda6ae5bd83e134edf44af12cb5e4 (diff)
downloadbusybox-08f9ffc3f7503eb3dc94f16c615b20d2ae9a059c.tar.gz
busybox-08f9ffc3f7503eb3dc94f16c615b20d2ae9a059c.tar.bz2
dpkg: update supported compression methods
Based on a patch by Ron Yorston <rmy@tigress.co.uk> function old new delta get_header_tar_xz - 60 +60 filter_accept_list_reassign 128 188 +60 unpack_package 585 621 +36 init_archive_deb_control 52 76 +24 ------------------------------------------------------------------------------ (add/remove: 2/0 grow/shrink: 3/0 up/down: 180/0) Total: 180 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'archival/libarchive/filter_accept_list_reassign.c')
-rw-r--r--archival/libarchive/filter_accept_list_reassign.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/archival/libarchive/filter_accept_list_reassign.c b/archival/libarchive/filter_accept_list_reassign.c
index 3d19abe44..b9acfbc05 100644
--- a/archival/libarchive/filter_accept_list_reassign.c
+++ b/archival/libarchive/filter_accept_list_reassign.c
@@ -28,6 +28,10 @@ char FAST_FUNC filter_accept_list_reassign(archive_handle_t *archive_handle)
name_ptr++;
/* Modify the subarchive handler based on the extension */
+ if (strcmp(name_ptr, "tar") == 0) {
+ archive_handle->dpkg__action_data_subarchive = get_header_tar;
+ return EXIT_SUCCESS;
+ }
if (ENABLE_FEATURE_SEAMLESS_GZ
&& strcmp(name_ptr, "gz") == 0
) {
@@ -46,6 +50,12 @@ char FAST_FUNC filter_accept_list_reassign(archive_handle_t *archive_handle)
archive_handle->dpkg__action_data_subarchive = get_header_tar_lzma;
return EXIT_SUCCESS;
}
+ if (ENABLE_FEATURE_SEAMLESS_XZ
+ && strcmp(name_ptr, "xz") == 0
+ ) {
+ archive_handle->dpkg__action_data_subarchive = get_header_tar_xz;
+ return EXIT_SUCCESS;
+ }
}
return EXIT_FAILURE;
}