Move seamless .Z support into unpack_gz_stream

unpack_gz_stream                                     566     643     +77
unpack_gunzip                                        123      12    -111

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/archival/libarchive/decompress_gunzip.c b/archival/libarchive/decompress_gunzip.c
index f1c9a79..66152a8 100644
--- a/archival/libarchive/decompress_gunzip.c
+++ b/archival/libarchive/decompress_gunzip.c
@@ -1188,8 +1188,26 @@
 	IF_DESKTOP(long long) int total, n;
 	DECLARE_STATE;
 
+#if !ENABLE_FEATURE_SEAMLESS_Z
 	if (check_signature16(aux, src_fd, GZIP_MAGIC))
 		return -1;
+#else
+	if (aux && aux->check_signature) {
+		uint16_t magic2;
+
+		if (full_read(STDIN_FILENO, &magic2, 2) != 2) {
+ bad_magic:
+			bb_error_msg("invalid magic");
+			return -1;
+		}
+		if (magic2 == COMPRESS_MAGIC) {
+			aux->check_signature = 0;
+			return unpack_Z_stream(aux, src_fd, dst_fd);
+		}
+		if (magic2 != GZIP_MAGIC)
+			goto bad_magic;
+	}
+#endif
 
 	total = 0;