X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=archival%2Fdpkg_deb.c;h=d11d9df175e1383c8eb688c88c1040707a6d0193;hb=f824136f6b21558ac023bc53bcb69294e0676103;hp=b99f227fcfa8f7f111e68fbd1f7bfb9dee6c6e05;hpb=8bb50782a5f0dd955a6fe18d381eb9322d1447e7;p=oweals%2Fbusybox.git diff --git a/archival/dpkg_deb.c b/archival/dpkg_deb.c index b99f227fc..d11d9df17 100644 --- a/archival/dpkg_deb.c +++ b/archival/dpkg_deb.c @@ -4,13 +4,8 @@ * * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. */ -#include -#include -#include -#include - -#include "unarchive.h" #include "busybox.h" +#include "unarchive.h" #define DPKG_DEB_OPT_CONTENTS 1 #define DPKG_DEB_OPT_CONTROL 2 @@ -23,7 +18,7 @@ int dpkg_deb_main(int argc, char **argv) archive_handle_t *ar_archive; archive_handle_t *tar_archive; llist_t *control_tar_llist = NULL; - unsigned long opt; + unsigned opt; char *extract_dir = NULL; short argcount = 1; @@ -45,8 +40,8 @@ int dpkg_deb_main(int argc, char **argv) llist_add_to(&control_tar_llist, "control.tar.bz2"); #endif - bb_opt_complementally = "?c--efXx:e--cfXx:f--ceXx:X--cefx:x--cefX"; - opt = bb_getopt_ulflags(argc, argv, "cefXx"); + opt_complementary = "?c--efXx:e--cfXx:f--ceXx:X--cefx:x--cefX"; + opt = getopt32(argc, argv, "cefXx"); if (opt & DPKG_DEB_OPT_CONTENTS) { tar_archive->action_header = header_verbose_list; @@ -81,7 +76,7 @@ int dpkg_deb_main(int argc, char **argv) bb_show_usage(); } - tar_archive->src_fd = ar_archive->src_fd = bb_xopen(argv[optind++], O_RDONLY); + tar_archive->src_fd = ar_archive->src_fd = xopen(argv[optind++], O_RDONLY); /* Workout where to extract the files */ /* 2nd argument is a dir name */ @@ -89,13 +84,13 @@ int dpkg_deb_main(int argc, char **argv) extract_dir = argv[optind]; } if (extract_dir) { - mkdir(extract_dir, 0777); - chdir(extract_dir); /* error check? */ + mkdir(extract_dir, 0777); /* bb_make_directory(extract_dir, 0777, 0) */ + xchdir(extract_dir); } unpack_ar_archive(ar_archive); /* Cleanup */ - close (ar_archive->src_fd); + close(ar_archive->src_fd); - return(EXIT_SUCCESS); + return EXIT_SUCCESS; }