aboutsummaryrefslogtreecommitdiff
path: root/archival/ar.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-07-10 23:06:00 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-07-10 23:06:00 +0000
commit0381d422d9b40c0cf887d299224c7759875aefd8 (patch)
tree764583282951c07bb6b611bef2858c5375647094 /archival/ar.c
parentb6052724ffc9d45894147b70e7aff226938bd2d3 (diff)
downloadbusybox-w32-0381d422d9b40c0cf887d299224c7759875aefd8.tar.gz
busybox-w32-0381d422d9b40c0cf887d299224c7759875aefd8.tar.bz2
busybox-w32-0381d422d9b40c0cf887d299224c7759875aefd8.zip
dpkg_deb: slight code shrink
ar: reuse existing ar unpacking code get_header_tar: handle autodetection for tiny .tar.gz files too unarchive.h: do not include CONFIGed out things function old new delta get_header_tar 1521 1534 +13 dpkg_deb_main 400 380 -20 ar_main 260 196 -64 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/2 up/down: 13/-84) Total: -71 bytes
Diffstat (limited to 'archival/ar.c')
-rw-r--r--archival/ar.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/archival/ar.c b/archival/ar.c
index d49329ce9..dbff6775e 100644
--- a/archival/ar.c
+++ b/archival/ar.c
@@ -45,7 +45,6 @@ int ar_main(int argc, char **argv)
45 45
46 archive_handle_t *archive_handle; 46 archive_handle_t *archive_handle;
47 unsigned opt; 47 unsigned opt;
48 char magic[8];
49 48
50 archive_handle = init_handle(); 49 archive_handle = init_handle();
51 50
@@ -82,14 +81,7 @@ int ar_main(int argc, char **argv)
82 llist_add_to(&(archive_handle->accept), argv[optind++]); 81 llist_add_to(&(archive_handle->accept), argv[optind++]);
83 } 82 }
84 83
85 xread(archive_handle->src_fd, magic, 7); 84 unpack_ar_archive(archive_handle);
86 if (strncmp(magic, "!<arch>", 7) != 0) {
87 bb_error_msg_and_die("invalid ar magic");
88 }
89 archive_handle->offset += 7;
90
91 while (get_header_ar(archive_handle) == EXIT_SUCCESS)
92 continue;
93 85
94 return EXIT_SUCCESS; 86 return EXIT_SUCCESS;
95} 87}