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>
This commit is contained in:
Denys Vlasenko
2010-05-30 03:35:18 +02:00
parent e04c867a21
commit 602ce69afb
16 changed files with 3433 additions and 9 deletions

View File

@@ -387,3 +387,36 @@ int uncompress_main(int argc UNUSED_PARAM, char **argv)
}
#endif
#if ENABLE_UNXZ
static
char* make_new_name_unxz(char *filename)
{
return make_new_name_generic(filename, "xz");
}
static
IF_DESKTOP(long long) int unpack_unxz(unpack_info_t *info UNUSED_PARAM)
{
return unpack_xz_stream_stdin();
}
int unxz_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int unxz_main(int argc UNUSED_PARAM, char **argv)
{
int opts = getopt32(argv, "cfvdt");
# if ENABLE_XZ
/* xz without -d or -t? */
if (applet_name[2] == '\0' && !(opts & (OPT_DECOMPRESS|OPT_TEST)))
bb_show_usage();
# endif
/* xzcat? */
if (applet_name[2] == 'c')
option_mask32 |= OPT_STDOUT;
argv += optind;
return bbunpack(argv, make_new_name_unxz, unpack_unxz);
}
#endif