diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2012-03-06 16:32:06 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2012-03-06 16:32:06 +0100 |
commit | 02c3c3842004d88207b46450dbd19f80e6596c7e (patch) | |
tree | 68890b6d081c3851b898f41bede25badc6b453fa /archival/bbunzip.c | |
parent | 8a6a2f9c9c214b94bd945acd97ac8b28c25e194e (diff) | |
download | busybox-w32-02c3c3842004d88207b46450dbd19f80e6596c7e.tar.gz busybox-w32-02c3c3842004d88207b46450dbd19f80e6596c7e.tar.bz2 busybox-w32-02c3c3842004d88207b46450dbd19f80e6596c7e.zip |
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>
Diffstat (limited to 'archival/bbunzip.c')
-rw-r--r-- | archival/bbunzip.c | 24 |
1 files changed, 1 insertions, 23 deletions
diff --git a/archival/bbunzip.c b/archival/bbunzip.c index 1bc04ed33..94d8a81c9 100644 --- a/archival/bbunzip.c +++ b/archival/bbunzip.c | |||
@@ -274,29 +274,7 @@ char* FAST_FUNC make_new_name_gunzip(char *filename, const char *expected_ext UN | |||
274 | static | 274 | static |
275 | IF_DESKTOP(long long) int FAST_FUNC unpack_gunzip(transformer_aux_data_t *aux) | 275 | IF_DESKTOP(long long) int FAST_FUNC unpack_gunzip(transformer_aux_data_t *aux) |
276 | { | 276 | { |
277 | IF_DESKTOP(long long) int status = -1; | 277 | return unpack_gz_stream(aux, STDIN_FILENO, STDOUT_FILENO); |
278 | uint16_t magic2; | ||
279 | |||
280 | //TODO: fold below into unpack_gz_stream? Then the whole level of indirection | ||
281 | // unpack_FOO() -> unpack_FOO_stream can be collapsed in this module! | ||
282 | |||
283 | aux->check_signature = 0; /* we will check it here, not in unpack_*_stream */ | ||
284 | |||
285 | if (full_read(STDIN_FILENO, &magic2, 2) != 2) | ||
286 | goto bad_magic; | ||
287 | if (ENABLE_FEATURE_SEAMLESS_Z && magic2 == COMPRESS_MAGIC) { | ||
288 | status = unpack_Z_stream(aux, STDIN_FILENO, STDOUT_FILENO); | ||
289 | } else if (magic2 == GZIP_MAGIC) { | ||
290 | status = unpack_gz_stream(aux, STDIN_FILENO, STDOUT_FILENO); | ||
291 | } else { | ||
292 | bad_magic: | ||
293 | bb_error_msg("invalid magic"); | ||
294 | /* status is still == -1 */ | ||
295 | } | ||
296 | if (status < 0) { | ||
297 | bb_error_msg("error inflating"); | ||
298 | } | ||
299 | return status; | ||
300 | } | 278 | } |
301 | /* | 279 | /* |
302 | * Linux kernel build uses gzip -d -n. We accept and ignore it. | 280 | * Linux kernel build uses gzip -d -n. We accept and ignore it. |