diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-05-30 03:35:18 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-05-30 03:35:18 +0200 |
commit | 602ce69afb7c825a5aeed16d0bdb5a6a213d1cb1 (patch) | |
tree | 0d2c4ec107ebf64a57ca3d919f32f6878cf279bd /archival/bbunzip.c | |
parent | e04c867a214c4b6318bf1efce9e6681750140d2f (diff) | |
download | busybox-w32-602ce69afb7c825a5aeed16d0bdb5a6a213d1cb1.tar.gz busybox-w32-602ce69afb7c825a5aeed16d0bdb5a6a213d1cb1.tar.bz2 busybox-w32-602ce69afb7c825a5aeed16d0bdb5a6a213d1cb1.zip |
unxz: new applet, complete with xzcat and xz -d aliases
function old new delta
unpack_xz_stream_stdin - 3953 +3953
lzma_main - 2601 +2601
lzma_len - 516 +516
dec_vli - 165 +165
dict_repeat - 103 +103
lzma_reset - 98 +98
fill_temp - 98 +98
crc32_validate - 93 +93
xz_dec_reset - 77 +77
unxz_main - 77 +77
index_update - 47 +47
xz_crc32 - 40 +40
packed_usage 27044 27060 +16
make_new_name_unxz - 14 +14
applet_names 2240 2254 +14
applet_main 1312 1324 +12
applet_nameofs 656 662 +6
unpack_unxz - 5 +5
send_tree 355 360 +5
applet_install_loc 164 166 +2
------------------------------------------------------------------------------
(add/remove: 15/0 grow/shrink: 6/0 up/down: 7942/0) Total: 7942 bytes
text data bss dec hex filename
844032 453 6812 851297 cfd61 busybox_old
852063 453 6812 859328 d1cc0 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'archival/bbunzip.c')
-rw-r--r-- | archival/bbunzip.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/archival/bbunzip.c b/archival/bbunzip.c index 178dc63be..824b0027f 100644 --- a/archival/bbunzip.c +++ b/archival/bbunzip.c | |||
@@ -387,3 +387,36 @@ int uncompress_main(int argc UNUSED_PARAM, char **argv) | |||
387 | } | 387 | } |
388 | 388 | ||
389 | #endif | 389 | #endif |
390 | |||
391 | #if ENABLE_UNXZ | ||
392 | |||
393 | static | ||
394 | char* make_new_name_unxz(char *filename) | ||
395 | { | ||
396 | return make_new_name_generic(filename, "xz"); | ||
397 | } | ||
398 | |||
399 | static | ||
400 | IF_DESKTOP(long long) int unpack_unxz(unpack_info_t *info UNUSED_PARAM) | ||
401 | { | ||
402 | return unpack_xz_stream_stdin(); | ||
403 | } | ||
404 | |||
405 | int unxz_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | ||
406 | int unxz_main(int argc UNUSED_PARAM, char **argv) | ||
407 | { | ||
408 | int opts = getopt32(argv, "cfvdt"); | ||
409 | # if ENABLE_XZ | ||
410 | /* xz without -d or -t? */ | ||
411 | if (applet_name[2] == '\0' && !(opts & (OPT_DECOMPRESS|OPT_TEST))) | ||
412 | bb_show_usage(); | ||
413 | # endif | ||
414 | /* xzcat? */ | ||
415 | if (applet_name[2] == 'c') | ||
416 | option_mask32 |= OPT_STDOUT; | ||
417 | |||
418 | argv += optind; | ||
419 | return bbunpack(argv, make_new_name_unxz, unpack_unxz); | ||
420 | } | ||
421 | |||
422 | #endif | ||