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>
This commit is contained in:
Denys Vlasenko
2012-03-06 16:32:06 +01:00
parent 8a6a2f9c9c
commit 02c3c38420
3 changed files with 21 additions and 25 deletions

View File

@@ -1188,8 +1188,26 @@ unpack_gz_stream(transformer_aux_data_t *aux, int src_fd, int dst_fd)
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;