Minor cleanups
authorGlenn L McGrath <bug1@ihug.co.nz>
Wed, 13 Nov 2002 00:24:20 +0000 (00:24 -0000)
committerGlenn L McGrath <bug1@ihug.co.nz>
Wed, 13 Nov 2002 00:24:20 +0000 (00:24 -0000)
archival/dpkg_deb.c
archival/libunarchive/filter_accept_list_reassign.c
archival/libunarchive/get_header_tar_bz2.c
archival/libunarchive/get_header_tar_gz.c
archival/tar.c

index c4673955332994b5b21bd3c45e85b3b45bc9ea35..7ce637e5e7e4319758372f7a008d31b01d1f5e0a 100644 (file)
@@ -29,13 +29,6 @@ extern int dpkg_deb_main(int argc, char **argv)
 #ifndef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
        const llist_t *control_tar_llist = NULL;
 #endif
-#ifndef CONFIG_AR
-       char magic[7];
-#endif
-       
-       /* a .deb file is an ar archive that contain three files,
-        * data.tar.gz, control.tar.gz and debian
-        */
        
        /* Setup the tar archive handle */
        tar_archive = init_handle();
@@ -104,17 +97,7 @@ extern int dpkg_deb_main(int argc, char **argv)
        mkdir(argv[optind], 0777);
        chdir(argv[optind]);
 
-#ifdef CONFIG_AR
        unpack_ar_archive(ar_archive);
-#else
-       xread_all(ar_archive->src_fd, magic, 7);
-       if (strncmp(magic, "!<arch>", 7) != 0) {
-               error_msg_and_die("Invalid ar magic");
-       }
-       ar_archive->offset += 7;
-
-       while (get_header_ar(ar_archive) == EXIT_SUCCESS);
-#endif
 
        /* Cleanup */
        close (ar_archive->src_fd);
index fa294c70ab46ee468c61f6f0a7353d459468123e..d9bee79d7ac344e756c7e6ba4e466fce6f22c4fe 100644 (file)
@@ -48,7 +48,6 @@ extern char filter_accept_list_reassign(archive_handle_t *archive_handle)
 #ifdef CONFIG_FEATURE_DEB_TAR_BZ2
                if (strcmp(name_ptr, ".bz2") == 0) {
                        archive_handle->sub_archive->read = read_bz2;
-//                     BZ2_bzReadOpen(archive_handle->sub_archive->src_fd, NULL, 0);
                        BZ2_bzReadOpen(archive_handle->src_fd, NULL, 0);
                        archive_handle->action_data_subarchive = get_header_tar;
                        return(EXIT_SUCCESS);
index 4e47166f0163036ee9df76f4f2828ef4918d4770..b49ccae1886ada0626548d874afa72d0f964277e 100644 (file)
@@ -27,6 +27,9 @@ extern char get_header_tar_bz2(archive_handle_t *archive_handle)
 {
        BZ2_bzReadOpen(archive_handle->src_fd, NULL, 0);
 
+       archive_handle->read = read_bz2;
+       archive_handle->seek = seek_by_char;
+
        archive_handle->offset = 0;
        while (get_header_tar(archive_handle) == EXIT_SUCCESS);
 
index f0d4b13593ac7133c4e491a319998ff20394364b..f77b775d32ea5a50b6e44db455913f53a712003b 100644 (file)
@@ -28,8 +28,9 @@ extern char get_header_tar_gz(archive_handle_t *archive_handle)
        int fd_pipe[2];
        int pid;
        unsigned char magic[2];
-       
+
        /* Cant lseek over pipe's */
+       archive_handle->read = read;
        archive_handle->seek = seek_by_char;
 
        archive_xread_all(archive_handle, &magic, 2);
index 01ec90c6f5116c75e28ab3d60a48c15b02027e4b..f9711f8df22f43a7ccdb1995f43ca2b8e0e89c71 100644 (file)
@@ -685,7 +685,7 @@ int tar_main(int argc, char **argv)
 #endif
 #ifdef CONFIG_FEATURE_TAR_BZIP2
                case 'j':
-                       tar_handle->read = read_bz2;
+                       get_header_ptr = get_header_tar_bz2;
                        break;
 #endif
                default:
@@ -738,21 +738,9 @@ int tar_main(int argc, char **argv)
                        tar_handle->src_fd = fileno(stdin);
                        tar_handle->seek = seek_by_char;
                } else {
-                       tar_handle->seek = seek_by_jump;
                        tar_handle->src_fd = xopen(tar_filename, O_RDONLY);
                }
-#ifdef CONFIG_FEATURE_TAR_GZIP
-               if (get_header_ptr == get_header_tar_gz) {
-                       get_header_tar_gz(tar_handle);
-               } else
-#endif /* CONFIG_FEATURE_TAR_GZIP */
-#ifdef CONFIG_FEATURE_TAR_BZIP2
-               if (tar_handle->read == read_bz2) {
-                       get_header_tar_bz2(tar_handle);
-               } else
-#endif /* CONFIG_FEATURE_TAR_BZIP2 */
-
-                       while (get_header_tar(tar_handle) == EXIT_SUCCESS);
+               while (get_header_ptr(tar_handle) == EXIT_SUCCESS);
 
                /* Ckeck that every file that should have been extracted was */
                while (tar_handle->accept) {