less: document -S flag and make it independently configurable
[oweals/busybox.git] / archival / libarchive / get_header_tar_gz.c
index b09f8691c769237728ec4189a07ccdc8b909ee98..b11f503dc6d75518c60f04e269296f9960d38b46 100644 (file)
@@ -4,29 +4,14 @@
  */
 
 #include "libbb.h"
-#include "archive.h"
+#include "bb_archive.h"
 
 char FAST_FUNC get_header_tar_gz(archive_handle_t *archive_handle)
 {
-#if BB_MMU
-       unsigned char magic[2];
-#endif
-
        /* Can't lseek over pipes */
        archive_handle->seek = seek_by_read;
 
-       /* Check gzip magic only if open_transformer will invoke unpack_gz_stream (MMU case).
-        * Otherwise, it will invoke an external helper "gunzip -cf" (NOMMU case) which will
-        * need the header. */
-#if BB_MMU
-       xread(archive_handle->src_fd, &magic, 2);
-       /* Can skip this check, but error message will be less clear */
-       if ((magic[0] != 0x1f) || (magic[1] != 0x8b)) {
-               bb_error_msg_and_die("invalid gzip magic");
-       }
-#endif
-
-       open_transformer(archive_handle->src_fd, unpack_gz_stream, "gunzip");
+       fork_transformer_with_sig(archive_handle->src_fd, unpack_gz_stream, "gunzip");
        archive_handle->offset = 0;
        while (get_header_tar(archive_handle) == EXIT_SUCCESS)
                continue;